1// RUN: %clang_cc1 -triple arm64 %s -verify -emit-llvm -o - -Wno-c99-designator | FileCheck %s
2// expected-no-diagnostics
3
4// Make sure we don't enter an infinite loop (rdar://21942503)
5
6int vals1[] = {
7  [__objc_yes] = 1,
8  [__objc_no] = 2
9};
10// CHECK: @vals1 ={{.*}} global [2 x i32] [i32 2, i32 1]
11
12int vals2[] = {
13  [true] = 3,
14  [false] = 4
15};
16// CHECK: @vals2 ={{.*}} global [2 x i32] [i32 4, i32 3]
17
18int vals3[] = {
19  [false] = 1,
20  [true] = 2,
21  5
22};
23// CHECK: @vals3 ={{.*}} global [3 x i32] [i32 1, i32 2, i32 5]
24
25int vals4[2] = {
26  [true] = 5,
27  [false] = 6
28};
29// CHECK: @vals4 ={{.*}} global [2 x i32] [i32 6, i32 5]
30
31int vals5[3] = {
32  [false] = 1,
33  [true] = 2,
34  6
35};
36// CHECK: @vals5 ={{.*}} global [3 x i32] [i32 1, i32 2, i32 6]
37
38enum SomeEnum : unsigned char {
39  blah = 255
40};
41char vals6[] = {
42  [blah] = 'a'
43};
44// CHECK: @vals6 ={{.*}} global [256 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a"
45