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)140f4cfb31Srilligconversions(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