aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2016-02-26 19:06:42 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2016-02-26 19:06:42 +0100
commitad2a27062e2837a776fd0e5cb67ef4324c5c9936 (patch)
tree57bfe8d141752dcadd34f207f3c043a0d32c3a81 /gcc/tree-sra.c
parent1d11f7ce7081fc9e28ac0a66c6b3f6b7950971d6 (diff)
downloadgcc-ad2a27062e2837a776fd0e5cb67ef4324c5c9936.zip
gcc-ad2a27062e2837a776fd0e5cb67ef4324c5c9936.tar.gz
gcc-ad2a27062e2837a776fd0e5cb67ef4324c5c9936.tar.bz2
[PR 69920] Prevent SRA from leaving a removed SSA_NAME in IL
2016-02-26 Martin Jambor <mjambor@suse.cz> PR middle-end/69920 * tree-sra.c (sra_modify_assign): Do not remove loads of uninitialized aggregates to SSA_NAMEs. testsuite/ * gcc.dg/torture/pr69932.c: New test. * gcc.dg/torture/pr69936.c: Likewise. From-SVN: r233753
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 663ded2..366f413 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -3504,7 +3504,8 @@ sra_modify_assign (gimple *stmt, gimple_stmt_iterator *gsi)
else
{
if (access_has_children_p (racc)
- && !racc->grp_unscalarized_data)
+ && !racc->grp_unscalarized_data
+ && TREE_CODE (lhs) != SSA_NAME)
{
if (dump_file)
{