From 2ae7b972a6fdb321691483655f6de98b02e83a46 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 30 Jan 2008 16:05:19 -0800 Subject: [PATCH] re PR c/34993 (ICE with attribute for array with unknown bound) PR c/34993 * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN for unbounded arrays. From-SVN: r131970 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/gcc.c-torture/compile/pr34993.c | 5 +++++ gcc/tree.c | 5 +++-- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr34993.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 783fd914f508..2ecebda493e8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-01-30 Richard Henderson + + PR c/34993 + * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN + for unbounded arrays. + 2008-01-30 Silvius Rus * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34993.c b/gcc/testsuite/gcc.c-torture/compile/pr34993.c new file mode 100644 index 000000000000..ced4d5646c16 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr34993.c @@ -0,0 +1,5 @@ +/* PR c/34993 */ + +/* { dg-do compile } */ + +typedef int x[] __attribute((may_alias)); diff --git a/gcc/tree.c b/gcc/tree.c index f61e24bac09c..043968cb95f2 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -3701,8 +3701,9 @@ build_type_attribute_qual_variant (tree ttype, tree attribute, int quals) hashcode = type_hash_list (TYPE_ARG_TYPES (ntype), hashcode); break; case ARRAY_TYPE: - hashcode = iterative_hash_object (TYPE_HASH (TYPE_DOMAIN (ntype)), - hashcode); + if (TYPE_DOMAIN (ntype)) + hashcode = iterative_hash_object (TYPE_HASH (TYPE_DOMAIN (ntype)), + hashcode); break; case INTEGER_TYPE: hashcode = iterative_hash_object -- 2.47.2