diff options
author | Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> | 2016-10-05 17:11:22 +0000 |
---|---|---|
committer | Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> | 2016-10-05 17:11:22 +0000 |
commit | 743a9cf79aee4f5a645991a9fda20e15050d32f3 (patch) | |
tree | 15539c22cc3de27531bf0434f8566fc4be223fca /gcc | |
parent | a40278c3e39a5ef2a35a0f8c4e6ce359c9af9832 (diff) | |
download | gcc-743a9cf79aee4f5a645991a9fda20e15050d32f3.zip gcc-743a9cf79aee4f5a645991a9fda20e15050d32f3.tar.gz gcc-743a9cf79aee4f5a645991a9fda20e15050d32f3.tar.bz2 |
Fix pr69941.c test failure for avr
The test assumes ints are atleast 32 bits wide. For the avr
target, ints are 16 bits wide. This leads VRP to conclude
that a right shift by 9 followed by an equality comparison
to 0x74 can never be true. VRP eliminates the conditional, and
the code ends up unconditionally calling __builtin_abort.
Fixed the testcase to use __INT32_TYPE__ for targets with less
than 32 bit wide integers, wherever the size happens to be
significant.
gcc/testsuite/ChangeLog
2016-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/pr69941.c: Use __INT32_TYPE__ instead
of int if __SIZEOF_INT__ is less than 4 bytes.
From-SVN: r240795
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr69941.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 947e84c..722fb82 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> + + * gcc.dg/torture/pr69941.c: Use __INT32_TYPE__ instead + of int if __SIZEOF_INT__ is less than 4 bytes. + 2016-10-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/dtio_15.f90: Fix spaces in dg-do. diff --git a/gcc/testsuite/gcc.dg/torture/pr69941.c b/gcc/testsuite/gcc.dg/torture/pr69941.c index f15d41a..7d097ca 100644 --- a/gcc/testsuite/gcc.dg/torture/pr69941.c +++ b/gcc/testsuite/gcc.dg/torture/pr69941.c @@ -1,11 +1,17 @@ /* { dg-do run } */ + +#if __SIZEOF_INT__ < 4 +__extension__ typedef __INT32_TYPE__ int32_t; +#else +typedef int int32_t; +#endif int a = 0; int b = 0; int c = 0; -int e = 0; +int32_t e = 0; int f = 0; -int *g = &e; +int32_t *g = &e; int fn1() { return b ? a : b; } |