mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-22 11:00:01 +08:00
Fix the RX assembler so that it can handle escaped double quote characters, ie: \"
PR 22737 * config/tc-rx.c (rx_start_line): Handle escaped double-quote character. * testsuite/gas/rx/pr22737.s: New test. * testsuite/gas/rx/pr22737.d: Likewise. * testsuite/gas/rx/rx.exp: Run the new test.
This commit is contained in:
@ -1,3 +1,11 @@
|
||||
2018-01-22 Oleg Endo <olegendo@gcc.gnu.org>
|
||||
|
||||
PR 22737
|
||||
* config/tc-rx.c (rx_start_line): Handle escaped double-quote character.
|
||||
* testsuite/gas/rx/pr22737.s: New test.
|
||||
* testsuite/gas/rx/pr22737.d: Likewise.
|
||||
* testsuite/gas/rx/rx.exp: Run the new test.
|
||||
|
||||
2018-01-19 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
* config/tc-arm.c (ToC macro): Remove spurious comment.
|
||||
|
@ -2681,6 +2681,7 @@ rx_start_line (void)
|
||||
int in_single_quote = 0;
|
||||
int done = 0;
|
||||
char * p = input_line_pointer;
|
||||
char prev_char = 0;
|
||||
|
||||
/* Scan the line looking for question marks. Skip past quote enclosed regions. */
|
||||
do
|
||||
@ -2693,7 +2694,9 @@ rx_start_line (void)
|
||||
break;
|
||||
|
||||
case '"':
|
||||
in_double_quote = ! in_double_quote;
|
||||
/* Handle escaped double quote \" inside a string. */
|
||||
if (prev_char != '\\')
|
||||
in_double_quote = ! in_double_quote;
|
||||
break;
|
||||
|
||||
case '\'':
|
||||
@ -2722,7 +2725,7 @@ rx_start_line (void)
|
||||
break;
|
||||
}
|
||||
|
||||
p ++;
|
||||
prev_char = *p++;
|
||||
}
|
||||
while (! done);
|
||||
}
|
||||
|
15
gas/testsuite/gas/rx/pr22737.d
Normal file
15
gas/testsuite/gas/rx/pr22737.d
Normal file
@ -0,0 +1,15 @@
|
||||
#objdump: -dr
|
||||
|
||||
dump.o: file format elf32-rx-le
|
||||
|
||||
|
||||
Disassembly of section .*:
|
||||
|
||||
00000000 <.*>:
|
||||
0: ff 16.*
|
||||
2: c8 1f 68 22.*
|
||||
6: d0 64.*
|
||||
8: a0 3f.*
|
||||
a: 3a e1 4f.*
|
||||
d: da 0e 8c b6 c6 9c.*
|
||||
.*
|
1
gas/testsuite/gas/rx/pr22737.s
Normal file
1
gas/testsuite/gas/rx/pr22737.s
Normal file
@ -0,0 +1 @@
|
||||
.ascii "\377\026\310\037h\"\320d\240?:\341O\332\016\214\266\306\234."
|
@ -35,3 +35,4 @@ foreach test [lsort [glob $srcdir/$subdir/*.sm]] {
|
||||
run_dump_test "rx-asm-good"
|
||||
# run_list_test "rx-asm-bad" "" "Generation of error messages with bogus Renesas assembler directives"
|
||||
run_dump_test "pr19665"
|
||||
run_dump_test "pr22737"
|
||||
|
Reference in New Issue
Block a user