13883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher// RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
23883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
33883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher/* This testcase doesn't actually test a bug, it's just the result of me
43883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher * figuring out the syntax for forward declaring a static variable. */
53883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct list {
63883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher  int x;
73883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher  struct list *Next;
83883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher};
93883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
103883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstatic struct list B;  /* Forward declare static */
113883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstatic struct list A = { 7, &B };
123883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstatic struct list B = { 8, &A };
133883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
143883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherextern struct list D;  /* forward declare normal var */
153883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
163883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct list C = { 7, &D };
173883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopherstruct list D = { 8, &C };
183883e66cfd55de70d89831cf26f9ae53931d11d3Eric Christopher
19