tests/lint: make test for message 118 platform-independent
This commit is contained in:
parent
facc67ca98
commit
d16694fc52
|
@ -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)
|
||||
{
|
||||
return a << ul; /* expect: 118 */
|
||||
/* expect+1: semantics of '>>' change in ANSI C */
|
||||
return left >> right;
|
||||
}
|
||||
|
||||
int
|
||||
int_shl_int(int left, int right)
|
||||
{
|
||||
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.
|
||||
*/
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Reference in New Issue