mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 03:29:47 +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>
|
2018-01-19 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||||
|
|
||||||
* config/tc-arm.c (ToC macro): Remove spurious comment.
|
* config/tc-arm.c (ToC macro): Remove spurious comment.
|
||||||
|
@ -2681,6 +2681,7 @@ rx_start_line (void)
|
|||||||
int in_single_quote = 0;
|
int in_single_quote = 0;
|
||||||
int done = 0;
|
int done = 0;
|
||||||
char * p = input_line_pointer;
|
char * p = input_line_pointer;
|
||||||
|
char prev_char = 0;
|
||||||
|
|
||||||
/* Scan the line looking for question marks. Skip past quote enclosed regions. */
|
/* Scan the line looking for question marks. Skip past quote enclosed regions. */
|
||||||
do
|
do
|
||||||
@ -2693,7 +2694,9 @@ rx_start_line (void)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case '"':
|
case '"':
|
||||||
in_double_quote = ! in_double_quote;
|
/* Handle escaped double quote \" inside a string. */
|
||||||
|
if (prev_char != '\\')
|
||||||
|
in_double_quote = ! in_double_quote;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '\'':
|
case '\'':
|
||||||
@ -2722,7 +2725,7 @@ rx_start_line (void)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
p ++;
|
prev_char = *p++;
|
||||||
}
|
}
|
||||||
while (! done);
|
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_dump_test "rx-asm-good"
|
||||||
# run_list_test "rx-asm-bad" "" "Generation of error messages with bogus Renesas assembler directives"
|
# run_list_test "rx-asm-bad" "" "Generation of error messages with bogus Renesas assembler directives"
|
||||||
run_dump_test "pr19665"
|
run_dump_test "pr19665"
|
||||||
|
run_dump_test "pr22737"
|
||||||
|
Reference in New Issue
Block a user