aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSenthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>2016-10-05 17:11:22 +0000
committerSenthil Kumar Selvaraj <saaadhu@gcc.gnu.org>2016-10-05 17:11:22 +0000
commit743a9cf79aee4f5a645991a9fda20e15050d32f3 (patch)
tree15539c22cc3de27531bf0434f8566fc4be223fca /gcc
parenta40278c3e39a5ef2a35a0f8c4e6ce359c9af9832 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr69941.c10
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; }