1 // RUN: %clang_cc1 -Wmissing-variable-declarations -fsyntax-only -verify %s
2 
3 int vbad1; // expected-warning{{no previous extern declaration for non-static variable 'vbad1'}}
4 // expected-note@-1{{declare 'static' if the variable is not intended to be used outside of this translation unit}}
5 
6 int vbad2;
7 int vbad2 = 10; // expected-warning{{no previous extern declaration for non-static variable 'vbad2'}}
8 // expected-note@-1{{declare 'static' if the variable is not intended to be used outside of this translation unit}}
9 
10 struct { // expected-note{{declare 'static' if the variable is not intended to be used outside of this translation unit}}
11   int mgood1;
12 } vbad3; // expected-warning{{no previous extern declaration for non-static variable 'vbad3'}}
13 
14 int vbad4;
15 int vbad4 = 10; // expected-warning{{no previous extern declaration for non-static variable 'vbad4'}}
16 // expected-note@-1{{declare 'static' if the variable is not intended to be used outside of this translation unit}}
17 extern int vbad4;
18 
19 extern int vgood1;
20 int vgood1;
21 int vgood1 = 10;
22