diff options
Diffstat (limited to 'clang/lib/Analysis/ThreadSafetyCommon.cpp')
-rw-r--r-- | clang/lib/Analysis/ThreadSafetyCommon.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/clang/lib/Analysis/ThreadSafetyCommon.cpp b/clang/lib/Analysis/ThreadSafetyCommon.cpp index f560dd8..68c27ee 100644 --- a/clang/lib/Analysis/ThreadSafetyCommon.cpp +++ b/clang/lib/Analysis/ThreadSafetyCommon.cpp @@ -83,13 +83,11 @@ static std::pair<StringRef, bool> classifyCapability(QualType QT) { // We need to look at the declaration of the type of the value to determine // which it is. The type should either be a record or a typedef, or a pointer // or reference thereof. - if (const auto *RT = QT->getAs<RecordType>()) { - if (const auto *RD = RT->getOriginalDecl()) - return classifyCapability(*RD->getDefinitionOrSelf()); - } else if (const auto *TT = QT->getAs<TypedefType>()) { - if (const auto *TD = TT->getDecl()) - return classifyCapability(*TD); - } else if (QT->isPointerOrReferenceType()) + if (const auto *RD = QT->getAsRecordDecl()) + return classifyCapability(*RD); + if (const auto *TT = QT->getAs<TypedefType>()) + return classifyCapability(*TT->getDecl()); + if (QT->isPointerOrReferenceType()) return classifyCapability(QT->getPointeeType()); return ClassifyCapabilityFallback; |