11.2Srillig/*	$NetBSD: msg_380.c,v 1.2 2024/06/22 06:24:46 rillig Exp $	*/
21.1Srillig# 3 "msg_380.c"
31.1Srillig
41.1Srillig// Test for message: lossy conversion of %Lg to '%s', arg #%d [380]
51.1Srillig
61.1Srillig/* lint1-extra-flags: -X 351 */
71.1Srillig
81.1Srilligvoid take_s32(int);
91.1Srilligvoid take_u32(unsigned int);
101.1Srilligvoid take_s64(long long);
111.1Srilligvoid take_u64(unsigned long long);
121.1Srillig
131.1Srilligvoid
141.1Srilligconversions(void)
151.1Srillig{
161.1Srillig	/* expect+1: warning: lossy conversion of -2.14748e+09 to 'int', arg #1 [380] */
171.1Srillig	take_s32(-2147483649.0);
181.1Srillig	take_s32(-2147483648.0);
191.1Srillig	/* expect+1: warning: lossy conversion of 3.141 to 'int', arg #1 [380] */
201.1Srillig	take_s32(3.141);
211.1Srillig	take_s32(2147483647.0);
221.1Srillig	/* expect+1: warning: lossy conversion of 2.14748e+09 to 'int', arg #1 [380] */
231.1Srillig	take_s32(2147483648.0);
241.1Srillig
251.1Srillig	/* expect+1: warning: lossy conversion of -1 to 'unsigned int', arg #1 [380] */
261.1Srillig	take_u32(-1.0);
271.1Srillig	take_u32(-0.0);
281.1Srillig	take_u32(0.0);
291.1Srillig	/* expect+1: warning: lossy conversion of 3.141 to 'unsigned int', arg #1 [380] */
301.1Srillig	take_u32(3.141);
311.1Srillig	take_u32(4294967295.0);
321.1Srillig	/* expect+1: warning: lossy conversion of 4.29497e+09 to 'unsigned int', arg #1 [380] */
331.1Srillig	take_u32(4294967296.0);
341.1Srillig
351.1Srillig	/* expect+1: warning: lossy conversion of -9.22337e+18 to 'long long', arg #1 [380] */
361.1Srillig	take_s64(-9223372036854776833.0);
371.1Srillig	/* The constant ...809 is rounded down to ...808, thus no warning. */
381.1Srillig	take_s64(-9223372036854775809.0);
391.1Srillig	take_s64(-9223372036854775808.0);
401.1Srillig	/* expect+1: warning: lossy conversion of 3.141 to 'long long', arg #1 [380] */
411.1Srillig	take_s64(3.141);
421.1Srillig	/* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long', arg #1 [380] */
431.1Srillig	take_s64(9223372036854775807.0);
441.1Srillig	/* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long', arg #1 [380] */
451.1Srillig	take_s64(9223372036854775808.0);
461.1Srillig
471.1Srillig	/* expect+1: warning: lossy conversion of -1 to 'unsigned long long', arg #1 [380] */
481.1Srillig	take_u64(-1.0);
491.1Srillig	take_u64(-0.0);
501.1Srillig	take_u64(0.0);
511.1Srillig	/* expect+1: warning: lossy conversion of 3.141 to 'unsigned long long', arg #1 [380] */
521.1Srillig	take_u64(3.141);
531.2Srillig
541.2Srillig	// Warning on:		alpha
551.2Srillig	// No warning on:	aarch64 aarch64-compat32 arm i386 mips powerpc riscv64 sh3 sparc x86_64
561.2Srillig	// Unknown:		coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax
571.2Srillig	//
581.2Srillig	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380]
591.2Srillig	//take_u64(18446744073709550591.0);
601.2Srillig
611.2Srillig	// Warning on:		aarch64 alpha arm i386 mips riscv64 sparc x86_64
621.2Srillig	// No warning on:	aarch64-compat32 powerpc sh3
631.2Srillig	// Unknown:		coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax
641.2Srillig	//
651.2Srillig	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380]
661.2Srillig	//take_u64(18446744073709550592.0);
671.2Srillig	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380]
681.2Srillig	//take_u64(18446744073709551615.0);
691.2Srillig	// warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380]
701.2Srillig	//take_u64(18446744073709551616.0);
711.1Srillig}
72