Cover a hypothetical case when we might not have reached the final argument
declaration for some reason during recovery, and split out for readability.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198542
91177308-0d34-0410-b5e6-
96231b3b80d8
ParseDeclarator(ParmDeclarator);
}
- // Consume ';' or recover by skipping to the mandatory function body.
- if (ExpectAndConsumeSemi(diag::err_expected_semi_declaration))
- SkipUntil(tok::l_brace, StopBeforeMatch);
+ // Consume ';' and continue parsing.
+ if (!ExpectAndConsumeSemi(diag::err_expected_semi_declaration))
+ continue;
+
+ // Otherwise recover by skipping to next semi or mandatory function body.
+ if (SkipUntil(tok::l_brace, StopAtSemi | StopBeforeMatch))
+ break;
+ TryConsumeToken(tok::semi);
}
// The actions module must verify that all arguments were declared.