blob: 9969ef79ca7ef13cb18731a1cc1d15d4a4334f0a [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.
3struct already_AddRefed {
4 ~already_AddRefed();
5};
6struct RefPtr {
7 operator int *();
8};
9struct ServoCssRulesStrong {
10 already_AddRefed Consume();
11};
12struct GroupRule {
13 GroupRule(already_AddRefed);
14};
15class ConditionRule : GroupRule {
16 using GroupRule::GroupRule;
17};
18class CSSMediaRule : ConditionRule {
19 using ConditionRule::ConditionRule;
20};
21class CSSMozDocumentRule : ConditionRule {
22 using ConditionRule::ConditionRule;
23};
24class ServoDocumentRule : CSSMozDocumentRule {
25 ServoDocumentRule(RefPtr);
26};
27class ServoMediaRule : CSSMediaRule {
28 ServoMediaRule(RefPtr);
29};
30ServoCssRulesStrong Servo_MediaRule_GetRules(int *);
31ServoCssRulesStrong Servo_DocumentRule_GetRules(int *);
32ServoDocumentRule::ServoDocumentRule(RefPtr aRawRule)
33 : CSSMozDocumentRule(Servo_DocumentRule_GetRules(aRawRule).Consume()) {}
34
35ServoMediaRule::ServoMediaRule(RefPtr aRawRule)
36 : CSSMediaRule(Servo_MediaRule_GetRules(aRawRule).Consume()) {}
37
38// CHECK: define{{.*}}ServoMediaRule
39// CHECK-NOT: {{ ret }}
40// CHECK: store %class.ConditionRule* %
41// CHECK-SAME: %class.ConditionRule** %
42// CHECK-SAME: !dbg ![[INL:[0-9]+]]
43
44// CHECK: ![[INL]] = !DILocation(line: 16, scope: ![[SP:[0-9]+]], inlinedAt:
45// CHECK: ![[SP]] = distinct !DISubprogram(name: "GroupRule", {{.*}}isDefinition: true