DWARF Version 6 Language and Version Codes

Issue 210419.1 introduced a way to separately specify languages and versions which is expected to be adopted for DWARF Version 6. As described in the proposal, each supported language has a specified value for DW_AT_language_name and each version of that language has a unique DW_AT_language_version.

New language codes and version codes may be requested by submitting a request on the Public Comment page.

Language Language Code (DW_AT_language_name) Value Default Lower Bound Version Codes (DW_AT_language_version)
ISO Ada † DW_LNAME_Ada 0x0001 1
BLISS DW_LNAME_BLISS 0x0002 0
C (K&R and ISO) DW_LNAME_C 0x0003 0 K&R 000000
ISO C++ DW_LNAME_C_plus_plus 0x0004 0 C++98 199711
C++11 201103
C++14 201402
C++17 201703
C++20 202002
ISO Cobol † DW_LNAME_Cobol 0x0005 1
Crystal DW_LNAME_Crystal 0x0006 0
D DW_LNAME_D 0x0007 0
Dylan DW_LNAME_Dylan 0x0008 0
ISO Fortran DW_LNAME_Fortran 0x0009 1
Go † DW_LNAME_Go 0x000a 0
Haskell † DW_LNAME_Haskell 0x000b 0
HIP DW_LNAME_HIP 0x001d 0
Java DW_LNAME_Java 0x000c 0
Julia DW_LNAME_Julia 0x000d 1
Kotlin DW_LNAME_Kotlin 0x000e 0
Modula 2 DW_LNAME_Modula2 0x000f 1
Modula 3 † DW_LNAME_Modula3 0x0010 1
Objective C DW_LNAME_ObjC 0x0011 0
Objective C++ DW_LNAME_ObjC_plus_plus 0x0012 0
OCaml DW_LNAME_OCaml 0x0013 0
OpenCL † DW_LNAME_OpenCL 0x0014 0
ISO Pascal DW_LNAME_Pascal 0x0015 1
ANSI PL/I † DW_LNAME_PLI 0x0016 1
Python † DW_LNAME_Python 0x0017 0
RenderScript DW_LNAME_RenderScript 0x0018 0
Rust DW_LNAME_Rust 0x0019 0
Swift DW_LNAME_Swift 0x001a 0
Unified Parallel C (UPC) DW_LNAME_UPC 0x001b 0
Zig DW_LNAME_Zig 0x001c 0
Assembly DW_LNAME_Assembly 0x001d 0
C# DW_LNAME_C_sharp 0x001e 0
Mojo DW_LNAME_Mojo 0x001f 0

† These names and their associated values are reserved, but the languages they represent are not well supported.