This commit makes GCC aware of the DWARF numbers recently allocated
for Algol 68.
For DWARF 5, DW_LANG_Algol68 = 0x44.
For DWARF 6, DW_LNAME_Algol68 = 0x2e
with versioning schema YYYY, starting with 1973 for the original
Revised language. The language extensions we are working on will
be encoded in subsequent versions, 2025 etc.
See https://dwarfstd.org/issues/250304.1.html for more information.
Signed-off-by: Jose E. Marchesi <[email protected]>
gcc/ChangeLog
* dwarf2out.cc: Set DW_LANG_Algol68 an DW_LNAME_Algol68.
include/ChangeLog
* dwarf2.h (DW_LANG_Algol68): Define.
(DW_LNAME_Algol68): Likewise.
---
gcc/dwarf2out.cc | 8 ++++++++
include/dwarf2.h | 2 ++
2 files changed, 10 insertions(+)
diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index a817c69c95a..563f049e795 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -25799,6 +25799,14 @@ gen_compile_unit_die (const char *filename)
else if (strcmp (language_string, "GNU Rust") == 0)
language = DW_LANG_Rust;
}
+ else if (!dwarf_strict)
+ {
+ if (strcmp (language_string, "GNU Algol 68") == 0)
+ {
+ language = DW_LANG_Algol68;
+ lname = DW_LNAME_Algol68;
+ }
+ }
}
/* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */
else if (startswith (language_string, "GNU Fortran"))
diff --git a/include/dwarf2.h b/include/dwarf2.h
index 344447fbc36..638e131437e 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -409,6 +409,7 @@ enum dwarf_source_language
DW_LANG_Ruby = 0x0040,
DW_LANG_Move = 0x0041,
DW_LANG_Hylo = 0x0042,
+ DW_LANG_Algol68 = 0x0044,
DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */
DW_LANG_hi_user = 0xffff, /* Implementation-defined range end. */
@@ -476,6 +477,7 @@ enum dwarf_source_language_name
DW_LNAME_Odin = 0x002a,
DW_LNAME_P4 = 0x002b,
DW_LNAME_Metal = 0x002c,
+ DW_LNAME_Algol68 = 0x002e,
DW_LNAME_lo_user = 0x8000, /* Implementation-defined range start. */
DW_LNAME_hi_user = 0xffff /* Implementation-defined range end. */
--
2.30.2