diff options
author | Viktoriia Bakalova <115406782+VitaNuo@users.noreply.github.com> | 2024-11-25 17:23:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-25 17:23:10 +0100 |
commit | 3de21477c49172081e502b47d608e729915f0914 (patch) | |
tree | c16e02205182a05bf30c48a13f933fd4c5e75aef /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 4d8eb009d8ae4500940d77a64d914eed9a13b92c (diff) | |
download | llvm-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.cpp | 9 |
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(); } |