Module Name: src Committed By: rillig Date: Tue Jan 28 20:21:59 UTC 2025
Modified Files: src/tests/usr.bin/xlint/lint1: msg_341.c platform_ilp32_int.c platform_ilp32_long.c platform_lp64.c Log Message: tests/lint: fix platform-specific tests for <ctype.h> usage On arm (32-bit, ptrdiff_t is long), there was an extra warning that didn't show up on i386 or x86_64. After moving the test to the platform-specific tests, the i386 test shows an additional warning about integer overflow. This is because the platform-specific tests run with more lint warnings enabled than in msg_341.c. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/tests/usr.bin/xlint/lint1/msg_341.c cvs rdiff -u -r1.8 -r1.9 src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c cvs rdiff -u -r1.9 -r1.10 src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c cvs rdiff -u -r1.14 -r1.15 src/tests/usr.bin/xlint/lint1/platform_lp64.c 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_341.c diff -u src/tests/usr.bin/xlint/lint1/msg_341.c:1.4 src/tests/usr.bin/xlint/lint1/msg_341.c:1.5 --- src/tests/usr.bin/xlint/lint1/msg_341.c:1.4 Wed Dec 18 18:14:54 2024 +++ src/tests/usr.bin/xlint/lint1/msg_341.c Tue Jan 28 20:21:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: msg_341.c,v 1.4 2024/12/18 18:14:54 rillig Exp $ */ +/* $NetBSD: msg_341.c,v 1.5 2025/01/28 20:21:59 rillig Exp $ */ # 3 "msg_341.c" // Test for message: argument to '%s' must be 'unsigned char' or EOF, not '%s' [341] @@ -77,9 +77,9 @@ macro_invocation_NetBSD(char c, signed c /* expect+1: warning: argument to 'function from <ctype.h>' must be cast to 'unsigned char', not to 'unsigned int' [342] */ sink(((int)((_ctype_tab_ + 1)[((unsigned int)c)] & 0x0040))); - // https://mail-index.netbsd.org/current-users/2024/12/15/msg045888.html - /* expect+1: warning: argument to 'function from <ctype.h>' must be 'unsigned char' or EOF, not 'unsigned int' [341] */ - sink(((int)((_ctype_tab_ + 1)[(0xffffffffu)]))); + // See platform_ilp32_int.c. + // See platform_ilp32_long.c. + // See platform_lp64.c. /* expect+1: warning: argument to 'function from <ctype.h>' must be 'unsigned char' or EOF, not 'signed char' [341] */ sink(((int)((_ctype_tab_ + 1)[sc]))); Index: src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c:1.8 src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c:1.9 --- src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c:1.8 Sat Mar 30 17:12:26 2024 +++ src/tests/usr.bin/xlint/lint1/platform_ilp32_int.c Tue Jan 28 20:21:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: platform_ilp32_int.c,v 1.8 2024/03/30 17:12:26 rillig Exp $ */ +/* $NetBSD: platform_ilp32_int.c,v 1.9 2025/01/28 20:21:59 rillig Exp $ */ # 3 "platform_ilp32_int.c" /* @@ -95,3 +95,16 @@ array_index(void) /* expect+1: warning: array subscript -1 cannot be negative [167] */ u64 += u64_buf[0xffffffffffffffff]; } + + +extern const unsigned short *_ctype_tab_; + +int +msg_341(void) +{ + // https://mail-index.netbsd.org/current-users/2024/12/15/msg045888.html + /* expect+2: warning: argument to 'function from <ctype.h>' must be 'unsigned char' or EOF, not 'unsigned int' [341] */ + /* expect+1: warning: '4294967295 * 2' overflows 'unsigned int' [141] */ + return (((int)((_ctype_tab_ + 1)[(0xffffffffu)]))); + +} Index: src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c diff -u src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c:1.9 src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c:1.10 --- src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c:1.9 Sat Mar 30 16:47:45 2024 +++ src/tests/usr.bin/xlint/lint1/platform_ilp32_long.c Tue Jan 28 20:21:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: platform_ilp32_long.c,v 1.9 2024/03/30 16:47:45 rillig Exp $ */ +/* $NetBSD: platform_ilp32_long.c,v 1.10 2025/01/28 20:21:59 rillig Exp $ */ # 3 "platform_ilp32_long.c" /* @@ -112,3 +112,16 @@ array_index(void) /* expect+1: warning: array subscript -1 cannot be negative [167] */ u64 += u64_buf[0xffffffffffffffff]; } + + +extern const unsigned short *_ctype_tab_; + +int +msg_341(void) +{ + // https://mail-index.netbsd.org/current-users/2024/12/15/msg045888.html + /* expect+2: warning: argument to 'function from <ctype.h>' must be 'unsigned char' or EOF, not 'unsigned int' [341] */ + /* expect+1: warning: conversion of 'unsigned int' to 'long' is out of range [119] */ + return (((int)((_ctype_tab_ + 1)[(0xffffffffu)]))); + +} Index: src/tests/usr.bin/xlint/lint1/platform_lp64.c diff -u src/tests/usr.bin/xlint/lint1/platform_lp64.c:1.14 src/tests/usr.bin/xlint/lint1/platform_lp64.c:1.15 --- src/tests/usr.bin/xlint/lint1/platform_lp64.c:1.14 Sat Mar 30 17:12:26 2024 +++ src/tests/usr.bin/xlint/lint1/platform_lp64.c Tue Jan 28 20:21:59 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: platform_lp64.c,v 1.14 2024/03/30 17:12:26 rillig Exp $ */ +/* $NetBSD: platform_lp64.c,v 1.15 2025/01/28 20:21:59 rillig Exp $ */ # 3 "platform_lp64.c" /* @@ -104,3 +104,14 @@ array_index(void) /* expect+1: warning: array subscript 2305843009213693951 cannot be > 19 [168] */ u64 += u64_buf[0xffffffffffffffff]; } + +extern const unsigned short *_ctype_tab_; + +int +msg_341(void) +{ + // https://mail-index.netbsd.org/current-users/2024/12/15/msg045888.html + /* expect+1: warning: argument to 'function from <ctype.h>' must be 'unsigned char' or EOF, not 'unsigned int' [341] */ + return (((int)((_ctype_tab_ + 1)[(0xffffffffu)]))); + +}