Module Name: src
Committed By: rillig
Date: Wed Mar 27 19:28:21 UTC 2024
Modified Files:
src/tests/usr.bin/xlint/lint1: msg_167.c msg_168.c msg_187.c msg_199.c
msg_200.c platform_ilp32.c
src/usr.bin/xlint/lint1: err.c func.c init.c tree.c
Log Message:
lint: don't use 'long' in diagnostics
The size of 'long' differs between 64-bit and 32-bit platforms.
Eliminate this possible platform-dependency.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_167.c \
src/tests/usr.bin/xlint/lint1/msg_187.c \
src/tests/usr.bin/xlint/lint1/msg_200.c
cvs rdiff -u -r1.10 -r1.11 src/tests/usr.bin/xlint/lint1/msg_168.c
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_199.c \
src/tests/usr.bin/xlint/lint1/platform_ilp32.c
cvs rdiff -u -r1.233 -r1.234 src/usr.bin/xlint/lint1/err.c
cvs rdiff -u -r1.184 -r1.185 src/usr.bin/xlint/lint1/func.c
cvs rdiff -u -r1.263 -r1.264 src/usr.bin/xlint/lint1/init.c
cvs rdiff -u -r1.626 -r1.627 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_167.c
diff -u src/tests/usr.bin/xlint/lint1/msg_167.c:1.5 src/tests/usr.bin/xlint/lint1/msg_167.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_167.c:1.5 Fri Jul 7 19:45:22 2023
+++ src/tests/usr.bin/xlint/lint1/msg_167.c Wed Mar 27 19:28:20 2024
@@ -1,7 +1,7 @@
-/* $NetBSD: msg_167.c,v 1.5 2023/07/07 19:45:22 rillig Exp $ */
+/* $NetBSD: msg_167.c,v 1.6 2024/03/27 19:28:20 rillig Exp $ */
# 3 "msg_167.c"
-// Test for message: array subscript cannot be negative: %ld [167]
+// Test for message: array subscript cannot be negative: %jd [167]
/* lint1-extra-flags: -X 351 */
Index: src/tests/usr.bin/xlint/lint1/msg_187.c
diff -u src/tests/usr.bin/xlint/lint1/msg_187.c:1.5 src/tests/usr.bin/xlint/lint1/msg_187.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_187.c:1.5 Tue Mar 28 14:44:35 2023
+++ src/tests/usr.bin/xlint/lint1/msg_187.c Wed Mar 27 19:28:20 2024
@@ -1,7 +1,7 @@
-/* $NetBSD: msg_187.c,v 1.5 2023/03/28 14:44:35 rillig Exp $ */
+/* $NetBSD: msg_187.c,v 1.6 2024/03/27 19:28:20 rillig Exp $ */
# 3 "msg_187.c"
-// Test for message: string literal too long (%lu) for target array (%lu) [187]
+// Test for message: string literal too long (%ju) for target array (%ju) [187]
/* lint1-extra-flags: -X 351 */
Index: src/tests/usr.bin/xlint/lint1/msg_200.c
diff -u src/tests/usr.bin/xlint/lint1/msg_200.c:1.5 src/tests/usr.bin/xlint/lint1/msg_200.c:1.6
--- src/tests/usr.bin/xlint/lint1/msg_200.c:1.5 Sun Jul 9 11:01:27 2023
+++ src/tests/usr.bin/xlint/lint1/msg_200.c Wed Mar 27 19:28:20 2024
@@ -1,7 +1,7 @@
-/* $NetBSD: msg_200.c,v 1.5 2023/07/09 11:01:27 rillig Exp $ */
+/* $NetBSD: msg_200.c,v 1.6 2024/03/27 19:28:20 rillig Exp $ */
# 3 "msg_200.c"
-// Test for message: duplicate case '%lu' in switch [200]
+// Test for message: duplicate case '%ju' in switch [200]
/* lint1-extra-flags: -X 351 */
Index: src/tests/usr.bin/xlint/lint1/msg_168.c
diff -u src/tests/usr.bin/xlint/lint1/msg_168.c:1.10 src/tests/usr.bin/xlint/lint1/msg_168.c:1.11
--- src/tests/usr.bin/xlint/lint1/msg_168.c:1.10 Tue Mar 28 14:44:35 2023
+++ src/tests/usr.bin/xlint/lint1/msg_168.c Wed Mar 27 19:28:20 2024
@@ -1,7 +1,7 @@
-/* $NetBSD: msg_168.c,v 1.10 2023/03/28 14:44:35 rillig Exp $ */
+/* $NetBSD: msg_168.c,v 1.11 2024/03/27 19:28:20 rillig Exp $ */
# 3 "msg_168.c"
-// Test for message: array subscript cannot be > %d: %ld [168]
+// Test for message: array subscript cannot be > %d: %jd [168]
/* lint1-extra-flags: -X 351 */
Index: src/tests/usr.bin/xlint/lint1/msg_199.c
diff -u src/tests/usr.bin/xlint/lint1/msg_199.c:1.4 src/tests/usr.bin/xlint/lint1/msg_199.c:1.5
--- src/tests/usr.bin/xlint/lint1/msg_199.c:1.4 Sun Jul 9 11:01:27 2023
+++ src/tests/usr.bin/xlint/lint1/msg_199.c Wed Mar 27 19:28:20 2024
@@ -1,7 +1,7 @@
-/* $NetBSD: msg_199.c,v 1.4 2023/07/09 11:01:27 rillig Exp $ */
+/* $NetBSD: msg_199.c,v 1.5 2024/03/27 19:28:20 rillig Exp $ */
# 3 "msg_199.c"
-// Test for message: duplicate case '%ld' in switch [199]
+// Test for message: duplicate case '%jd' in switch [199]
/* lint1-extra-flags: -X 351 */
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32.c
diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32.c:1.4 src/tests/usr.bin/xlint/lint1/platform_ilp32.c:1.5
--- src/tests/usr.bin/xlint/lint1/platform_ilp32.c:1.4 Mon Feb 27 23:07:53 2023
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32.c Wed Mar 27 19:28:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: platform_ilp32.c,v 1.4 2023/02/27 23:07:53 rillig Exp $ */
+/* $NetBSD: platform_ilp32.c,v 1.5 2024/03/27 19:28:20 rillig Exp $ */
# 3 "platform_ilp32.c"
/*
@@ -10,7 +10,37 @@
* platform_ilp32_long.c
*/
-/* lint1-extra-flags: -c -h -a -p -b -r -z */
+/* lint1-extra-flags: -c -h -a -p -b -r -z -X 351 */
/* lint1-only-if: ilp32 */
-typedef int do_not_warn_about_empty_translation_unit;
+void
+switch_s64(long long x)
+{
+ switch (x) {
+ case 0x222200000001:
+ case 0x333300000001:
+ /* expect+1: error: duplicate case '37529424232449' in switch [199] */
+ case 0x222200000001:
+ case -0x7fffffffffffffff:
+ /* expect+1: error: duplicate case '-9223372036854775807' in switch [199] */
+ case -0x7fffffffffffffff:
+ break;
+ }
+}
+
+void
+switch_u64(unsigned long long x)
+{
+ switch (x) {
+ case 0x222200000001:
+ case 0x333300000001:
+ /* expect+1: error: duplicate case '37529424232449' in switch [200] */
+ case 0x222200000001:
+ /* expect+1: warning: conversion of negative constant to unsigned type [222] */
+ case -0x7fffffffffffffff:
+ /* expect+2: warning: conversion of negative constant to unsigned type [222] */
+ /* expect+1: error: duplicate case '9223372036854775809' in switch [200] */
+ case -0x7fffffffffffffff:
+ break;
+ }
+}
Index: src/usr.bin/xlint/lint1/err.c
diff -u src/usr.bin/xlint/lint1/err.c:1.233 src/usr.bin/xlint/lint1/err.c:1.234
--- src/usr.bin/xlint/lint1/err.c:1.233 Mon Mar 25 22:37:43 2024
+++ src/usr.bin/xlint/lint1/err.c Wed Mar 27 19:28:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: err.c,v 1.233 2024/03/25 22:37:43 rillig Exp $ */
+/* $NetBSD: err.c,v 1.234 2024/03/27 19:28:20 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.233 2024/03/25 22:37:43 rillig Exp $");
+__RCSID("$NetBSD: err.c,v 1.234 2024/03/27 19:28:20 rillig Exp $");
#endif
#include <limits.h>
@@ -222,8 +222,8 @@ static const char *const msgs[] = {
"assignment of negative constant to unsigned type", // 164
"constant truncated by assignment", // 165
"precision lost in bit-field assignment", // 166
- "array subscript cannot be negative: %ld", // 167
- "array subscript cannot be > %d: %ld", // 168
+ "array subscript cannot be negative: %jd", // 167
+ "array subscript cannot be > %d: %jd", // 168
"precedence confusion possible: parenthesize!", // 169
"first operand of '?' must have scalar type", // 170
"cannot assign to '%s' from '%s'", // 171
@@ -242,7 +242,7 @@ static const char *const msgs[] = {
"illegal combination of '%s' and '%s'", // 184
"cannot initialize '%s' from '%s'", // 185
"bit-field initialization is illegal in traditional C", // 186
- "string literal too long (%lu) for target array (%lu)", // 187
+ "string literal too long (%ju) for target array (%ju)", // 187
"no automatic aggregate initialization in traditional C", // 188
"", /* no longer used */ // 189
"empty array declaration for '%s'", // 190
@@ -254,8 +254,8 @@ static const char *const msgs[] = {
"case label affected by conversion", // 196
"non-constant case expression", // 197
"non-integral case expression", // 198
- "duplicate case '%ld' in switch", // 199
- "duplicate case '%lu' in switch", // 200
+ "duplicate case '%jd' in switch", // 199
+ "duplicate case '%ju' in switch", // 200
"default outside switch", // 201
"duplicate default in switch", // 202
"case label must be of type 'int' in traditional C", // 203
Index: src/usr.bin/xlint/lint1/func.c
diff -u src/usr.bin/xlint/lint1/func.c:1.184 src/usr.bin/xlint/lint1/func.c:1.185
--- src/usr.bin/xlint/lint1/func.c:1.184 Sat Mar 9 13:54:47 2024
+++ src/usr.bin/xlint/lint1/func.c Wed Mar 27 19:28:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: func.c,v 1.184 2024/03/09 13:54:47 rillig Exp $ */
+/* $NetBSD: func.c,v 1.185 2024/03/27 19:28:20 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID)
-__RCSID("$NetBSD: func.c,v 1.184 2024/03/09 13:54:47 rillig Exp $");
+__RCSID("$NetBSD: func.c,v 1.185 2024/03/27 19:28:20 rillig Exp $");
#endif
#include <stdlib.h>
@@ -442,11 +442,11 @@ check_duplicate_case_label(control_state
if (i < n) {
if (is_uinteger(nv->v_tspec))
- /* duplicate case '%lu' in switch */
- error(200, (unsigned long)nv->u.integer);
+ /* duplicate case '%ju' in switch */
+ error(200, (uintmax_t)nv->u.integer);
else
- /* duplicate case '%ld' in switch */
- error(199, (long)nv->u.integer);
+ /* duplicate case '%jd' in switch */
+ error(199, (intmax_t)nv->u.integer);
return false;
}
Index: src/usr.bin/xlint/lint1/init.c
diff -u src/usr.bin/xlint/lint1/init.c:1.263 src/usr.bin/xlint/lint1/init.c:1.264
--- src/usr.bin/xlint/lint1/init.c:1.263 Sat Mar 9 13:54:47 2024
+++ src/usr.bin/xlint/lint1/init.c Wed Mar 27 19:28:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: init.c,v 1.263 2024/03/09 13:54:47 rillig Exp $ */
+/* $NetBSD: init.c,v 1.264 2024/03/27 19:28:20 rillig Exp $ */
/*
* Copyright (c) 1994, 1995 Jochen Pohl
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID)
-__RCSID("$NetBSD: init.c,v 1.263 2024/03/09 13:54:47 rillig Exp $");
+__RCSID("$NetBSD: init.c,v 1.264 2024/03/27 19:28:20 rillig Exp $");
#endif
#include <stdlib.h>
@@ -835,8 +835,8 @@ initialization_add_designator_subscript(
}
if (!tp->t_incomplete_array && subscript >= (size_t)tp->u.dimension) {
- /* array subscript cannot be > %d: %ld */
- error(168, tp->u.dimension - 1, (long)subscript);
+ /* array subscript cannot be > %d: %jd */
+ error(168, tp->u.dimension - 1, (intmax_t)subscript);
subscript = 0; /* suppress further errors */
}
@@ -893,9 +893,8 @@ initialization_init_array_from_string(in
}
if (!tp->t_incomplete_array && (size_t)tp->u.dimension < len)
- /* string literal too long (%lu) for target array (%lu) */
- warning(187, (unsigned long)len,
- (unsigned long)tp->u.dimension);
+ /* string literal too long (%ju) for target array (%ju) */
+ warning(187, (uintmax_t)len, (uintmax_t)tp->u.dimension);
brace_level *bl = in->in_brace_level;
if (bl != NULL && bl->bl_designation.dn_len == 0)
Index: src/usr.bin/xlint/lint1/tree.c
diff -u src/usr.bin/xlint/lint1/tree.c:1.626 src/usr.bin/xlint/lint1/tree.c:1.627
--- src/usr.bin/xlint/lint1/tree.c:1.626 Mon Mar 25 23:39:13 2024
+++ src/usr.bin/xlint/lint1/tree.c Wed Mar 27 19:28:20 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: tree.c,v 1.626 2024/03/25 23:39:13 rillig Exp $ */
+/* $NetBSD: tree.c,v 1.627 2024/03/27 19:28:20 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.626 2024/03/25 23:39:13 rillig Exp $");
+__RCSID("$NetBSD: tree.c,v 1.627 2024/03/27 19:28:20 rillig Exp $");
#endif
#include <float.h>
@@ -4436,11 +4436,11 @@ proceed:;
int dim = arr->tn_type->u.dimension + (taking_address ? 1 : 0);
if (!is_uinteger(idx->tn_type->t_tspec) && con < 0)
- /* array subscript cannot be negative: %ld */
- warning(167, (long)con);
+ /* array subscript cannot be negative: %jd */
+ warning(167, (intmax_t)con);
else if (dim > 0 && (uint64_t)con >= (uint64_t)dim)
- /* array subscript cannot be > %d: %ld */
- warning(168, dim - 1, (long)con);
+ /* array subscript cannot be > %d: %jd */
+ warning(168, dim - 1, (intmax_t)con);
}
static void