yronglin bb770f0df5
[Clang] Dump the rewritten sub-expressions in CXXDefaultArgExpr/CXXDefaultInitExpr (#80001)
This patch dump the rewritten sub-expressions in `CXXDefaultArgExpr` and
`CXXDefaultInitExpr`.
This machinery is useful for checking whether the materialized
temporaries is lifetime-extended in the sub-AST of `CXXDefaultArgExpr`
(`CXXDefaultInitExpr` has not been lifetime extendend now).

Signed-off-by: yronglin <yronglin777@gmail.com>
2024-01-31 06:33:21 +08:00

29 lines
698 B
C++

// RUN: clang-import-test -dump-ast -import %S/Inputs/S.cpp -expression %s | FileCheck %s
// CHECK: CXXCtorInitializer
// CHECK-SAME: 'int_member'
// CHECK-SAME: 'int'
// CHECK-NEXT: CXXDefaultInitExpr
// CHECK-SAME: 'int'
// CHECK-NEXT: IntegerLiteral
// CHECK-SAME: 'int'
// CHECK-NEXT: CXXCtorInitializer
// CHECK-SAME: 'float_member'
// CHECK-SAME: 'float'
// CHECK-NEXT: CXXDefaultInitExpr
// CHECK-SAME: 'float'
// CHECK-NEXT: FloatingLiteral
// CHECK-SAME: 'float'
// CHECK-NEXT: CXXCtorInitializer
// CHECK-SAME: 'class_member'
// CHECK-SAME: 'Foo'
// CHECK-NEXT: CXXDefaultInitExpr
// CHECK-SAME: 'Foo'
// CHECK-NEXT: ExprWithCleanups
// CHECK-SAME: 'Foo'
void expr() {
struct S s;
}