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]