1// RUN: %clang_cc1 %s -emit-llvm-only -verify 2// PR5489 3 4template<typename E> 5struct Bar { 6 int x_; 7}; 8 9static struct Bar<int> bar[1] = { 10 { 0 } 11}; 12 13 14 15namespace incomplete_type_refs { 16 struct A; 17 extern A g[]; 18 void foo(A*); 19 void f(void) { 20 foo(g); // Reference to array with unknown element type. 21 } 22 23 struct A { // define the element type. 24 int a,b,c; 25 }; 26 27 A *f2() { 28 return &g[1]; 29 } 30 31} 32 33namespace PR10395 { 34 struct T; 35 extern T x[]; 36 T* f() { return x; } 37} 38 39namespace PR10384 { 40 struct X; 41 extern X x[1]; 42 X* f() { return x; } 43} 44