From f3b5cf3ddc88e8818a64173543157af431c8997f Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Wed, 16 Dec 2015 23:56:27 +0000 Subject: [PATCH] PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime (internal compiler error) cp/ * decl.c (grokdeclarator): Avoid assuming ctype is non-null when checking the validity of a flexible array member. testsuite/ * obj-c++.dg/property/at-property-23.mm: Remove check for an error message. From-SVN: r231726 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/decl.c | 5 +++-- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/obj-c++.dg/property/at-property-23.mm | 1 - 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 46b67125a5b..4d7a5f3ad40 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2015-12-16 Martin Sebor + + PR objc++/68932 + * decl.c (grokdeclarator): Avoid assuming ctype is non-null when + checking the validity of a flexible array member. + 2015-12-16 Paolo Carlini * pt.c (comp_template_args): Remove. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 77358c4c685..7d45d4dc1f5 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -10933,8 +10933,9 @@ grokdeclarator (const cp_declarator *declarator, if (!staticp && TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE) { - if (TREE_CODE (ctype) == UNION_TYPE - || TREE_CODE (ctype) == QUAL_UNION_TYPE) + if (ctype + && (TREE_CODE (ctype) == UNION_TYPE + || TREE_CODE (ctype) == QUAL_UNION_TYPE)) { error ("flexible array member in union"); type = error_mark_node; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9ce80b1bc10..63d8b443819 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-12-16 Martin Sebor + + PR objc++/68932 + * obj-c++.dg/property/at-property-23.mm: Remove check for + an error message. + 2015-12-13 Jeff Law * gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield. diff --git a/gcc/testsuite/obj-c++.dg/property/at-property-23.mm b/gcc/testsuite/obj-c++.dg/property/at-property-23.mm index 73138f64c4a..035cc8b10fe 100644 --- a/gcc/testsuite/obj-c++.dg/property/at-property-23.mm +++ b/gcc/testsuite/obj-c++.dg/property/at-property-23.mm @@ -14,5 +14,4 @@ @property int a[8]; /* { dg-error "property can not be an array" } */ @property int b:8; /* { dg-error "expected" } */ @property int c[]; /* { dg-error "property can not be an array" } */ - /* { dg-error "ISO C.. forbids zero-size array" "" { target *-*-* } 16 } */ @end