]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/ipa-prop.cc
re PR middle-end/56988 (ipa-cp incorrectly propagates a field of an aggregate)
authorMartin Jambor <mjambor@suse.cz>
Thu, 2 May 2013 14:03:02 +0000 (16:03 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 2 May 2013 14:03:02 +0000 (16:03 +0200)
commit7b920a9ac3fa4a0c8b281ba13f1e689e2c7da4ad
tree8027a27b3fb600becf052caf7dc0a3248112257e
parent2c41c19d5dfc3de0c0b149dc0846c08422c5dded
re PR middle-end/56988 (ipa-cp incorrectly propagates a field of an aggregate)

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.

From-SVN: r198540
gcc/ChangeLog
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/ipa-prop.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/ipa/pr56988.c [new file with mode: 0644]