| # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o | |
| # RUN: wasm-ld --allow-undefined -o %t.wasm %t.o | |
| # Fails due to undefined 'foo' | |
| # RUN: not wasm-ld --undefined=baz -o %t.wasm %t.o 2>&1 | FileCheck %s | |
| # CHECK: error: {{.*}}.o: undefined symbol: foo | |
| # CHECK-NOT: undefined symbol: baz | |
| # Succeeds if we pass a file containing 'foo' as --allow-undefined-file. | |
| # RUN: echo 'foo' > %t.txt | |
| # RUN: wasm-ld --allow-undefined-file=%t.txt -o %t.wasm %t.o | |
| # Succeeds even if a missing symbol is added via --export | |
| # RUN: wasm-ld --allow-undefined --export=xxx -o %t.wasm %t.o | |
| .globl _start | |
| _start: | |
| .functype _start () -> () | |
| i32.const bar | |
| drop | |
| end_function | |
| .functype foo () -> (i32) | |
| .section .data.bar,"",@ | |
| .globl bar | |
| bar: | |
| # Takes the address of the external foo() resulting in undefined external | |
| .int32 foo | |
| .size bar, 4 |