Commit: Move irp macro count test into a separate file
Checks
Commit Message
Hi Guys,
I am applying the attached patch to move the recent addition of tests
of the \+ assembler psuedo-variable inside .irp and .irpc pseudos into
their own separate file. This is because there a couple of problems
with this test:
The first is that the assembler source will trigger an error message
("bad escaped character in string") on targets that define
ONLY_STANDARD_ESCAPES.
The second problem is weird. On AIX targets the "\+" regexp in the
listing file does not match the "\+" in the output file. Instead an
extended regexp is needed (ie "\\\+"). But this extended regexp does
not work for any other target. I have no idea why the AIX targets are
special, but I have marked them as XFAIL for this particular test.
Cheers
Nick
Comments
On Mai 16 2024, Nick Clifton wrote:
> The second problem is weird. On AIX targets the "\+" regexp in the
> listing file does not match the "\+" in the output file. Instead an
> extended regexp is needed (ie "\\\+"). But this extended regexp does
> not work for any other target.
On the other targets, print "\+" produces "+", not "\+".
On Mai 16 2024, Nick Clifton wrote:
> The second problem is weird. On AIX targets the "\+" regexp in the
> listing file does not match the "\+" in the output file. Instead an
> extended regexp is needed (ie "\\\+"). But this extended regexp does
> not work for any other target. I have no idea why the AIX targets are
> special, but I have marked them as XFAIL for this particular test.
ppc-aix defines TC_STRING_ESCAPES to 0, thus does not interpret
backslashes in strings.
Hi Andreas,
>> The second problem is weird. On AIX targets the "\+" regexp in the
>> listing file does not match the "\+" in the output file. Instead an
>> extended regexp is needed (ie "\\\+"). But this extended regexp does
>> not work for any other target. I have no idea why the AIX targets are
>> special, but I have marked them as XFAIL for this particular test.
>
> ppc-aix defines TC_STRING_ESCAPES to 0, thus does not interpret
> backslashes in strings.
Ah! Thanks for the explanation.
Cheers
Nick
@@ -1,3 +1,4 @@
+#...
0
0
1
@@ -8,5 +9,3 @@
1
4
2
-\+
-\+
@@ -17,10 +17,3 @@
mac1 2
mac2 3
-
- .irp i,1
- .print "\+"
- .endr
- .irpc i,1
- .print "\+"
- .endr
@@ -103,3 +103,9 @@ gas_test_error "exit.s" "" ".exitm outside of a macro"
run_list_test altmacro
run_list_test count
+
+# The AVR, CRIS, MSP430 and Z80 targets define ONLY_STANDARD_ESCAPES,
+# so \+ is rejected.
+# AIX targets need an extended regexp to match "\+".
+setup_xfail "avr-*-*" "cris*-*-*" "msp430-*-*" "z80-*-*" "*-*-aix*"
+run_list_test irp-count
@@ -0,0 +1,2 @@
+#name: Macro counters inside IRP commands (irp-count.d)
+# Tests that \+ does not trip up IRP commands
@@ -0,0 +1,7 @@
+ .irp i,1
+ .print "\+"
+ .endr
+
+ .irpc i,1
+ .print "\+"
+ .endr
@@ -0,0 +1,3 @@
+#...
+\+
+\+