From: Volker Reichelt Date: Fri, 5 May 2006 19:48:26 +0000 (+0000) Subject: re PR objc/27240 (ICE with invalid fields) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b207220873a208cab0b8fea85bf5be77bcd15914;p=gcc.git re PR objc/27240 (ICE with invalid fields) PR objc/27240 * objc-act.c (objc_is_public): Return early on invalid type. * objc.dg/member-1.m: New test. From-SVN: r113559 --- diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 67ccd3be55e..29532163c65 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,8 @@ +2006-05-05 Volker Reichelt + + PR objc/27240 + * objc-act.c (objc_is_public): Return early on invalid type. + 2006-03-02 Fariborz Jahanian * objc-act.c (init_module_descriptor): Remove file name from diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index a90c0614b5e..7ed00ae78fb 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -7168,6 +7168,9 @@ objc_is_public (tree expr, tree identifier) return 1; #endif + if (TREE_TYPE (expr) == error_mark_node) + return 1; + basetype = TYPE_MAIN_VARIANT (TREE_TYPE (expr)); if (basetype && TREE_CODE (basetype) == RECORD_TYPE) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ad986c9248e..4b75dbe6f2f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-05 Volker Reichelt + + PR objc/27240 + * objc.dg/member-1.m: New test. + 2006-05-05 Steve Ellcey * gfortran.dg/large_real_kind_form_io_2.f90: Use nearest. diff --git a/gcc/testsuite/objc.dg/member-1.m b/gcc/testsuite/objc.dg/member-1.m new file mode 100644 index 00000000000..4c7b5ae35be --- /dev/null +++ b/gcc/testsuite/objc.dg/member-1.m @@ -0,0 +1,5 @@ +void foo() +{ + struct A a; /* { dg-error "storage size" } */ + a.i; +}