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