On Sun, Oct 12, 2025 at 12:44 PM Jose E. Marchesi
<[email protected]> wrote:
>
> 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 | 4 +++-
>  2 files changed, 11 insertions(+), 1 deletion(-)
>
> 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..bc8c1c23b9d 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.  */
> @@ -425,7 +426,7 @@ enum dwarf_source_language
>      DW_LANG_HP_Assembler = 0x8007,
>
>      /* Rust extension, but replaced in DWARF 5.  */
> -    DW_LANG_Rust_old = 0x9000
> +    DW_LANG_Rust_old = 0x9000,

OK with this unrelated change removed.

Richard.

>    };
>
>  /* DWARF 6 source language names and codes.  */
> @@ -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
>

Reply via email to