Why is this an issue?
A complete declaration of the structure or union shall be included within any translation unit that refers to that structure. See section 18.104.22.168
of ISO 9899:1990  for a full description of incomplete types.
Noncompliant code example
struct tnode * pt; // tnode is incomplete
struct tnode * pt; // tnode is incomplete at this point
struct tnode * left;
struct tnode * right;
}; // type tnode is now complete
- MISRA C:2004, 18.1 - All structure and union types shall be complete at the end of a translation unit.