summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-12 12:15:46 +0000
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2001-06-12 12:15:46 +0000
commita10163583fbab3421e7ac7439c6ccd10dfbb3815 (patch)
treebfe239499189c6a61ac5e0b1e233ec9b6e2e2770 /gcc
parentc223dc70b75caab21a074ea7ccb1ea02c89307dc (diff)
downloadppe42-gcc-a10163583fbab3421e7ac7439c6ccd10dfbb3815.tar.gz
ppe42-gcc-a10163583fbab3421e7ac7439c6ccd10dfbb3815.zip
* c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P.
* c-typeck.c (c_start_case): Likewise. testsuite: * gcc.c-torture/compile/20010610-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43257 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c3
-rw-r--r--gcc/c-typeck.c3
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010610-1.c19
5 files changed, 31 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f3fff9f4ba0..9868b84b77f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P.
+
+ * c-typeck.c (c_start_case): Likewise.
+
2001-06-12 Mark Mitchell <mark@codesourcery.com>
* expr.c (store_field): Don't set MEM_ALIAS_SET for a field
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 5d50394d551..2c16afb97a3 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -4357,8 +4357,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized)
/* Strip NON_LVALUE_EXPRs since we aren't using as an lvalue. */
STRIP_TYPE_NOPS (size);
- if (TREE_CODE (TREE_TYPE (size)) != INTEGER_TYPE
- && TREE_CODE (TREE_TYPE (size)) != ENUMERAL_TYPE)
+ if (! INTEGRAL_TYPE_P (TREE_TYPE (size)))
{
error ("size of array `%s' has non-integer type", name);
size = integer_one_node;
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 5653ae59b68..cf995334b9a 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -7077,8 +7077,7 @@ c_start_case (exp)
code = TREE_CODE (TREE_TYPE (exp));
type = TREE_TYPE (exp);
- if (code != INTEGER_TYPE
- && code != ENUMERAL_TYPE
+ if (! INTEGRAL_TYPE_P (type)
&& code != ERROR_MARK)
{
error ("switch quantity not an integer");
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a4dfba0301c..dfc4b53d9d6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2001-06-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gcc.c-torture/compile/20010610-1.c: New test.
+
2001-06-12 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.abi/vbase4.C: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010610-1.c b/gcc/testsuite/gcc.c-torture/compile/20010610-1.c
new file mode 100644
index 00000000000..ee8e2431bbb
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010610-1.c
@@ -0,0 +1,19 @@
+/* Origin: Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ Boolean types were not accepted as array sizes nor as switch
+ quantities. */
+
+#include <stdbool.h>
+
+int
+main(void)
+{
+ bool arr[(bool)1];
+
+ switch (arr[0])
+ {
+ default:;
+ }
+
+ return 0;
+}
OpenPOWER on IntegriCloud