On Thu, Feb 27, 2014 at 10:43:33AM +0100, Richard Biener wrote: > > hence, one ends up in the code I quote above. That code calls > > print_declaration() ... > > Hence, TREE_TYPE() is void_type_node and dereferencing that one leads to an > > ICE.
Sorry, I misremembered. In any case, the following leads to an ICE. print_declaration has the code: if (TREE_CODE (t) != FUNCTION_DECL) if (DECL_INITIAL (t)) ... dump_generic_node (buffer, DECL_INITIAL (t), spc, flags, false); which handles the "CONSTRUCTOR" - which fails with: else if (TREE_CODE (TREE_TYPE (node)) == RECORD_TYPE as TREE_TYPE (node) == NULL. > Instead of the goto please duplicate the pp_semicolon and return. > > Ok with that change. You probably still want to add the NAMELIST_DECL > case to dump_generic_node (to avoid the << Unknown tree: ...). Fine with me. I assume that that is only relevant for calls to debug_tree() in the debugger? Because otherwise, it shouldn't be reachable. Thanks for the review! Tobias