1*e4d178a7SBruno Ricci // Test without serialization:
2*e4d178a7SBruno Ricci // RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -ast-dump %s \
3*e4d178a7SBruno Ricci // RUN: | FileCheck %s
4*e4d178a7SBruno Ricci //
5*e4d178a7SBruno Ricci // Test with serialization:
6*e4d178a7SBruno Ricci // RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -emit-pch -o %t %s
7*e4d178a7SBruno Ricci // RUN: %clang_cc1 -x c++ -triple x86_64-unknown-unknown -Wno-unused-value \
8*e4d178a7SBruno Ricci // RUN: -include-pch %t -ast-dump-all /dev/null \
9*e4d178a7SBruno Ricci // RUN: | FileCheck %s
10*e4d178a7SBruno Ricci 
11*e4d178a7SBruno Ricci // Make sure that the Stmt * for the body of the LambdaExpr is
12*e4d178a7SBruno Ricci // equal to the Stmt * for the body of the call operator.
Test0()13*e4d178a7SBruno Ricci void Test0() {
14*e4d178a7SBruno Ricci   []() {
15*e4d178a7SBruno Ricci     return 42;
16*e4d178a7SBruno Ricci   };
17*e4d178a7SBruno Ricci }
18*e4d178a7SBruno Ricci 
19*e4d178a7SBruno Ricci // CHECK: FunctionDecl {{.*}} Test0
20*e4d178a7SBruno Ricci //
21*e4d178a7SBruno Ricci // CHECK: CXXMethodDecl {{.*}} operator() 'int () const' inline
22*e4d178a7SBruno Ricci // CHECK-NEXT: CompoundStmt 0x[[TMP0:.*]]
23*e4d178a7SBruno Ricci // CHECK: IntegerLiteral {{.*}} 'int' 42
24*e4d178a7SBruno Ricci //
25*e4d178a7SBruno Ricci // CHECK: CompoundStmt 0x[[TMP0]]
26*e4d178a7SBruno Ricci // Check: IntegerLiteral {{.*}} 'int' 42
27*e4d178a7SBruno Ricci 
Test1()28*e4d178a7SBruno Ricci void Test1() {
29*e4d178a7SBruno Ricci   [](auto x) { return x; };
30*e4d178a7SBruno Ricci }
31*e4d178a7SBruno Ricci 
32*e4d178a7SBruno Ricci // CHECK: FunctionDecl {{.*}} Test1
33*e4d178a7SBruno Ricci //
34*e4d178a7SBruno Ricci // CHECK: CXXMethodDecl {{.*}} operator() 'auto (auto) const' inline
35*e4d178a7SBruno Ricci // CHECK-NEXT: ParmVarDecl {{.*}} referenced x 'auto'
36*e4d178a7SBruno Ricci // CHECK-NEXT: CompoundStmt 0x[[TMP1:.*]]
37*e4d178a7SBruno Ricci // CHECK: DeclRefExpr {{.*}} 'x' 'auto'
38*e4d178a7SBruno Ricci //
39*e4d178a7SBruno Ricci // CHECK: CompoundStmt 0x[[TMP1]]
40*e4d178a7SBruno Ricci // CHECK: DeclRefExpr {{.*}} 'x' 'auto'
41