msg_132.c revision 1.4 1 1.4 rillig /* $NetBSD: msg_132.c,v 1.4 2021/04/06 21:10:37 rillig Exp $ */
2 1.1 rillig # 3 "msg_132.c"
3 1.1 rillig
4 1.1 rillig // Test for message: conversion from '%s' to '%s' may lose accuracy [132]
5 1.1 rillig
6 1.3 rillig /*
7 1.3 rillig * NetBSD's default lint flags only include a single -a, which only flags
8 1.3 rillig * narrowing conversions from long. To get warnings for all narrowing
9 1.3 rillig * conversions, -aa needs to be given more than once.
10 1.3 rillig *
11 1.3 rillig * https://gnats.netbsd.org/14531
12 1.3 rillig */
13 1.3 rillig
14 1.3 rillig /* lint1-extra-flags: -aa */
15 1.3 rillig
16 1.3 rillig typedef unsigned char u8;
17 1.3 rillig typedef unsigned short u16;
18 1.3 rillig typedef unsigned int u32;
19 1.3 rillig typedef unsigned long long u64;
20 1.3 rillig
21 1.3 rillig typedef signed char i8;
22 1.3 rillig typedef signed short i16;
23 1.3 rillig typedef signed int i32;
24 1.3 rillig typedef signed long long i64;
25 1.3 rillig
26 1.3 rillig void
27 1.3 rillig convert_unsigned(u8 v8, u16 v16, u32 v32, u64 v64)
28 1.3 rillig {
29 1.3 rillig v8 = v16; /* expect: 132 */
30 1.3 rillig v8 = v32; /* expect: 132 */
31 1.3 rillig v8 = v64; /* expect: 132 */
32 1.3 rillig
33 1.3 rillig v16 = v8;
34 1.3 rillig v16 = v32; /* expect: 132 */
35 1.3 rillig v16 = v64; /* expect: 132 */
36 1.3 rillig
37 1.3 rillig v32 = v8;
38 1.3 rillig v32 = v16;
39 1.3 rillig v32 = v64; /* expect: 132 */
40 1.3 rillig
41 1.3 rillig v64 = v8;
42 1.3 rillig v64 = v16;
43 1.3 rillig v64 = v32;
44 1.3 rillig }
45 1.3 rillig
46 1.3 rillig void
47 1.3 rillig convert_signed(i8 v8, i16 v16, i32 v32, i64 v64)
48 1.3 rillig {
49 1.3 rillig v8 = v16; /* expect: 132 */
50 1.3 rillig v8 = v32; /* expect: 132 */
51 1.3 rillig v8 = v64; /* expect: 132 */
52 1.3 rillig
53 1.3 rillig v16 = v8;
54 1.3 rillig v16 = v32; /* expect: 132 */
55 1.3 rillig v16 = v64; /* expect: 132 */
56 1.3 rillig
57 1.3 rillig v32 = v8;
58 1.3 rillig v32 = v16;
59 1.3 rillig v32 = v64; /* expect: 132 */
60 1.3 rillig
61 1.3 rillig v64 = v8;
62 1.3 rillig v64 = v16;
63 1.3 rillig v64 = v32;
64 1.3 rillig }
65 1.4 rillig
66 1.4 rillig _Bool
67 1.4 rillig to_bool(long a, long b)
68 1.4 rillig {
69 1.4 rillig /* seen in fp_lib.h, function wideRightShiftWithSticky */
70 1.4 rillig return a | b; /* expect: 132 *//*FIXME*/
71 1.4 rillig }
72