Problems with IBM RS6000 C compiler

Karl Heuer karl at haddock.ima.isc.com
Sat Aug 4 04:12:42 AEST 1990


In article <476 at mtndew.UUCP> friedl at mtndew.UUCP (Stephen J. Friedl) writes:
>	1 | #ifdef undef
>	    .......a....
>a - 1506-199: (S) Expecting macro name on #ifdef or #ifndef directive.

Looks like a bug; possibly the compiler (mistakenly) believes that `undef' is
a reserved word.  It isn't (except immediately following `#'), and besides,
the preprocessor isn't supposed to forbid redefinition of keywords.

>[prototypes in header files don't use `const']

This is a bug.  (Easy enough to make, since many of the relevant Standards
give specifications in pre-ANSI C, alas.)

>	extern void	foo( void *** );
>	any_type	**array;
>	foo(&array);
>I just don't get it; the ANSI compiler on the 3B2 doen't complain about this.

User bug, and a bug in the 3b2 compiler.  The code not only violates the
Standard, but it's *wrong*.  It will fail to do the right thing on certain
architectures, and no amount of casting will make it right.

Karl W. Z. Heuer (karl at kelp.ima.isc.com or ima!kelp!karl), The Walking Lint



More information about the Comp.lang.c mailing list