Check unbalanced braces in memory reference to avoid assembler crash
caused by
commit
e87fb6a6d0cdfc0e9c471b7825c20c238c2cf506
Author: Jan Beulich <jbeulich@suse.com>
Date: Wed Oct 5 09:16:24 2022 +0200
x86/gas: support quoted address scale factor in AT&T syntax
PR gas/30248
* config/tc-i386.c (i386_att_operand): Check unbalanced braces
in memory reference.
* testsuite/gas/i386/i386.exp: Run pr30248.
* testsuite/gas/i386/pr30248.d: New file.
* testsuite/gas/i386/pr30248.err: Likewise.
* testsuite/gas/i386/pr30248.s: Likewise.
temp_string = base_string;
/* Skip past '(' and whitespace. */
- gas_assert (*base_string == '(');
+ if (*base_string != '(')
+ {
+ as_bad (_("unbalanced braces"));
+ return 0;
+ }
++base_string;
if (is_space_char (*base_string))
++base_string;
run_list_test "nop-bad-1" ""
run_list_test "unspec" ""
run_dump_test "fp"
+run_dump_test pr30248
if {[is_elf_format] || [istarget "*-*-vxworks*"]} then {
run_list_test_stdin "list-1" "-al"
run_list_test_stdin "list-2" "-al"
--- /dev/null
+#as:
+#error_output: pr30248.err
--- /dev/null
+#failif
+
+#...
+.*Internal error.*
+#pass
--- /dev/null
+ .text
+ lgs ")"""