1 // RUN: clang-cc -triple i386-unknown-unknown -emit-llvm %s -o %t && 2 3 void f1() { 4 // Scalars in braces. 5 int a = { 1 }; 6 } 7 8 void f2() { 9 int a[2][2] = { { 1, 2 }, { 3, 4 } }; 10 int b[3][3] = { { 1, 2 }, { 3, 4 } }; 11 int *c[2] = { &a[1][1], &b[2][2] }; 12 int *d[2][2] = { {&a[1][1], &b[2][2]}, {&a[0][0], &b[1][1]} }; 13 int *e[3][3] = { {&a[1][1], &b[2][2]}, {&a[0][0], &b[1][1]} }; 14 char ext[3][3] = {".Y",".U",".V"}; 15 } 16 17 typedef void (* F)(void); 18 extern void foo(void); 19 struct S { F f; }; 20 void f3() { 21 struct S a[1] = { { foo } }; 22 } 23 24 // Constants 25 // RUN: grep '@g3 = constant i32 10' %t && 26 // RUN: grep '@f4.g4 = internal constant i32 12' %t 27 const int g3 = 10; 28 int f4() { 29 static const int g4 = 12; 30 return g4; 31 } 32