mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-11 07:15:26 +00:00
![Oliver Stannard](/assets/img/avatar_default.png)
Currently, if the assembler encounters an error after parsing (such as an out-of-range fixup), it reports this as a fatal error, and so stops after the first error. However, for most of these there is an obvious way to recover after emitting the error, such as emitting the fixup with a value of zero. This means that we can report on all of the errors in a file, not just the first one. MCContext::reportError records the fact that an error was encountered, so we won't actually emit an object file with the incorrect contents. Differential Revision: http://reviews.llvm.org/D14717 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253328 91177308-0d34-0410-b5e6-96231b3b80d8
36 lines
690 B
ArmAsm
36 lines
690 B
ArmAsm
@ RUN: not llvm-mc -triple thumbv6m-none-macho -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s
|
|
@ RUN: not llvm-mc -triple thumbv6m-none-eabi -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s
|
|
|
|
Lhere:
|
|
@ CHECK: out of range pc-relative fixup value
|
|
ldr r0, Lhere
|
|
|
|
@ CHECK: out of range pc-relative fixup value
|
|
b Lfar2
|
|
|
|
@ CHECK: out of range pc-relative fixup value
|
|
bne Lfar1
|
|
|
|
@ CHECK: out of range pc-relative fixup value
|
|
ldr r0, Lfar2
|
|
|
|
@ CHECK: misaligned pc-relative fixup value
|
|
adr r0, Lmisaligned
|
|
|
|
@ CHECK: misaligned pc-relative fixup value
|
|
ldr r0, Lmisaligned
|
|
|
|
.balign 4
|
|
.short 0
|
|
Lmisaligned:
|
|
.word 42
|
|
|
|
.space 256
|
|
Lfar1:
|
|
.word 42
|
|
|
|
.space 2050
|
|
Lfar2:
|
|
.word 42
|
|
|