Module Name: src Committed By: rillig Date: Sat Jun 24 17:50:31 UTC 2023
Modified Files: src/tests/usr.bin/xlint/lint1: msg_230.c msg_230_uchar.c src/usr.bin/xlint/lint1: tree.c Log Message: lint: don't warn about comparison between char and character constant To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/tests/usr.bin/xlint/lint1/msg_230.c cvs rdiff -u -r1.11 -r1.12 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c cvs rdiff -u -r1.529 -r1.530 src/usr.bin/xlint/lint1/tree.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/xlint/lint1/msg_230.c diff -u src/tests/usr.bin/xlint/lint1/msg_230.c:1.12 src/tests/usr.bin/xlint/lint1/msg_230.c:1.13 --- src/tests/usr.bin/xlint/lint1/msg_230.c:1.12 Wed Feb 22 22:30:40 2023 +++ src/tests/usr.bin/xlint/lint1/msg_230.c Sat Jun 24 17:50:31 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_230.c,v 1.12 2023/02/22 22:30:40 rillig Exp $ */ +/* $NetBSD: msg_230.c,v 1.13 2023/06/24 17:50:31 rillig Exp $ */ # 3 "msg_230.c" // Test for message: nonportable character comparison '%s' [230] @@ -113,18 +113,12 @@ compare_greater(char c) return; } +/* Comparing a char expression with a character constant is always valid. */ void compare_with_character_literal(char ch) { - /* - * FIXME: These comparisons are portable since the character constant - * is interpreted using the type 'char' on the exact same platform - * as where the comparison takes place. - */ - /* expect+1: warning: nonportable character comparison '== -128' [230] */ if (ch == '\200') return; - /* expect+1: warning: nonportable character comparison '== -1' [230] */ if (ch == '\377') return; if (ch == '\000') Index: src/tests/usr.bin/xlint/lint1/msg_230_uchar.c diff -u src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.11 src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.12 --- src/tests/usr.bin/xlint/lint1/msg_230_uchar.c:1.11 Mon Feb 27 21:59:14 2023 +++ src/tests/usr.bin/xlint/lint1/msg_230_uchar.c Sat Jun 24 17:50:31 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_230_uchar.c,v 1.11 2023/02/27 21:59:14 rillig Exp $ */ +/* $NetBSD: msg_230_uchar.c,v 1.12 2023/06/24 17:50:31 rillig Exp $ */ # 3 "msg_230_uchar.c" // Test for message: nonportable character comparison '%s' [230] @@ -117,18 +117,12 @@ compare_greater(char c) return; } +/* Comparing a char expression with a character constant is always valid. */ void compare_with_character_literal(char ch) { - /* - * FIXME: These comparisons are portable since the character constant - * is interpreted using the type 'char' on the exact same platform - * as where the comparison takes place. - */ - /* expect+1: warning: nonportable character comparison '== 128' [230] */ if (ch == '\200') return; - /* expect+1: warning: nonportable character comparison '== 255' [230] */ if (ch == '\377') return; if (ch == '\000') Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.529 src/usr.bin/xlint/lint1/tree.c:1.530 --- src/usr.bin/xlint/lint1/tree.c:1.529 Sat Jun 24 08:11:12 2023 +++ src/usr.bin/xlint/lint1/tree.c Sat Jun 24 17:50:31 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.529 2023/06/24 08:11:12 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.530 2023/06/24 17:50:31 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: tree.c,v 1.529 2023/06/24 08:11:12 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.530 2023/06/24 17:50:31 rillig Exp $"); #endif #include <float.h> @@ -580,6 +580,7 @@ static bool is_out_of_char_range(const tnode_t *tn) { return tn->tn_op == CON && + !tn->tn_val->v_char_constant && !(0 <= tn->tn_val->v_quad && tn->tn_val->v_quad < 1 << (CHAR_SIZE - 1)); }