1# RUN: yaml2obj %s > %t.obj 2# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj 3# RUN: llvm-readobj --sections %t.dll | FileCheck %s 4# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /section:.foo,rwe 5# RUN: llvm-readobj --sections %t.dll | FileCheck --check-prefix=SECTION %s 6# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /merge:.foo=.bar 7# RUN: llvm-readobj --sections --section-data %t.dll | FileCheck --check-prefix=MERGE %s 8# RUN: lld-link /out:%t.dll /entry:__ImageBase /dll %t.obj /merge:.foo=.bar /section:.foo,rwe 9# RUN: llvm-readobj --sections %t.dll | FileCheck --check-prefix=MERGE-SECTION %s 10 11# CHECK: Name: .foo 12# CHECK: Characteristics [ 13# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 14# CHECK-NEXT: IMAGE_SCN_MEM_READ 15# CHECK-NEXT: ] 16 17# CHECK: Name: .foo 18# CHECK: Characteristics [ 19# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 20# CHECK-NEXT: IMAGE_SCN_MEM_READ 21# CHECK-NEXT: IMAGE_SCN_MEM_WRITE 22# CHECK-NEXT: ] 23 24# SECTION: Name: .foo 25# SECTION: Characteristics [ 26# SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 27# SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE 28# SECTION-NEXT: IMAGE_SCN_MEM_READ 29# SECTION-NEXT: IMAGE_SCN_MEM_WRITE 30# SECTION-NEXT: ] 31 32# SECTION: Name: .foo 33# SECTION: Characteristics [ 34# SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 35# SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE 36# SECTION-NEXT: IMAGE_SCN_MEM_READ 37# SECTION-NEXT: IMAGE_SCN_MEM_WRITE 38# SECTION-NEXT: ] 39 40# MERGE: Name: .bar 41# MERGE: Characteristics [ 42# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 43# MERGE-NEXT: IMAGE_SCN_MEM_READ 44# MERGE-NEXT: ] 45# MERGE-NEXT: SectionData ( 46# MERGE-NEXT: 0000: 0301 47 48# MERGE: Name: .bar 49# MERGE: Characteristics [ 50# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 51# MERGE-NEXT: IMAGE_SCN_MEM_READ 52# MERGE-NEXT: IMAGE_SCN_MEM_WRITE 53# MERGE-NEXT: ] 54# MERGE-NEXT: SectionData ( 55# MERGE-NEXT: 0000: 04 56 57# MERGE: Name: .foo 58# MERGE: Characteristics [ 59# MERGE-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 60# MERGE-NEXT: IMAGE_SCN_MEM_READ 61# MERGE-NEXT: IMAGE_SCN_MEM_WRITE 62# MERGE-NEXT: ] 63# MERGE-NEXT: SectionData ( 64# MERGE-NEXT: 0000: 02 65 66# MERGE-SECTION: Name: .bar 67# MERGE-SECTION: Characteristics [ 68# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 69# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ 70# MERGE-SECTION-NEXT: ] 71 72# MERGE-SECTION: Name: .bar 73# MERGE-SECTION: Characteristics [ 74# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 75# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ 76# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_WRITE 77# MERGE-SECTION-NEXT: ] 78 79# MERGE-SECTION: Name: .foo 80# MERGE-SECTION: Characteristics [ 81# MERGE-SECTION-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 82# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_EXECUTE 83# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_READ 84# MERGE-SECTION-NEXT: IMAGE_SCN_MEM_WRITE 85# MERGE-SECTION-NEXT: ] 86 87--- !COFF 88header: 89 Machine: IMAGE_FILE_MACHINE_AMD64 90 Characteristics: [ ] 91sections: 92 - Name: .foo 93 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] 94 Alignment: 1 95 SectionData: 01 96 - Name: .foo 97 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 98 Alignment: 1 99 SectionData: 02 100 - Name: .bar 101 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] 102 Alignment: 1 103 SectionData: 03 104 - Name: .bar 105 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] 106 Alignment: 1 107 SectionData: 04 108symbols: 109... 110