1*567c9b17Srillig /* $NetBSD: msg_126.c,v 1.9 2024/12/09 22:43:33 rillig Exp $ */ 2a0a15c14Srillig # 3 "msg_126.c" 3a0a15c14Srillig 4f963c8e4Srillig // Test for message: incompatible types '%s' and '%s' in conditional [126] 5a0a15c14Srillig 6*567c9b17Srillig /* lint1-extra-flags: -X 351 -q 1 */ 7e6298b92Srillig 865e5c21bSrillig /* ARGSUSED */ 9*567c9b17Srillig void 10*567c9b17Srillig example(int i, void *ptr, double dbl, void (*return_void)(void)) 11af03d2a0Srillig { 12*567c9b17Srillig /* expect+1: error: incompatible types 'pointer to void' and 'double' in conditional [126] */ 13*567c9b17Srillig i = i > 0 ? ptr : dbl; 14*567c9b17Srillig 15*567c9b17Srillig ptr = i > 0 ? ptr : (void *)0; 16*567c9b17Srillig 17*567c9b17Srillig ptr = i > 0 ? ptr : 0; 18*567c9b17Srillig 19*567c9b17Srillig /* expect+1: implicit conversion from floating point 'double' to integer 'int' [Q1] */ 20*567c9b17Srillig i = i > 0 ? dbl : i; 21*567c9b17Srillig 22*567c9b17Srillig // GCC accepts the 'int/void' mismatch even with -Wall -Wextra -std=c99. 23*567c9b17Srillig /* expect+1: warning: incompatible types 'void' and 'int' in conditional [126] */ 24*567c9b17Srillig i > 0 ? return_void() : 0; 25*567c9b17Srillig 26*567c9b17Srillig i > 0 ? return_void() : (void)0; 27af03d2a0Srillig } 28