aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2021-10-16 14:45:06 +0200
committerJan Hubicka <hubicka@ucw.cz>2021-10-16 14:45:06 +0200
commit99b287b8ef51a0be52f7400879a619dc5f993f31 (patch)
treee5463624c1ddf321cae77dea44754e5bd5a1fe1a /gcc/tree-ssa-structalias.c
parent93d183a5fff92d80c0545b7a7ce9b77fe7a258f7 (diff)
downloadgcc-99b287b8ef51a0be52f7400879a619dc5f993f31.zip
gcc-99b287b8ef51a0be52f7400879a619dc5f993f31.tar.gz
gcc-99b287b8ef51a0be52f7400879a619dc5f993f31.tar.bz2
Fix wrong code in ldost-strlen-1.c
gcc/ChangeLog: PR tree-optimization/102720 * tree-ssa-structalias.c (compute_points_to_sets): Fix producing of call used and clobbered sets.
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 6f12a66..2e6513b 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -7541,17 +7541,18 @@ compute_points_to_sets (void)
determine_global_memory_access (stmt, NULL,
&reads_global_memory,
&uses_global_memory);
- if (!uses_global_memory)
- ;
- else if ((vi = lookup_call_use_vi (stmt)) != NULL)
+ if ((vi = lookup_call_use_vi (stmt)) != NULL)
{
*pt = find_what_var_points_to (cfun->decl, vi);
/* Escaped (and thus nonlocal) variables are always
implicitly used by calls. */
/* ??? ESCAPED can be empty even though NONLOCAL
always escaped. */
- pt->nonlocal = uses_global_memory;
- pt->escaped = uses_global_memory;
+ if (uses_global_memory)
+ {
+ pt->nonlocal = uses_global_memory;
+ pt->escaped = uses_global_memory;
+ }
}
else if (uses_global_memory)
{
@@ -7572,17 +7573,18 @@ compute_points_to_sets (void)
determine_global_memory_access (stmt, &writes_global_memory,
NULL, NULL);
- if (!writes_global_memory)
- ;
- else if ((vi = lookup_call_clobber_vi (stmt)) != NULL)
+ if ((vi = lookup_call_clobber_vi (stmt)) != NULL)
{
*pt = find_what_var_points_to (cfun->decl, vi);
/* Escaped (and thus nonlocal) variables are always
implicitly clobbered by calls. */
/* ??? ESCAPED can be empty even though NONLOCAL
always escaped. */
- pt->nonlocal = writes_global_memory;
- pt->escaped = writes_global_memory;
+ if (writes_global_memory)
+ {
+ pt->nonlocal = writes_global_memory;
+ pt->escaped = writes_global_memory;
+ }
}
else if (writes_global_memory)
{