blob: 53e2cc9289c2f9bfe140e02d6124e74e20463f8e [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:
29// CHECK: ![[SP]] = distinct !DISubprogram(name: "Base", {{.*}}isDefinition: true