brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · e67fba8 Raw
197 lines · cpp
1struct foo;2void func(foo *f) {3}4class bar;5void func(bar *f) {6}7union baz;8void func(baz *f) {9}10 11class B {12public:13  virtual ~B();14};15 16B::~B() { extern void mayThrow(); mayThrow();17}18 19struct C {20  static int s;21  virtual ~C();22};23 24C::~C() {25}26 27struct D {28  D();29  virtual ~D();30  void func() {31  }32};33 34struct E {35  E();36  virtual ~E();37  virtual void func() {38  }39};40 41struct F {42  struct inner {43  };44  static const int i = 2;45  virtual ~F();46};47 48struct G {49  virtual void func();50  struct inner {51    int j;52  };53};54 55struct H {};56struct I : virtual H {};57struct J : I {};58J j;59 60struct K {61  virtual void func() {62  }63};64 65struct A {66  int one;67  static const int HdrSize = 52;68  int two;69  A() {70    int x = 1;71  }72};73 74namespace {75struct L {76  void func() {77  }78};79}80 81void f1() {82  D x;83  x.func();84  E y;85  int i = F::i;86  F::inner z;87  K k;88  k.func();89  L l;90  l.func();91}92 93int main(int argc, char **argv) {94  B b;95  G::inner c_i;96  if (argc) {97    A a;98  }99  return 0;100}101 102// RUN: %clang_cc1 -triple x86_64-unknown_unknown -emit-llvm -debug-info-kind=limited -fexceptions -std=c++98 %s -o - | FileCheck -check-prefix=CHECK98 -check-prefix=CHECK  %s103// RUN: %clang_cc1 -triple i686-cygwin -emit-llvm -debug-info-kind=limited -fexceptions -std=c++98 %s -o - | FileCheck -check-prefix=CHECK98 -check-prefix=CHECK %s104// RUN: %clang_cc1 -triple armv7l-unknown-linux-gnueabihf -emit-llvm -debug-info-kind=limited -fexceptions -std=c++98 %s -o - | FileCheck -check-prefix=CHECK98 -check-prefix=CHECK %s105// RUN: %clang_cc1 -triple x86_64-unknown_unknown -emit-llvm -debug-info-kind=limited -fexceptions -std=c++11 %s -o - | FileCheck -check-prefix=CHECK11 -check-prefix=CHECK %s106// RUN: %clang_cc1 -triple i686-cygwin -emit-llvm -debug-info-kind=limited -fexceptions -std=c++11 %s -o - | FileCheck -check-prefix=CHECK11 -check-prefix=CHECK %s107// RUN: %clang_cc1 -triple armv7l-unknown-linux-gnueabihf -emit-llvm -debug-info-kind=limited -fexceptions -std=c++11 %s -o - | FileCheck -check-prefix=CHECK11 -check-prefix=CHECK %s108 109// CHECK98: invoke {{.+}} @_ZN1BD1Ev(ptr {{[^,]*}} %b)110// CHECK98-NEXT: unwind label %{{.+}}, !dbg ![[EXCEPTLOC:.*]]111// CHECK11: call {{.+}} @_ZN1BD1Ev(ptr {{[^,]*}} %b){{.*}}, !dbg ![[EXCEPTLOC:.*]]112 113// CHECK: store i32 0, ptr %{{.+}}, !dbg ![[RETLOC:.*]]114 115// CHECK: [[F:![0-9]*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "F"116// CHECK-SAME:                             DIFlagFwdDecl117// CHECK-NOT:                             identifier:118// CHECK-SAME:                            ){{$}}119 120// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "I"121// CHECK-NOT:              DIFlagFwdDecl122// CHECK-SAME:             ){{$}}123 124// CHECK:      ![[INT:[0-9]+]] = !DIBasicType(name: "int"125 126// CHECK: [[C:![0-9]*]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "C",127// CHECK-NOT:                              DIFlagFwdDecl128// CHECK-SAME:                             elements: [[C_MEM:![0-9]*]]129// CHECK-SAME:                             vtableHolder: [[C]]130// CHECK-NOT:                              identifier:131// CHECK-SAME:                             ){{$}}132// CHECK: [[C_MEM]] = !{[[C_VPTR:![0-9]*]], [[C_S:![0-9]*]], [[C_DTOR:![0-9]*]]}133// CHECK: [[C_VPTR]] = !DIDerivedType(tag: DW_TAG_member, name: "_vptr$C"134// CHECK-SAME:                        DIFlagArtificial135// CHECK: [[C_S]] = !DIDerivedType(tag: DW_TAG_member, name: "s"136// CHECK-SAME:                     baseType: ![[INT]]137// CHECK-SAME:                     DIFlagStaticMember138// CHECK: [[C_DTOR]] = !DISubprogram(name: "~C"139 140// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "K"141// CHECK-SAME:             identifier: "_ZTS1K"142// CHECK-SAME:             ){{$}}143 144// CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "B"145// CHECK-NOT:              DIFlagFwdDecl146// CHECK-SAME:             ){{$}}147// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "_vptr$B",148// CHECK-SAME:           DIFlagArtificial149 150// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "foo"151// CHECK: !DICompositeType(tag: DW_TAG_class_type, name: "bar"152// CHECK: !DICompositeType(tag: DW_TAG_union_type, name: "baz"153 154// CHECK: [[D:![0-9]+]] = !DICompositeType(tag: DW_TAG_structure_type, name: "D"155// CHECK-SAME:             size:156// CHECK-SAME:             DIFlagFwdDecl157// CHECK-NOT:              identifier:158// CHECK-SAME:             ){{$}}159 160// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "E"161// CHECK-SAME:             DIFlagFwdDecl162// CHECK-NOT:              identifier:163// CHECK-SAME:             ){{$}}164 165// CHECK: [[L:![0-9]+]] = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "L"166// CHECK-SAME:             ){{$}}167// CHECK: [[L_FUNC_DECL:![0-9]*]] = !DISubprogram(name: "func",{{.*}} scope: [[L]]168// CHECK-SAME:             DISPFlagLocalToUnit169 170// CHECK: !DISubprogram(name: "func",{{.*}} scope: [[D]]171// CHECK-SAME:          DISPFlagDefinition172// CHECK-SAME:          declaration: [[D_FUNC_DECL:![0-9]*]]173// CHECK: [[D_FUNC_DECL]] = !DISubprogram(name: "func",{{.*}} scope: [[D]]174 175// CHECK: !DISubprogram(name: "func",{{.*}} scope: [[L]]176// CHECK-SAME:          DISPFlagLocalToUnit | DISPFlagDefinition177// CHECK-SAME:          declaration: [[L_FUNC_DECL]]178 179// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "inner",{{.*}} line: 50180// CHECK-NOT: DIFlagFwdDecl181// CHECK-SAME: elements: [[G_INNER_MEM:![0-9]*]]182// CHECK-SAME: identifier: "_ZTSN1G5innerE"183 184// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "G"185// CHECK-SAME:             DIFlagFwdDecl186// CHECK-NOT:              identifier:187// CHECK-SAME:             ){{$}}188// CHECK: [[G_INNER_MEM]] = !{[[G_INNER_I:![0-9]*]]}189// CHECK: [[G_INNER_I]] = !DIDerivedType(tag: DW_TAG_member, name: "j"190// CHECK-SAME:                           baseType: ![[INT]]191 192// CHECK: !DICompositeType(tag: DW_TAG_structure_type, name: "A"193// CHECK: !DIDerivedType(tag: DW_TAG_member, name: "HdrSize"194 195// CHECK: ![[EXCEPTLOC]] = !DILocation(line: 100,196// CHECK: ![[RETLOC]] = !DILocation(line: 99,197