]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/COFF/pdb-globals-dia-vfunc-collision.test
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / COFF / pdb-globals-dia-vfunc-collision.test
1 REQUIRES: diasdk
2
3 Input object file reconstruction:
4
5 ; // main.cpp
6 ; struct S {
7 ;   // Function names are chosen specifically to generate hash collisions in the
8 ;   // GSI hash table.
9 ;   virtual int A307() { return 102; }
10 ;   virtual int A400() { return 12; }
11 ;   virtual int A206() { return 201; }
12 ;   virtual int A105() { return 300; }
13 ; };
14
15 ; struct T : public S {
16 ;   int A105() override { return 300; }
17 ;   int A307() override { return 102; }
18 ;   int A206() override { return 201; }
19 ;   int A400() override { return 12; }
20 ; };
21
22 ; int main(int argc, char **argv) {
23 ;   T s;
24 ;   return s.A105() + s.A206() + s.A307() + s.A400();
25 ; }
26
27 clang-cl /Z7 /GS- /GR- /c main.cpp /Foglobals-dia-vfunc-collision.obj
28
29 RUN: lld-link /debug /nodefaultlib /entry:main /out:%t.exe %S/Inputs/globals-dia-vfunc-collision.obj
30 RUN: llvm-pdbutil pretty -classes %t.pdb | FileCheck %s
31
32 CHECK: struct T
33 CHECK: func [0x000010c0+ 0 - 0x000010dd-29 | sizeof= 29] (FPO) virtual {{.*}}A105()
34 CHECK: func [0x00001100+ 0 - 0x0000111b-27 | sizeof= 27] (FPO) virtual {{.*}}A307()
35 CHECK: func [0x000010e0+ 0 - 0x000010fd-29 | sizeof= 29] (FPO) virtual {{.*}}A206()
36 CHECK: func [0x00001120+ 0 - 0x0000113b-27 | sizeof= 27] (FPO) virtual {{.*}}A400()
37
38 CHECK: struct S
39 CHECK: func [0x00001160+ 0 - 0x0000116c-12 | sizeof= 12] (FPO) virtual {{.*}}A307()
40 CHECK: func [0x00001170+ 0 - 0x0000117c-12 | sizeof= 12] (FPO) virtual {{.*}}A400()
41 CHECK: func [0x00001180+ 0 - 0x0000118c-12 | sizeof= 12] (FPO) virtual {{.*}}A206()
42 CHECK: func [0x00001190+ 0 - 0x0000119c-12 | sizeof= 12] (FPO) virtual {{.*}}A105()