summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDecl.cpp
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/Sema/SemaDecl.cpp
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/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index e7c10d18a66..d051c4318dd 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -1829,7 +1829,8 @@ static void filterNonConflictingPreviousTypedefDecls(Sema &S,
// If both declarations give a tag declaration a typedef name for linkage
// purposes, then they declare the same entity.
- if (OldTD->getAnonDeclWithTypedefName(/*AnyRedecl*/true) &&
+ if (S.getLangOpts().CPlusPlus &&
+ OldTD->getAnonDeclWithTypedefName(/*AnyRedecl*/true) &&
Decl->getAnonDeclWithTypedefName())
continue;
}
OpenPOWER on IntegriCloud