From 0a37d40c9ceee7b502a06214037346884debf4e6 Mon Sep 17 00:00:00 2001 From: Pierre-Marie de Rodat Date: Tue, 30 May 2017 15:34:00 +0000 Subject: [PATCH] gimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions An upcoming patch exposes a bug in gimplify_modify_expr. There, we try not to create DECL_DEBUG_EXPR links across functions, however we don't check that *FROM_P actually belongs to the current function before modifying it. This patch fixes this oversight. gcc/ * gimplify.c (gimplify_modify_expr): Don't create a DECL_DEBUG_EXPR link if *FROM_P does not belong to the current function. From-SVN: r248688 --- gcc/ChangeLog | 6 ++++++ gcc/gimplify.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2db6af3639b..9da74328dcf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-05-30 Pierre-Marie de Rodat + + * gimplify.c (gimplify_modify_expr): Don't create a + DECL_DEBUG_EXPR link if *FROM_P does not belong to the current + function. + 2017-05-30 Wilco Dijkstra * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 455a6993e15..2c7fc9fabd1 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -5580,7 +5580,8 @@ gimplify_modify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, && DECL_IGNORED_P (*from_p) && DECL_P (*to_p) && !DECL_IGNORED_P (*to_p) - && decl_function_context (*to_p) == current_function_decl) + && decl_function_context (*to_p) == current_function_decl + && decl_function_context (*from_p) == current_function_decl) { if (!DECL_NAME (*from_p) && DECL_NAME (*to_p)) DECL_NAME (*from_p) -- 2.30.2