bug in cc (???)
Tom Stockfisch
tps at sdchema.UUCP
Thu Sep 5 06:58:04 AEST 1985
[]
Todd Olson writes that the 4.2 C compiler can't handle
int n;
struct foo
I think there are many bugs in the way 4.2 handles passing whole structures.
Consider the following bug which prevents one from treating complex numbers
as primitives. The gyst is that you can't immediately access a member of
a structure returned by a function. Very frustrating.
Now, do the same but let the FIRST array subscript be
the integer variable. f(*X[n][0]);
The first two forms compile and run fine. The third form
gives the error message:
"ccbug.c", line 15: compiler error: stuck starg
Further, doing the dereferencing and then the function call
works just fine. y = *X[n][0];
f(y);
or
f(y=*X[n][0]);
REPEAT BY:
compile this program
----------------------------------------------------------------------
struct S {
int a;
int b;
} *X[2][2],
IS = { 1, 2 };
main()
{
int f();
int n;
n = 0;
X[0][0] = &IS;
f( *X[n][0] ); /* cc complains on this line */
}
int f(m)
struct S m;
{
printf("%d %d\n", m.a, m.b);
}
----------------------------------------------------------------------
BTW: 'lint -ph' produces no messages
--
Todd Olson
ARPA: olson at lasspvax -- or -- olson%lasspvax at cu-arpa.cs.cornell.edu
UUCP: {ihnp4,allegra,...}!cornell!lasspvax!olson
US Mail: Dept Physics, Clark Hall, Cornell University, Ithaca, New York 14853
More information about the Comp.lang.c
mailing list