diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/debug7.adb | 10 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/debug7.ads | 4 |
5 files changed, 28 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a65f491..34efb7c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com> + + * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF + version check to protect only DW_TAG_imported_module generation. + 2016-10-05 Richard Biener <rguenther@suse.de> PR middle-end/55152 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 7b5acda..23eaebc 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -24045,13 +24045,15 @@ dwarf2out_imported_module_or_decl (tree decl, tree name, tree context, && !should_emit_struct_debug (context, DINFO_USAGE_DIR_USE)) return; - if (!(dwarf_version >= 3 || !dwarf_strict)) - return; - scope_die = get_context_die (context); if (child) { + /* DW_TAG_imported_module was introduced in the DWARFv3 specification, so + there is nothing we can do, here. */ + if (dwarf_version < 3 && dwarf_strict) + return; + gcc_assert (scope_die->die_child); gcc_assert (scope_die->die_child->die_tag == DW_TAG_imported_module); gcc_assert (TREE_CODE (decl) != NAMESPACE_DECL); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e77ed88..0280ff0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com> + + * gnat.dg/debug7.adb, gnat.dg/debug7.ads: New testcase. + 2016-10-05 Richard Biener <rguenther@suse.de> PR middle-end/55152 diff --git a/gcc/testsuite/gnat.dg/debug7.adb b/gcc/testsuite/gnat.dg/debug7.adb new file mode 100644 index 0000000..cdaf089 --- /dev/null +++ b/gcc/testsuite/gnat.dg/debug7.adb @@ -0,0 +1,10 @@ +-- { dg-do compile } +-- { dg-options "-cargs -g -gdwarf-2 -gstrict-dwarf -dA -margs" } +-- { dg-final { scan-assembler "DW_TAG_imported_decl" } } + +package body Debug7 is + function Next (I : Integer) return Integer is + begin + return I + 1; + end Next; +end Debug7; diff --git a/gcc/testsuite/gnat.dg/debug7.ads b/gcc/testsuite/gnat.dg/debug7.ads new file mode 100644 index 0000000..047d4a6 --- /dev/null +++ b/gcc/testsuite/gnat.dg/debug7.ads @@ -0,0 +1,4 @@ +package Debug7 is + function Next (I : Integer) return Integer; + function Renamed_Next (I : Integer) return Integer renames Next; +end Debug7; |