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.

Issue 210514.1 introduced two additional version schemes.

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 Scheme Version Codes (DW_AT_language_version)
ISO Ada DW_LNAME_Ada 0x0001 1 YYYY
BLISS DW_LNAME_BLISS 0x0002 0
C (K&R and ISO) DW_LNAME_C 0x0003 0 YYYYMM K&R 000000
ISO C++ DW_LNAME_C_plus_plus 0x0004 0 YYYYMM C++98 199711
C++11 201103
C++14 201402
C++17 201703
C++20 202002
ISO Cobol DW_LNAME_Cobol 0x0005 1 YYYY
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 YYYYMM
Objective C++ DW_LNAME_ObjC_plus_plus 0x0012 0 YYYYMM
OCaml DW_LNAME_OCaml 0x0013 0
OpenCL C DW_LNAME_OpenCL_C 0x0014 0
ISO Pascal DW_LNAME_Pascal 0x0015 1 YYYY
ANSI PL/I DW_LNAME_PLI 0x0016 1
Python DW_LNAME_Python 0x0017 0
RenderScript Kernel Language 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
OpenGL Shading Language DW_LNAME_GLSL 0x0020 0 VVMMPP
OpenGL ES Shading Language DW_LNAME_GLSL_ES 0x0021 0 VVMMPP
High Level Shading Language DW_LNAME_HLSL 0x0022 0 YYYY
OpenCL C++ DW_LNAME_OpenCL_CPP 0x0023 0 VVMM
C++ for OpenCL DW_LNAME_CPP_for_OpenCL 0x0024 0 VVMM
SYCL DW_LNAME_SYCL 0x0025 0 YYYYRR
Ruby DW_LNAME_Ruby 0x0026 0 VVMMPP
Move DW_LNAME_Move 0x0027 0 YYYYMM
Hylo DW_LNAME_Hylo 0x0028 0