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