mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-12 22:30:12 +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
50 lines
1.3 KiB
ArmAsm
50 lines
1.3 KiB
ArmAsm
@ RUN: not llvm-mc -triple armv7a--none-eabi -filetype obj < %s -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
@ Note: These errors are not always emitted in the order in which the relevant
|
|
@ source appears, this file is carefully ordered so that that is the case.
|
|
|
|
.text
|
|
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: symbol 'undef' can not be undefined in a subtraction expression
|
|
.word (0-undef)
|
|
|
|
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: expected relocatable expression
|
|
.word -undef
|
|
|
|
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: No relocation available to represent this relative expression
|
|
adr r0, #a-undef
|
|
|
|
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a difference across sections
|
|
.word x_a - y_a
|
|
|
|
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a subtraction with a weak symbol
|
|
.word a - w
|
|
|
|
@ CHECK: <unknown>:0: error: expression could not be evaluated
|
|
.set v1, -undef
|
|
|
|
.comm common, 4
|
|
@ CHECK: <unknown>:0: error: Common symbol 'common' cannot be used in assignment expr
|
|
.set v3, common
|
|
|
|
@ CHECK: <unknown>:0: error: Undefined temporary symbol
|
|
.word 5f
|
|
|
|
@ CHECK: <unknown>:0: error: symbol 'undef' could not be evaluated in a subtraction expression
|
|
.set v2, a-undef
|
|
|
|
|
|
|
|
w:
|
|
.word 0
|
|
.weak w
|
|
|
|
|
|
.section sec_x
|
|
x_a:
|
|
.word 0
|
|
|
|
|
|
.section sec_y
|
|
y_a:
|
|
.word 0
|