Hello! As shown in the PR, ivar-invalid-type-1 ICEs in constructor_name_p, due to accessor on NULL "type" argument.
The one-liner patch fixes the ICE by adding a guard that checks that current_class_type is non-NULL before calling constructor_name_p. 2012-05-21 Uros Bizjak <ubiz...@gmail.com> PR obj-c++/53441 * decl.c (grokdeclarator): Check that current_class_type is non-NULL before calling constructor_name_p. Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}. OK for mainline SVN? Uros.
Index: decl.c =================================================================== --- decl.c (revision 187736) +++ decl.c (working copy) @@ -9803,7 +9803,8 @@ grokdeclarator (const cp_declarator *declarator, clones. */ DECL_ABSTRACT (decl) = 1; } - else if (constructor_name_p (unqualified_id, current_class_type)) + else if (current_class_type + && constructor_name_p (unqualified_id, current_class_type)) permerror (input_location, "ISO C++ forbids nested type %qD with same name " "as enclosing class", unqualified_id);