; RUN: llc %s -o %t.o -filetype=obj ; RUN: llvm-as %S/Inputs/used.ll -o %t1.o ; RUN: wasm-ld %t.o %t1.o -o %t.wasm ; RUN: obj2yaml %t.wasm | FileCheck %s ; Verify that symbols references from regular objects are preserved by LTO target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" target triple = "wasm32-unknown-unknown" declare void @bar() @foo = external global i32 define void @_start() { %val = load i32, i32* @foo, align 4 %tobool = icmp ne i32 %val, 0 br i1 %tobool, label %callbar, label %return callbar: call void @bar() br label %return return: ret void } ; CHECK: - Type: DATA ; CHECK-NEXT: Segments: ; CHECK-NEXT: - SectionOffset: 7 ; CHECK-NEXT: MemoryIndex: 0 ; CHECK-NEXT: Offset: ; CHECK-NEXT: Opcode: I32_CONST ; CHECK-NEXT: Value: 1024 ; CHECK-NEXT: Content: '01000000' ; CHECK: - Type: CUSTOM ; CHECK-NEXT: Name: name ; CHECK-NEXT: FunctionNames: ; CHECK-NEXT: - Index: 0 ; CHECK-NEXT: Name: __wasm_call_ctors ; CHECK-NEXT: - Index: 1 ; CHECK-NEXT: Name: _start ; CHECK-NEXT: - Index: 2 ; CHECK-NEXT: Name: bar