summaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaSwift.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaSwift.cpp')
-rw-r--r--clang/lib/Sema/SemaSwift.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/clang/lib/Sema/SemaSwift.cpp b/clang/lib/Sema/SemaSwift.cpp
index a99222c5ed55..f0c9cc8620af 100644
--- a/clang/lib/Sema/SemaSwift.cpp
+++ b/clang/lib/Sema/SemaSwift.cpp
@@ -129,9 +129,9 @@ static bool isErrorParameter(Sema &S, QualType QT) {
// Check for CFError**.
if (const auto *PT = Pointee->getAs<PointerType>())
- if (const auto *RT = PT->getPointeeType()->getAs<RecordType>())
- if (S.ObjC().isCFError(RT->getOriginalDecl()->getDefinitionOrSelf()))
- return true;
+ if (auto *RD = PT->getPointeeType()->getAsRecordDecl();
+ RD && S.ObjC().isCFError(RD))
+ return true;
return false;
}
@@ -271,12 +271,10 @@ static void checkSwiftAsyncErrorBlock(Sema &S, Decl *D,
}
// Check for CFError *.
if (const auto *PtrTy = Param->getAs<PointerType>()) {
- if (const auto *RT = PtrTy->getPointeeType()->getAs<RecordType>()) {
- if (S.ObjC().isCFError(
- RT->getOriginalDecl()->getDefinitionOrSelf())) {
- AnyErrorParams = true;
- break;
- }
+ if (auto *RD = PtrTy->getPointeeType()->getAsRecordDecl();
+ RD && S.ObjC().isCFError(RD)) {
+ AnyErrorParams = true;
+ break;
}
}
}
@@ -354,7 +352,7 @@ static bool validateSwiftFunctionName(Sema &S, const ParsedAttr &AL,
else if (Name.consume_front("setter:"))
IsSetter = true;
- if (Name.back() != ')') {
+ if (Name.empty() || Name.back() != ')') {
S.Diag(Loc, diag::warn_attr_swift_name_function) << AL;
return false;
}