================ @@ -27,51 +36,68 @@ RootSignatureParser::RootSignatureParser( bool RootSignatureParser::parse() { // Iterate as many RootSignatureElements as possible, until we hit the // end of the stream + bool HadError = false; while (!peekExpectedToken(TokenKind::end_of_stream)) { + bool HadLocalError = false; if (tryConsumeExpectedToken(TokenKind::kw_RootFlags)) { SourceLocation ElementLoc = getTokenLocation(CurToken); auto Flags = parseRootFlags(); - if (!Flags.has_value()) - return true; - Elements.emplace_back(RootSignatureElement(ElementLoc, *Flags)); + if (Flags.has_value()) + Elements.emplace_back(RootSignatureElement(ElementLoc, *Flags)); + else + HadLocalError = true; } else if (tryConsumeExpectedToken(TokenKind::kw_RootConstants)) { SourceLocation ElementLoc = getTokenLocation(CurToken); auto Constants = parseRootConstants(); - if (!Constants.has_value()) - return true; - Elements.emplace_back(RootSignatureElement(ElementLoc, *Constants)); + if (Constants.has_value()) + Elements.emplace_back(RootSignatureElement(ElementLoc, *Constants)); + else + HadLocalError = true; ---------------- inbelic wrote:
I won't apply it here, but I will keep that in mind for the aforementioned clean-up pr https://github.com/llvm/llvm-project/pull/147832 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits