From f8340deacd3f79b0e3c6bf60fcb8653cf683dd2f Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sun, 18 Jul 2010 20:49:59 +0000 Subject: Fix mangling for static member variables of classes inside an extern "C" linkage specification. Not sure if this is the ideal fix, but I'm reasonably sure it's correct vs. gcc. llvm-svn: 108656 --- clang/lib/CodeGen/Mangle.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'clang/lib/CodeGen/Mangle.cpp') diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index 58b0246e363..f408849e95e 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -304,6 +304,10 @@ bool MangleContext::shouldMangleDeclName(const NamedDecl *D) { return false; } + // Class members are always mangled. + if (D->getDeclContext()->isRecord()) + return true; + // C functions and "main" are not mangled. if ((FD && FD->isMain()) || isInCLinkageSpecification(D)) return false; -- cgit v1.2.3