1 1.3 rillig /* $NetBSD: msg_132.c,v 1.3 2021/02/28 21:39:17 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