1f08c3bdfSopenharmony_ci// This actually isn't allowed in C99, but sparse and gcc will take it: 2f08c3bdfSopenharmony_cienum Foo; 3f08c3bdfSopenharmony_ci 4f08c3bdfSopenharmony_cistatic void 5f08c3bdfSopenharmony_cif (void) 6f08c3bdfSopenharmony_ci{ 7f08c3bdfSopenharmony_ci enum Foo *pefoo; // Pointer to incomplete type 8f08c3bdfSopenharmony_ci struct Foo; // Forward declaration 9f08c3bdfSopenharmony_ci struct Foo *psfoo; // Pointer to incomplete type 10f08c3bdfSopenharmony_ci { 11f08c3bdfSopenharmony_ci struct Foo { int foo; }; // Local definition. 12f08c3bdfSopenharmony_ci struct Foo foo; // variable declaration. 13f08c3bdfSopenharmony_ci foo.foo = 1; 14f08c3bdfSopenharmony_ci } 15f08c3bdfSopenharmony_ci} 16f08c3bdfSopenharmony_ci 17f08c3bdfSopenharmony_cienum Foo { FOO }; 18f08c3bdfSopenharmony_ci/* 19f08c3bdfSopenharmony_ci * check-name: struct namespaces #1 20f08c3bdfSopenharmony_ci */ 21