1# REQUIRES: x86
2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1
3# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
4# RUN:   %p/Inputs/include.s -o %t2
5# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
6# RUN:   %p/Inputs/notinclude.s -o %t3.notinclude
7
8# RUN: echo "SECTIONS {} " > %t.script
9# RUN: ld.lld -o %t --script %t.script %t1 %t2 %t3.notinclude
10# RUN: llvm-objdump -d %t | FileCheck %s
11
12# CHECK: Disassembly of section .text:
13# CHECK-EMPTY:
14# CHECK: <_start>:
15# CHECK-NEXT: :       48 c7 c0 3c 00 00 00    movq    $60, %rax
16# CHECK-NEXT: :       48 c7 c7 2a 00 00 00    movq    $42, %rdi
17# CHECK-NEXT: :       cc      int3
18# CHECK-NEXT: :       cc      int3
19# CHECK: <_potato>:
20# CHECK-NEXT: :       90      nop
21# CHECK-NEXT: :       90      nop
22# CHECK-NEXT: :       cc      int3
23# CHECK-NEXT: :       cc      int3
24# CHECK: <tomato>:
25# CHECK-NEXT: :       b8 01 00 00 00  movl    $1, %eax
26
27# RUN: echo "SECTIONS { .patatino : \
28# RUN: { KEEP(*(EXCLUDE_FILE(*notinclude) .text)) } }" \
29# RUN:  > %t.script
30# RUN: ld.lld -o %t4 --script %t.script %t1 %t2 %t3.notinclude
31# RUN: llvm-objdump -d %t4 | FileCheck %s --check-prefix=EXCLUDE
32
33# EXCLUDE: Disassembly of section .patatino:
34# EXCLUDE-EMPTY:
35# EXCLUDE: <_start>:
36# EXCLUDE-NEXT: :       48 c7 c0 3c 00 00 00    movq    $60, %rax
37# EXCLUDE-NEXT: :       48 c7 c7 2a 00 00 00    movq    $42, %rdi
38# EXCLUDE-NEXT: :       cc      int3
39# EXCLUDE-NEXT: :       cc      int3
40# EXCLUDE: <_potato>:
41# EXCLUDE-NEXT: :       90      nop
42# EXCLUDE-NEXT: :       90      nop
43# EXCLUDE: Disassembly of section .text:
44# EXCLUDE-EMPTY:
45# EXCLUDE: <tomato>:
46# EXCLUDE-NEXT: :       b8 01 00 00 00  movl    $1, %eax
47
48.section .text
49.globl _start
50_start:
51    mov $60, %rax
52    mov $42, %rdi
53