diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -576,6 +576,8 @@ LangTag = llvm::dwarf::DW_LANG_C_plus_plus; } else if (LO.ObjC) { LangTag = llvm::dwarf::DW_LANG_ObjC; + } else if (LO.OpenCL && CGM.getCodeGenOpts().DwarfVersion >= 5) { + LangTag = llvm::dwarf::DW_LANG_OpenCL; } else if (LO.RenderScript) { LangTag = llvm::dwarf::DW_LANG_GOOGLE_RenderScript; } else if (LO.C99) { diff --git a/clang/test/CodeGenOpenCL/debug-info-programming-language.cl b/clang/test/CodeGenOpenCL/debug-info-programming-language.cl new file mode 100644 --- /dev/null +++ b/clang/test/CodeGenOpenCL/debug-info-programming-language.cl @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -dwarf-version=5 -emit-llvm -triple %itanium_abi_triple %s -o - \ +// RUN: -x cl -O0 -disable-llvm-passes -debug-info-kind=limited \ +// RUN: | FileCheck --check-prefix=CHECK-DWARF5 %s +// RUN: %clang_cc1 -dwarf-version=3 -emit-llvm -triple %itanium_abi_triple %s -o - \ +// RUN: -x cl -O0 -disable-llvm-passes -debug-info-kind=limited \ +// RUN: | FileCheck --check-prefix=CHECK-DWARF3 %s + +kernel void empty() {} + +// CHECK-DWARF5: distinct !DICompileUnit(language: DW_LANG_OpenCL, +// CHECK-DWARF3: distinct !DICompileUnit(language: DW_LANG_C99,