Clang Project

clang_source_code/test/Import/cxx-for-range/test.cpp
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
56void expr() {
57  f();
58}
59