diff options
author | Martin Liska <mliska@suse.cz> | 2015-12-09 10:34:59 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2015-12-09 09:34:59 +0000 |
commit | b018757801c76a71731acfb0745a04b96b010938 (patch) | |
tree | a6a3ddbaa9f48256d462572970220213fb5e4a6e /gcc | |
parent | 7b7597c6a46f4828196f4e27da00f72b6f584ba9 (diff) | |
download | gcc-b018757801c76a71731acfb0745a04b96b010938.zip gcc-b018757801c76a71731acfb0745a04b96b010938.tar.gz gcc-b018757801c76a71731acfb0745a04b96b010938.tar.bz2 |
re PR ipa/68790 (gcc.c-torture/execute/20050713-1.c FAILs with -O0 -fipa-icf)
Fix PR ipa/68790
PR ipa/68790
* ipa-icf.c (sem_function::param_used_p): Return true
if ipa_node_params_sum equals to NULL.
* gcc.dg/ipa/pr68790.c: New test.
From-SVN: r231446
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-icf.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/ipa/pr68790.c | 40 |
4 files changed, 51 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a3813b7..f465e22 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-12-09 Martin Liska <mliska@suse.cz> + + PR ipa/68790 + * ipa-icf.c (sem_function::param_used_p): Return true + if ipa_node_params_sum equals to NULL. + 2015-12-09 Richard Biener <rguenther@suse.de> PR tree-optimization/68583 diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c index 0029a48..889a07d 100644 --- a/gcc/ipa-icf.c +++ b/gcc/ipa-icf.c @@ -544,7 +544,7 @@ bool sem_function::param_used_p (unsigned int i) { if (ipa_node_params_sum == NULL) - return false; + return true; struct ipa_node_params *parms_info = IPA_NODE_REF (get_node ()); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 68d9a2d..1b017b7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-12-09 Martin Liska <mliska@suse.cz> + + * gcc.dg/ipa/pr68790.c: New test. + 2015-12-08 Jan Hubicka <hubicka@ucw.cz> PR ipa/61886 diff --git a/gcc/testsuite/gcc.dg/ipa/pr68790.c b/gcc/testsuite/gcc.dg/ipa/pr68790.c new file mode 100644 index 0000000..258c004 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/pr68790.c @@ -0,0 +1,40 @@ +/* { dg-do run } */ +/* { dg-options "-O0 -fipa-icf -fdump-ipa-icf" } */ + +struct S +{ + int a; +}; + +int +foo3 (struct S x, struct S y, struct S z) +{ + if (z.a != 9) + __builtin_abort (); + return 0; +} + +int +bar3 (struct S x, struct S y, struct S z) +{ + return foo3 (y, x, z); +} + +int +baz3 (struct S x, struct S y, struct S z) +{ + return foo3 (y, z, x); +} + +int +main (void) +{ + struct S + a = { 3 }, + b = { 6 }, + c = { 9 }; + + return bar3 (b, a, c); +} + +/* { dg-final { scan-ipa-dump "Equal symbols: 0" "icf" } } */ |