xref: /netbsd-src/tests/usr.bin/xlint/lint1/msg_381.c (revision 57e16347b374ef90adc72ea7505ed41c5b59cf3a)
1*57e16347Srillig /*	$NetBSD: msg_381.c,v 1.2 2024/06/22 06:24:46 rillig Exp $	*/
20f4cfb31Srillig # 3 "msg_381.c"
30f4cfb31Srillig 
40f4cfb31Srillig // Test for message: lossy conversion of %Lg to '%s' [381]
50f4cfb31Srillig 
60f4cfb31Srillig /* lint1-extra-flags: -X 351 */
70f4cfb31Srillig 
80f4cfb31Srillig int s32;
90f4cfb31Srillig unsigned int u32;
100f4cfb31Srillig long long s64;
110f4cfb31Srillig unsigned long long u64;
120f4cfb31Srillig 
130f4cfb31Srillig void
conversions(void)140f4cfb31Srillig conversions(void)
150f4cfb31Srillig {
160f4cfb31Srillig 	/* expect+1: warning: lossy conversion of -2.14748e+09 to 'int' [381] */
170f4cfb31Srillig 	s32 = -2147483649.0;
180f4cfb31Srillig 	s32 = -2147483648.0;
190f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 3.141 to 'int' [381] */
200f4cfb31Srillig 	s32 = 3.141;
210f4cfb31Srillig 	s32 = 2147483647.0;
220f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 2.14748e+09 to 'int' [381] */
230f4cfb31Srillig 	s32 = 2147483648.0;
240f4cfb31Srillig 
250f4cfb31Srillig 	/* expect+1: warning: lossy conversion of -1 to 'unsigned int' [381] */
260f4cfb31Srillig 	u32 = -1.0;
270f4cfb31Srillig 	u32 = -0.0;
280f4cfb31Srillig 	u32 = 0.0;
290f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 3.141 to 'unsigned int' [381] */
300f4cfb31Srillig 	u32 = 3.141;
310f4cfb31Srillig 	u32 = 4294967295.0;
320f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 4.29497e+09 to 'unsigned int' [381] */
330f4cfb31Srillig 	u32 = 4294967296.0;
340f4cfb31Srillig 
350f4cfb31Srillig 	/* expect+1: warning: lossy conversion of -9.22337e+18 to 'long long' [381] */
360f4cfb31Srillig 	s64 = -9223372036854776833.0;
370f4cfb31Srillig 	/* The constant ...809 is rounded down to ...808, thus no warning. */
380f4cfb31Srillig 	s64 = -9223372036854775809.0;
390f4cfb31Srillig 	s64 = -9223372036854775808.0;
400f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 3.141 to 'long long' [381] */
410f4cfb31Srillig 	s64 = 3.141;
420f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long' [381] */
430f4cfb31Srillig 	s64 = 9223372036854775807.0;
440f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long' [381] */
450f4cfb31Srillig 	s64 = 9223372036854775808.0;
460f4cfb31Srillig 
470f4cfb31Srillig 	/* expect+1: warning: lossy conversion of -1 to 'unsigned long long' [381] */
480f4cfb31Srillig 	u64 = -1.0;
490f4cfb31Srillig 	u64 = -0.0;
500f4cfb31Srillig 	u64 = 0.0;
510f4cfb31Srillig 	/* expect+1: warning: lossy conversion of 3.141 to 'unsigned long long' [381] */
520f4cfb31Srillig 	u64 = 3.141;
53*57e16347Srillig 
54*57e16347Srillig 	// Warning on:		alpha
55*57e16347Srillig 	// No warning on:	aarch64 aarch64-compat32 arm i386 mips powerpc riscv64 sh3 sparc x86_64
56*57e16347Srillig 	// Unknown:		coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax
57*57e16347Srillig 	//
58*57e16347Srillig 	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long' [381]
59*57e16347Srillig 	//u64 = 18446744073709550591.0;
60*57e16347Srillig 
61*57e16347Srillig 	// Warning on:		aarch64 alpha arm i386 mips riscv64 sparc x86_64
62*57e16347Srillig 	// No warning on:	aarch64-compat32 powerpc sh3
63*57e16347Srillig 	// Unknown:		coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax
64*57e16347Srillig 	//
65*57e16347Srillig 	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long' [381]
66*57e16347Srillig 	//u64 = 18446744073709550592.0;
67*57e16347Srillig 	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long' [381]
68*57e16347Srillig 	//u64 = 18446744073709551615.0;
69*57e16347Srillig 	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long' [381]
70*57e16347Srillig 	//u64 = 18446744073709551616.0;
710f4cfb31Srillig }
72