|  | # REQUIRES: x86 | 
|  | # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t | 
|  | # RUN: ld.lld %t -o %tout | 
|  | # RUN: llvm-readobj -sections %tout | FileCheck %s | 
|  |  | 
|  | # Check that sections are laid out in the correct order. | 
|  |  | 
|  | .global _start | 
|  | .text | 
|  | _start: | 
|  |  | 
|  | .section t,"x",@nobits | 
|  | .section s,"x" | 
|  | .section r,"w",@nobits | 
|  | .section q,"w" | 
|  | .section p,"wx",@nobits | 
|  | .section o,"wx" | 
|  | .section n,"",@nobits | 
|  | .section m,"" | 
|  |  | 
|  | .section l,"awx",@nobits | 
|  | .section k,"awx" | 
|  | .section j,"aw",@nobits | 
|  | .section i,"aw" | 
|  | .section g,"awT",@nobits | 
|  | .section e,"awT" | 
|  | .section d,"ax",@nobits | 
|  | .section c,"ax" | 
|  | .section a,"a",@nobits | 
|  | .section b,"a" | 
|  |  | 
|  | // For non-executable and non-writable sections, PROGBITS appear after others. | 
|  | // CHECK: Name: a | 
|  | // CHECK: Name: b | 
|  | // CHECK: Name: c | 
|  | // CHECK: Name: d | 
|  |  | 
|  | // Sections that are both writable and executable appear before | 
|  | // sections that are only writable. | 
|  | // CHECK: Name: k | 
|  | // CHECK: Name: l | 
|  |  | 
|  | // Writable sections appear before TLS and other relro sections. | 
|  | // CHECK: Name: i | 
|  |  | 
|  | // TLS sections are only sorted on NOBITS. | 
|  | // CHECK: Name: e | 
|  | // CHECK: Name: g | 
|  |  | 
|  | // CHECK: Name: j | 
|  |  | 
|  | // Non allocated sections are in input order. | 
|  | // CHECK: Name: t | 
|  | // CHECK: Name: s | 
|  | // CHECK: Name: r | 
|  | // CHECK: Name: q | 
|  | // CHECK: Name: p | 
|  | // CHECK: Name: o | 
|  | // CHECK: Name: n | 
|  | // CHECK: Name: m |