// 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 .section .data.fizz,"",@ fizz: .int8 1 .size fizz, 1 .section .data.segment1,"",@ segment1: // CHECK: 'bar' can not be placed in a different section .int32 fizz-bar // CHECK: 'undef_baz' can not be undefined in a subtraction expression .int32 fizz-undef_baz // CHECK: 'fizz' can not be placed in a different section .int32 undef_baz-fizz .size segment1, 12 .text .section .text.main,"",@ main: .functype main () -> (i32, i32, i32, i32, 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 in code section. i32.const foo-bar // CHECK: 'undef_baz' unsupported subtraction expression used in relocation in code section. i32.const foo-undef_baz // CHECK: 'foo' unsupported subtraction expression used in relocation in code section. i32.const undef_baz-foo end_function