1*9e211f35Srillig /* $NetBSD: msg_352.c,v 1.3 2024/03/01 17:22:55 rillig Exp $ */ 2d0a5c1bcSrillig # 3 "msg_352.c" 3d0a5c1bcSrillig 4*9e211f35Srillig // Test for message: nested 'extern' declaration of '%s' [352] 5d0a5c1bcSrillig 6d0a5c1bcSrillig /* 7d0a5c1bcSrillig * C allows to declare external functions or objects inside function bodies, 8d0a5c1bcSrillig * which invites inconsistent types. 9d0a5c1bcSrillig * 10d0a5c1bcSrillig * Instead, any external functions or objects should be declared in headers. 11d0a5c1bcSrillig */ 12d0a5c1bcSrillig 13e6298b92Srillig /* lint1-extra-flags: -X 351 */ 14e6298b92Srillig 15d0a5c1bcSrillig int function(void)16d0a5c1bcSrilligfunction(void) 17d0a5c1bcSrillig { 18d0a5c1bcSrillig /* expect+1: warning: nested 'extern' declaration of 'external_func' [352] */ 19d0a5c1bcSrillig extern int external_func(void); 20d0a5c1bcSrillig /* expect+1: warning: nested 'extern' declaration of 'external_var' [352] */ 21d0a5c1bcSrillig extern int external_var; 22d0a5c1bcSrillig 23d0a5c1bcSrillig return external_func() + external_var; 24d0a5c1bcSrillig } 25