# REQUIRES: x86
## Test that we can handle cases where an output section is specified by multiple
## INSERT commands. Each output section description creates a new instance.
## A redundant description matches no input sections and thus is a no-op.

# RUN: llvm-mc -filetype=obj -triple=x86_64 %p/Inputs/insert-after.s -o %t.o
# RUN: ld.lld -T %s %t.o -o %t
# RUN: llvm-readelf -S -l %t | FileCheck %s

# CHECK:      Name      Type     Address          Off
# CHECK-NEXT:           NULL     0000000000000000 000000
# CHECK-NEXT: .text     PROGBITS 00000000002011c8 0001c8
# CHECK-NEXT: .foo.data PROGBITS 00000000002021d0 0001d0
# CHECK-NEXT: .foo.text PROGBITS 00000000002031d8 0001d8
# CHECK:      Type
# CHECK-NEXT: PHDR {{.*}} R
# CHECK-NEXT: LOAD {{.*}} R
# CHECK-NEXT: LOAD {{.*}} R E
# CHECK-NEXT: LOAD {{.*}} RW
# CHECK-NEXT: LOAD {{.*}} R E
# CHECK-NEXT: LOAD {{.*}} RW
# CHECK-NEXT: GNU_STACK {{.*}} RW

## First, move .foo.data after .foo.text
SECTIONS { .foo.data : { *(.foo.data) } } INSERT AFTER .foo.text;

## Next, move .foo.text after .foo.data
SECTIONS { .foo.text : { *(.foo.text) } } INSERT AFTER .foo.data;

## No-op. The .foo.data output section is a different instance and matches no
## input sections.
SECTIONS { .foo.data : { *(.foo.data) } } INSERT AFTER .foo.text;
