title: Undeclared struct causes no warnings
body: <p>The following code compiles fine without any warnings on gcc.</p>
  
  <p>Note that there's no forward declaration for the struct. Is this valid C and/or C++ code?</p>
  
  <pre><code>struct Foobar* f;
  struct Foobar* fun() { return 0; }
  
  int main() { f = 0; fun(); return 0; }
  </code></pre>