1 2 RUN: rm -rf %t1/ 3 RUN: mkdir %t1 4 RUN: obj2yaml %S/Inputs/precomp-a.obj > %t1/precomp-a.yaml 5 RUN: obj2yaml %S/Inputs/precomp.obj > %t1/precomp.yaml 6 RUN: yaml2obj %t1/precomp-a.yaml > %t1/a.obj 7 RUN: yaml2obj %t1/precomp.yaml > %t1/precomp.obj 8 RUN: llvm-readobj -codeview %t1/a.obj | FileCheck %s -check-prefix PRECOMP 9 RUN: llvm-readobj -codeview %t1/precomp.obj | FileCheck %s -check-prefix ENDPRECOMP 10 RUN: llvm-pdbutil dump -types %t1/a.obj | FileCheck %s -check-prefix PDB-PRECOMP 11 RUN: llvm-pdbutil dump -types %t1/precomp.obj | FileCheck %s -check-prefix PDB-ENDPRECOMP 12 13 ENDPRECOMP: CodeViewTypes [ 14 ENDPRECOMP-NEXT: Section: .debug$P (3) 15 ENDPRECOMP: EndPrecomp (0x1407) { 16 ENDPRECOMP-NEXT: TypeLeafKind: LF_ENDPRECOMP (0x14) 17 ENDPRECOMP-NEXT: Signature: 0x1116980E 18 ENDPRECOMP-NEXT: } 19 20 PRECOMP: CodeViewTypes [ 21 PRECOMP-NEXT: Section: .debug$T (3) 22 PRECOMP-NEXT: Magic: 0x4 23 PRECOMP-NEXT: Precomp (0x1000) { 24 PRECOMP-NEXT: TypeLeafKind: LF_PRECOMP (0x1509) 25 PRECOMP-NEXT: StartIndex: 0x1000 26 PRECOMP-NEXT: Count: 0x407 27 PRECOMP-NEXT: Signature: 0x1116980E 28 29 PDB-PRECOMP: Types (.debug$T) 30 PDB-PRECOMP-NEXT: ============================================================ 31 PDB-PRECOMP-NEXT: Showing 0 records 32 PDB-PRECOMP-NEXT: 0x1000 | LF_PRECOMP [size = 60] start index = 0x1000, types count = 0x407, signature = 0x1116980E, precomp path = f:\svn\lld\test\coff\precomp\precomp.obj 33 34 PDB-ENDPRECOMP: Precompiled Types (.debug$P) 35 PDB-ENDPRECOMP-NEXT: ============================================================ 36 PDB-ENDPRECOMP-NEXT: Showing 0 records 37 PDB-ENDPRECOMP: 0x1407 | LF_ENDPRECOMP [size = 8] signature = 0x1116980E 38 39 # // precomp.h 40 # #pragma once 41 # int Function(char A); 42 # 43 # // precomp.cpp 44 # // cl.exe precomp.cpp /Z7 /Ycprecomp.h /c 45 # #include "precomp.h" 46 # 47 # // a.cpp 48 # #include "precomp.h" 49 # int main(void) { 50 # Function('a'); 51 # return 0; 52 # } 53 # 54 # // cl.exe a.cpp /Z7 /Yuprecomp.h /c 55 # 56 # // obj2yaml precomp.obj >precomp-precomp.yaml 57 # // obj2yaml a.obj >precomp-a.yaml 58