// Test without serialization: // RUN: %clang_cc1 -std=c23 -fdefer-ts -ast-dump %s -triple x86_64-linux-gnu \ // RUN: | FileCheck %s // // Test with serialization: // RUN: %clang_cc1 -std=c23 -fdefer-ts -triple x86_64-linux-gnu -emit-pch -o %t %s // RUN: %clang_cc1 -std=c23 -fdefer-ts -triple x86_64-linux-gnu -include-pch %t -ast-dump-all /dev/null \ // RUN: | FileCheck %s static inline void f() { _Defer 3; _Defer { 4; } _Defer _Defer if (true) {} } // CHECK-LABEL: f 'void (void)' static inline // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: |-DeferStmt {{.*}} // CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 3 // CHECK-NEXT: |-DeferStmt {{.*}} // CHECK-NEXT: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 4 // CHECK-NEXT: `-DeferStmt {{.*}} // CHECK-NEXT: `-DeferStmt {{.*}} // CHECK-NEXT: `-IfStmt {{.*}} // CHECK-NEXT: |-CXXBoolLiteralExpr {{.*}} 'bool' true // CHECK-NEXT: `-CompoundStmt {{.*}}