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