The code below gives the following error: internal compiler error: tree check: expected class type, have exceptional (error_mark) in build_pointer_type_for_mode, at tree.c:4246 This sounds like bug 18177, but that was supposedly fixed in 4.0.0. PalmSource bug 105393.
Here's the code: typedef int32_t (*ProcPtr)();void Dispatcher(int32_t startCode) (__builtin_offsetof (ArgsType, largeMsgLen) + sizeof(Args.largeMsgLen))) "__builtin_offsetof" is necessary for the crash, and is an artifact of preprocessing. This is a Delta- reduction of a larger file which fails without error under g++ 3.3.4, presumably correctly, due to a missing include file. Here's the session: 93> /opt/gcc401chk/bin/g++ -v ../cpp/bugfiles/GCC_bugfiles/error/ 105393_CertMgrDispatcher_min.i Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../configure --enable-checking --prefix=/opt/gcc401chk --enable-languages=c,c+ + Thread model: posix gcc version 4.0.1 /opt/gcc401chk/libexec/gcc/i686-pc-linux-gnu/4.0.1/cc1plus -fpreprocessed ../cpp/bugfiles/ GCC_bugfiles/error/105393_CertMgrDispatcher_min.i -quiet -dumpbase 105393_CertMgrDispatcher_min.i -mtune=pentiumpro -auxbase 105393_CertMgrDispatcher_min - version -o /tmp/cczS74RP.s GNU C++ version 4.0.1 (i686-pc-linux-gnu) compiled by GNU C version 3.3.4 (pre 3.3.5 20040809). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:1: error: ISO C++ forbids declaration of âint32_tâ with no type ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:1: error: typedef âint32_tâ is initialized (use __typeof__ instead) ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:1: error: âProcPtrâ was not declared in this scope ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:1: error: expected â,â or â ;â before â(â token ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:3: error: function âvoid Dispatcher(int32_t)â is initialized like a variable ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:3: error: expected type-specifier before âArgsTypeâ ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:3: error: expected `,' before â ArgsTypeâ ../cpp/bugfiles/GCC_bugfiles/error/105393_CertMgrDispatcher_min.i:3: internal compiler error: tree check: expected class âtypeâ, have âexceptionalâ (error_mark) in build_pointer_type_for_mode, at tree.c:4246 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. -- Summary: tree check: expected class type, have exceptional (error_mark) in build_pointer_type_for_mode, at tree.c:4246 Product: gcc Version: 4.0.1 Status: UNCONFIRMED Severity: minor Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: flash at pobox dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23225