diff options
author | Richard Biener <rguenther@suse.de> | 2014-07-08 09:04:29 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-07-08 09:04:29 +0000 |
commit | e8e938e0b0e92d28978d513e380be54640fdf94e (patch) | |
tree | 1bcbe66ca04560818c01cb37d55bfeca1b3eebc8 /gcc/tree-ssa-structalias.c | |
parent | e33f43b9a67e362352709069bb71f97f7e94dc25 (diff) | |
download | gcc-e8e938e0b0e92d28978d513e380be54640fdf94e.zip gcc-e8e938e0b0e92d28978d513e380be54640fdf94e.tar.gz gcc-e8e938e0b0e92d28978d513e380be54640fdf94e.tar.bz2 |
re PR tree-optimization/61681 (wrong code at -Os and above on x86_64-linux-gnu)
2014-07-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/61681
* tree-ssa-structalias.c (find_what_var_points_to): Expand
NONLOCAL inside ESCAPED.
* gcc.dg/torture/pr61681.c: New testcase.
From-SVN: r212349
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 0472239..221877e 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -6106,6 +6106,10 @@ find_what_var_points_to (varinfo_t orig_vi) pt->ipa_escaped = 1; else pt->escaped = 1; + /* Expand some special vars of ESCAPED in-place here. */ + varinfo_t evi = get_varinfo (find (escaped_id)); + if (bitmap_bit_p (evi->solution, nonlocal_id)) + pt->nonlocal = 1; } else if (vi->id == nonlocal_id) pt->nonlocal = 1; |