diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-04-04 01:51:11 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-04-04 01:51:11 +0000 |
commit | d613ac9c57936d219d9eecba1d061a45ff7a3ae8 (patch) | |
tree | a00e5f5d40b301e5e58a3c16b453994301bace9e /lib/AST/Decl.cpp | |
parent | b846381fc3099b2340ba8c74d16178203a60d9a0 (diff) |
Fix 41 of the 61 tests which fail with modules enabled: we were computing and
caching the linkage for a declaration before we set up its redeclaration chain,
when determining whether a declaration could be a redeclaration of something
from an unimported submodule. We actually want to look at the declaration as if
it were not a redeclaration here, so compute the linkage but don't cache it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178733 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Decl.cpp')
-rw-r--r-- | lib/AST/Decl.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 9505d299ab..bf807aeb1d 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -866,6 +866,10 @@ bool NamedDecl::isLinkageValid() const { Linkage(CachedLinkage); } +bool NamedDecl::hasExternalLinkageUncached() const { + return getLVForDecl(this, LVForExplicitValue).getLinkage() == ExternalLinkage; +} + Linkage NamedDecl::getLinkage() const { if (HasCachedLinkage) return Linkage(CachedLinkage); |