Home | History | Annotate | Line # | Download | only in lint1
msg_351.c revision 1.4
      1  1.4  rillig /*	$NetBSD: msg_351.c,v 1.4 2023/04/25 19:00:57 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_351.c"
      3  1.1  rillig 
      4  1.4  rillig // Test for message 351: missing%s header declaration for '%s' [351]
      5  1.1  rillig 
      6  1.4  rillig /*
      7  1.4  rillig  * Warn about variable definitions or function definitions that are visible
      8  1.4  rillig  * outside the current translation unit but do not have a previous
      9  1.4  rillig  * declaration in a header file.
     10  1.4  rillig  *
     11  1.4  rillig  * All symbols that are used across translation units should be declared in a
     12  1.4  rillig  * header file, to ensure consistent types.
     13  1.4  rillig  *
     14  1.4  rillig  * Since the storage class 'extern' is redundant for functions but not for
     15  1.4  rillig  * objects, omit it for functions.
     16  1.4  rillig  *
     17  1.4  rillig  * https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmissing-declarations
     18  1.4  rillig  */
     19  1.4  rillig 
     20  1.4  rillig /* expect+1: warning: missing header declaration for 'implicitly_extern_function' [351] */
     21  1.1  rillig void implicitly_extern_function(void);
     22  1.4  rillig /* expect+1: warning: missing header declaration for 'explicitly_extern_function' [351] */
     23  1.1  rillig extern void explicitly_extern_function(void);
     24  1.1  rillig 
     25  1.4  rillig /* expect+1: warning: missing 'extern' header declaration for 'definition' [351] */
     26  1.1  rillig int definition;
     27  1.4  rillig /* expect+1: warning: missing 'extern' header declaration for 'reference' [351] */
     28  1.1  rillig extern int reference;
     29  1.1  rillig /* expect+1: warning: static variable 'file_scoped_definition' unused [226] */
     30  1.1  rillig static int file_scoped_definition;
     31  1.1  rillig 
     32  1.1  rillig 
     33  1.1  rillig # 18 "header.h" 1 3 4
     34  1.1  rillig static int static_def;
     35  1.1  rillig int external_def;
     36  1.1  rillig extern int external_ref;
     37  1.1  rillig 
     38  1.1  rillig static int static_func_def(void);
     39  1.1  rillig int extern_func_decl(void);
     40  1.1  rillig extern int extern_func_decl_verbose(void);
     41  1.1  rillig 
     42  1.1  rillig # 29 "msg_351.c" 2
     43  1.1  rillig /* expect+1: warning: static variable 'static_def' unused [226] */
     44  1.1  rillig static int static_def;
     45  1.1  rillig int external_def;
     46  1.1  rillig extern int external_ref;
     47  1.1  rillig 
     48  1.1  rillig /* expect+1: warning: static function 'static_func_def' declared but not defined [290] */
     49  1.1  rillig static int static_func_def(void);
     50  1.1  rillig int extern_func_decl(void);
     51  1.1  rillig extern int extern_func_decl_verbose(void);
     52  1.2  rillig 
     53  1.4  rillig /* expect+1: warning: missing 'extern' header declaration for 'dbl_ptr' [351] */
     54  1.2  rillig double *dbl_ptr = &(double) { 0.0 };
     55