https://sourceware.org/bugzilla/show_bug.cgi?id=18347

            Bug ID: 18347
           Summary: On ARM, "LDR =something" with missing destination
                    register is silently ignored
           Product: binutils
           Version: 2.25
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gas
          Assignee: unassigned at sourceware dot org
          Reporter: solrabizna at gmail dot com
  Target Milestone: ---

A simple test program that demonstrates this problem:

    MOV r1, r0
    LDR =garbage // no destination register
    MOV r2, r3

Assembles without any error or warning, and disassembles as:

00000000 <.text>:
   0:   e1a01000        mov     r1, r0
   4:   e1a02003        mov     r2, r3

The effect is the same if the "garbage" symbol is actually defined. I made this
mistake while writing an IO routine, and had to look through the disassembly to
figure out why the register had the wrong value.

GAS should throw an error when it encounters such an instruction, since there
is no sensible way to interpret it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to