From 5610db69237d4b7b5a204e0761a6bd3255928f9f Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Sun, 28 Feb 2010 21:40:32 +0000 Subject: Add name mangling for DeclRefExprs that refer to external names llvm-svn: 97418 --- clang/lib/CodeGen/Mangle.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'clang/lib/CodeGen/Mangle.cpp') diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index 22dbd91259c..55185cb92d0 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -1346,10 +1346,16 @@ void CXXNameMangler::mangleExpression(const Expr *E) { break; case Expr::DeclRefExprClass: { - const Decl *D = cast(E)->getDecl(); + const NamedDecl *D = cast(E)->getDecl(); switch (D->getKind()) { - default: assert(false && "Unhandled decl kind!"); + default: + // ::= L E # external name + Out << 'L'; + mangle(D, "_Z"); + Out << 'E'; + break; + case Decl::NonTypeTemplateParm: { const NonTypeTemplateParmDecl *PD = cast(D); mangleTemplateParameter(PD->getIndex()); -- cgit v1.2.3