11.9Srillig/*	$NetBSD: msg_126.c,v 1.9 2024/12/09 22:43:33 rillig Exp $	*/
21.1Srillig# 3 "msg_126.c"
31.1Srillig
41.4Srillig// Test for message: incompatible types '%s' and '%s' in conditional [126]
51.1Srillig
61.9Srillig/* lint1-extra-flags: -X 351 -q 1 */
71.7Srillig
81.6Srillig/* ARGSUSED */
91.9Srilligvoid
101.9Srilligexample(int i, void *ptr, double dbl, void (*return_void)(void))
111.2Srillig{
121.9Srillig	/* expect+1: error: incompatible types 'pointer to void' and 'double' in conditional [126] */
131.9Srillig	i = i > 0 ? ptr : dbl;
141.9Srillig
151.9Srillig	ptr = i > 0 ? ptr : (void *)0;
161.9Srillig
171.9Srillig	ptr = i > 0 ? ptr : 0;
181.9Srillig
191.9Srillig	/* expect+1: implicit conversion from floating point 'double' to integer 'int' [Q1] */
201.9Srillig	i = i > 0 ? dbl : i;
211.9Srillig
221.9Srillig	// GCC accepts the 'int/void' mismatch even with -Wall -Wextra -std=c99.
231.9Srillig	/* expect+1: warning: incompatible types 'void' and 'int' in conditional [126] */
241.9Srillig	i > 0 ? return_void() : 0;
251.9Srillig
261.9Srillig	i > 0 ? return_void() : (void)0;
271.2Srillig}
28