1*e6298b92Srillig /* $NetBSD: msg_306.c,v 1.5 2023/07/07 19:45:22 rillig Exp $ */ 2a0a15c14Srillig # 3 "msg_306.c" 3a0a15c14Srillig 440a9b8fdSrillig // Test for message: constant truncated by conversion, op '%s' [306] 5a0a15c14Srillig 6*e6298b92Srillig /* lint1-extra-flags: -X 351 */ 7*e6298b92Srillig 8ec42194bSrillig unsigned char to_u8(void)9ec42194bSrilligto_u8(void) 10ec42194bSrillig { 11ec42194bSrillig /* expect+1: warning: conversion of 'int' to 'unsigned char' is out of range [119] */ 12ec42194bSrillig return 12345; 13ec42194bSrillig } 14ec42194bSrillig 15ec42194bSrillig unsigned char and_u8(unsigned char a)16ec42194bSrilligand_u8(unsigned char a) 17ec42194bSrillig { 18ec42194bSrillig /* XXX: unused bits in constant */ 19ec42194bSrillig return a & 0x1234; 20ec42194bSrillig } 21ec42194bSrillig 22ec42194bSrillig unsigned char or_u8(unsigned char a)23ec42194bSrilligor_u8(unsigned char a) 24ec42194bSrillig { 2540a9b8fdSrillig /* expect+1: warning: constant truncated by conversion, op '|=' [306] */ 26ec42194bSrillig a |= 0x1234; 27ec42194bSrillig 28ec42194bSrillig /* XXX: Lint doesn't care about the expanded form of the same code. */ 29ec42194bSrillig a = a | 0x1234; 30ec42194bSrillig 31ec42194bSrillig return a; 32ec42194bSrillig } 33