// Test without serialization: // RUN: %clang_cc1 -std=c2y -ast-dump %s \ // RUN: | FileCheck -strict-whitespace %s // // Test with serialization: // RUN: %clang_cc1 -std=c2y -emit-pch -o %t %s // RUN: %clang_cc1 -x c -std=c2y -include-pch %t -ast-dump-all /dev/null \ // RUN: | sed -e "s/ //" -e "s/ imported//" \ // RUN: | FileCheck -strict-whitespace %s void TestLabeledBreakContinue() { a: while (true) { break a; continue a; c: for (;;) { break a; continue a; break c; } } } // CHECK-LABEL: `-FunctionDecl {{.*}} TestLabeledBreakContinue // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: `-LabelStmt {{.*}} 'a' // CHECK-NEXT: `-WhileStmt {{.*}} // CHECK-NEXT: |-CXXBoolLiteralExpr {{.*}} 'bool' true // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: |-BreakStmt {{.*}} 'a' (WhileStmt {{.*}}) // CHECK-NEXT: |-ContinueStmt {{.*}} 'a' (WhileStmt {{.*}}) // CHECK-NEXT: `-LabelStmt {{.*}} 'c' // CHECK-NEXT: `-ForStmt {{.*}} // CHECK-NEXT: |-<<>> // CHECK-NEXT: |-<<>> // CHECK-NEXT: |-<<>> // CHECK-NEXT: |-<<>> // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: |-BreakStmt {{.*}} 'a' (WhileStmt {{.*}}) // CHECK-NEXT: |-ContinueStmt {{.*}} 'a' (WhileStmt {{.*}}) // CHECK-NEXT: `-BreakStmt {{.*}} 'c' (ForStmt {{.*}})