zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

blob db0d3f6d (2165B) - Raw


      1 RUN: yaml2obj %S/Inputs/pdb-globals.yaml > %t.obj
      2 RUN: lld-link /debug /nodefaultlib /entry:main /out:%t.exe /pdb:%t.pdb %t.obj
      3 RUN: llvm-pdbutil dump -symbols -globals %t.pdb | FileCheck %s
      4 
      5 # Test that we correctly distribute symbols between the globals and module
      6 # symbol streams.  Specifically:
      7 #  * S_UDT, S_GDATA32, and S_CONSTANT end up in the globals stream, and are
      8 #    omitted from the module stream.
      9 #  * S_GPROC32 and S_LPROC32 end up in the symbols stream, but S_PROCREF and
     10 #    S_LPROCREF are added to the globals stream that refer to the module
     11 #    stream.
     12 #  * S_LDATA32 is copied byte for byte into both streams.
     13 
     14 
     15 CHECK-LABEL:                        Global Symbols
     16 CHECK-NEXT:  ============================================================
     17 CHECK-NEXT:   Records
     18 CHECK-NEXT:      208 | S_LPROCREF [size = 24] `LocalFunc`
     19 CHECK-NEXT:            module = 1, sum name = 0, offset = 292
     20 CHECK-NEXT:      160 | S_PROCREF [size = 28] `GlobalFunc`
     21 CHECK-NEXT:            module = 1, sum name = 0, offset = 52
     22 CHECK-NEXT:      188 | S_PROCREF [size = 20] `main`
     23 CHECK-NEXT:            module = 1, sum name = 0, offset = 108
     24 CHECK-NEXT:      232 | S_GDATA32 [size = 28] `__purecall`
     25 CHECK-NEXT:            type = 0x0403 (void*), addr = 0003:0004
     26 CHECK-NEXT:      260 | S_GDATA32 [size = 24] `GlobalVar`
     27 CHECK-NEXT:            type = 0x100B (const int*), addr = 0003:0000
     28 CHECK-NEXT:      284 | S_LDATA32 [size = 28] `ConstantVar`
     29 CHECK-NEXT:            type = 0x100A (const int), addr = 0002:0000
     30 CHECK-NEXT:      312 | S_PROCREF [size = 40] `HelloPoint::HelloPoint`
     31 CHECK-NEXT:            module = 1, sum name = 0, offset = 376
     32 
     33 CHECK-LABEL:                           Symbols
     34 CHECK-NEXT:  ============================================================
     35 CHECK-NEXT:    Mod 0000
     36 CHECK-NOT:              | S_GDATA32
     37 CHECK-NOT:              | S_UDT
     38 CHECK:               52 | S_GPROC32 [size = 52] `GlobalFunc`
     39 CHECK:              108 | S_GPROC32 [size = 44] `main`
     40 CHECK:              292 | S_LPROC32 [size = 52] `LocalFunc`
     41 CHECK:              348 | S_LDATA32 [size = 28] `ConstantVar`
     42 CHECK:              376 | S_GPROC32 [size = 64] `HelloPoint::HelloPoint`