1;; Test that we keep SHF_LINK_ORDER but reset sh_link to 0 if the associated
2;; symbol is not defined.
3; RUN: llc -mtriple=x86_64 -data-sections=1 < %s | FileCheck %s
4; RUN: llc -filetype=obj -mtriple=x86_64 -data-sections=1 < %s | llvm-readelf -S - | FileCheck --check-prefix=SEC %s
5
6;; FIXME The assembly output cannot be assembled because foo is not defined.
7;; This is difficult to fix because we allow loops (see elf-associated.ll
8;; .data.c and .data.d).
9; CHECK: .section .data.a,"awo",@progbits,foo
10; CHECK: .section .data.b,"awo",@progbits,foo
11
12;; No 'L' (SHF_LINK_ORDER). sh_link=0.
13; SEC; Name    {{.*}} Flg Lk Inf
14; SEC: .data.a {{.*}} WAL  0   0
15; SEC: .data.b {{.*}} WAL  0   0
16
17;; The definition may be discarded by LTO.
18declare void @foo()
19
20@a = global i32 1, !associated !0
21@b = global i32 1, !associated !0
22
23!0 = !{void ()* @foo}
24