aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorViktoriia Bakalova <115406782+VitaNuo@users.noreply.github.com>2024-11-25 17:23:10 +0100
committerGitHub <noreply@github.com>2024-11-25 17:23:10 +0100
commit3de21477c49172081e502b47d608e729915f0914 (patch)
treec16e02205182a05bf30c48a13f933fd4c5e75aef /clang/lib/CodeGen/CodeGenModule.cpp
parent4d8eb009d8ae4500940d77a64d914eed9a13b92c (diff)
downloadllvm-3de21477c49172081e502b47d608e729915f0914.zip
llvm-3de21477c49172081e502b47d608e729915f0914.tar.gz
llvm-3de21477c49172081e502b47d608e729915f0914.tar.bz2
[clang][codegen] Mention the invariant that LLVM demangler should be … (#117346)
…able to handle mangled names generated by clang. https://discourse.llvm.org/t/rfc-clang-diagnostic-for-demangling-failures/82835/8 Since we're putting the work on the above RFC on hold, let's leave a comment in the source code pointing to prior efforts and the suggestion of further steps.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index b854eeb..1ff95ed 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -2047,6 +2047,15 @@ StringRef CodeGenModule::getMangledName(GlobalDecl GD) {
GD.getWithKernelReferenceKind(KernelReferenceKind::Kernel),
ND));
+ // This invariant should hold true in the future.
+ // 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 &&
+ // "LLVM demangler must demangle clang-generated names");
+
auto Result = Manglings.insert(std::make_pair(MangledName, GD));
return MangledDeclNames[CanonicalGD] = Result.first->first();
}