gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if the target...
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 2 Jun 2015 09:47:02 +0000 (09:47 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 2 Jun 2015 09:47:02 +0000 (09:47 +0000)
* gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
the target doesn't belong to the current function.

From-SVN: r224019

gcc/ChangeLog
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vec-scal-opt.c

index 2dc9702a54e3857361507d3e0023c7153506bf9b..ac791c4bf5d7304872c191bdf72de20ab0d11f97 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
+       the target doesn't belong to the current function.
+
 2015-06-02  Marek Polacek  <polacek@redhat.com>
 
        PR middle-end/66345
index 58a60bfd62a8238f4a8f1fcfc7bbbe9e5c1bbefa..721afd1c86de6bc5efdba91a17dbe91ff10682d3 100644 (file)
@@ -4707,12 +4707,14 @@ gimplify_modify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
     return gimplify_modify_expr_complex_part (expr_p, pre_p, want_value);
 
   /* Try to alleviate the effects of the gimplification creating artificial
-     temporaries (see for example is_gimple_reg_rhs) on the debug info.  */
+     temporaries (see for example is_gimple_reg_rhs) on the debug info, but
+     make sure not to create DECL_DEBUG_EXPR links across functions.  */
   if (!gimplify_ctxp->into_ssa
       && TREE_CODE (*from_p) == VAR_DECL
       && DECL_IGNORED_P (*from_p)
       && DECL_P (*to_p)
-      && !DECL_IGNORED_P (*to_p))
+      && !DECL_IGNORED_P (*to_p)
+      && decl_function_context (*to_p) == current_function_decl)
     {
       if (!DECL_NAME (*from_p) && DECL_NAME (*to_p))
        DECL_NAME (*from_p)
index 9372e605e71f9cc51c46760ff73501f27f84f656..9f93db005cd616b169d56f14a760c5afa89ae7fe 100644 (file)
@@ -1,3 +1,7 @@
+2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc.dg/vect/vec-scal-opt.c: Adjust regexp.
+
 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.dg/vect/vect-outer-simd-1.c: Remove cleanup-tree-dump directive.
index 9a49cc6acf0389585f4614f29cf1255320eceae6..64f628adf138aa64764b6575ca086c87d9cb5529 100644 (file)
@@ -19,4 +19,4 @@ int main (int argc, char *argv[]) {
    return vidx(short, r1, 0);
 }
 
-/* { dg-final { scan-tree-dump-times ">> k.\[0-9_\]*" 1 "veclower21" } } */
+/* { dg-final { scan-tree-dump-times ">> _\[0-9\]*" 1 "veclower21" } } */