xref: /llvm-project/clang/test/Import/cxx-for-range/test.cpp (revision 8baa50013c86c34a58d8327c5d1a043898b86398)
1 // RUN: clang-import-test -dump-ast -import %S/Inputs/F.cpp -expression %s | FileCheck %s
2 
3 // CHECK: CXXForRangeStmt
4 
5 // CHECK-NEXT: DeclStmt
6 // CHECK-NEXT: VarDecl
7 // CHECK-SAME: c 'Container'
8 // CHECK-NEXT: CXXConstructExpr
9 
10 // CHECK-NEXT: DeclStmt
11 // CHECK-NEXT: VarDecl
12 // CHECK-NEXT: DeclRefExpr
13 // CHECK-SAME: 'c'
14 // CHECK-SAME: Container
15 
16 // CHECK-NEXT: DeclStmt
17 // CHECK-NEXT: VarDecl
18 // CHECK-NEXT: CXXMemberCallExpr
19 // CHECK-SAME: 'int *'
20 // CHECK-NEXT: MemberExpr
21 // CHECK-SAME: .begin
22 // CHECK-NEXT: DeclRefExpr
23 // CHECK-SAME: '__range1'
24 // CHECK-SAME: Container
25 
26 // CHECK-NEXT: DeclStmt
27 // CHECK-NEXT: VarDecl
28 // CHECK-NEXT: CXXMemberCallExpr
29 // CHECK-SAME: 'int *'
30 // CHECK-NEXT: MemberExpr
31 // CHECK-SAME: .end
32 // CHECK-NEXT: DeclRefExpr
33 // CHECK-SAME: '__range1'
34 // CHECK-SAME: Container
35 
36 // CHECK-NEXT: BinaryOperator
37 // CHECK-SAME: '!='
38 // CHECK-NEXT: ImplicitCastExpr
39 // CHECK-NEXT: DeclRefExpr
40 // CHECK-SAME: '__begin1'
41 // CHECK-NEXT: ImplicitCastExpr
42 // CHECK-NEXT: DeclRefExpr
43 // CHECK-SAME: '__end1'
44 
45 // CHECK-NEXT: UnaryOperator
46 // CHECK-SAME: '++'
47 // CHECK-NEXT: DeclRefExpr
48 // CHECK-SAME: '__begin1'
49 
50 // CHECK-NEXT: DeclStmt
51 // CHECK-NEXT: VarDecl
52 // CHECK-SAME: varname
53 
54 // CHECK: ReturnStmt
55 
expr()56 void expr() {
57   f();
58 }
59