FAIL: obj-c++.dg/comp-types-10.mm (test for excess errors) Excess errors: /home/pinskia/src/onetest/gcc/gcc/testsuite/obj-c++.dg/comp-types-10.mm:19: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in setup_one_parameter, at tree- inline.c:1116 The reason is: __objc_gnu_init (D.2186) Is that we have a function which takes a paramater which is not needed but have a type of error_mark_node for some reason.
Confirmed, based on http://gcc.gnu.org/ml/gcc-testresults/2005-09/msg00118.html .
Also here... http://gcc.gnu.org/ml/gcc/2005-10/msg00198.html
This test and obj-c++.dg/try-catch-9.mm get the same ICE on powerpc-linux on trunk as of 2006-04-20, and have failed since I started including obj-c++ on 2005-11-02.
*** Bug 27246 has been marked as a duplicate of this bug. ***
*** Bug 28020 has been marked as a duplicate of this bug. ***
Also fails on hppa2.0w-hp-hpux11.11.
Fails here with 4.3 with: internal compiler error: tree check: expected class 'expression', have 'exceptional' (error_mark) in build_min_nt, at cp/tree.c:1489
This failure occurs on x86_64-unknown-linux-gnu on 4.1, 4.2 and trunk: http://gcc.gnu.org/ml/gcc-testresults/2008-02/msg00469.html http://gcc.gnu.org/ml/gcc-testresults/2008-02/msg00468.html http://gcc.gnu.org/ml/gcc-testresults/2008-02/msg00466.html The tree checking failure says: comp-types-10.mm:19: internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in setup_one_parameter, at tree-inline.c:1535
also fails on *-*-darwin* with -fgnu-runtime.
(In reply to comment #9) > also fails on *-*-darwin* with -fgnu-runtime. note the fail does not occur (at least on ppc darwin) with -O0
It seems that objc_start_function is expecting a TREE in the objcpp case - so the error marked node is indeed unexpected. I've tried this on i686-darwin and i32-linux - but there are obviously a lot of affected platforms out there - would some of you like to try this? Index: gcc/objc/objc-act.c =================================================================== --- gcc/objc/objc-act.c (revision 157761) +++ gcc/objc/objc-act.c (working copy) @@ -2391,11 +2398,17 @@ objc_push_parm (build_decl (input_location, PARM_DECL, NULL_TREE, void_type_node)); +#ifdef OBJCPLUS objc_start_function (get_identifier (TAG_GNUINIT), build_function_type (void_type_node, OBJC_VOID_AT_END), + NULL_TREE, NULL_TREE); +#else + objc_start_function (get_identifier (TAG_GNUINIT), + build_function_type (void_type_node, + OBJC_VOID_AT_END), NULL_TREE, objc_get_parm_info (0)); - +#endif body = c_begin_compound_stmt (true); add_stmt (build_function_call (input_location,
Ok. Ok for gcc-4.5.
Subject: Bug 23716 Author: iains Date: Wed Apr 7 16:20:08 2010 New Revision: 158076 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158076 Log: fix PR23716 2010-04-07 Iain Sandoe <iains@gcc.gnu.org> PR objc++/23716 * objc-act.c (build_module_initializer_routine): Make the argument to objc_start_function NULL_TREE when compiling ObjC++. 2010-04-07 Iain Sandoe <iains@gcc.gnu.org> PR objc++/23716 * obj-c++.dg/comp-types-10.mm: Remove XFAIL. Modified: trunk/gcc/objc/ChangeLog trunk/gcc/objc/objc-act.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/obj-c++.dg/comp-types-10.mm
closing after back-porting to 4.5; if anyone feels passionately about a merge to 4.4 ... they can re-open.