aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/ItaniumMangle.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-02-23 00:26:28 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-02-23 00:26:28 +0000
commit02fb50d54042982bccc04c276ad2342827c8fcd3 (patch)
tree0f25371b407b04c83b0c0f1ca7afdea34990a5f3 /lib/AST/ItaniumMangle.cpp
parent7728cddd7866fadd07f1191eee40985e3cdbc6bf (diff)
Remove the hack that avoided mangling static functions in extern C contexts.
Weather we should give C language linkage to functions and variables with internal linkage probably depends on how much code assumes it. The standard says they should have no language linkage, but gcc and msvc assign them C language linkage. This commit removes the hack that was preventing the mangling on static functions declare in extern C contexts. It is an experiment to see if we can implement the rules in the standard. If it turns out that many users depend on these functions and variables having C language linkage, we should change isExternC instead and try to convince the CWG to change the standard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175937 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ItaniumMangle.cpp')
-rw-r--r--lib/AST/ItaniumMangle.cpp9
1 files changed, 0 insertions, 9 deletions
diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp
index d427b082a4..21c499317f 100644
--- a/lib/AST/ItaniumMangle.cpp
+++ b/lib/AST/ItaniumMangle.cpp
@@ -385,15 +385,6 @@ bool ItaniumMangleContext::shouldMangleDeclName(const NamedDecl *D) {
// C functions are not mangled.
if (L == CLanguageLinkage)
return false;
-
- // FIXME: Users assume they know the mangling of static functions
- // declared in extern "C" contexts, so we cannot always mangle them.
- // As an improvement, maybe we could mangle them only if they are actually
- // overloaded.
- const DeclContext *DC = FD->getDeclContext();
- if (!DC->isRecord() &&
- FD->getFirstDeclaration()->getDeclContext()->isExternCContext())
- return false;
}
// Otherwise, no mangling is done outside C++ mode.