read-rtl: Fix infinite loop while parsing [...]

read_rtx_operand would spin endlessly for:

   (unspec [(...))] UNSPEC_FOO)

because read_nested_rtx does nothing if the next character is not '('.

gcc/
	* read-rtl.cc (read_rtx_operand): Avoid spinning endlessly for
	invalid [...] operands.
This commit is contained in:
Richard Sandiford 2023-11-05 18:24:40 +00:00
parent 5648446cda
commit 5bd1d54847

View file

@ -1896,8 +1896,10 @@ rtx_reader::read_rtx_operand (rtx return_rtx, int idx)
repeat_count--;
value = saved_rtx;
}
else
else if (c == '(')
value = read_nested_rtx ();
else
fatal_with_file_and_line ("unexpected character in vector");
for (; repeat_count > 0; repeat_count--)
{