1*ecbf2f5fSBruno Ricci // Test without serialization:
2*ecbf2f5fSBruno Ricci // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump %s \
3*ecbf2f5fSBruno Ricci // RUN: | FileCheck --strict-whitespace %s
4*ecbf2f5fSBruno Ricci //
5*ecbf2f5fSBruno Ricci // Test with serialization:
6*ecbf2f5fSBruno Ricci // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-pch -o %t %s
7*ecbf2f5fSBruno Ricci // RUN: %clang_cc1 -x c++ -triple x86_64-unknown-unknown -include-pch %t -ast-dump-all /dev/null \
8*ecbf2f5fSBruno Ricci // RUN: | sed -e "s/ <undeserialized declarations>//" -e "s/ imported//" \
9*ecbf2f5fSBruno Ricci // RUN: | FileCheck --strict-whitespace %s
10765e1a44SStephen Kelly 
11765e1a44SStephen Kelly void testArrayInitExpr()
12765e1a44SStephen Kelly {
13765e1a44SStephen Kelly     int a[10];
14765e1a44SStephen Kelly     auto l = [a]{
15765e1a44SStephen Kelly     };
16765e1a44SStephen Kelly     // CHECK: |-ArrayInitLoopExpr 0x{{[^ ]*}} <col:15> 'int [10]'
17765e1a44SStephen Kelly     // CHECK: |     `-ArrayInitIndexExpr 0x{{[^ ]*}} <<invalid sloc>> 'unsigned long'
18765e1a44SStephen Kelly }
190fa7bf09SStephen Kelly 
200fa7bf09SStephen Kelly template<typename T, int Size>
210fa7bf09SStephen Kelly class array {
220fa7bf09SStephen Kelly   T data[Size];
230fa7bf09SStephen Kelly 
240fa7bf09SStephen Kelly   using array_T_size = T[Size];
250fa7bf09SStephen Kelly   // CHECK: `-DependentSizedArrayType 0x{{[^ ]*}} 'T [Size]' dependent   <col:25, col:30>
260fa7bf09SStephen Kelly };
270fa7bf09SStephen Kelly 
28