1 /* $NetBSD: msg_380.c,v 1.2 2024/06/22 06:24:46 rillig Exp $ */ 2 # 3 "msg_380.c" 3 4 // Test for message: lossy conversion of %Lg to '%s', arg #%d [380] 5 6 /* lint1-extra-flags: -X 351 */ 7 8 void take_s32(int); 9 void take_u32(unsigned int); 10 void take_s64(long long); 11 void take_u64(unsigned long long); 12 13 void 14 conversions(void) 15 { 16 /* expect+1: warning: lossy conversion of -2.14748e+09 to 'int', arg #1 [380] */ 17 take_s32(-2147483649.0); 18 take_s32(-2147483648.0); 19 /* expect+1: warning: lossy conversion of 3.141 to 'int', arg #1 [380] */ 20 take_s32(3.141); 21 take_s32(2147483647.0); 22 /* expect+1: warning: lossy conversion of 2.14748e+09 to 'int', arg #1 [380] */ 23 take_s32(2147483648.0); 24 25 /* expect+1: warning: lossy conversion of -1 to 'unsigned int', arg #1 [380] */ 26 take_u32(-1.0); 27 take_u32(-0.0); 28 take_u32(0.0); 29 /* expect+1: warning: lossy conversion of 3.141 to 'unsigned int', arg #1 [380] */ 30 take_u32(3.141); 31 take_u32(4294967295.0); 32 /* expect+1: warning: lossy conversion of 4.29497e+09 to 'unsigned int', arg #1 [380] */ 33 take_u32(4294967296.0); 34 35 /* expect+1: warning: lossy conversion of -9.22337e+18 to 'long long', arg #1 [380] */ 36 take_s64(-9223372036854776833.0); 37 /* The constant ...809 is rounded down to ...808, thus no warning. */ 38 take_s64(-9223372036854775809.0); 39 take_s64(-9223372036854775808.0); 40 /* expect+1: warning: lossy conversion of 3.141 to 'long long', arg #1 [380] */ 41 take_s64(3.141); 42 /* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long', arg #1 [380] */ 43 take_s64(9223372036854775807.0); 44 /* expect+1: warning: lossy conversion of 9.22337e+18 to 'long long', arg #1 [380] */ 45 take_s64(9223372036854775808.0); 46 47 /* expect+1: warning: lossy conversion of -1 to 'unsigned long long', arg #1 [380] */ 48 take_u64(-1.0); 49 take_u64(-0.0); 50 take_u64(0.0); 51 /* expect+1: warning: lossy conversion of 3.141 to 'unsigned long long', arg #1 [380] */ 52 take_u64(3.141); 53 54 // Warning on: alpha 55 // No warning on: aarch64 aarch64-compat32 arm i386 mips powerpc riscv64 sh3 sparc x86_64 56 // Unknown: coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax 57 // 58 // warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] 59 //take_u64(18446744073709550591.0); 60 61 // Warning on: aarch64 alpha arm i386 mips riscv64 sparc x86_64 62 // No warning on: aarch64-compat32 powerpc sh3 63 // Unknown: coldfire hppa ia64 m68000 m68k mips64 mipsn64 or1k powerpc64 riscv32 sparc64 vax 64 // 65 // warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] 66 //take_u64(18446744073709550592.0); 67 // warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] 68 //take_u64(18446744073709551615.0); 69 // warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] 70 //take_u64(18446744073709551616.0); 71 } 72