1 // RUN: %clang_cc1 -verify %s
2 
3 struct S; // expected-note 2{{forward declaration of 'S'}}
4 extern S a;
5 extern S f(); // expected-note {{'f' declared here}}
6 extern void g(S a);
7 
8 void h() {
9   g(a); // expected-error {{argument type 'S' is incomplete}}
10   f(); // expected-error {{calling 'f' with incomplete return type 'S'}}
11 }
12