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.

Regards
Senthil

2016-11-25  Senthil Kumar Selvaraj  <senthil_kumar.selva...@atmel.com>

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

Index: gcc/testsuite/gcc.dg/pr64277.c
===================================================================
--- gcc/testsuite/gcc.dg/pr64277.c      (revision 242857)
+++ gcc/testsuite/gcc.dg/pr64277.c      (working copy)
@@ -4,10 +4,16 @@
 /* { 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]++;
 }
@@ -14,7 +20,7 @@
 
 void test2 (short a[], short m, short l)
 {
-  int i;
+  int32_t i;
   if (m > 5)
     m = 5;
   for (i = m; i > l; i--)

Reply via email to