diff options
| author | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 12:15:46 +0000 |
|---|---|---|
| committer | ghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-06-12 12:15:46 +0000 |
| commit | a10163583fbab3421e7ac7439c6ccd10dfbb3815 (patch) | |
| tree | bfe239499189c6a61ac5e0b1e233ec9b6e2e2770 /gcc | |
| parent | c223dc70b75caab21a074ea7ccb1ea02c89307dc (diff) | |
| download | ppe42-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/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/c-decl.c | 3 | ||||
| -rw-r--r-- | gcc/c-typeck.c | 3 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010610-1.c | 19 |
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; +} |

