Module Name: src
Committed By: rillig
Date: Sun Sep 26 03:18:00 UTC 2021
Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/usr.bin/xlint/lint1: Makefile t_integration.sh
Added Files:
src/tests/usr.bin/xlint/lint1: platform_ilp32.c platform_ilp32.exp
platform_int.c platform_int.exp platform_ldbl128.c
platform_ldbl128.exp platform_ldbl64.c platform_ldbl64.exp
platform_ldbl96.c platform_ldbl96.exp platform_long.c
platform_long.exp platform_lp64.c platform_lp64.exp
platform_schar.c platform_schar.exp platform_uchar.c
platform_uchar.exp
Log Message:
tests/lint: add tests for platform characteristics
Running lint in usr.bin/make on i386 fails due to this warning:
cond.c(800): warning: argument #3 is converted from 'unsigned char' to
'unsigned int' due to prototype [259]
This warning only occurred on i386 but not on sparc or x86_64. Try to
reproduce the test situation in platform_int.
The platform code in t_integration.sh was not strict enough, it didn't
check for multiple conditions, such as in msg_132_ilp32. That test was
only supposed to run on ILP32 platforms where size_t is unsigned int. It
also ran on sparc, even though size_t is long there.
To generate a diff of this commit:
cvs rdiff -u -r1.1129 -r1.1130 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.112 -r1.113 src/tests/usr.bin/xlint/lint1/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/platform_ilp32.c \
src/tests/usr.bin/xlint/lint1/platform_ilp32.exp \
src/tests/usr.bin/xlint/lint1/platform_int.c \
src/tests/usr.bin/xlint/lint1/platform_int.exp \
src/tests/usr.bin/xlint/lint1/platform_ldbl128.c \
src/tests/usr.bin/xlint/lint1/platform_ldbl128.exp \
src/tests/usr.bin/xlint/lint1/platform_ldbl64.c \
src/tests/usr.bin/xlint/lint1/platform_ldbl64.exp \
src/tests/usr.bin/xlint/lint1/platform_ldbl96.c \
src/tests/usr.bin/xlint/lint1/platform_ldbl96.exp \
src/tests/usr.bin/xlint/lint1/platform_long.c \
src/tests/usr.bin/xlint/lint1/platform_long.exp \
src/tests/usr.bin/xlint/lint1/platform_lp64.c \
src/tests/usr.bin/xlint/lint1/platform_lp64.exp \
src/tests/usr.bin/xlint/lint1/platform_schar.c \
src/tests/usr.bin/xlint/lint1/platform_schar.exp \
src/tests/usr.bin/xlint/lint1/platform_uchar.c \
src/tests/usr.bin/xlint/lint1/platform_uchar.exp
cvs rdiff -u -r1.70 -r1.71 src/tests/usr.bin/xlint/lint1/t_integration.sh
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.1129 src/distrib/sets/lists/tests/mi:1.1130
--- src/distrib/sets/lists/tests/mi:1.1129 Sat Sep 25 13:06:05 2021
+++ src/distrib/sets/lists/tests/mi Sun Sep 26 03:17:59 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1129 2021/09/25 13:06:05 rillig Exp $
+# $NetBSD: mi,v 1.1130 2021/09/26 03:17:59 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -7056,6 +7056,24 @@
./usr/tests/usr.bin/xlint/lint1/parse_stmt_iter_error.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/parse_type_name.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/parse_type_name.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ilp32.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ilp32.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_int.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_int.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl128.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl128.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl64.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl64.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl96.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_ldbl96.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_long.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_long.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_lp64.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_lp64.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_schar.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_schar.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_uchar.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/platform_uchar.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/stmt_for.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/stmt_for.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/stmt_goto.c tests-usr.bin-tests compattestfile,atf
Index: src/tests/usr.bin/xlint/lint1/Makefile
diff -u src/tests/usr.bin/xlint/lint1/Makefile:1.112 src/tests/usr.bin/xlint/lint1/Makefile:1.113
--- src/tests/usr.bin/xlint/lint1/Makefile:1.112 Mon Sep 13 22:09:06 2021
+++ src/tests/usr.bin/xlint/lint1/Makefile Sun Sep 26 03:17:59 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.112 2021/09/13 22:09:06 rillig Exp $
+# $NetBSD: Makefile,v 1.113 2021/09/26 03:17:59 rillig Exp $
NOMAN= # defined
MAX_MESSAGE= 347 # see lint1/err.c
@@ -236,6 +236,24 @@ FILES+= parse_stmt_iter_error.c
FILES+= parse_stmt_iter_error.exp
FILES+= parse_type_name.c
FILES+= parse_type_name.exp
+FILES+= platform_ilp32.c
+FILES+= platform_ilp32.exp
+FILES+= platform_int.c
+FILES+= platform_int.exp
+FILES+= platform_ldbl128.c
+FILES+= platform_ldbl128.exp
+FILES+= platform_ldbl64.c
+FILES+= platform_ldbl64.exp
+FILES+= platform_ldbl96.c
+FILES+= platform_ldbl96.exp
+FILES+= platform_long.c
+FILES+= platform_long.exp
+FILES+= platform_lp64.c
+FILES+= platform_lp64.exp
+FILES+= platform_schar.c
+FILES+= platform_schar.exp
+FILES+= platform_uchar.c
+FILES+= platform_uchar.exp
FILES+= stmt_for.c
FILES+= stmt_for.exp
FILES+= stmt_goto.c
Index: src/tests/usr.bin/xlint/lint1/t_integration.sh
diff -u src/tests/usr.bin/xlint/lint1/t_integration.sh:1.70 src/tests/usr.bin/xlint/lint1/t_integration.sh:1.71
--- src/tests/usr.bin/xlint/lint1/t_integration.sh:1.70 Fri Sep 10 20:02:51 2021
+++ src/tests/usr.bin/xlint/lint1/t_integration.sh Sun Sep 26 03:17:59 2021
@@ -1,4 +1,4 @@
-# $NetBSD: t_integration.sh,v 1.70 2021/09/10 20:02:51 rillig Exp $
+# $NetBSD: t_integration.sh,v 1.71 2021/09/26 03:17:59 rillig Exp $
#
# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -86,11 +86,13 @@ configure_test_case()
for (i = 3; i < NF; i++)
flags = flags " " $i
} else if ($2 == "lint1-only-if:") {
- if (!platform_has($3))
- skip = "yes"
+ for (i = 3; i < NF; i++)
+ if (!platform_has($i))
+ skip = "yes"
} else if ($2 == "lint1-skip-if:") {
- if (platform_has($3))
- skip = "yes"
+ for (i = 3; i < NF; i++)
+ if (platform_has($i))
+ skip = "yes"
} else {
printf("bad lint1 comment '\''%s'\''\n", $2) > "/dev/stderr"
exit(1)
Added files:
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ilp32.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,13 @@
+/* $NetBSD: platform_ilp32.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_ilp32.c"
+
+/*
+ * Test features that only apply to platforms that have 32-bit int, long and
+ * pointer types.
+ */
+
+/* lint1-only-if: ilp32 */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_ilp32.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ilp32.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ilp32.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_ilp32.c(14): warning: empty translation unit [272]
Index: src/tests/usr.bin/xlint/lint1/platform_int.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_int.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_int.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,19 @@
+/* $NetBSD: platform_int.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_int.c"
+
+/*
+ * Test features that only apply to platforms on which size_t is unsigned
+ * int and ptr_diff is signed int.
+ */
+
+/* lint1-extra-flags: -h */
+/* lint1-only-if: int */
+
+void to_size(typeof(sizeof(int)));
+
+void
+convert_unsigned_char_to_size(unsigned char uc)
+{
+ /* expect+1: warning: argument #1 is converted from 'unsigned char' to 'unsigned int' due to prototype [259] */
+ to_size(uc);
+}
Index: src/tests/usr.bin/xlint/lint1/platform_int.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_int.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_int.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_int.c(18): warning: argument #1 is converted from 'unsigned char' to 'unsigned int' due to prototype [259]
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl128.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl128.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl128.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,12 @@
+/* $NetBSD: platform_ldbl128.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_ldbl128.c"
+
+/*
+ * Test features that only apply to platforms that have 128-bit long double.
+ */
+
+/* lint1-only-if: ldbl-128 */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl128.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl128.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl128.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_ldbl128.c(13): warning: empty translation unit [272]
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl64.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl64.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl64.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,12 @@
+/* $NetBSD: platform_ldbl64.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_ldbl64.c"
+
+/*
+ * Test features that only apply to platforms that have 64-bit long double.
+ */
+
+/* lint1-only-if: ldbl-64 */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl64.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl64.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl64.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_ldbl64.c(13): warning: empty translation unit [272]
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl96.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl96.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl96.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,12 @@
+/* $NetBSD: platform_ldbl96.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_ldbl96.c"
+
+/*
+ * Test features that only apply to platforms that have 96-bit long double.
+ */
+
+/* lint1-only-if: ldbl-96 */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_ldbl96.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_ldbl96.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_ldbl96.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_ldbl96.c(13): warning: empty translation unit [272]
Index: src/tests/usr.bin/xlint/lint1/platform_long.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_long.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_long.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,29 @@
+/* $NetBSD: platform_long.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_long.c"
+
+/*
+ * Test features that only apply to platforms on which size_t is unsigned
+ * long and ptr_diff is signed long.
+ */
+
+/* lint1-extra-flags: -h */
+/* lint1-only-if: long */
+
+void to_size(typeof(sizeof(int)));
+
+void
+convert_unsigned_char_to_size(unsigned char uc)
+{
+ /* no warning, unlike in platform_int */
+ to_size(uc);
+}
+
+/* expect+1: warning: static variable unused_variable unused [226] */
+static int unused_variable;
+
+/*
+ * XXX: On 2021-09-23, the releng build failed on i386 but not on sparc.
+ * usr.bin/make/cond.c, call to is_token with unsigned char as third argument.
+ * Based on that, this test should succeed on sparc, but with a cross-compiled
+ * lint on x86_64 with ARCHSUBDIR=sparc, it failed.
+ */
Index: src/tests/usr.bin/xlint/lint1/platform_long.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_long.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_long.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_long.c(22): warning: static variable unused_variable unused [226]
Index: src/tests/usr.bin/xlint/lint1/platform_lp64.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_lp64.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_lp64.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,21 @@
+/* $NetBSD: platform_lp64.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_lp64.c"
+
+/*
+ * Test features that only apply to platforms that have 32-bit int and 64-bit
+ * long and pointer types.
+ */
+
+/* lint1-only-if: lp64 */
+
+void to_size_t(typeof(sizeof(int)));
+
+void
+convert_unsigned_char_to_size_t(unsigned char uc)
+{
+ /* no warning, unlike platform_int */
+ to_size_t(uc);
+}
+
+/* expect+1: warning: static variable unused_variable unused [226] */
+static int unused_variable;
Index: src/tests/usr.bin/xlint/lint1/platform_lp64.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_lp64.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_lp64.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_lp64.c(21): warning: static variable unused_variable unused [226]
Index: src/tests/usr.bin/xlint/lint1/platform_schar.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_schar.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_schar.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,13 @@
+/* $NetBSD: platform_schar.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_schar.c"
+
+/*
+ * Test features that only apply to platforms where plain char has the same
+ * representation as signed char.
+ */
+
+/* lint1-only-if: schar */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_schar.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_schar.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_schar.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_schar.c(14): warning: empty translation unit [272]
Index: src/tests/usr.bin/xlint/lint1/platform_uchar.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_uchar.c:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_uchar.c Sun Sep 26 03:17:59 2021
@@ -0,0 +1,13 @@
+/* $NetBSD: platform_uchar.c,v 1.1 2021/09/26 03:17:59 rillig Exp $ */
+# 3 "platform_uchar.c"
+
+/*
+ * Test features that only apply to platforms where plain char has the same
+ * representation as unsigned char.
+ */
+
+/* lint1-only-if: uchar */
+
+// TODO: Add some code that passes.
+// TODO: Add some code that fails.
+/* expect+1: warning: empty translation unit [272] */
Index: src/tests/usr.bin/xlint/lint1/platform_uchar.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/platform_uchar.exp:1.1
--- /dev/null Sun Sep 26 03:18:00 2021
+++ src/tests/usr.bin/xlint/lint1/platform_uchar.exp Sun Sep 26 03:17:59 2021
@@ -0,0 +1 @@
+platform_uchar.c(14): warning: empty translation unit [272]