aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-06-19 15:27:48 +0200
committerMartin Liska <marxin@gcc.gnu.org>2017-06-19 13:27:48 +0000
commita6e5212a77e34682cfb591ed80e7166eaa895365 (patch)
tree306ee35916c9118ad658594b931d61933751b679 /gcc/gimplify.c
parent1a1e0df1cd646b81e35dd65523c3ae484d29fbf6 (diff)
downloadgcc-a6e5212a77e34682cfb591ed80e7166eaa895365.zip
gcc-a6e5212a77e34682cfb591ed80e7166eaa895365.tar.gz
gcc-a6e5212a77e34682cfb591ed80e7166eaa895365.tar.bz2
Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST (PR sanitizer/80879).
2017-06-19 Martin Liska <mliska@suse.cz> PR sanitizer/80879 * gimplify.c (gimplify_switch_expr): Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST. 2017-06-19 Martin Liska <mliska@suse.cz> PR sanitizer/80879 * gcc.dg/asan/use-after-scope-switch-4.c: New test. From-SVN: r249368
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 9af95a2..cf82f95 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -2279,7 +2279,8 @@ gimplify_switch_expr (tree *expr_p, gimple_seq *pre_p)
/* Do not create live_switch_vars if SWITCH_BODY is not a BIND_EXPR. */
saved_live_switch_vars = gimplify_ctxp->live_switch_vars;
- if (TREE_CODE (SWITCH_BODY (switch_expr)) == BIND_EXPR)
+ tree_code body_type = TREE_CODE (SWITCH_BODY (switch_expr));
+ if (body_type == BIND_EXPR || body_type == STATEMENT_LIST)
gimplify_ctxp->live_switch_vars = new hash_set<tree> (4);
else
gimplify_ctxp->live_switch_vars = NULL;