aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-10 18:37:50 +0000
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-10 18:37:50 +0000
commita827f20c642e14bb9fd3781049f88ce98554b353 (patch)
tree761333b2cfcb445a69e293058a65f91eb115a56e
parentd0db2551eb9e62525a7fe1b5c5605f92ec560626 (diff)
2004-03-10 Andrew Pinski <apinski@apple.com>
PR c/14475 * gcc.dg/pr14475.c: New test. 2004-03-10 Andrew Pinski <apinski@apple.com PR c/14475 * c-decl.c (check_bitfield_type_and_width): Check for null lang_type_specific when check the precision of an enum. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/tree-ssa-20020619-branch@79272 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.tree-ssa8
-rw-r--r--gcc/c-decl.c3
-rw-r--r--gcc/testsuite/ChangeLog.tree-ssa5
-rw-r--r--gcc/testsuite/gcc.dg/pr14475.c8
4 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog.tree-ssa b/gcc/ChangeLog.tree-ssa
index bd7d35db6a9..37c6e37749e 100644
--- a/gcc/ChangeLog.tree-ssa
+++ b/gcc/ChangeLog.tree-ssa
@@ -1,4 +1,10 @@
-2004-03-09 Andrew Pinski <apinski@apple.com>
+2004-03-10 Andrew Pinski <apinski@apple.com
+
+ PR c/14475
+ * c-decl.c (check_bitfield_type_and_width): Check for null
+ lang_type_specific when check the precision of an enum.
+
+2004-03-09 Andrew Pinski <apinski@apple.com>
* Makefile.in (tree-ssa-forwprop.o): Fix the dependences.
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 1361cc43130..8518c435df4 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -3214,7 +3214,8 @@ check_bitfield_type_and_width (tree *type, tree *width, const char *orig_name)
if (TREE_CODE (*type) == ENUMERAL_TYPE)
{
struct lang_type *lt = TYPE_LANG_SPECIFIC (*type);
- if (w < min_precision (lt->enum_min, TREE_UNSIGNED (*type))
+ if (!lt
+ || w < min_precision (lt->enum_min, TREE_UNSIGNED (*type))
|| w < min_precision (lt->enum_max, TREE_UNSIGNED (*type)))
warning ("`%s' is narrower than values of its type", name);
}
diff --git a/gcc/testsuite/ChangeLog.tree-ssa b/gcc/testsuite/ChangeLog.tree-ssa
index dbc9cd28bee..7d7a3dcd453 100644
--- a/gcc/testsuite/ChangeLog.tree-ssa
+++ b/gcc/testsuite/ChangeLog.tree-ssa
@@ -1,3 +1,8 @@
+2004-03-10 Andrew Pinski <apinski@apple.com>
+
+ PR c/14475
+ * gcc.dg/pr14475.c: New test.
+
2004-03-09 Jeff Law <law@redhat.com>
* gcc.c-torture/compile/20040309-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr14475.c b/gcc/testsuite/gcc.dg/pr14475.c
new file mode 100644
index 00000000000..8009d465657
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr14475.c
@@ -0,0 +1,8 @@
+/* This used to ICE because there was no null check in
+ check_bitfield_type_and_width. */
+
+struct tree_common
+{
+ enum tree_code code : 8; /* {dg-error "" "" } */
+/* { dg-warning "" "" { target *-*-* } 6 } */
+};