Summary: | [4.5 Regression] wrong code with "-O1 -fipa-sra" | ||
---|---|---|---|
Product: | gcc | Reporter: | Zdenek Sojka <zsojka> |
Component: | tree-optimization | Assignee: | Jakub Jelinek <jakub> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | gcc-bugs, hubicka, jakub, jamborm, pinskia |
Priority: | P1 | Keywords: | wrong-code |
Version: | 4.5.0 | ||
Target Milestone: | 4.5.0 | ||
Host: | x86_64-pc-linux-gnu | Target: | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2010-01-04 14:13:18 | |
Bug Depends on: | |||
Bug Blocks: | 42290 | ||
Attachments: |
testcase
gcc45-pr42508.patch |
Description
Zdenek Sojka
2009-12-26 11:18:32 UTC
Created attachment 19394 [details] testcase Command line: g++ -O1 -fipa-sra pr42508.cpp && ./a.out It is caused by revision 154880: http://gcc.gnu.org/ml/gcc-cvs/2009-12/msg00024.html Confirmed. Doesn't happen on i?86-linux or with -m32. Created attachment 19460 [details] gcc45-pr42508.patch Fix, so far not bootstrapped/regtested. The cgraphunit.c hunk is only somewhat related, is not necessary to fix this, I've just noticed that the function was still modifying GIMPLE_CALL decl unnecessarily (and confusingly), when e->callee is an inline clone of some cgraph node with same_body aliases and GIMPLE_CALL calls the same_body alias. Subject: Bug 42508 Author: jakub Date: Tue Jan 5 08:40:50 2010 New Revision: 155640 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=155640 Log: PR tree-optimization/42508 * tree-sra.c (convert_callers): Check for recursive call by comparing cgraph nodes instead of decls. (modify_function): Call ipa_modify_formal_parameters also on all same_body aliases. * g++.dg/opt/pr42508.C: New test. * cgraphunit.c (cgraph_materialize_all_clones): Compare cgraph nodes when checking for same_body aliases. Added: trunk/gcc/testsuite/g++.dg/opt/pr42508.C Modified: trunk/gcc/ChangeLog trunk/gcc/cgraphunit.c trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-sra.c Fixed. Subject: Bug 42508 Author: hjl Date: Thu Jan 7 22:22:32 2010 New Revision: 155713 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=155713 Log: Backport tests from mainline 2010-01-07 H.J. Lu <hongjiu.lu@intel.com> Backport from mainline: 2010-01-06 Richard Guenther <rguenther@suse.de> * gcc.c-torture/compile/pr42632.c: New testcase. 2010-01-05 Martin Jambor <mjambor@suse.cz> PR tree-optimization/42462 * g++.dg/torture/pr42462.C: New test. 2010-01-05 Jakub Jelinek <jakub@redhat.com> PR tree-optimization/42508 * g++.dg/opt/pr42508.C: New test. 2010-01-04 Martin Jambor <mjambor@suse.cz> PR tree-optimization/42398 * gcc.c-torture/compile/pr42398.c: New test. 2010-01-04 Jason Merrill <jason@redhat.com> PR c++/42555 * g++.dg/ext/attrib35.C: New. 2010-01-01 Richard Guenther <rguenther@suse.de> PR c/42570 * gcc.c-torture/execute/pr42570.c: New testcase. 2010-01-01 Richard Guenther <rguenther@suse.de> PR middle-end/42559 * gcc.c-torture/compile/pr42559.c: New testcase. 2009-12-30 Joseph Myers <joseph@codesourcery.com> PR c/42439 * gcc.dg/bitfld-19.c: New test. 2009-12-28 Jason Merrill <jason@redhat.com> PR c++/42447 * g++.dg/template/array21.C: New. Added: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/ext/attrib35.C - copied unchanged from r155711, trunk/gcc/testsuite/g++.dg/ext/attrib35.C branches/gcc-4_4-branch/gcc/testsuite/g++.dg/opt/pr42508.C - copied unchanged from r155711, trunk/gcc/testsuite/g++.dg/opt/pr42508.C branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/array21.C - copied unchanged from r155710, trunk/gcc/testsuite/g++.dg/template/array21.C branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr42462.C - copied unchanged from r155711, trunk/gcc/testsuite/g++.dg/torture/pr42462.C branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42398.c - copied unchanged from r155711, trunk/gcc/testsuite/gcc.c-torture/compile/pr42398.c branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42559.c - copied unchanged from r155712, trunk/gcc/testsuite/gcc.c-torture/compile/pr42559.c branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr42632.c - copied unchanged from r155710, trunk/gcc/testsuite/gcc.c-torture/compile/pr42632.c branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr42570.c - copied unchanged from r155712, trunk/gcc/testsuite/gcc.c-torture/execute/pr42570.c branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/bitfld-19.c - copied unchanged from r155710, trunk/gcc/testsuite/gcc.dg/bitfld-19.c Modified: branches/gcc-4_4-branch/gcc/testsuite/ChangeLog |