raeburn@ATHENA.MIT.EDU (Ken Raeburn) (02/11/89)
(version 1.33, vax)
The following source file, when compiled with -DBUG, generates error
messages about "invalid use of undefined type `struct nexus'" on the
lines at the end with the multiple casts (from nested macros). When
compiled without -DBUG, these messages don't occur.
/*
* test of gcc
*/
typedef unsigned char u_char;
struct nexusconnect {
#ifdef BUG
volatile
#endif
struct nexus * xyzzy;
};
struct nexus {
int foo;
};
struct uba_regs {
long quux;
};
volatile struct uba_regs *bar[] = {
(volatile struct uba_regs *)
(((volatile struct nexus *)0xf20000)+8),
(volatile struct uba_regs *)
(((volatile struct nexus *)0xf20000)+9),
};
/* end of bar.c */
The error message also goes away if the cast to pointer-to-nexus has
"volatile" removed.
-- Ken