Message ID | 20230131132448.661684-1-arthur.cohen@embecosm.com |
---|---|
State | New |
Headers | show |
Series | [COMMITTED] gccrs: transcriber: Do not infinite loop if the current parsed node is an error | expand |
diff --git a/gcc/rust/expand/rust-macro-expand.cc b/gcc/rust/expand/rust-macro-expand.cc index df258bd96ec..ed1b838c987 100644 --- a/gcc/rust/expand/rust-macro-expand.cc +++ b/gcc/rust/expand/rust-macro-expand.cc @@ -731,6 +731,14 @@ parse_many (Parser<MacroInvocLexer> &parser, TokenId &delimiter, break; auto node = parse_fn (); + if (node.is_error ()) + { + for (auto err : parser.get_errors ()) + err.emit_error (); + + return AST::ASTFragment::create_error (); + } + nodes.emplace_back (std::move (node)); }