aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ThreadSafetyCommon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Analysis/ThreadSafetyCommon.cpp')
-rw-r--r--clang/lib/Analysis/ThreadSafetyCommon.cpp12
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;