Home | History | Annotate | Download | only in COFF
      1 // Test section manipulation via .linkonce directive.
      2 //
      3 // RUN: llvm-mc -triple i386-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
      4 // RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -t | FileCheck %s
      5 
      6 .section s1
      7 .linkonce
      8 .long 1
      9 
     10 .section s2
     11 .linkonce one_only
     12 .long 1
     13 
     14 .section s3
     15 .linkonce discard
     16 .long 1
     17 
     18 .section s4
     19 .linkonce same_size
     20 .long 1
     21 
     22 .section s5
     23 .linkonce same_contents
     24 .long 1
     25 
     26 .section s6
     27 .long 1
     28 
     29 .section s7
     30 .linkonce largest
     31 .long 1
     32 
     33 .section s8
     34 .linkonce newest
     35 .long 1
     36 
     37 .section .foo$bar
     38 .linkonce discard
     39 .long 1
     40 
     41 
     42 // CHECK: Sections [
     43 // CHECK:   Section {
     44 // CHECK:     Name: s1
     45 // CHECK:     Characteristics [
     46 // CHECK:       IMAGE_SCN_LNK_COMDAT
     47 // CHECK:     ]
     48 // CHECK:   }
     49 // CHECK:   Section {
     50 // CHECK:     Name: s2
     51 // CHECK:     Characteristics [
     52 // CHECK:       IMAGE_SCN_LNK_COMDAT
     53 // CHECK:     ]
     54 // CHECK:   }
     55 // CHECK:   Section {
     56 // CHECK:     Name: s3
     57 // CHECK:     Characteristics [
     58 // CHECK:       IMAGE_SCN_LNK_COMDAT
     59 // CHECK:     ]
     60 // CHECK:   }
     61 // CHECK:   Section {
     62 // CHECK:     Name: s4
     63 // CHECK:     Characteristics [
     64 // CHECK:       IMAGE_SCN_LNK_COMDAT
     65 // CHECK:     ]
     66 // CHECK:   }
     67 // CHECK:   Section {
     68 // CHECK:     Name: s5
     69 // CHECK:     Characteristics [
     70 // CHECK:       IMAGE_SCN_LNK_COMDAT
     71 // CHECK:     ]
     72 // CHECK:   }
     73 // CHECK:   Section {
     74 // CHECK:     Name: s6
     75 // CHECK:     Characteristics [
     76 // CHECK:     ]
     77 // CHECK:   }
     78 // CHECK:   Section {
     79 // CHECK:     Name: s7
     80 // CHECK:     Characteristics [
     81 // CHECK:       IMAGE_SCN_LNK_COMDAT
     82 // CHECK:     ]
     83 // CHECK:   }
     84 // CHECK:   Section {
     85 // CHECK:     Name: s8
     86 // CHECK:     Characteristics [
     87 // CHECK:       IMAGE_SCN_LNK_COMDAT
     88 // CHECK:     ]
     89 // CHECK:   }
     90 // CHECK: ]
     91 // CHECK: Symbols [
     92 // CHECK:   Symbol {
     93 // CHECK:     Name: s1
     94 // CHECK:     Section: s1 (4)
     95 // CHECK:     AuxSectionDef {
     96 // CHECK:       Number: 4
     97 // CHECK:       Selection: Any (0x2)
     98 // CHECK:     }
     99 // CHECK:   }
    100 // CHECK:   Symbol {
    101 // CHECK:     Name: s2
    102 // CHECK:     Section: s2 (5)
    103 // CHECK:     AuxSectionDef {
    104 // CHECK:       Number: 5
    105 // CHECK:       Selection: NoDuplicates (0x1)
    106 // CHECK:     }
    107 // CHECK:   }
    108 // CHECK:   Symbol {
    109 // CHECK:     Name: s3
    110 // CHECK:     Section: s3 (6)
    111 // CHECK:     AuxSectionDef {
    112 // CHECK:       Number: 6
    113 // CHECK:       Selection: Any (0x2)
    114 // CHECK:     }
    115 // CHECK:   }
    116 // CHECK:   Symbol {
    117 // CHECK:     Name: s4
    118 // CHECK:     Section: s4 (7)
    119 // CHECK:     AuxSectionDef {
    120 // CHECK:       Number: 7
    121 // CHECK:       Selection: SameSize (0x3)
    122 // CHECK:     }
    123 // CHECK:   }
    124 // CHECK:   Symbol {
    125 // CHECK:     Name: s5
    126 // CHECK:     Section: s5 (8)
    127 // CHECK:     AuxSectionDef {
    128 // CHECK:       Number: 8
    129 // CHECK:       Selection: ExactMatch (0x4)
    130 // CHECK:     }
    131 // CHECK:   }
    132 // CHECK:   Symbol {
    133 // CHECK:     Name: s6
    134 // CHECK:   }
    135 // CHECK:   Symbol {
    136 // CHECK:     Name: s7
    137 // CHECK:     Section: s7 (10)
    138 // CHECK:     AuxSectionDef {
    139 // CHECK:       Number: 10
    140 // CHECK:       Selection: Largest (0x6)
    141 // CHECK:     }
    142 // CHECK:   }
    143 // CHECK:   Symbol {
    144 // CHECK:     Name: s8
    145 // CHECK:     Section: s8 (11)
    146 // CHECK:     AuxSectionDef {
    147 // CHECK:       Number: 11
    148 // CHECK:       Selection: Newest (0x7)
    149 // CHECK:     }
    150 // CHECK:   }
    151