diff options
Diffstat (limited to 'test/CodeGenCXX/debug-info-inlined.cpp')
-rw-r--r-- | test/CodeGenCXX/debug-info-inlined.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/CodeGenCXX/debug-info-inlined.cpp b/test/CodeGenCXX/debug-info-inlined.cpp new file mode 100644 index 0000000000..9969ef79ca --- /dev/null +++ b/test/CodeGenCXX/debug-info-inlined.cpp @@ -0,0 +1,45 @@ +// RUN: %clang_cc1 -emit-llvm -triple i686-pc-windows-msvc19.0.24213 -gcodeview -debug-info-kind=limited -std=c++14 %s -o - | FileCheck %s +// PR33997. +struct already_AddRefed { + ~already_AddRefed(); +}; +struct RefPtr { + operator int *(); +}; +struct ServoCssRulesStrong { + already_AddRefed Consume(); +}; +struct GroupRule { + GroupRule(already_AddRefed); +}; +class ConditionRule : GroupRule { + using GroupRule::GroupRule; +}; +class CSSMediaRule : ConditionRule { + using ConditionRule::ConditionRule; +}; +class CSSMozDocumentRule : ConditionRule { + using ConditionRule::ConditionRule; +}; +class ServoDocumentRule : CSSMozDocumentRule { + ServoDocumentRule(RefPtr); +}; +class ServoMediaRule : CSSMediaRule { + ServoMediaRule(RefPtr); +}; +ServoCssRulesStrong Servo_MediaRule_GetRules(int *); +ServoCssRulesStrong Servo_DocumentRule_GetRules(int *); +ServoDocumentRule::ServoDocumentRule(RefPtr aRawRule) + : CSSMozDocumentRule(Servo_DocumentRule_GetRules(aRawRule).Consume()) {} + +ServoMediaRule::ServoMediaRule(RefPtr aRawRule) + : CSSMediaRule(Servo_MediaRule_GetRules(aRawRule).Consume()) {} + +// CHECK: define{{.*}}ServoMediaRule +// CHECK-NOT: {{ ret }} +// CHECK: store %class.ConditionRule* % +// CHECK-SAME: %class.ConditionRule** % +// CHECK-SAME: !dbg ![[INL:[0-9]+]] + +// CHECK: ![[INL]] = !DILocation(line: 16, scope: ![[SP:[0-9]+]], inlinedAt: +// CHECK: ![[SP]] = distinct !DISubprogram(name: "GroupRule", {{.*}}isDefinition: true |