[Debug-Info] guard DW_LANG_C_plus_plus_14 under strict dwarf

Reviewed By: stuart

Differential Revision: https://reviews.llvm.org/D104291
This commit is contained in:
Chen Zheng 2021-06-15 11:10:07 +00:00
parent 17bdc0ff6f
commit 4590b406c0
2 changed files with 15 additions and 8 deletions

View file

@ -568,9 +568,11 @@ void CGDebugInfo::CreateCompileUnit() {
if (LO.CPlusPlus) {
if (LO.ObjC)
LangTag = llvm::dwarf::DW_LANG_ObjC_plus_plus;
else if (LO.CPlusPlus14 && CGM.getCodeGenOpts().DwarfVersion >= 5)
else if (LO.CPlusPlus14 && (!CGM.getCodeGenOpts().DebugStrictDwarf ||
CGM.getCodeGenOpts().DwarfVersion >= 5))
LangTag = llvm::dwarf::DW_LANG_C_plus_plus_14;
else if (LO.CPlusPlus11 && CGM.getCodeGenOpts().DwarfVersion >= 5)
else if (LO.CPlusPlus11 && (!CGM.getCodeGenOpts().DebugStrictDwarf ||
CGM.getCodeGenOpts().DwarfVersion >= 5))
LangTag = llvm::dwarf::DW_LANG_C_plus_plus_11;
else
LangTag = llvm::dwarf::DW_LANG_C_plus_plus;

View file

@ -1,13 +1,18 @@
// RUN: %clang_cc1 -dwarf-version=5 -emit-llvm -triple %itanium_abi_triple %s -o - \
// RUN: %clang_cc1 -dwarf-version=5 -emit-llvm -triple %itanium_abi_triple %s -o - \
// RUN: -x c++ -std=c++14 -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: | FileCheck --check-prefix=CHECK-CPP14 %s
// RUN: %clang_cc1 -dwarf-version=3 -emit-llvm -triple %itanium_abi_triple %s -o - \
// RUN: -x c++ -std=c++14 -O0 -disable-llvm-passes -debug-info-kind=limited \
// RUN: | FileCheck --check-prefix=CHECK-DWARF3 %s
// RUN: | FileCheck --check-prefix=CHECK-CPP14 %s
// RUN: %clang_cc1 -dwarf-version=3 -gstrict-dwarf -emit-llvm -triple %itanium_abi_triple %s -o - \
// RUN: -x c++ -std=c++14 -O0 -disable-llvm-passes -debug-info-kind=limited | FileCheck %s
// RUN: %clang_cc1 -dwarf-version=5 -gstrict-dwarf -emit-llvm -triple %itanium_abi_triple %s -o - \
// RUN: -x c++ -std=c++14 -O0 -disable-llvm-passes -debug-info-kind=limited \
// RUN: | FileCheck --check-prefix=CHECK-CPP14 %s
int main() {
return 0;
}
// CHECK-DWARF5: distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14,
// CHECK-DWARF3: distinct !DICompileUnit(language: DW_LANG_C_plus_plus,
// CHECK-CPP14: distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14,
// CHECK: distinct !DICompileUnit(language: DW_LANG_C_plus_plus,