[PATCH] D99250: [DebugInfo] Fix the mismatching of C++ language tags and Dwarf versions.
    ChenZheng via Phabricator via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Tue Mar 30 18:21:35 PDT 2021
    
    
  
shchenz added inline comments.
================
Comment at: clang/lib/CodeGen/CGDebugInfo.cpp:572
       LangTag = llvm::dwarf::DW_LANG_C_plus_plus_14;
-    else if (LO.CPlusPlus11)
+    else if (LO.CPlusPlus11 && CGM.getCodeGenOpts().DwarfVersion >= 5)
       LangTag = llvm::dwarf::DW_LANG_C_plus_plus_11;
----------------
probinson wrote:
> Esme wrote:
> > shchenz wrote:
> > > Seems we miss to handle `DW_LANG_C_plus_plus_03` which is also a DWARF 5 language name value? We always generate `DW_LANG_C_plus_plus` for `-std=c++03` even at `-gdwarf-5`? If so, maybe we also need to fix this in another patch.
> > How about we just do that in this patch?
> I don't think anyone will stop you. :)
Yeah, definitely.
================
Comment at: clang/test/CodeGenCXX/debug-info-programming-language.cpp:9
+// RUN:   -O0 -disable-llvm-passes \
+// RUN:   -debug-info-kind=standalone \
+// RUN: | FileCheck --check-prefix=CHECK-DWARF3 %s
----------------
probinson wrote:
> shchenz wrote:
> > is limited debug info kind enough for this test?
> Yes, limited is enough (and is the default).  "Limited" in this context mostly means unused type info will not be emitted; the language is a CU attribute, and the CU is always emitted.
Thank you for the explanation.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99250/new/
https://reviews.llvm.org/D99250
    
    
More information about the cfe-commits
mailing list