Module Name: src
Committed By: rillig
Date: Tue May 4 19:57:57 UTC 2021
Modified Files:
src/tests/usr.bin/xlint/lint1: msg_118.c msg_118.exp
Log Message:
tests/lint: make test for message 118 platform-independent
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_118.c
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint1/msg_118.exp
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_118.c
diff -u src/tests/usr.bin/xlint/lint1/msg_118.c:1.4 src/tests/usr.bin/xlint/lint1/msg_118.c:1.5
--- src/tests/usr.bin/xlint/lint1/msg_118.c:1.4 Tue Apr 6 21:59:58 2021
+++ src/tests/usr.bin/xlint/lint1/msg_118.c Tue May 4 19:57:56 2021
@@ -1,18 +1,39 @@
-/* $NetBSD: msg_118.c,v 1.4 2021/04/06 21:59:58 rillig Exp $ */
+/* $NetBSD: msg_118.c,v 1.5 2021/05/04 19:57:56 rillig Exp $ */
# 3 "msg_118.c"
/* Test for message: semantics of '%s' change in ANSI C; use explicit cast [118] */
-/* lint1-flags: -hsw */
+/* lint1-flags: -hw */
int
-int_shl_uint(int i, unsigned int u)
+int_shl_uint(int left, unsigned int right)
{
- return i << u;
+ return left << right;
}
-unsigned
-uint_shl_ulong(unsigned a, unsigned long ul)
+int
+int_shr_uint(int left, unsigned int right)
+{
+ /* expect+1: semantics of '>>' change in ANSI C */
+ return left >> right;
+}
+
+int
+int_shl_int(int left, int right)
{
- return a << ul; /* expect: 118 */
+ return left << right;
}
+
+/*
+ * The behavior of typeok_shl can only be triggered on 64-bit platforms, or
+ * in C99 mode, and the above tests require C90 mode.
+ *
+ * On 32-bit platforms both operands of the '<<' operator are first promoted
+ * individually, and since C90 does not know 'long long', the maximum
+ * bit-size for an integer type is 32 bits.
+ *
+ * Because of this difference there is no test for that case since as of
+ * 2021-05-04, all lint1 tests must be independent of the target platform and
+ * there is no way to toggle individual tests depending on the properties of
+ * the target platform.
+ */
Index: src/tests/usr.bin/xlint/lint1/msg_118.exp
diff -u src/tests/usr.bin/xlint/lint1/msg_118.exp:1.2 src/tests/usr.bin/xlint/lint1/msg_118.exp:1.3
--- src/tests/usr.bin/xlint/lint1/msg_118.exp:1.2 Sun Feb 28 01:22:02 2021
+++ src/tests/usr.bin/xlint/lint1/msg_118.exp Tue May 4 19:57:56 2021
@@ -1 +1 @@
-msg_118.c(17): warning: semantics of '<<' change in ANSI C; use explicit cast [118]
+msg_118.c(18): warning: semantics of '>>' change in ANSI C; use explicit cast [118]