Wed May 1 05:38:11 2024 UTC (19d)
lint: demonstrate wrong warning about out-of-range bit-field


(rillig)
diff -r1.38 -r1.39 src/tests/usr.bin/xlint/lint1/msg_132.c

cvs diff -r1.38 -r1.39 src/tests/usr.bin/xlint/lint1/msg_132.c (expand / switch to unified diff)

--- src/tests/usr.bin/xlint/lint1/msg_132.c 2024/03/25 23:39:14 1.38
+++ src/tests/usr.bin/xlint/lint1/msg_132.c 2024/05/01 05:38:11 1.39
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: msg_132.c,v 1.38 2024/03/25 23:39:14 rillig Exp $ */ 1/* $NetBSD: msg_132.c,v 1.39 2024/05/01 05:38:11 rillig Exp $ */
2# 3 "msg_132.c" 2# 3 "msg_132.c"
3 3
4// Test for message: conversion from '%s' to '%s' may lose accuracy [132] 4// Test for message: conversion from '%s' to '%s' may lose accuracy [132]
5 5
6/* lint1-extra-flags: -X 351 */ 6/* lint1-extra-flags: -X 351 */
7 7
8/* 8/*
9 * NetBSD's default lint flags only include a single -a, which only flags 9 * NetBSD's default lint flags only include a single -a, which only flags
10 * narrowing conversions from long. To get warnings for all narrowing 10 * narrowing conversions from long. To get warnings for all narrowing
11 * conversions, -a needs to be given more than once. 11 * conversions, -a needs to be given more than once.
12 * 12 *
13 * https://gnats.netbsd.org/14531 13 * https://gnats.netbsd.org/14531
14 */ 14 */
@@ -439,14 +439,17 @@ binary_operators_on_bit_fields(void) @@ -439,14 +439,17 @@ binary_operators_on_bit_fields(void)
439{ 439{
440 struct { 440 struct {
441 u64_t u15:15; 441 u64_t u15:15;
442 u64_t u48:48; 442 u64_t u48:48;
443 u64_t u64; 443 u64_t u64;
444 } s = { 0, 0, 0 }; 444 } s = { 0, 0, 0 };
445 445
446 u64 = s.u15 | s.u48; 446 u64 = s.u15 | s.u48;
447 u64 = s.u48 | s.u15; 447 u64 = s.u48 | s.u15;
448 u64 = s.u15 | s.u48 | s.u64; 448 u64 = s.u15 | s.u48 | s.u64;
449 u64 = s.u64 | s.u48 | s.u15; 449 u64 = s.u64 | s.u48 | s.u15;
450 cond = (s.u15 | s.u48 | s.u64) != 0; 450 cond = (s.u15 | s.u48 | s.u64) != 0;
451 cond = (s.u64 | s.u48 | s.u15) != 0; 451 cond = (s.u64 | s.u48 | s.u15) != 0;
 452
 453 /* expect+1: warning: conversion of 'int' to 'int:4' is out of range [119] */
 454 s32 = 8 - bits.u3;
452} 455}