summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorBen Langmuir <blangmuir@apple.com>2015-11-14 03:26:14 +0000
committerBen Langmuir <blangmuir@apple.com>2015-11-14 03:26:14 +0000
commit90717ad7318074ed5069cfbd14e36f10082262ea (patch)
tree4228da15fea4dcd384a860dce078f60d0a5fd621 /clang/lib/AST
parent57a6e1321fc3dc37f04beeb38653aefc72b6e34d (diff)
downloadbcm5719-llvm-90717ad7318074ed5069cfbd14e36f10082262ea.tar.gz
bcm5719-llvm-90717ad7318074ed5069cfbd14e36f10082262ea.zip
[modules] Allow "redefinition" of typedef of anon tag from unimported submodule
r233345 started being stricter about typedef names for linkage purposes in non-visible modules, but broke languages without the ODR. rdar://23527954 llvm-svn: 253123
Diffstat (limited to 'clang/lib/AST')
-rw-r--r--clang/lib/AST/Decl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
index 3f6941ab72d..edbbc6a8c4f 100644
--- a/clang/lib/AST/Decl.cpp
+++ b/clang/lib/AST/Decl.cpp
@@ -1256,7 +1256,8 @@ static LinkageInfo computeLVForDecl(const NamedDecl *D,
case Decl::TypeAlias:
// A typedef declaration has linkage if it gives a type a name for
// linkage purposes.
- if (!cast<TypedefNameDecl>(D)
+ if (!D->getASTContext().getLangOpts().CPlusPlus ||
+ !cast<TypedefNameDecl>(D)
->getAnonDeclWithTypedefName(/*AnyRedecl*/true))
return LinkageInfo::none();
break;
OpenPOWER on IntegriCloud