aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2014-11-27 21:15:16 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2014-11-27 21:15:16 +0000
commit1a33633742ab03c950358ac987ff660c99620dcb (patch)
tree64200d031f966cf9ac786cb7819497f72747deff
parente8b5eb2553d71bb6820a7123544e179911bbd138 (diff)
downloadgcc-1a33633742ab03c950358ac987ff660c99620dcb.zip
gcc-1a33633742ab03c950358ac987ff660c99620dcb.tar.gz
gcc-1a33633742ab03c950358ac987ff660c99620dcb.tar.bz2
* dwarf2out.c (set_block_origin_self): Skip nested functions.
From-SVN: r218133
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/dwarf2out.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0554742..4b3248f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2014-11-27 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dwarf2out.c (set_block_origin_self): Skip nested functions.
+
2014-11-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/63833
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 25f0e7d..b7f93f0 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -17940,8 +17940,11 @@ set_block_origin_self (tree stmt)
for (local_decl = BLOCK_VARS (stmt);
local_decl != NULL_TREE;
local_decl = DECL_CHAIN (local_decl))
- if (! DECL_EXTERNAL (local_decl))
- set_decl_origin_self (local_decl); /* Potential recursion. */
+ /* Do not recurse on nested functions since the inlining status
+ of parent and child can be different as per the DWARF spec. */
+ if (TREE_CODE (local_decl) != FUNCTION_DECL
+ && !DECL_EXTERNAL (local_decl))
+ set_decl_origin_self (local_decl);
}
{