1 /* $NetBSD: msg_351.c,v 1.2 2023/04/22 20:21:13 rillig Exp $ */ 2 # 3 "msg_351.c" 3 4 // Test for message 351: 'extern' declaration of '%s' outside a header [351] 5 6 /* expect+1: warning: 'extern' declaration of 'implicitly_extern_function' outside a header [351] */ 7 void implicitly_extern_function(void); 8 /* expect+1: warning: 'extern' declaration of 'explicitly_extern_function' outside a header [351] */ 9 extern void explicitly_extern_function(void); 10 11 /* expect+1: warning: 'extern' declaration of 'definition' outside a header [351] */ 12 int definition; 13 /* expect+1: warning: 'extern' declaration of 'reference' outside a header [351] */ 14 extern int reference; 15 /* expect+1: warning: static variable 'file_scoped_definition' unused [226] */ 16 static int file_scoped_definition; 17 18 19 # 18 "header.h" 1 3 4 20 static int static_def; 21 int external_def; 22 extern int external_ref; 23 24 static int static_func_def(void); 25 int extern_func_decl(void); 26 extern int extern_func_decl_verbose(void); 27 28 # 29 "msg_351.c" 2 29 /* expect+1: warning: static variable 'static_def' unused [226] */ 30 static int static_def; 31 int external_def; 32 extern int external_ref; 33 34 /* expect+1: warning: static function 'static_func_def' declared but not defined [290] */ 35 static int static_func_def(void); 36 int extern_func_decl(void); 37 extern int extern_func_decl_verbose(void); 38 39 /* FIXME: Don't warn about the identifier starting with '00000'. */ 40 /* expect+2: warning: 'extern' declaration of 'dbl_ptr' outside a header [351] */ 41 /* expect+1: warning: 'extern' declaration of '00000000_tmp' outside a header [351] */ 42 double *dbl_ptr = &(double) { 0.0 }; 43