Module Name: src
Committed By: rillig
Date: Tue Jun 29 09:19:17 UTC 2021
Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/usr.bin/xlint/lint1: Makefile msg_259.c msg_259.exp
t_integration.sh
Added Files:
src/tests/usr.bin/xlint/lint1: lex_integer_ilp32.c
lex_integer_ilp32.exp msg_259_ilp32.c msg_259_ilp32.exp
Log Message:
tests/lint: add tests for ILP32 platforms
Previously, all tests for lint had to produce the exact same output, no
matter which platform they ran on. This differs from practical needs
since lint is intended to produce different results depending on whether
the platform is ILP32 or LP64.
Examples for these are type conversions and the widths of the integer
types during lexical analysis.
To generate a diff of this commit:
cvs rdiff -u -r1.1067 -r1.1068 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.68 -r1.69 src/tests/usr.bin/xlint/lint1/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.c \
src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.exp \
src/tests/usr.bin/xlint/lint1/msg_259_ilp32.c \
src/tests/usr.bin/xlint/lint1/msg_259_ilp32.exp
cvs rdiff -u -r1.6 -r1.7 src/tests/usr.bin/xlint/lint1/msg_259.c
cvs rdiff -u -r1.5 -r1.6 src/tests/usr.bin/xlint/lint1/msg_259.exp
cvs rdiff -u -r1.64 -r1.65 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.1067 src/distrib/sets/lists/tests/mi:1.1068
--- src/distrib/sets/lists/tests/mi:1.1067 Sun Jun 27 19:10:29 2021
+++ src/distrib/sets/lists/tests/mi Tue Jun 29 09:19:17 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1067 2021/06/27 19:10:29 rillig Exp $
+# $NetBSD: mi,v 1.1068 2021/06/29 09:19:17 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -6228,6 +6228,8 @@
./usr/tests/usr.bin/xlint/lint1/lex_floating.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/lex_integer.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/lex_integer.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/lex_integer_ilp32.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/lex_integer_ilp32.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/lex_string.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/lex_string.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/lex_wide_char.c tests-usr.bin-tests compattestfile,atf
@@ -6754,6 +6756,8 @@
./usr/tests/usr.bin/xlint/lint1/msg_258.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/msg_259.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/msg_259.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/msg_259_ilp32.c tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint1/msg_259_ilp32.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/msg_260.c tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/msg_260.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint1/msg_261.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.68 src/tests/usr.bin/xlint/lint1/Makefile:1.69
--- src/tests/usr.bin/xlint/lint1/Makefile:1.68 Sun Jun 27 19:10:29 2021
+++ src/tests/usr.bin/xlint/lint1/Makefile Tue Jun 29 09:19:17 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.68 2021/06/27 19:10:29 rillig Exp $
+# $NetBSD: Makefile,v 1.69 2021/06/29 09:19:17 rillig Exp $
NOMAN= # defined
MAX_MESSAGE= 345 # see lint1/err.c
@@ -131,6 +131,8 @@ FILES+= lex_floating.c
FILES+= lex_floating.exp
FILES+= lex_integer.c
FILES+= lex_integer.exp
+FILES+= lex_integer_ilp32.c
+FILES+= lex_integer_ilp32.exp
FILES+= lex_string.c
FILES+= lex_string.exp
FILES+= lex_wide_char.c
@@ -138,6 +140,8 @@ FILES+= lex_wide_char.exp
FILES+= lex_wide_string.c
FILES+= lex_wide_string.exp
FILES+= ${:U0 ${:U:${:Urange=${MAX_MESSAGE}}}:C,^.$,0&,:C,^..$,0&,:@i@msg_${i}.c msg_${i}.exp@:Nmsg_176.exp}
+FILES+= msg_259_ilp32.c
+FILES+= msg_259_ilp32.exp
FILES+= op_colon.c
FILES+= op_colon.exp
FILES+= stmt_for.c
Index: src/tests/usr.bin/xlint/lint1/msg_259.c
diff -u src/tests/usr.bin/xlint/lint1/msg_259.c:1.6 src/tests/usr.bin/xlint/lint1/msg_259.c:1.7
--- src/tests/usr.bin/xlint/lint1/msg_259.c:1.6 Thu Feb 4 07:39:39 2021
+++ src/tests/usr.bin/xlint/lint1/msg_259.c Tue Jun 29 09:19:17 2021
@@ -1,8 +1,9 @@
-/* $NetBSD: msg_259.c,v 1.6 2021/02/04 07:39:39 rillig Exp $ */
+/* $NetBSD: msg_259.c,v 1.7 2021/06/29 09:19:17 rillig Exp $ */
# 3 "msg_259.c"
// Test for message: argument #%d is converted from '%s' to '%s' due to prototype [259]
+/* lint1-only-on-lp64 */
/* lint1-extra-flags: -h */
void farg_char(char);
Index: src/tests/usr.bin/xlint/lint1/msg_259.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_259.exp:1.5 src/tests/usr.bin/xlint/lint1/msg_259.exp:1.6
--- src/tests/usr.bin/xlint/lint1/msg_259.exp:1.5 Thu Feb 4 06:55:00 2021
+++ src/tests/usr.bin/xlint/lint1/msg_259.exp Tue Jun 29 09:19:17 2021
@@ -1 +1 @@
-msg_259.c(22): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
+msg_259.c(23): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]
Index: src/tests/usr.bin/xlint/lint1/t_integration.sh
diff -u src/tests/usr.bin/xlint/lint1/t_integration.sh:1.64 src/tests/usr.bin/xlint/lint1/t_integration.sh:1.65
--- src/tests/usr.bin/xlint/lint1/t_integration.sh:1.64 Tue Jun 29 08:46:10 2021
+++ src/tests/usr.bin/xlint/lint1/t_integration.sh Tue Jun 29 09:19:17 2021
@@ -1,4 +1,4 @@
-# $NetBSD: t_integration.sh,v 1.64 2021/06/29 08:46:10 rillig Exp $
+# $NetBSD: t_integration.sh,v 1.65 2021/06/29 09:19:17 rillig Exp $
#
# Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -27,7 +27,7 @@
lint1=/usr/libexec/lint1
-machine_arch="$(sysctl -n hw.machine_arch)"
+: "${machine_arch:="$(sysctl -n hw.machine_arch)"}"
configure_test_case()
Added files:
Index: src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.c:1.1
--- /dev/null Tue Jun 29 09:19:18 2021
+++ src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.c Tue Jun 29 09:19:17 2021
@@ -0,0 +1,44 @@
+/* $NetBSD: lex_integer_ilp32.c,v 1.1 2021/06/29 09:19:17 rillig Exp $ */
+# 3 "lex_integer_ilp32.c"
+
+/*
+ * Tests for lexical analysis of integer constants.
+ *
+ * C99 6.4.4.1 "Integer constants"
+ */
+
+/* lint1-only-on-ilp32 */
+
+void sinki(int);
+void sinku(unsigned int);
+
+/* All platforms supported by lint have 32-bit int in two's complement. */
+void
+test_signed_int(void)
+{
+ sinki(0);
+
+ sinki(-1);
+
+ sinki(2147483647);
+
+ /* expect+1: 'unsigned long' to 'int' is out of range, arg #1 [295] */
+ sinki(2147483648);
+
+ sinki(-2147483647);
+
+ /* expect+2: ANSI C treats constant as unsigned, op - [218] */
+ /* expect+1: 'unsigned long' to 'int' is out of range, arg #1 [295] */
+ sinki(-2147483648);
+}
+
+void
+test_unsigned_int(void)
+{
+ sinku(0);
+
+ sinku(4294967295U);
+
+ /* expect+1: integer constant out of range [252] */
+ sinku(4294967296U);
+}
Index: src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.exp:1.1
--- /dev/null Tue Jun 29 09:19:18 2021
+++ src/tests/usr.bin/xlint/lint1/lex_integer_ilp32.exp Tue Jun 29 09:19:17 2021
@@ -0,0 +1,4 @@
+lex_integer_ilp32.c(26): warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295]
+lex_integer_ilp32.c(32): warning: ANSI C treats constant as unsigned, op - [218]
+lex_integer_ilp32.c(32): warning: conversion of 'unsigned long' to 'int' is out of range, arg #1 [295]
+lex_integer_ilp32.c(43): warning: integer constant out of range [252]
Index: src/tests/usr.bin/xlint/lint1/msg_259_ilp32.c
diff -u /dev/null src/tests/usr.bin/xlint/lint1/msg_259_ilp32.c:1.1
--- /dev/null Tue Jun 29 09:19:18 2021
+++ src/tests/usr.bin/xlint/lint1/msg_259_ilp32.c Tue Jun 29 09:19:17 2021
@@ -0,0 +1,30 @@
+/* $NetBSD: msg_259_ilp32.c,v 1.1 2021/06/29 09:19:17 rillig Exp $ */
+# 3 "msg_259_ilp32.c"
+
+// Test for message: argument #%d is converted from '%s' to '%s' due to prototype [259]
+
+/* lint1-only-on-ilp32 */
+/* lint1-extra-flags: -h */
+
+void farg_char(char);
+void farg_int(int);
+void farg_long(long);
+
+void
+example(char c, int i, long l)
+{
+ farg_char(c);
+ farg_int(c);
+ /* expect+1: from 'char' to 'long' due to prototype [259] */
+ farg_long(c);
+
+ farg_char(i); /* XXX: why no warning? */
+ farg_int(i);
+ /* expect+1: from 'int' to 'long' due to prototype [259] */
+ farg_long(i);
+
+ farg_char(l); /* XXX: why no warning? */
+ /* expect+1: from 'long' to 'int' due to prototype [259] */
+ farg_int(l);
+ farg_long(l);
+}
Index: src/tests/usr.bin/xlint/lint1/msg_259_ilp32.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint1/msg_259_ilp32.exp:1.1
--- /dev/null Tue Jun 29 09:19:18 2021
+++ src/tests/usr.bin/xlint/lint1/msg_259_ilp32.exp Tue Jun 29 09:19:17 2021
@@ -0,0 +1,3 @@
+msg_259_ilp32.c(19): warning: argument #1 is converted from 'char' to 'long' due to prototype [259]
+msg_259_ilp32.c(24): warning: argument #1 is converted from 'int' to 'long' due to prototype [259]
+msg_259_ilp32.c(28): warning: argument #1 is converted from 'long' to 'int' due to prototype [259]