aboutsummaryrefslogtreecommitdiff
path: root/test/Misc/ast-dump-stmt.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/Misc/ast-dump-stmt.m')
-rw-r--r--test/Misc/ast-dump-stmt.m36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/Misc/ast-dump-stmt.m b/test/Misc/ast-dump-stmt.m
new file mode 100644
index 0000000000..8dfee74ab5
--- /dev/null
+++ b/test/Misc/ast-dump-stmt.m
@@ -0,0 +1,36 @@
+// RUN: %clang_cc1 -Wno-unused -fblocks -fobjc-exceptions -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
+
+void TestBlockExpr(int x) {
+ ^{ x; };
+}
+// CHECK: Dumping TestBlockExpr
+// CHECK: BlockExpr{{.*}} decl=
+// CHECK-NEXT: capture ParmVar
+// CHECK-NEXT: CompoundStmt
+
+void TestExprWithCleanup(int x) {
+ ^{ x; };
+}
+// CHECK: Dumping TestExprWithCleanup
+// CHECK: ExprWithCleanups
+// CHECK-NEXT: cleanup Block
+// CHECK-NEXT: BlockExpr
+
+@interface A
+@end
+
+void TestObjCAtCatchStmt() {
+ @try {
+ } @catch(A *a) {
+ } @catch(...) {
+ } @finally {
+ }
+}
+// CHECK: Dumping TestObjCAtCatchStmt
+// CHECK: ObjCAtTryStmt
+// CHECK-NEXT: CompoundStmt
+// CHECK-NEXT: ObjCAtCatchStmt{{.*}} catch parm = "A *a"
+// CHECK-NEXT: CompoundStmt
+// CHECK-NEXT: ObjCAtCatchStmt{{.*}} catch all
+// CHECK-NEXT: CompoundStmt
+// CHECK-NEXT: ObjCAtFinallyStmt