annotate clang/test/AST/ast-dump-stmt.m @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents 0572611fdcc8
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
207
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
1 // Test without serialization:
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
2 // RUN: %clang_cc1 -Wno-unused -fobjc-arc -fblocks -fobjc-exceptions -ast-dump -ast-dump-filter Test %s \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
3 // RUN: | FileCheck -strict-whitespace %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
4 //
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
5 // Test with serialization:
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
6 // RUN: %clang_cc1 -Wno-unused -fobjc-arc -fblocks -fobjc-exceptions -emit-pch -o %t %s
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
7 // RUN: %clang_cc1 -x objective-c -Wno-unused -fobjc-arc -fblocks -fobjc-exceptions -include-pch %t \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
8 // RUN: -ast-dump-all -ast-dump-filter Test /dev/null \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
9 // RUN: | sed -e "s/ <undeserialized declarations>//" -e "s/ imported//" \
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 173
diff changeset
10 // RUN: | FileCheck -strict-whitespace %s
150
anatofuz
parents:
diff changeset
11
anatofuz
parents:
diff changeset
12 void TestBlockExpr(int x) {
anatofuz
parents:
diff changeset
13 ^{ x; };
anatofuz
parents:
diff changeset
14 }
anatofuz
parents:
diff changeset
15 // CHECK: FunctionDecl{{.*}}TestBlockExpr
anatofuz
parents:
diff changeset
16 // CHECK: BlockExpr{{.*}} 'void (^)(void)'
anatofuz
parents:
diff changeset
17 // CHECK-NEXT: BlockDecl
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 void TestExprWithCleanup(int x) {
anatofuz
parents:
diff changeset
20 ^{ x; };
anatofuz
parents:
diff changeset
21 }
anatofuz
parents:
diff changeset
22 // CHECK: FunctionDecl{{.*}}TestExprWithCleanup
anatofuz
parents:
diff changeset
23 // CHECK: ExprWithCleanups
anatofuz
parents:
diff changeset
24 // CHECK-NEXT: cleanup Block
anatofuz
parents:
diff changeset
25 // CHECK-NEXT: BlockExpr
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 @interface A
anatofuz
parents:
diff changeset
28 @end
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 void TestObjCAtCatchStmt() {
anatofuz
parents:
diff changeset
31 @try {
anatofuz
parents:
diff changeset
32 } @catch(A *a) {
anatofuz
parents:
diff changeset
33 } @catch(...) {
anatofuz
parents:
diff changeset
34 } @finally {
anatofuz
parents:
diff changeset
35 }
anatofuz
parents:
diff changeset
36 }
anatofuz
parents:
diff changeset
37 // CHECK: FunctionDecl{{.*}}TestObjCAtCatchStmt
anatofuz
parents:
diff changeset
38 // CHECK: ObjCAtTryStmt
anatofuz
parents:
diff changeset
39 // CHECK-NEXT: CompoundStmt
anatofuz
parents:
diff changeset
40 // CHECK-NEXT: ObjCAtCatchStmt{{.*}}
anatofuz
parents:
diff changeset
41 // CHECK-NEXT: VarDecl{{.*}}a
anatofuz
parents:
diff changeset
42 // CHECK-NEXT: CompoundStmt
anatofuz
parents:
diff changeset
43 // CHECK-NEXT: ObjCAtCatchStmt{{.*}} catch all
anatofuz
parents:
diff changeset
44 // CHECK-NEXT: CompoundStmt
anatofuz
parents:
diff changeset
45 // CHECK-NEXT: ObjCAtFinallyStmt
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
46
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
47 typedef struct {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
48 id f;
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
49 } S;
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
50
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
51 id TestCompoundLiteral(id a) {
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
52 return ((S){ .f = a }).f;
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
53 }
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
54
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
55 // CHECK: FunctionDecl{{.*}}TestCompoundLiteral
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
56 // CHECK: ExprWithCleanups
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
57 // CHECK-NEXT: cleanup CompoundLiteralExpr
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
58 // CHECK: CompoundLiteralExpr{{.*}}'S':'S' lvalue