[PATCH] D44237: [WebAssembly] Honor --allow-undefined even for explicit exports
Sam Clegg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 7 17:14:43 PST 2018
sbc100 updated this revision to Diff 137518.
sbc100 added a comment.
- remove extra line
Repository:
rLLD LLVM Linker
https://reviews.llvm.org/D44237
Files:
test/wasm/undefined.ll
wasm/Driver.cpp
Index: wasm/Driver.cpp
===================================================================
--- wasm/Driver.cpp
+++ wasm/Driver.cpp
@@ -346,7 +346,7 @@
Symbol *Sym = Symtab->find(Name);
if (Sym && Sym->isDefined())
Sym->setHidden(false);
- else
+ else if (!Config->AllowUndefined)
error("symbol exported via --export not found: " + Name);
}
Index: test/wasm/undefined.ll
===================================================================
--- test/wasm/undefined.ll
+++ test/wasm/undefined.ll
@@ -6,10 +6,13 @@
; CHECK: error: {{.*}}.o: undefined symbol: foo
; CHECK: error: undefined symbol: baz
-; But succeeds if we pass a file containing 'foo' as --allow-undefined-file.
+; Succeeds if we pass a file containing 'foo' as --allow-undefined-file.
; RUN: echo 'foo' > %t.txt
; RUN: wasm-ld --check-signatures --allow-undefined-file=%t.txt -o %t.wasm %t.o
+; Succeeds even if a missing symbol is added via --export
+; RUN: wasm-ld --check-signatures --allow-undefined --export=xxx -o %t.wasm %t.o
+
target triple = "wasm32-unknown-unknown-wasm"
; Takes the address of the external foo() resulting in undefined external
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44237.137518.patch
Type: text/x-patch
Size: 1165 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180308/e3210017/attachment.bin>
More information about the llvm-commits
mailing list