Fix bogus failure of uninit-19.c for avr
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
This commit is contained in:
parent
a80504892e
commit
baf53c4739
@ -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
|
||||
|
@ -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 } */
|
||||
|
Loading…
x
Reference in New Issue
Block a user