Fix bogus failure of uninit-19.c for avr
authorSenthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Wed, 23 Nov 2016 09:49:25 +0000 (09:49 +0000)
committerSenthil Kumar Selvaraj <saaadhu@gcc.gnu.org>
Wed, 23 Nov 2016 09:49:25 +0000 (09:49 +0000)
The test fails for avr because fn1 does not get inlined into fn2. Inlining
occurs for x86_64 because fn1's computed size equals call_stmt_size. For the
avr, 32 bit memory moves are more expensive, and b[3] = p10[a] results in
a bigger size for fn1, preventing the inlining.

Add -finline-small-functions to force early inliner to inline fn1.

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

* gcc.dg/uninit-19.c: Add -finline-small-functions for avr.

From-SVN: r242742

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/uninit-19.c

index 92acce208b6270ce5d6635ba906878a2c6ae526d..55644cdbac24105efdd4f85502ed33327362ec00 100644 (file)
@@ -1,3 +1,7 @@
+2016-11-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
+
+       * gcc.dg/uninit-19.c: Add -finline-small-functions for avr.
+
 2016-11-23  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/78451
index b138a2c89dc43f761d4deeb4d617af69ff1f2570..aa1b3fb6fe0b05eb82bcbfcc530649cc34fcf6dd 100644 (file)
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O -Wuninitialized" } */
+/* { dg-additional-options "-finline-small-functions" { target avr-*-* } } */
 
 int a, l, m;
 float *b;
@@ -10,7 +11,7 @@ fn1 (int p1, float *f1, float *f2, float *f3, unsigned char *c1, float *f4,
      unsigned char *c2, float *p10)
 {
   if (p1 & 8)
-    b[3] = p10[a];  /* 13.  */
+    b[3] = p10[a];  /* 14.  */
 }
 
 void
@@ -19,8 +20,8 @@ fn2 ()
   float *n;
   if (l & 6)
     n = &c + m;
-  fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 22.  */
+  fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 23.  */
 }
 
-/* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* } } } 13 } */
-/* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* } } } } 22 } */
+/* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* } } } 14 } */
+/* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* } } } } 23 } */