Author: David Blaikie
Date: 2021-09-23T21:13:16-07:00
New Revision: 8d9ddd4f509c54d05a38427d7999c061d88ca35c

URL: 
https://github.com/llvm/llvm-project/commit/8d9ddd4f509c54d05a38427d7999c061d88ca35c
DIFF: 
https://github.com/llvm/llvm-project/commit/8d9ddd4f509c54d05a38427d7999c061d88ca35c.diff

LOG: DebugInfo: STN: Handle unreconstitutable types in function types

Added: 
    

Modified: 
    clang/lib/CodeGen/CGDebugInfo.cpp
    clang/test/CodeGenCXX/debug-info-simple-template-names.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CGDebugInfo.cpp 
b/clang/lib/CodeGen/CGDebugInfo.cpp
index 7119402dcb64..100ce695f86b 100644
--- a/clang/lib/CodeGen/CGDebugInfo.cpp
+++ b/clang/lib/CodeGen/CGDebugInfo.cpp
@@ -4881,7 +4881,7 @@ struct ReconstitutableType : public 
RecursiveASTVisitor<ReconstitutableType> {
   bool VisitFunctionProtoType(FunctionProtoType *FT) {
     // noexcept is not encoded in DWARF, so the reversi
     Reconstitutable &= !isNoexceptExceptionSpec(FT->getExceptionSpecType());
-    return !Reconstitutable;
+    return Reconstitutable;
   }
   bool TraverseRecordType(RecordType *RT) {
     // Unnamed classes/lambdas can't be reconstituted due to a lack of column

diff  --git a/clang/test/CodeGenCXX/debug-info-simple-template-names.cpp 
b/clang/test/CodeGenCXX/debug-info-simple-template-names.cpp
index 98109bc93f00..be290b3b97e5 100644
--- a/clang/test/CodeGenCXX/debug-info-simple-template-names.cpp
+++ b/clang/test/CodeGenCXX/debug-info-simple-template-names.cpp
@@ -55,6 +55,8 @@ void f() {
   } unnamed_struct;
   f1<decltype(unnamed_struct)>();
   // CHECK: !DISubprogram(name: "f1<(unnamed struct at 
{{.*}}debug-info-simple-template-names.cpp:[[# @LINE - 3]]:3)>",
+  f1<void (decltype(unnamed_struct))>();
+  // CHECK: !DISubprogram(name: "f1<void ((unnamed struct at 
{{.*}}CodeGenCXX/debug-info-simple-template-names.cpp:[[# @LINE - 5]]:3))>",
   enum {} unnamed_enum;
   f1<decltype(unnamed_enum)>();
   // CHECK: !DISubprogram(name: "f1<(unnamed enum at 
{{.*}}debug-info-simple-template-names.cpp:[[# @LINE - 2]]:3)>",


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to