1 // RUN: %clang_cc1 -ast-dump -ast-dump-filter Test %s | FileCheck -strict-whitespace %s
4 // CHECK: VarDecl{{.*}}TestLocation
5 // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} <col:20> 'int' 0
7 int TestIndent = 1 + (1);
8 // CHECK: VarDecl{{.*}}TestIndent
9 // CHECK-NEXT: {{^}}`-BinaryOperator{{[^()]*$}}
10 // CHECK-NEXT: {{^}} |-IntegerLiteral{{.*0[^()]*$}}
11 // CHECK-NEXT: {{^}} `-ParenExpr{{.*0[^()]*$}}
12 // CHECK-NEXT: {{^}} `-IntegerLiteral{{.*0[^()]*$}}
18 // CHECK: FunctionDecl{{.*}}TestDeclStmt
19 // CHECK-NEXT: CompoundStmt
20 // CHECK-NEXT: DeclStmt
21 // CHECK-NEXT: VarDecl{{.*}}x
22 // CHECK-NEXT: IntegerLiteral
23 // CHECK-NEXT: DeclStmt
24 // CHECK-NEXT: VarDecl{{.*}}y
25 // CHECK-NEXT: VarDecl{{.*}}z
27 int TestOpaqueValueExpr = 0 ?: 1;
28 // CHECK: VarDecl{{.*}}TestOpaqueValueExpr
29 // CHECK-NEXT: BinaryConditionalOperator
30 // CHECK-NEXT: IntegerLiteral
31 // CHECK-NEXT: OpaqueValueExpr
32 // CHECK-NEXT: IntegerLiteral
33 // CHECK-NEXT: OpaqueValueExpr
\r
34 // CHECK-NEXT: IntegerLiteral
\r
35 // CHECK-NEXT: IntegerLiteral
\r
37 void TestUnaryOperatorExpr(void) {
\r
43 // CHECK: UnaryOperator{{.*}}postfix '++' cannot overflow
\r
44 // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char'
\r
45 // CHECK-NOT: UnaryOperator{{.*}}postfix '++' cannot overflow
\r
46 // CHECK: DeclRefExpr{{.*}}'T2' 'int'
\r
50 // CHECK: UnaryOperator{{.*}}prefix '-' cannot overflow
\r
51 // CHECK-NEXT: ImplicitCastExpr
\r
52 // CHECK-NEXT: ImplicitCastExpr
\r
53 // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char'
\r
54 // CHECK-NOT: UnaryOperator{{.*}}prefix '-' cannot overflow
\r
55 // CHECK: ImplicitCastExpr
\r
56 // CHECK: DeclRefExpr{{.*}}'T2' 'int'
\r
60 // CHECK: UnaryOperator{{.*}}prefix '~' cannot overflow
\r
61 // CHECK-NEXT: ImplicitCastExpr
\r
62 // CHECK-NEXT: ImplicitCastExpr
\r
63 // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char'
\r
64 // CHECK: UnaryOperator{{.*}}prefix '~' cannot overflow
\r
65 // CHECK-NEXT: ImplicitCastExpr
\r
66 // CHECK-NEXT: DeclRefExpr{{.*}}'T2' 'int'
\r