Fix bogus pr64277.c failure for avr
authorSenthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Fri, 25 Nov 2016 08:15:42 +0000 (08:15 +0000)
committerSenthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
Fri, 25 Nov 2016 08:15:42 +0000 (08:15 +0000)
The smaller int size for the avr target breaks the test's
expectation on the number of iterations. The failure goes
away if 32 bit ints are used in place of a plain int.

Fix by conditionally typedef int32_t to __INT32_TYPE__ for targets
with int size < 4,  and then use int32_t everywhere.

gcc/testsuite
016-11-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/pr64277.c: Use __INT32_TYPE__ for targets
with sizeof(int) < 4.

From-SVN: r242859

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr64277.c

index 5e81768b4d0351411fca35ddce385ab275d250f9..1028191731fc7975e957ab4b686426e5a2f2b01f 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+       * gcc.dg/pr64277.c: Use __INT32_TYPE__ for targets
+       with sizeof(int) < 4. 
+
 2016-11-24  Martin Sebor  <msebor@redhat.com>
 
        PR tree-optimization/78476
index 62f6f1cc859af575feb36cc9412e331486c5fde0..813301f2d04954090cf0a6a98fb06080d7e2613b 100644 (file)
@@ -4,17 +4,23 @@
 /* { dg-final { scan-tree-dump "loop with 5 iterations completely unrolled" "cunroll" } } */
 /* { dg-final { scan-tree-dump "loop with 6 iterations completely unrolled" "cunroll" } } */
 
-int f1[10];
+#if __SIZEOF_INT__ < 4
+  __extension__ typedef __INT32_TYPE__ int32_t;
+#else
+  typedef int int32_t;
+#endif
+
+int32_t f1[10];
 void test1 (short a[], short m, unsigned short l)
 {
-  int i = l;
+  int32_t i = l;
   for (i = i + 5; i < m; i++)
     f1[i] = a[i]++;
 }
 
 void test2 (short a[], short m, short l)
 {
-  int i;
+  int32_t i;
   if (m > 5)
     m = 5;
   for (i = m; i > l; i--)