| # 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 |