Skip to content

Commit 9e3487e

Browse files
committed
Sema: Fix null pointer dereference with invalid ParamDecl
1 parent 936c993 commit 9e3487e

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2248,13 +2248,20 @@ ParamSpecifierRequest::evaluate(Evaluator &evaluator,
22482248

22492249
auto typeRepr = param->getTypeRepr();
22502250

2251-
if (!typeRepr && !param->isImplicit()) {
2252-
// Untyped closure parameter.
2253-
return ParamSpecifier::Default;
2254-
}
2251+
if (!typeRepr) {
2252+
if (!param->isImplicit()) {
2253+
// Untyped closure parameter.
2254+
return ParamSpecifier::Default;
2255+
}
22552256

2256-
assert(typeRepr != nullptr && "Should call setSpecifier() on "
2257-
"synthesized parameter declarations");
2257+
if (param->isInvalid()) {
2258+
// Invalid parse.
2259+
return ParamSpecifier::Default;
2260+
}
2261+
2262+
ASSERT(false && "Should call setSpecifier() on "
2263+
"synthesized parameter declarations");
2264+
}
22582265

22592266
// Look through top-level pack expansions. These specifiers are
22602267
// part of what's repeated.

0 commit comments

Comments
 (0)