aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorliushuyu <liushuyu011@gmail.com>2022-04-11 15:20:41 -0600
committerliushuyu <liushuyu011@gmail.com>2022-04-12 02:18:56 -0600
commit2fe4048f7f1d10ce9928eb7611179ee8ff7f17f8 (patch)
treec244b5d6b3b38f5a4423825cadc0f09686f3def2 /gcc/rust
parent68458036c81d141a3899ac4e6ec6ddf0fdfde174 (diff)
downloadgcc-2fe4048f7f1d10ce9928eb7611179ee8ff7f17f8.zip
gcc-2fe4048f7f1d10ce9928eb7611179ee8ff7f17f8.tar.gz
gcc-2fe4048f7f1d10ce9928eb7611179ee8ff7f17f8.tar.bz2
macros: fix an infinite loop ...
... introduced in fed5a41fb1c2c91b77297fdd6d3731078f480441, should fix #1102 Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/expand/rust-macro-builtins.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc
index 85520ec..1f41545 100644
--- a/gcc/rust/expand/rust-macro-builtins.cc
+++ b/gcc/rust/expand/rust-macro-builtins.cc
@@ -287,9 +287,12 @@ MacroBuiltin::concat (Location invoc_locus, AST::MacroInvocData &invoc)
}
else
{
- rust_error_at (parser.peek_current_token ()->get_locus (),
+ auto current_token = parser.peek_current_token ();
+ rust_error_at (current_token->get_locus (),
"argument must be a constant literal");
has_error = true;
+ // Just crash if the current token can't be skipped
+ rust_assert (parser.skip_token (current_token->get_id ()));
}
parser.maybe_skip_token (COMMA);
}