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);
+}