aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Hainque <hainque@adacore.com>2018-06-11 09:42:54 +0000
committerOlivier Hainque <hainque@gcc.gnu.org>2018-06-11 09:42:54 +0000
commit5cfcd771472e8e99f69e11e601d9adb740a762de (patch)
tree42ef47589c217b8693df3d8ee58130d4b5627f09
parent259cc9a7e0b0feae750601ace489f2cb1fbb8f80 (diff)
downloadgcc-5cfcd771472e8e99f69e11e601d9adb740a762de.zip
gcc-5cfcd771472e8e99f69e11e601d9adb740a762de.tar.gz
gcc-5cfcd771472e8e99f69e11e601d9adb740a762de.tar.bz2
dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 for Ada with strict dwarf2.
2018-06-11 Olivier Hainque <hainque@adacore.com> * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 for Ada with strict dwarf2. testsuite/ * gnat.dg/lang-dw2.adb: New test. * gnat.dg/lang-dw3.adb: New test. From-SVN: r261432
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gnat.dg/langdw2.adb9
-rw-r--r--gcc/testsuite/gnat.dg/langdw3.adb10
5 files changed, 32 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 367e91f..2f745a5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-11 Olivier Hainque <hainque@adacore.com>
+
+ * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83
+ for Ada with strict dwarf2.
+
2018-06-08 Peter Bergner <bergner@vnet.ibm.com>
PR target/85755
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index a6b20b4..8032364 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -24460,6 +24460,9 @@ gen_compile_unit_die (const char *filename)
/* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */
else if (strncmp (language_string, "GNU Fortran", 11) == 0)
language = DW_LANG_Fortran90;
+ /* Likewise for Ada. */
+ else if (strcmp (language_string, "GNU Ada") == 0)
+ language = DW_LANG_Ada83;
add_AT_unsigned (die, DW_AT_language, language);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b18759b..0bdd3aa 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-11 Olivier Hainque <hainque@adacore.com>
+
+ * gnat.dg/lang-dw2.adb: New test.
+ * gnat.dg/lang-dw3.adb: New test.
+
2018-06-11 Hristian Kirtchev <kirtchev@adacore.com>
* gnat.dg/assertion_policy1.adb, gnat.dg/assertion_policy1_pkg.adb,
diff --git a/gcc/testsuite/gnat.dg/langdw2.adb b/gcc/testsuite/gnat.dg/langdw2.adb
new file mode 100644
index 0000000..5e61ca2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/langdw2.adb
@@ -0,0 +1,9 @@
+-- with strict dwarf2, we should produce DW_LANG_Ada83 (0x3) as AT_language
+
+-- { dg-do compile }
+-- { dg-skip-if "No dwarf-2 support" { hppa*-*-hpux* } }
+-- { dg-options "-cargs -gdwarf-2 -gstrict-dwarf -dA -margs" }
+-- { dg-final { scan-assembler "0x3\[^\n\r\]*AT_language" } }
+
+procedure Langdw2 is begin null; end;
+
diff --git a/gcc/testsuite/gnat.dg/langdw3.adb b/gcc/testsuite/gnat.dg/langdw3.adb
new file mode 100644
index 0000000..985df2b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/langdw3.adb
@@ -0,0 +1,10 @@
+-- with dwarf3+ or !strict-dwarf, we should produce DW_LANG_Ada95 (0xd)
+-- as AT_language
+
+-- { dg-do compile }
+-- { dg-skip-if "No dwarf-2 support" { hppa*-*-hpux* } }
+-- { dg-options "-cargs -gdwarf-3 -dA -margs" }
+-- { dg-final { scan-assembler "0xd\[^\n\r\]*AT_language" } }
+
+procedure Langdw3 is begin null; end;
+