summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorNuno Lopes <nunoplopes@sapo.pt>2010-01-07 09:36:51 +0000
committerNuno Lopes <nunoplopes@sapo.pt>2010-01-07 09:36:51 +0000
commit950d5b2cd32a597830d1cf424f7ff85b34404b59 (patch)
tree8b0bd9aa31be33113f6a80ebc2db1d3d241dc1c9 /clang/lib
parent1949de7b817805fedd0c701b34539622cf3129a3 (diff)
downloadbcm5719-llvm-950d5b2cd32a597830d1cf424f7ff85b34404b59.tar.gz
bcm5719-llvm-950d5b2cd32a597830d1cf424f7ff85b34404b59.zip
fix PR5869: mangle static symbols like gcc does to make it easier to diff symbol tables
llvm-svn: 92911
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/Mangle.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp
index 10fd1f57f6b..d873cfec1bd 100644
--- a/clang/lib/CodeGen/Mangle.cpp
+++ b/clang/lib/CodeGen/Mangle.cpp
@@ -199,10 +199,13 @@ void CXXNameMangler::mangle(const NamedDecl *D, llvm::StringRef Prefix) {
return;
}
- // <mangled-name> ::= _Z <encoding>
+ // <mangled-name> ::= _Z [L] <encoding>
// ::= <data name>
// ::= <special-name>
Out << Prefix;
+ if (D->getLinkage() == NamedDecl::InternalLinkage) // match gcc behavior
+ Out << 'L';
+
if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
mangleFunctionEncoding(FD);
else
OpenPOWER on IntegriCloud