Module Name: src Committed By: rillig Date: Sat Nov 23 16:48:35 UTC 2024
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/xlint/lint1: msg_153.c t_usage.sh src/usr.bin/xlint/lint1: err.c tree.c Added Files: src/tests/usr.bin/xlint/lint1: msg_383.c Log Message: lint: use separate message when discarding a qualifier in call To generate a diff of this commit: cvs rdiff -u -r1.1346 -r1.1347 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.8 -r1.9 src/tests/usr.bin/xlint/lint1/msg_153.c cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/msg_383.c cvs rdiff -u -r1.23 -r1.24 src/tests/usr.bin/xlint/lint1/t_usage.sh cvs rdiff -u -r1.254 -r1.255 src/usr.bin/xlint/lint1/err.c cvs rdiff -u -r1.659 -r1.660 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/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.1346 src/distrib/sets/lists/tests/mi:1.1347 --- src/distrib/sets/lists/tests/mi:1.1346 Sun Nov 10 15:57:32 2024 +++ src/distrib/sets/lists/tests/mi Sat Nov 23 16:48:35 2024 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1346 2024/11/10 15:57:32 riastradh Exp $ +# $NetBSD: mi,v 1.1347 2024/11/23 16:48:35 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -7589,6 +7589,7 @@ ./usr/tests/usr.bin/xlint/lint1/msg_380.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/msg_381.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/msg_382.c tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/xlint/lint1/msg_383.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/op_colon.c tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/xlint/lint1/op_colon.exp tests-obsolete obsolete,atf ./usr/tests/usr.bin/xlint/lint1/op_shl_lp64.c tests-usr.bin-tests compattestfile,atf Index: src/tests/usr.bin/xlint/lint1/msg_153.c diff -u src/tests/usr.bin/xlint/lint1/msg_153.c:1.8 src/tests/usr.bin/xlint/lint1/msg_153.c:1.9 --- src/tests/usr.bin/xlint/lint1/msg_153.c:1.8 Sat Nov 23 00:01:48 2024 +++ src/tests/usr.bin/xlint/lint1/msg_153.c Sat Nov 23 16:48:35 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_153.c,v 1.8 2024/11/23 00:01:48 rillig Exp $ */ +/* $NetBSD: msg_153.c,v 1.9 2024/11/23 16:48:35 rillig Exp $ */ # 3 "msg_153.c" // Test for message: converting '%s' to incompatible '%s' for argument %d [153] @@ -31,8 +31,8 @@ qualifiers(char *ptr, const volatile cha { sink_qualifiers(ptr, ptr, ptr, ptr); - /* expect+3: warning: converting 'pointer to const volatile char' to incompatible 'pointer to char' for argument 1 [153] */ - /* expect+2: warning: converting 'pointer to const volatile char' to incompatible 'pointer to const char' for argument 2 [153] */ - /* expect+1: warning: converting 'pointer to const volatile char' to incompatible 'pointer to volatile char' for argument 3 [153] */ + /* expect+3: warning: passing 'pointer to const volatile char' to argument 1 discards 'const volatile' [383] */ + /* expect+2: warning: passing 'pointer to const volatile char' to argument 2 discards 'volatile' [383] */ + /* expect+1: warning: passing 'pointer to const volatile char' to argument 3 discards 'const' [383] */ sink_qualifiers(cvptr, cvptr, cvptr, cvptr); } Index: src/tests/usr.bin/xlint/lint1/t_usage.sh diff -u src/tests/usr.bin/xlint/lint1/t_usage.sh:1.23 src/tests/usr.bin/xlint/lint1/t_usage.sh:1.24 --- src/tests/usr.bin/xlint/lint1/t_usage.sh:1.23 Wed Jul 10 20:33:38 2024 +++ src/tests/usr.bin/xlint/lint1/t_usage.sh Sat Nov 23 16:48:35 2024 @@ -1,4 +1,4 @@ -# $NetBSD: t_usage.sh,v 1.23 2024/07/10 20:33:38 rillig Exp $ +# $NetBSD: t_usage.sh,v 1.24 2024/11/23 16:48:35 rillig Exp $ # # Copyright (c) 2023 The NetBSD Foundation, Inc. # All rights reserved. @@ -39,13 +39,13 @@ suppress_messages_body() # The largest known message. atf_check \ - "$lint1" -X 382 code.c /dev/null + "$lint1" -X 383 code.c /dev/null # Larger than the largest known message. atf_check \ -s 'exit:1' \ - -e "inline:lint1: invalid message ID '383'\n" \ - "$lint1" -X 383 code.c /dev/null + -e "inline:lint1: invalid message ID '384'\n" \ + "$lint1" -X 384 code.c /dev/null # Whitespace is not allowed before a message ID. atf_check \ Index: src/usr.bin/xlint/lint1/err.c diff -u src/usr.bin/xlint/lint1/err.c:1.254 src/usr.bin/xlint/lint1/err.c:1.255 --- src/usr.bin/xlint/lint1/err.c:1.254 Sat Nov 23 00:01:48 2024 +++ src/usr.bin/xlint/lint1/err.c Sat Nov 23 16:48:35 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: err.c,v 1.254 2024/11/23 00:01:48 rillig Exp $ */ +/* $NetBSD: err.c,v 1.255 2024/11/23 16:48:35 rillig Exp $ */ /* * Copyright (c) 1994, 1995 Jochen Pohl @@ -37,7 +37,7 @@ #include <sys/cdefs.h> #if defined(__RCSID) -__RCSID("$NetBSD: err.c,v 1.254 2024/11/23 00:01:48 rillig Exp $"); +__RCSID("$NetBSD: err.c,v 1.255 2024/11/23 16:48:35 rillig Exp $"); #endif #include <limits.h> @@ -438,6 +438,7 @@ static const char *const msgs[] = { "lossy conversion of %Lg to '%s', arg #%d", // 380 "lossy conversion of %Lg to '%s'", // 381 "constant assignment of type '%s' in operand of '!' always evaluates to '%s'", // 382 + "passing '%s' to argument %d discards '%s'", // 383 }; static bool is_suppressed[sizeof(msgs) / sizeof(msgs[0])]; Index: src/usr.bin/xlint/lint1/tree.c diff -u src/usr.bin/xlint/lint1/tree.c:1.659 src/usr.bin/xlint/lint1/tree.c:1.660 --- src/usr.bin/xlint/lint1/tree.c:1.659 Sat Nov 23 00:01:48 2024 +++ src/usr.bin/xlint/lint1/tree.c Sat Nov 23 16:48:35 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: tree.c,v 1.659 2024/11/23 00:01:48 rillig Exp $ */ +/* $NetBSD: tree.c,v 1.660 2024/11/23 16:48:35 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.659 2024/11/23 00:01:48 rillig Exp $"); +__RCSID("$NetBSD: tree.c,v 1.660 2024/11/23 16:48:35 rillig Exp $"); #endif #include <float.h> @@ -2845,7 +2845,7 @@ check_unconst_function(const type_t *lst static bool check_assign_void_pointer_compat(op_t op, int arg, - const type_t *ltp, tspec_t lt, + tspec_t lt, const type_t *lstp, tspec_t lst, const tnode_t *rn, const type_t *rtp, tspec_t rt, @@ -2870,9 +2870,8 @@ check_assign_void_pointer_compat(op_t op qualifiers + 1, type_name(rtp)); break; case FARG: - /* converting '%s' to incompatible '%s' ... */ - warning(153, - type_name(rtp), type_name(ltp), arg); + /* passing '%s' to argument %d discards '%s' */ + warning(383, type_name(rtp), arg, qualifiers + 1); break; default: /* operator '%s' discards '%s' from '%s' */ @@ -2996,7 +2995,7 @@ check_assign_types_compatible(op_t op, i check_assign_void_pointer(op, arg, lt, lst, rt, rst); if (check_assign_void_pointer_compat(op, arg, - ltp, lt, lstp, lst, rn, rtp, rt, rstp, rst)) + lt, lstp, lst, rn, rtp, rt, rstp, rst)) return true; if (check_assign_pointer_integer(op, arg, ltp, lt, rtp, rt)) Added files: Index: src/tests/usr.bin/xlint/lint1/msg_383.c diff -u /dev/null src/tests/usr.bin/xlint/lint1/msg_383.c:1.1 --- /dev/null Sat Nov 23 16:48:35 2024 +++ src/tests/usr.bin/xlint/lint1/msg_383.c Sat Nov 23 16:48:35 2024 @@ -0,0 +1,27 @@ +/* $NetBSD: msg_383.c,v 1.1 2024/11/23 16:48:35 rillig Exp $ */ +# 3 "msg_383.c" + +// Test for message: passing '%s' to argument %d discards '%s' [383] + +/* lint1-extra-flags: -X 351 */ + +void sink_char(char *, const char *, volatile char *, const volatile char *); +void sink_int(int *, const int *, volatile int *, const volatile int *); + +void +caller(const volatile char *cvcp, const volatile int *cvip, int (*fn)(void)) +{ + /* expect+3: warning: passing 'pointer to const volatile char' to argument 1 discards 'const volatile' [383] */ + /* expect+2: warning: passing 'pointer to const volatile char' to argument 2 discards 'volatile' [383] */ + /* expect+1: warning: passing 'pointer to const volatile char' to argument 3 discards 'const' [383] */ + sink_char(cvcp, cvcp, cvcp, cvcp); + /* expect+3: warning: passing 'pointer to const volatile int' to argument 1 discards 'const volatile' [383] */ + /* expect+2: warning: passing 'pointer to const volatile int' to argument 2 discards 'volatile' [383] */ + /* expect+1: warning: passing 'pointer to const volatile int' to argument 3 discards 'const' [383] */ + sink_int(cvip, cvip, cvip, cvip); + /* expect+4: warning: converting 'pointer to function(void) returning int' to incompatible 'pointer to char' for argument 1 [153] */ + /* expect+3: warning: converting 'pointer to function(void) returning int' to incompatible 'pointer to const char' for argument 2 [153] */ + /* expect+2: warning: converting 'pointer to function(void) returning int' to incompatible 'pointer to volatile char' for argument 3 [153] */ + /* expect+1: warning: converting 'pointer to function(void) returning int' to incompatible 'pointer to const volatile char' for argument 4 [153] */ + sink_char(fn, fn, fn, fn); +}