Author: Aiden Grossman Date: 2025-03-09T19:56:40-07:00 New Revision: de132b2a0c344729703358a1c3ac90fb28fdb130
URL: https://github.com/llvm/llvm-project/commit/de132b2a0c344729703358a1c3ac90fb28fdb130 DIFF: https://github.com/llvm/llvm-project/commit/de132b2a0c344729703358a1c3ac90fb28fdb130.diff LOG: [Clang][CodeGen] Fix demangler invariant comment assertion (#130522) This patch makes the assertion (that is currently in a comment) that validates that names mangled by clang can be demangled by LLVM actually compile/work. There were some minor issues that needed to be fixed (like starts_with not being available on std::string and needing to call getDecl() on GD), and a logic issue that should be fixed in this patch. This enables just uncommenting the assertion to enable it within the compiler (minus needing to add the header file). Added: Modified: clang/lib/CodeGen/CodeGenModule.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index d2c97ce501b03..1f6321a5908e6 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -2068,9 +2068,10 @@ StringRef CodeGenModule::getMangledName(GlobalDecl GD) { // Prior work: // https://discourse.llvm.org/t/rfc-clang-diagnostic-for-demangling-failures/82835/8 // https://github.com/llvm/llvm-project/issues/111345 - // assert((MangledName.startswith("_Z") || MangledName.startswith("?")) && - // !GD->hasAttr<AsmLabelAttr>() && - // llvm::demangle(MangledName) != MangledName && + // assert(!((StringRef(MangledName).starts_with("_Z") || + // StringRef(MangledName).starts_with("?")) && + // !GD.getDecl()->hasAttr<AsmLabelAttr>() && + // llvm::demangle(MangledName) == MangledName) && // "LLVM demangler must demangle clang-generated names"); auto Result = Manglings.insert(std::make_pair(MangledName, GD)); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits