summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-01-09 16:34:58 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-01-09 16:34:58 +0000
commit3bd836a58e4c515aadd278f73f5dfc42782f3bd9 (patch)
treed1ac926de16002624b30c87339b219d3fcf5b4a2 /clang/lib/AST/Decl.cpp
parent9f64604e74a46ea1c8a8bd258b4a4195f79ec6cb (diff)
downloadbcm5719-llvm-3bd836a58e4c515aadd278f73f5dfc42782f3bd9.tar.gz
bcm5719-llvm-3bd836a58e4c515aadd278f73f5dfc42782f3bd9.zip
Handle static functions being redeclared in function scope.
Fixes pr14861. llvm-svn: 171978
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
-rw-r--r--clang/lib/AST/Decl.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 35e61b57754..bf5bfaaef10 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -803,6 +803,10 @@ static LinkageInfo computeLVForDecl(const NamedDecl *D, bool OnlyTemplate) {
!Function->getDeclContext()->isExternCContext())
return LinkageInfo::uniqueExternal();
+ // This is a "void f();" which got merged with a file static.
+ if (Function->getStorageClass() == SC_Static)
+ return LinkageInfo::internal();
+
LinkageInfo LV;
if (!OnlyTemplate) {
if (llvm::Optional<Visibility> Vis = Function->getExplicitVisibility())
OpenPOWER on IntegriCloud