• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 %s -emit-llvm-only -verify
2 // PR5489
3 
4 template<typename E>
5 struct Bar {
6  int x_;
7 };
8 
9 static struct Bar<int> bar[1] = {
10   { 0 }
11 };
12 
13 
14 
15 namespace incomplete_type_refs {
16   struct A;
17   extern A g[];
18   void foo(A*);
f(void)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 
f2()27   A *f2() {
28     return &g[1];
29   }
30 
31 }
32 
33 namespace PR10395 {
34   struct T;
35   extern T x[];
f()36   T* f() { return x; }
37 }
38 
39 namespace PR10384 {
40   struct X;
41   extern X x[1];
f()42   X* f() { return x; }
43 }
44