------- Comment #4 from dodji at gcc dot gnu dot org  2009-01-21 22:25 -------
I think I have an idea of what's going on.

g++ is actually failing on the line:
typedef unsigned int uaddr __attribute__ ((mode (pointer)));
(in libjava/include/jvm.h:262, while compiling libjava/jni-libjvm.cc).

That's due to my changing grokfield (in decl2.c) to make it create typedef
variant variant types for typedef declarations. It appears that later down in
that function, the call to cplus_decl_attributes honours the mode (pointer)
attribute set specification. That attribute specification changes the TREE_TYPE
property of the typedef declaration, making it be an unsigned pointer.

Changing the TREE_TYPE like that invalidates an invariant condition of
typedefs, hence the ICE on the gcc_assert() in gen_typedef_die.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38930

Reply via email to