aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c8
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/debug7.adb10
-rw-r--r--gcc/testsuite/gnat.dg/debug7.ads4
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;