From: Pierre-Marie de Rodat Date: Tue, 30 May 2017 15:34:00 +0000 (+0000) Subject: gimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0a37d40c9ceee7b502a06214037346884debf4e6;p=gcc.git 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 --- 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)