msg_380.c revision 1.1
1/*	$NetBSD: msg_380.c,v 1.1 2024/06/09 10:27:39 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
8void take_s32(int);
9void take_u32(unsigned int);
10void take_s64(long long);
11void take_u64(unsigned long long);
12
13void
14conversions(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	take_u64(18446744073709550591.0);
54	/* expect+1: warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] */
55	take_u64(18446744073709550592.0);
56	/* expect+1: warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] */
57	take_u64(18446744073709551615.0);
58	/* expect+1: warning: lossy conversion of 1.84467e+19 to 'unsigned long long', arg #1 [380] */
59	take_u64(18446744073709551616.0);
60}
61