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]