Xref: utzoo comp.lang.c:24824 comp.std.c:2302 Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!wuarchive!emory!utkcs2!alphard!battle From: battle@alphard.cs.utk.edu (David Battle) Newsgroups: comp.lang.c,comp.std.c Subject: Bug in DEC's C compiler(s) Summary: objects declared as "void *" are called "undefined" by compiler Message-ID: <1528@utkcs2.cs.utk.edu> Date: 2 Jan 90 17:59:14 GMT Sender: news@utkcs2.cs.utk.edu Reply-To: battle@alphard.cs.utk.edu (David Battle) Followup-To: comp.lang.c Organization: CS Dept -- University of TN, Knoxville Lines: 78 Keywords: I seem to have discovered a bug in DEC's Ultrix C compilers. The bug exhibits itself on both vax and mips architectures. The problem is that it seems to ignore objects declared as "void *". Here is an example, straight out of K&R2 (page 121): First, on a DECStation 3100: mips> head -1 /etc/motd Ultrix Worksystem V2.1 (Rev. 14) System #2: Mon Nov 6 11:22:25 EST 1989 mips> cat tmp.c void swap(void *v[], int i, int j) { void *temp; temp = v[i]; v[i] = v[j]; v[j] = temp; } mips> cc -c tmp.c ccom: Error: tmp.c, line 6: temp undefined temp = v[i]; ---------^ ccom: Warning: tmp.c, line 6: illegal combination of pointer and integer, op = temp = v[i]; ---------------^ ccom: Warning: tmp.c, line 8: illegal combination of pointer and integer, op = v[j] = temp; ---------------^ (ccom): tmp.c, line 8: cannot recover from earlier errors: goodbye! } ^ And on the MicroVax (doesn't handle prototypes yet): vax> head -1 /etc/motd Ultrix-32 V3.0 (Rev 64) UWS V2.0 System #2: Fri Aug 4 00:02:44 EDT 1989 vax> more foo.c void swap(v,i,j) void *v[]; int i, j; { void *temp; temp = v[i]; v[i] = v[j]; v[j] = temp; } vax> cc -c foo.c "foo.c", line 8: temp undefined "foo.c", line 8: warning: illegal combination of pointer and integer, op = "foo.c", line 10: warning: illegal combination of pointer and integer, op = The unprotoized version works fine on a sun: sun> cat > foo.c swap(v,i,j) void *v[]; int i, j; { void *temp; temp = v[i]; v[i] = v[j]; v[j] = temp; } sun> cc -c foo.c sun> Am I missing something here, or is this a real bug? -David L. Battle battle@battle.esd.ornl.gov battle@utkux1.utk.edu