29 lines · cpp
1// RUN: %clang_cc1 -x c++ -std=c++23 -debug-info-kind=limited -emit-llvm < %s | FileCheck %s2 3// CHECK: !DISubprogram(name: "bar",4// CHECK-SAME: flags: DIFlagPrototyped5// CHECK: !DIDerivedType(tag: DW_TAG_pointer_type6// CHECK-SAME: flags: DIFlagArtificial | DIFlagObjectPointer7//8// CHECK: !DISubprogram(name: "explicit_this",9// flags: DIFlagPrototyped10//11// CHECK: !DIDerivedType(tag: DW_TAG_rvalue_reference_type12// CHECK-SAME: flags: DIFlagObjectPointer)13//14// CHECK: !DILocalVariable(name: "this", arg: 115// CHECK-SAME: flags: DIFlagArtificial | DIFlagObjectPointer16//17// CHECK-NOT: DIFlagArtificial18// CHECK: !DILocalVariable(arg: 1, {{.*}}, flags: DIFlagObjectPointer)19 20struct Foo {21 void bar() {}22 void explicit_this(this Foo &&) {}23};24 25void f() {26 Foo{}.bar();27 Foo{}.explicit_this();28}29