1a8f2362307b436023095e66efd678ae591c02184Anna Zaks// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix -verify %s
28e8fb3be5bd78f0564444eca02b404566a5f3b5dAndy Gibbs// expected-no-diagnostics
3a8f2362307b436023095e66efd678ae591c02184Anna Zaks
4a8f2362307b436023095e66efd678ae591c02184Anna Zaksint printf(const char *restrict,...);
5a8f2362307b436023095e66efd678ae591c02184Anna Zaks
6a8f2362307b436023095e66efd678ae591c02184Anna Zaks// Testing core functionality of the region store.
7a8f2362307b436023095e66efd678ae591c02184Anna Zaks// radar://10127782
8a8f2362307b436023095e66efd678ae591c02184Anna Zaksint compoundLiteralTest() {
9a8f2362307b436023095e66efd678ae591c02184Anna Zaks    int index = 0;
10a8f2362307b436023095e66efd678ae591c02184Anna Zaks    for (index = 0; index < 2; index++) {
11a8f2362307b436023095e66efd678ae591c02184Anna Zaks        int thing = (int []){0, 1}[index];
12a8f2362307b436023095e66efd678ae591c02184Anna Zaks        printf("thing: %i\n", thing);
13a8f2362307b436023095e66efd678ae591c02184Anna Zaks    }
14a8f2362307b436023095e66efd678ae591c02184Anna Zaks    return 0;
15a8f2362307b436023095e66efd678ae591c02184Anna Zaks}
16a8f2362307b436023095e66efd678ae591c02184Anna Zaks
17a8f2362307b436023095e66efd678ae591c02184Anna Zaksint compoundLiteralTest2() {
18a8f2362307b436023095e66efd678ae591c02184Anna Zaks    int index = 0;
19a8f2362307b436023095e66efd678ae591c02184Anna Zaks    for (index = 0; index < 3; index++) {
20a8f2362307b436023095e66efd678ae591c02184Anna Zaks        int thing = (int [][3]){{0,0,0}, {1,1,1}, {2,2,2}}[index][index];
21a8f2362307b436023095e66efd678ae591c02184Anna Zaks        printf("thing: %i\n", thing);
22a8f2362307b436023095e66efd678ae591c02184Anna Zaks    }
23a8f2362307b436023095e66efd678ae591c02184Anna Zaks    return 0;
24a8f2362307b436023095e66efd678ae591c02184Anna Zaks}
25