File tree 2 files changed +25
-1
lines changed
2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change
1
+ ## Test that local symbols in archive files are ignored.
2
+ # RUN: split-file %s %t
3
+ # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t/foo.o %t/foo.s
4
+ # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t/main.o %t/main.s
5
+ # RUN: rm -f %t/libfoo.a
6
+ # RUN: llvm-ar rcs %t/libfoo.a %t/foo.o
7
+ # RUN: not wasm-ld %t/libfoo.a %t/main.o -o out.wasm 2>&1 | FileCheck %s
8
+
9
+ #--- main.s
10
+
11
+ .functype foo () -> ()
12
+
13
+ .globl _start
14
+ _start:
15
+ .functype _start () -> ()
16
+ call foo
17
+ # CHECK: main.o: undefined symbol: foo
18
+ end_function
19
+
20
+ #--- foo.s
21
+
22
+ foo:
23
+ .functype foo () -> ()
24
+ end_function
Original file line number Diff line number Diff line change @@ -392,7 +392,7 @@ void ObjFile::parseLazy() {
392
392
<< wasmObj.get () << " \n " );
393
393
for (const SymbolRef &sym : wasmObj->symbols ()) {
394
394
const WasmSymbol &wasmSym = wasmObj->getWasmSymbol (sym.getRawDataRefImpl ());
395
- if (! wasmSym.isDefined ())
395
+ if (wasmSym.isUndefined () || wasmSym. isBindingLocal ())
396
396
continue ;
397
397
symtab->addLazy (wasmSym.Info .Name , this );
398
398
// addLazy() may trigger this->extract() if an existing symbol is an
You can’t perform that action at this time.
0 commit comments