1 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ 2 RUN: | FileCheck %s -check-prefix MFUN32 3 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ 4 RUN: | FileCheck %s -check-prefix MFUN64 5 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ 6 RUN: | FileCheck %s -check-prefix MFILE32 7 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ 8 RUN: | FileCheck %s -check-prefix MFILE64 9 10 MFUN32: CodeViewLineTables [ 11 MFUN32-NEXT: Magic: 0x4 12 MFUN32-NEXT: Subsection [ 13 MFUN32-NEXT: Type: 0xF1 14 MFUN32-NEXT: PayloadSize: 0x52 15 MFUN32: ] 16 MFUN32-NEXT: Subsection [ 17 MFUN32-NEXT: Type: 0xF5 18 MFUN32-NEXT: PayloadSize: 0x24 19 MFUN32: ] 20 MFUN32-NEXT: Subsection [ 21 MFUN32-NEXT: Type: 0xF1 22 MFUN32-NEXT: PayloadSize: 0x4B 23 MFUN32: ] 24 MFUN32-NEXT: Subsection [ 25 MFUN32-NEXT: Type: 0xF2 26 MFUN32-NEXT: PayloadSize: 0x30 27 MFUN32: FunctionName: _x 28 MFUN32-NEXT: ] 29 MFUN32-NEXT: Subsection [ 30 MFUN32-NEXT: Type: 0xF5 31 MFUN32-NEXT: PayloadSize: 0x24 32 MFUN32: ] 33 MFUN32-NEXT: Subsection [ 34 MFUN32-NEXT: Type: 0xF1 35 MFUN32-NEXT: PayloadSize: 0x4B 36 MFUN32: ] 37 MFUN32-NEXT: Subsection [ 38 MFUN32-NEXT: Type: 0xF2 39 MFUN32-NEXT: PayloadSize: 0x30 40 MFUN32: FunctionName: _y 41 MFUN32-NEXT: ] 42 MFUN32-NEXT: Subsection [ 43 MFUN32-NEXT: Type: 0xF5 44 MFUN32-NEXT: PayloadSize: 0x24 45 MFUN32: ] 46 MFUN32-NEXT: Subsection [ 47 MFUN32-NEXT: Type: 0xF1 48 MFUN32-NEXT: PayloadSize: 0x4B 49 MFUN32: ] 50 MFUN32-NEXT: Subsection [ 51 MFUN32-NEXT: Type: 0xF2 52 MFUN32-NEXT: PayloadSize: 0x40 53 MFUN32: FunctionName: _f 54 MFUN32-NEXT: ] 55 MFUN32-NEXT: Subsection [ 56 MFUN32-NEXT: Type: 0xF4 57 MFUN32-NEXT: PayloadSize: 0x18 58 MFUN32: ] 59 MFUN32-NEXT: Subsection [ 60 MFUN32-NEXT: Type: 0xF3 61 MFUN32-NEXT: PayloadSize: 0x46 62 MFUN32: ] 63 MFUN32-NEXT: Subsection [ 64 MFUN32-NEXT: Type: 0xF1 65 MFUN32-NEXT: PayloadSize: 0x8 66 MFUN32: ] 67 MFUN32-NEXT: FunctionLineTable [ 68 MFUN32-NEXT: FunctionName: _x 69 MFUN32-NEXT: CodeSize: 0xA 70 MFUN32-NEXT: FilenameSegment [ 71 MFUN32-NEXT: Filename: d:\source.c 72 MFUN32-NEXT: +0x0: 3 73 MFUN32-NEXT: +0x3: 4 74 MFUN32-NEXT: +0x8: 5 75 MFUN32-NEXT: ] 76 MFUN32-NEXT: ] 77 MFUN32-NEXT: FunctionLineTable [ 78 MFUN32-NEXT: FunctionName: _y 79 MFUN32-NEXT: CodeSize: 0xA 80 MFUN32-NEXT: FilenameSegment [ 81 MFUN32-NEXT: Filename: d:\source.c 82 MFUN32-NEXT: +0x0: 7 83 MFUN32-NEXT: +0x3: 8 84 MFUN32-NEXT: +0x8: 9 85 MFUN32-NEXT: ] 86 MFUN32-NEXT: ] 87 MFUN32-NEXT: FunctionLineTable [ 88 MFUN32-NEXT: FunctionName: _f 89 MFUN32-NEXT: CodeSize: 0x14 90 MFUN32-NEXT: FilenameSegment [ 91 MFUN32-NEXT: Filename: d:\source.c 92 MFUN32-NEXT: +0x0: 11 93 MFUN32-NEXT: +0x3: 12 94 MFUN32-NEXT: +0x8: 13 95 MFUN32-NEXT: +0xD: 14 96 MFUN32-NEXT: +0x12: 15 97 MFUN32-NEXT: ] 98 MFUN32-NEXT: ] 99 MFUN32-NEXT: ] 100 101 MFUN64: CodeViewLineTables [ 102 MFUN64-NEXT: Magic: 0x4 103 MFUN64-NEXT: Subsection [ 104 MFUN64-NEXT: Type: 0xF1 105 MFUN64-NEXT: PayloadSize: 0x52 106 MFUN64: ] 107 MFUN64-NEXT: Subsection [ 108 MFUN64-NEXT: Type: 0xF1 109 MFUN64-NEXT: PayloadSize: 0x4B 110 MFUN64: ] 111 MFUN64-NEXT: Subsection [ 112 MFUN64-NEXT: Type: 0xF2 113 MFUN64-NEXT: PayloadSize: 0x30 114 MFUN64: FunctionName: x 115 MFUN64-NEXT: ] 116 MFUN64-NEXT: Subsection [ 117 MFUN64-NEXT: Type: 0xF1 118 MFUN64-NEXT: PayloadSize: 0x4B 119 MFUN64: ] 120 MFUN64-NEXT: Subsection [ 121 MFUN64-NEXT: Type: 0xF2 122 MFUN64-NEXT: PayloadSize: 0x30 123 MFUN64: FunctionName: y 124 MFUN64-NEXT: ] 125 MFUN64-NEXT: Subsection [ 126 MFUN64-NEXT: Type: 0xF1 127 MFUN64-NEXT: PayloadSize: 0x4B 128 MFUN64: ] 129 MFUN64-NEXT: Subsection [ 130 MFUN64-NEXT: Type: 0xF2 131 MFUN64-NEXT: PayloadSize: 0x40 132 MFUN64: FunctionName: f 133 MFUN64-NEXT: ] 134 MFUN64-NEXT: Subsection [ 135 MFUN64-NEXT: Type: 0xF4 136 MFUN64-NEXT: PayloadSize: 0x18 137 MFUN64: ] 138 MFUN64-NEXT: Subsection [ 139 MFUN64-NEXT: Type: 0xF3 140 MFUN64-NEXT: PayloadSize: 0xD 141 MFUN64: ] 142 MFUN64-NEXT: Subsection [ 143 MFUN64-NEXT: Type: 0xF1 144 MFUN64-NEXT: PayloadSize: 0x8 145 MFUN64: ] 146 MFUN64-NEXT: FunctionLineTable [ 147 MFUN64-NEXT: FunctionName: x 148 MFUN64-NEXT: CodeSize: 0xE 149 MFUN64-NEXT: FilenameSegment [ 150 MFUN64-NEXT: Filename: d:\source.c 151 MFUN64-NEXT: +0x0: 3 152 MFUN64-NEXT: +0x4: 4 153 MFUN64-NEXT: +0x9: 5 154 MFUN64-NEXT: ] 155 MFUN64-NEXT: ] 156 MFUN64-NEXT: FunctionLineTable [ 157 MFUN64-NEXT: FunctionName: y 158 MFUN64-NEXT: CodeSize: 0xE 159 MFUN64-NEXT: FilenameSegment [ 160 MFUN64-NEXT: Filename: d:\source.c 161 MFUN64-NEXT: +0x0: 7 162 MFUN64-NEXT: +0x4: 8 163 MFUN64-NEXT: +0x9: 9 164 MFUN64-NEXT: ] 165 MFUN64-NEXT: ] 166 MFUN64-NEXT: FunctionLineTable [ 167 MFUN64-NEXT: FunctionName: f 168 MFUN64-NEXT: CodeSize: 0x18 169 MFUN64-NEXT: FilenameSegment [ 170 MFUN64-NEXT: Filename: d:\source.c 171 MFUN64-NEXT: +0x0: 11 172 MFUN64-NEXT: +0x4: 12 173 MFUN64-NEXT: +0x9: 13 174 MFUN64-NEXT: +0xE: 14 175 MFUN64-NEXT: +0x13: 15 176 MFUN64-NEXT: ] 177 MFUN64-NEXT: ] 178 MFUN64-NEXT: ] 179 180 MFILE32: CodeViewLineTables [ 181 MFILE32-NEXT: Magic: 0x4 182 MFILE32-NEXT: Subsection [ 183 MFILE32-NEXT: Type: 0xF1 184 MFILE32-NEXT: PayloadSize: 0x51 185 MFILE32: ] 186 MFILE32-NEXT: Subsection [ 187 MFILE32-NEXT: Type: 0xF5 188 MFILE32-NEXT: PayloadSize: 0x24 189 MFILE32: ] 190 MFILE32-NEXT: Subsection [ 191 MFILE32-NEXT: Type: 0xF1 192 MFILE32-NEXT: PayloadSize: 0x4B 193 MFILE32: ] 194 MFILE32-NEXT: Subsection [ 195 MFILE32-NEXT: Type: 0xF2 196 MFILE32-NEXT: PayloadSize: 0x64 197 MFILE32: FunctionName: _f 198 MFILE32-NEXT: ] 199 MFILE32-NEXT: Subsection [ 200 MFILE32-NEXT: Type: 0xF4 201 MFILE32-NEXT: PayloadSize: 0x28 202 MFILE32: ] 203 MFILE32-NEXT: Subsection [ 204 MFILE32-NEXT: Type: 0xF3 205 MFILE32-NEXT: PayloadSize: 0x57 206 MFILE32: ] 207 MFILE32-NEXT: Subsection [ 208 MFILE32-NEXT: Type: 0xF1 209 MFILE32-NEXT: PayloadSize: 0x8 210 MFILE32: ] 211 MFILE32-NEXT: FunctionLineTable [ 212 MFILE32-NEXT: FunctionName: _f 213 MFILE32-NEXT: CodeSize: 0x14 214 MFILE32-NEXT: FilenameSegment [ 215 MFILE32-NEXT: Filename: d:\input.c 216 MFILE32-NEXT: +0x0: 3 217 MFILE32-NEXT: ] 218 MFILE32-NEXT: FilenameSegment [ 219 MFILE32-NEXT: Filename: d:\one.c 220 MFILE32-NEXT: +0x3: 1 221 MFILE32-NEXT: ] 222 MFILE32-NEXT: FilenameSegment [ 223 MFILE32-NEXT: Filename: d:\two.c 224 MFILE32-NEXT: +0x8: 2 225 MFILE32-NEXT: ] 226 MFILE32-NEXT: FilenameSegment [ 227 MFILE32-NEXT: Filename: d:\one.c 228 MFILE32-NEXT: +0xD: 7 229 MFILE32-NEXT: +0x12: 8 230 MFILE32-NEXT: ] 231 MFILE32-NEXT: ] 232 MFILE32-NEXT: ] 233 234 MFILE64: CodeViewLineTables [ 235 MFILE64-NEXT: Magic: 0x4 236 MFILE64-NEXT: Subsection [ 237 MFILE64-NEXT: Type: 0xF1 238 MFILE64-NEXT: PayloadSize: 0x51 239 MFILE64: ] 240 MFILE64-NEXT: Subsection [ 241 MFILE64-NEXT: Type: 0xF1 242 MFILE64-NEXT: PayloadSize: 0x4B 243 MFILE64: ] 244 MFILE64-NEXT: Subsection [ 245 MFILE64-NEXT: Type: 0xF2 246 MFILE64-NEXT: PayloadSize: 0x64 247 MFILE64: FunctionName: f 248 MFILE64-NEXT: ] 249 MFILE64-NEXT: Subsection [ 250 MFILE64-NEXT: Type: 0xF4 251 MFILE64-NEXT: PayloadSize: 0x28 252 MFILE64: ] 253 MFILE64-NEXT: Subsection [ 254 MFILE64-NEXT: Type: 0xF3 255 MFILE64-NEXT: PayloadSize: 0x1E 256 MFILE64: ] 257 MFILE64-NEXT: Subsection [ 258 MFILE64-NEXT: Type: 0xF1 259 MFILE64-NEXT: PayloadSize: 0x8 260 MFILE64: ] 261 MFILE64-NEXT: FunctionLineTable [ 262 MFILE64-NEXT: FunctionName: f 263 MFILE64-NEXT: CodeSize: 0x18 264 MFILE64-NEXT: FilenameSegment [ 265 MFILE64-NEXT: Filename: d:\input.c 266 MFILE64-NEXT: +0x0: 3 267 MFILE64-NEXT: ] 268 MFILE64-NEXT: FilenameSegment [ 269 MFILE64-NEXT: Filename: d:\one.c 270 MFILE64-NEXT: +0x4: 1 271 MFILE64-NEXT: ] 272 MFILE64-NEXT: FilenameSegment [ 273 MFILE64-NEXT: Filename: d:\two.c 274 MFILE64-NEXT: +0x9: 2 275 MFILE64-NEXT: ] 276 MFILE64-NEXT: FilenameSegment [ 277 MFILE64-NEXT: Filename: d:\one.c 278 MFILE64-NEXT: +0xE: 7 279 MFILE64-NEXT: +0x13: 8 280 MFILE64-NEXT: ] 281 MFILE64-NEXT: ] 282 MFILE64-NEXT: ] 283