diff options
Diffstat (limited to 'lib/AST/Type.cpp')
-rw-r--r-- | lib/AST/Type.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index ca086b1951..cdd67fda4f 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -2236,6 +2236,14 @@ static LinkageInfo computeLinkageInfo(QualType T) { return computeLinkageInfo(T.getTypePtr()); } +bool Type::isLinkageValid() const { + if (!TypeBits.isCacheValid()) + return true; + + return computeLinkageInfo(getCanonicalTypeInternal()).getLinkage() == + TypeBits.getLinkage(); +} + LinkageInfo Type::getLinkageAndVisibility() const { if (!isCanonicalUnqualified()) return computeLinkageInfo(getCanonicalTypeInternal()); @@ -2245,12 +2253,6 @@ LinkageInfo Type::getLinkageAndVisibility() const { return LV; } -void Type::ClearLinkageCache() { - TypeBits.CacheValid = false; - if (QualType(this, 0) != CanonicalType) - CanonicalType->TypeBits.CacheValid = false; -} - Qualifiers::ObjCLifetime Type::getObjCARCImplicitLifetime() const { if (isObjCARCImplicitlyUnretainedType()) return Qualifiers::OCL_ExplicitNone; |