| # REQUIRES: x86 | |
| ## Sections in an INSERT command are in a unit. Their order is preserved. | |
| # RUN: split-file %s %t | |
| # RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a.s -o %t/a.o | |
| # RUN: ld.lld -T %t/a.lds %t/a.o -o %t1 | |
| # RUN: llvm-readelf -S -l %t1 | FileCheck %s | |
| # CHECK: Name | |
| # CHECK-NEXT: NULL | |
| # CHECK-NEXT: text.3 | |
| # CHECK-NEXT: text.4 | |
| # CHECK-NEXT: text.5 | |
| # CHECK-NEXT: .text | |
| # CHECK-NEXT: .data | |
| # CHECK-NEXT: text.6 | |
| # CHECK-NEXT: text.7 | |
| # CHECK-NEXT: text.8 | |
| # CHECK-NEXT: text.0 | |
| # CHECK-NEXT: text.1 | |
| # CHECK-NEXT: text.2 | |
| #--- a.lds | |
| SECTIONS { | |
| text.0 : {} | |
| text.1 : {} | |
| text.2 : {} | |
| } INSERT AFTER .data; | |
| SECTIONS { | |
| text.3 : {} | |
| text.4 : {} | |
| text.5 : {} | |
| } INSERT BEFORE .text; | |
| SECTIONS { | |
| text.6 : {} | |
| text.7 : {} | |
| text.8 : {} | |
| } INSERT AFTER .data; | |
| #--- a.s | |
| .text; nop | |
| .section text.0,"ax"; nop | |
| .section text.1,"ax"; nop | |
| .section text.2,"ax"; nop | |
| .section text.3,"ax"; nop | |
| .section text.4,"ax"; nop | |
| .section text.5,"ax"; nop | |
| .section text.6,"ax"; nop | |
| .section text.7,"ax"; nop | |
| .section text.8,"ax"; nop | |
| .data; .byte 0 |