mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
ed51349261
WebAssembly doesn't support PC relative relocation or relocation expressions that can't be reduced to single symbol. The only support for we have for fixups involving two symbols are when both symbols are defined and withing the same section. In this case evaluateFixup will already have evaluated to the expression before calling recordRelocation. llvm-svn: 369317
33 lines
853 B
ArmAsm
33 lines
853 B
ArmAsm
// RUN: not llvm-mc -filetype=obj -triple wasm32 %s -o /dev/null 2>&1 | FileCheck %s
|
|
|
|
.section .data.foo,"",@
|
|
foo:
|
|
.int8 1
|
|
.size foo, 1
|
|
foo_other:
|
|
.int8 1
|
|
.size foo_other, 1
|
|
|
|
.section .data.bar,"",@
|
|
bar:
|
|
.int8 1
|
|
.size bar, 1
|
|
|
|
.text
|
|
.section .text.main,"",@
|
|
main:
|
|
.functype main () -> (i32)
|
|
// Expressions involving symbols within the same sections can be evaluated
|
|
// prior to writing the object file.
|
|
// CHECK-NOT: foo
|
|
i32.const foo-foo_other+2
|
|
i32.const foo_other-foo-10
|
|
|
|
// CHECK: 'bar': unsupported subtraction expression used in relocation
|
|
i32.const foo-bar
|
|
// CHECK: 'undef_baz': unsupported subtraction expression used in relocation
|
|
i32.const foo-undef_baz
|
|
// CHECK: 'foo': unsupported subtraction expression used in relocation
|
|
i32.const undef_baz-foo
|
|
end_function
|