xref: /llvm-project/llvm/test/tools/gold/X86/multiple-sections.ll (revision bcea3a7a288e0b5ac977f90c46e4eef7946467e7)
1*bcea3a7aSFangrui Song; RUN: split-file %s %t
2*bcea3a7aSFangrui Song; RUN: llvm-as %t/a.ll -o %t.o
33efcfaddSEugene Leviant; RUN: %gold -plugin %llvmshlibdir/LLVMgold%shlibext \
4756feb2aSDavide Italiano; RUN:     -m elf_x86_64 -o %t.exe %t.o \
5*bcea3a7aSFangrui Song; RUN:     --section-ordering-file=%t/order
6085bbe20SFangrui Song; RUN: llvm-readelf -s %t.exe | FileCheck %s
7756feb2aSDavide Italiano
8756feb2aSDavide Italiano; Check that the order of the sections is tin -> _start -> pat.
9756feb2aSDavide Italiano
10853ce87aSDavide Italiano; CHECK:      00000000004000d0     1 FUNC    LOCAL  DEFAULT    1 pat
11853ce87aSDavide Italiano; CHECK:      00000000004000b0     1 FUNC    LOCAL  DEFAULT    1 tin
12853ce87aSDavide Italiano; CHECK:      00000000004000c0    15 FUNC    GLOBAL DEFAULT    1 _start
13756feb2aSDavide Italiano
14*bcea3a7aSFangrui Song;--- order
15*bcea3a7aSFangrui Song.text.tin
16*bcea3a7aSFangrui Song.text._start
17*bcea3a7aSFangrui Song.text.pat
18*bcea3a7aSFangrui Song
19*bcea3a7aSFangrui Song;--- a.ll
20756feb2aSDavide Italianotarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
21756feb2aSDavide Italianotarget triple = "x86_64-unknown-linux-gnu"
22756feb2aSDavide Italiano
23756feb2aSDavide Italianodefine void @pat() #0 {
24756feb2aSDavide Italiano  ret void
25756feb2aSDavide Italiano}
26756feb2aSDavide Italiano
27756feb2aSDavide Italianodefine void @tin() #0 {
28756feb2aSDavide Italiano  ret void
29756feb2aSDavide Italiano}
30756feb2aSDavide Italiano
31756feb2aSDavide Italianodefine i32 @_start() {
32756feb2aSDavide Italiano  call void @pat()
33756feb2aSDavide Italiano  call void @tin()
34756feb2aSDavide Italiano  ret i32 0
35756feb2aSDavide Italiano}
36756feb2aSDavide Italiano
37756feb2aSDavide Italianoattributes #0 = { noinline optnone }
38