blob: d36715bcfcb6f59003c2ad35eb4ffbce9031efa2 [file] [log] [blame]
Adrian Prantl8040a212017-08-23 21:24:12 +00001// RUN: %clang_cc1 -emit-llvm -triple i686-pc-windows-msvc19.0.24213 -gcodeview -debug-info-kind=limited -std=c++14 %s -o - | FileCheck %s
2// PR33997.
Adrian Prantl58377b42017-08-30 21:31:16 +00003struct WithDtor {
4 ~WithDtor();
Adrian Prantl8040a212017-08-23 21:24:12 +00005};
Adrian Prantl58377b42017-08-30 21:31:16 +00006struct Base {
7 Base(WithDtor);
Adrian Prantl8040a212017-08-23 21:24:12 +00008};
Adrian Prantl58377b42017-08-30 21:31:16 +00009class Forward : Base {
10 using Base::Base;
Adrian Prantl8040a212017-08-23 21:24:12 +000011};
Adrian Prantl58377b42017-08-30 21:31:16 +000012class A : Forward {
13 A();
Adrian Prantl8040a212017-08-23 21:24:12 +000014};
Adrian Prantl58377b42017-08-30 21:31:16 +000015class B : Forward {
16 B();
Adrian Prantl8040a212017-08-23 21:24:12 +000017};
Adrian Prantl58377b42017-08-30 21:31:16 +000018A::A() : Forward(WithDtor()) {}
Adrian Prantl8040a212017-08-23 21:24:12 +000019
Adrian Prantl58377b42017-08-30 21:31:16 +000020B::B() : Forward(WithDtor()) {}
Adrian Prantl8040a212017-08-23 21:24:12 +000021
Adrian Prantl58377b42017-08-30 21:31:16 +000022// CHECK: define{{.*}}A
Adrian Prantl8040a212017-08-23 21:24:12 +000023// CHECK-NOT: {{ ret }}
Adrian Prantl58377b42017-08-30 21:31:16 +000024// CHECK: store %class.Forward* %
25// CHECK-SAME: %class.Forward** %
Adrian Prantl8040a212017-08-23 21:24:12 +000026// CHECK-SAME: !dbg ![[INL:[0-9]+]]
27
Adrian Prantl58377b42017-08-30 21:31:16 +000028// CHECK: ![[INL]] = !DILocation(line: 10, scope: ![[SP:[0-9]+]], inlinedAt:
Paul Robinson416b12f2018-11-28 21:18:07 +000029// CHECK: ![[SP]] = distinct !DISubprogram(name: "Base", {{.*}} DISPFlagDefinition