brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.2 KiB · 8bc9dd9 Raw
211 lines · cpp
1// RUN: %clang_cc1 %s -triple=amdgcn-amd-amdhsa -std=c++11 -emit-llvm-only -fdump-vtable-layouts 2>&1 | FileCheck %s2 3// A collection of big class hierarchies and their vtables.4 5namespace Test1 {6 7class C08{9};10class C111 :  virtual public C012{13  int k0;14};15class C216 :  public C017 ,  virtual public C118{19  int k0;20};21class C322 :  virtual public C023 ,  virtual public C124 ,  public C225{26  int k0;27  int k1;28  int k2;29  int k3;30};31class C432 :  public C233 ,  virtual public C334 ,  public C035{36  int k0;37};38class C539 :  public C040 ,  virtual public C441 ,  public C242 ,  public C143 ,  virtual public C344{45  int k0;46};47class C648 :  virtual public C349 ,  public C050 ,  public C551 ,  public C452 ,  public C153{54  int k0;55};56class C757 :  virtual public C558 ,  virtual public C659 ,  virtual public C360 ,  public C461 ,  virtual public C262{63  int k0;64  int k1;65};66class C867 :  public C768 ,  public C569 ,  public C370 ,  virtual public C471 ,  public C172 ,  public C273{74  int k0;75  int k1;76};77 78// CHECK:     Vtable for 'Test1::C9' (87 entries).79// CHECK-NEXT:   0 | vbase_offset (344)80// CHECK-NEXT:   1 | vbase_offset (312)81// CHECK-NEXT:   2 | vbase_offset (184)82// CHECK-NEXT:   3 | vbase_offset (168)83// CHECK-NEXT:   4 | vbase_offset (120)84// CHECK-NEXT:   5 | vbase_offset (48)85// CHECK-NEXT:   6 | vbase_offset (148)86// CHECK-NEXT:   7 | vbase_offset (152)87// CHECK-NEXT:   8 | offset_to_top (0)88// CHECK-NEXT:   9 | Test1::C9 RTTI89// CHECK-NEXT:       -- (Test1::C2, 0) vtable address --90// CHECK-NEXT:       -- (Test1::C9, 0) vtable address --91// CHECK-NEXT:  10 | void Test1::C9::f()92// CHECK-NEXT:  11 | vbase_offset (104)93// CHECK-NEXT:  12 | vbase_offset (132)94// CHECK-NEXT:  13 | vbase_offset (136)95// CHECK-NEXT:  14 | offset_to_top (-16)96// CHECK-NEXT:  15 | Test1::C9 RTTI97// CHECK-NEXT:       -- (Test1::C2, 16) vtable address --98// CHECK-NEXT:       -- (Test1::C4, 16) vtable address --99// CHECK-NEXT:  16 | vbase_offset (72)100// CHECK-NEXT:  17 | vbase_offset (120)101// CHECK-NEXT:  18 | vbase_offset (100)102// CHECK-NEXT:  19 | vbase_offset (104)103// CHECK-NEXT:  20 | offset_to_top (-48)104// CHECK-NEXT:  21 | Test1::C9 RTTI105// CHECK-NEXT:       -- (Test1::C2, 48) vtable address --106// CHECK-NEXT:       -- (Test1::C5, 48) vtable address --107// CHECK-NEXT:       -- (Test1::C6, 48) vtable address --108// CHECK-NEXT:  22 | vbase_offset (84)109// CHECK-NEXT:  23 | offset_to_top (-64)110// CHECK-NEXT:  24 | Test1::C9 RTTI111// CHECK-NEXT:       -- (Test1::C1, 64) vtable address --112// CHECK-NEXT:  25 | vbase_offset (32)113// CHECK-NEXT:  26 | vbase_offset (60)114// CHECK-NEXT:  27 | vbase_offset (64)115// CHECK-NEXT:  28 | offset_to_top (-88)116// CHECK-NEXT:  29 | Test1::C9 RTTI117// CHECK-NEXT:       -- (Test1::C2, 88) vtable address --118// CHECK-NEXT:       -- (Test1::C4, 88) vtable address --119// CHECK-NEXT:  30 | vbase_offset (44)120// CHECK-NEXT:  31 | offset_to_top (-104)121// CHECK-NEXT:  32 | Test1::C9 RTTI122// CHECK-NEXT:       -- (Test1::C1, 104) vtable address --123// CHECK-NEXT:  33 | vbase_offset (28)124// CHECK-NEXT:  34 | vbase_offset (32)125// CHECK-NEXT:  35 | offset_to_top (-120)126// CHECK-NEXT:  36 | Test1::C9 RTTI127// CHECK-NEXT:       -- (Test1::C2, 120) vtable address --128// CHECK-NEXT:       -- (Test1::C3, 120) vtable address --129// CHECK-NEXT:  37 | vbase_offset (-4)130// CHECK-NEXT:  38 | offset_to_top (-152)131// CHECK-NEXT:  39 | Test1::C9 RTTI132// CHECK-NEXT:       -- (Test1::C1, 152) vtable address --133// CHECK-NEXT:  40 | vbase_offset (-48)134// CHECK-NEXT:  41 | vbase_offset (-20)135// CHECK-NEXT:  42 | vbase_offset (-16)136// CHECK-NEXT:  43 | offset_to_top (-168)137// CHECK-NEXT:  44 | Test1::C9 RTTI138// CHECK-NEXT:       -- (Test1::C2, 168) vtable address --139// CHECK-NEXT:       -- (Test1::C4, 168) vtable address --140// CHECK-NEXT:  45 | vbase_offset (160)141// CHECK-NEXT:  46 | vbase_offset (-136)142// CHECK-NEXT:  47 | vbase_offset (-16)143// CHECK-NEXT:  48 | vbase_offset (128)144// CHECK-NEXT:  49 | vbase_offset (-64)145// CHECK-NEXT:  50 | vbase_offset (-36)146// CHECK-NEXT:  51 | vbase_offset (-32)147// CHECK-NEXT:  52 | offset_to_top (-184)148// CHECK-NEXT:  53 | Test1::C9 RTTI149// CHECK-NEXT:       -- (Test1::C2, 184) vtable address --150// CHECK-NEXT:       -- (Test1::C4, 184) vtable address --151// CHECK-NEXT:       -- (Test1::C7, 184) vtable address --152// CHECK-NEXT:       -- (Test1::C8, 184) vtable address --153// CHECK-NEXT:  54 | vbase_offset (-88)154// CHECK-NEXT:  55 | vbase_offset (-40)155// CHECK-NEXT:  56 | vbase_offset (-60)156// CHECK-NEXT:  57 | vbase_offset (-56)157// CHECK-NEXT:  58 | offset_to_top (-208)158// CHECK-NEXT:  59 | Test1::C9 RTTI159// CHECK-NEXT:       -- (Test1::C2, 208) vtable address --160// CHECK-NEXT:       -- (Test1::C5, 208) vtable address --161// CHECK-NEXT:  60 | vbase_offset (-76)162// CHECK-NEXT:  61 | offset_to_top (-224)163// CHECK-NEXT:  62 | Test1::C9 RTTI164// CHECK-NEXT:       -- (Test1::C1, 224) vtable address --165// CHECK-NEXT:  63 | vbase_offset (-92)166// CHECK-NEXT:  64 | vbase_offset (-88)167// CHECK-NEXT:  65 | offset_to_top (-240)168// CHECK-NEXT:  66 | Test1::C9 RTTI169// CHECK-NEXT:       -- (Test1::C2, 240) vtable address --170// CHECK-NEXT:       -- (Test1::C3, 240) vtable address --171// CHECK-NEXT:  67 | vbase_offset (-124)172// CHECK-NEXT:  68 | offset_to_top (-272)173// CHECK-NEXT:  69 | Test1::C9 RTTI174// CHECK-NEXT:       -- (Test1::C1, 272) vtable address --175// CHECK-NEXT:  70 | vbase_offset (-140)176// CHECK-NEXT:  71 | vbase_offset (-136)177// CHECK-NEXT:  72 | offset_to_top (-288)178// CHECK-NEXT:  73 | Test1::C9 RTTI179// CHECK-NEXT:       -- (Test1::C2, 288) vtable address --180// CHECK-NEXT:  74 | vbase_offset (-192)181// CHECK-NEXT:  75 | vbase_offset (-144)182// CHECK-NEXT:  76 | vbase_offset (-164)183// CHECK-NEXT:  77 | vbase_offset (-160)184// CHECK-NEXT:  78 | offset_to_top (-312)185// CHECK-NEXT:  79 | Test1::C9 RTTI186// CHECK-NEXT:       -- (Test1::C2, 312) vtable address --187// CHECK-NEXT:       -- (Test1::C5, 312) vtable address --188// CHECK-NEXT:  80 | vbase_offset (-180)189// CHECK-NEXT:  81 | offset_to_top (-328)190// CHECK-NEXT:  82 | Test1::C9 RTTI191// CHECK-NEXT:       -- (Test1::C1, 328) vtable address --192// CHECK-NEXT:  83 | vbase_offset (-196)193// CHECK-NEXT:  84 | vbase_offset (-192)194// CHECK-NEXT:  85 | offset_to_top (-344)195// CHECK-NEXT:  86 | Test1::C9 RTTI196class C9197 :  virtual public C6198 ,  public C2199 ,  public C4200 ,  virtual public C8201{202  int k0;203  int k1;204  int k2;205  int k3;206  virtual void f();207};208void C9::f() { }209 210}211