brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · a8fa2f6 Raw
60 lines · plain
1RUN: yaml2obj %S/Inputs/pdb-globals.yaml -o %t.obj2RUN: lld-link /debug /nodefaultlib /entry:main /force /out:%t.exe /pdb:%t.pdb %t.obj3RUN: llvm-pdbutil dump -symbols -globals %t.pdb | FileCheck %s4 5RUN: lld-link /debug /nodefaultlib /entry:main /force /out:%t.exe /pdb:%t.pdb %t.obj /threads:16RUN: llvm-pdbutil dump -symbols -globals %t.pdb | FileCheck %s7RUN: lld-link /debug /nodefaultlib /entry:main /force /out:%t.exe /pdb:%t.pdb %t.obj /threads:28RUN: llvm-pdbutil dump -symbols -globals %t.pdb | FileCheck %s9 10# Test that we correctly distribute symbols between the globals and module11# symbol streams.  Specifically:12#  * S_UDT, S_GDATA32, and S_CONSTANT end up in the globals stream, and are13#    omitted from the module stream.14#  * S_GPROC32 and S_LPROC32 end up in the symbols stream, but S_PROCREF and15#    S_LPROCREF are added to the globals stream that refer to the module16#    stream.17#  * S_LDATA32 is copied byte for byte into both streams.18 19 20CHECK-LABEL:                        Global Symbols21CHECK-NEXT: ============================================================22CHECK-NEXT:   Records23CHECK-NEXT:      444 | S_UDT [size = 20] `HelloPoint`24CHECK-NEXT:            original type = 0x100725CHECK-NEXT:      240 | S_LPROCREF [size = 24] `LocalFunc`26CHECK-NEXT:            module = 1, sum name = 0, offset = 42427CHECK-NEXT:      192 | S_PROCREF [size = 28] `GlobalFunc`28CHECK-NEXT:            module = 1, sum name = 0, offset = 13629CHECK-NEXT:      220 | S_PROCREF [size = 20] `main`30CHECK-NEXT:            module = 1, sum name = 0, offset = 22431CHECK-NEXT:      340 | S_CONSTANT [size = 24] `ConstexprVar`32CHECK-NEXT:            type = 0x100B (const int), value = 1833CHECK-NEXT:      264 | S_GDATA32 [size = 28] `__purecall`34CHECK-NEXT:            type = 0x0403 (void*), addr = 0003:000435CHECK-NEXT:      292 | S_GDATA32 [size = 24] `GlobalVar`36CHECK-NEXT:            type = 0x100C (const int*), addr = 0003:000037CHECK-NEXT:      316 | S_GTHREAD32 [size = 24] `GlobalTLS`38CHECK-NEXT:            type = 0x0074 (int), addr = 0004:000039CHECK-NEXT:      392 | S_LTHREAD32 [size = 24] `StaticTLS`40CHECK-NEXT:            type = 0x0074 (int), addr = 0004:000441CHECK-NEXT:      416 | S_UDT [size = 28] `HelloPointTypedef`42CHECK-NEXT:            original type = 0x100743CHECK-NEXT:      364 | S_LDATA32 [size = 28] `ConstantVar`44CHECK-NEXT:            type = 0x100B (const int), addr = 0002:000045CHECK-NEXT:      464 | S_PROCREF [size = 40] `HelloPoint::HelloPoint`46CHECK-NEXT:            module = 1, sum name = 0, offset = 57247 48CHECK-LABEL:                           Symbols49CHECK-NEXT:  ============================================================50CHECK-NEXT:    Mod 000051CHECK-NOT:              | S_GDATA3252CHECK-NOT:              | S_UDT53CHECK-NOT:              | S_GTHREAD3254CHECK:     136 | S_GPROC32 [size = 52] `GlobalFunc`55CHECK:     224 | S_GPROC32 [size = 44] `main`56CHECK:     424 | S_LPROC32 [size = 52] `LocalFunc`57CHECK:     512 | S_LDATA32 [size = 28] `ConstantVar`58CHECK:     540 | S_LTHREAD32 [size = 24] `StaticTLS`59CHECK:     572 | S_GPROC32 [size = 64] `HelloPoint::HelloPoint`60