Do-first:
-m32rx_files="fslotx.s fslotx.d m32rx.s m32rx.d m32rx.exp error.exp wrongsize.s"
+m32rx_files="fslotx.s fslotx.d m32rx.s m32rx.d m32rx.exp error.exp interfere.s wrongsize.s"
if ( echo $* | grep keep\-m32rx > /dev/null ) ; then
keep_these_too="${m32rx_files} ${keep_these_too}"
else
--- /dev/null
+; Test error messages in instances where output operands interfere.
+
+; { dg-do assemble { target m32r-*-* } }
+; { dg-options -m32rx }
+
+interfere:
+ trap #1 || cmp r3, r4 ; { dg-error "write to the same" }
+ ; { dg-warning "same" "out->in" { target *-*-* } { 7 } }
+ rte || addx r3, r4 ; { dg-error "write to the same" }
+ ; { dg-warning "same" "out->in" { target *-*-* } { 9 } }
+ cmp r1, r2 || addx r3, r4 ; { dg-error "write to the same" }
+ ; { dg-warning "same" "out->in" { target *-*-* } { 11 } }
+ mvtc r0, psw || addx r1, r4 ; { dg-error "write to the same" }
+ ; { dg-warning "same" "out->in" { target *-*-* } { 13 } }