This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/56988] ipa-cp incorrectly propagates a field of an aggregate
- From: "jamborm at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 02 May 2013 14:05:35 +0000
- Subject: [Bug middle-end/56988] ipa-cp incorrectly propagates a field of an aggregate
- Auto-submitted: auto-generated
- References: <bug-56988-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56988
--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> 2013-05-02 14:05:35 UTC ---
Patch committed to trunk. I will commit the 4.8 version early next week.
Author: jamborm
Date: Thu May 2 14:03:02 2013
New Revision: 198540
URL: http://gcc.gnu.org/viewcvs?rev=198540&root=gcc&view=rev
Log:
2013-05-02 Martin Jambor <mjambor@suse.cz>
PR middle-end/56988
* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
* ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
flags match.
(find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
ipa_agg_replacement_value structures.
(known_aggs_to_agg_replacement_list): Likewise.
* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
(read_agg_replacement_chain): Likewise.
(ipcp_transform_function): Also check that by_ref flags match.
testsuite/
* gcc.dg/ipa/pr56988.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/ipa/pr56988.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-cp.c
trunk/gcc/ipa-prop.c
trunk/gcc/ipa-prop.h
trunk/gcc/testsuite/ChangeLog