The NetBSD Project

CVS log for src/tests/usr.bin/xlint/lint1/msg_168.c

[BACK] Up to [cvs.NetBSD.org] / src / tests / usr.bin / xlint / lint1

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.13: download - view: text, markup, annotated - select for diffs
Sat Mar 30 17:12:26 2024 UTC (8 months, 2 weeks ago) by rillig
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +2 -2 lines
lint: do not convert array subscripts from size_t to ptrdiff_t

The C standards do not specify a fixed type for an array subscript, it
just has to be an integer type.  Previously, query 4 fired for the
ubiquitous expression 'ptr[sz]' when sz had type 'size_t'.

The test platform_ilp32_long is unaffected by this change, as the
integer constant 0x80000000 has type 'unsigned int', while size_t is
'unsigned long' on those platforms, and even though the types 'unsigned
int' and 'unsigned long' have the same value space, there's still a
conversion, at least for now.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Mar 30 16:47:45 2024 UTC (8 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +4 -4 lines
lint: reword messages about array subscripts to sound more natural

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Mar 27 19:28:20 2024 UTC (8 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -2 lines
lint: don't use 'long' in diagnostics

The size of 'long' differs between 64-bit and 32-bit platforms.
Eliminate this possible platform-dependency.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Mar 28 14:44:35 2023 UTC (20 months, 2 weeks ago) by rillig
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -1 lines
lint: warn about extern declarations outside headers

https://mail-index.netbsd.org/tech-userlevel/2023/03/15/msg013727.html

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Jun 16 16:58:36 2022 UTC (2 years, 5 months ago) by rillig
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +5 -3 lines
tests/lint: make expectation lines in the tests more detailed

This commit migrates msg_100 until msg_199.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon May 30 08:51:08 2022 UTC (2 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +24 -1 lines
tests/lint: explain how lint represents pointer addition

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon May 30 08:14:53 2022 UTC (2 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +1 -5 lines
lint: revert 'do not pre-multiply pointer expressions' from 2022-05-26

In tree.c 1.448, removing the pre-multiplication generated wrong
warnings about out-of-bounds array access.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon May 30 08:04:00 2022 UTC (2 years, 6 months ago) by rillig
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +26 -1 lines
tests/lint: demonstrate wrong warning 'array subscript cannot be'

Since tree.c 1.448 from 2022-05-26.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Thu Mar 25 22:53:05 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
CVS tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -2 lines
lint: fix initialization for arrays with designators

From the previous commit, there was an off-by-one error left, which was
due to the interaction between designation_add_subscript and
extend_if_array_of_unknown_size.

The other crucial point was to call initstack_pop_nobrace before
accessing the "current initialization stack element".  Without this
call, in msg_168.c the "current element" would point to the initializer
level for 'const char *' instead of the one for 'array of const char *'.

One more step towards supporting C99.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Mar 25 22:15:38 2021 UTC (3 years, 8 months ago) by rillig
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
lint: improve initialization of arrays with designators

Initialization is still buggy but better than before.  The remaining bug
is that only the first designator determines the array size, and after
that, the array is no longer considered of unknown size.  This
contradicts C99.  More improvements to come.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Mar 7 16:40:20 2021 UTC (3 years, 9 months ago) by rillig
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +14 -1 lines
tests/lint: demonstrate wrong warning for array subscript

Seen in usr.bin/indent/lexi.c.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun Jan 24 16:12:45 2021 UTC (3 years, 10 months ago) by rillig
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +25 -3 lines
lint: add tests for a few messages

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Jan 2 10:22:43 2021 UTC (3 years, 11 months ago) by rillig
Branches: MAIN
lint: add a test for each message produced by lint1

Having a test for each message ensures that upcoming refactorings don't
break the basic functionality.  Adding the tests will also discover
previously unknown bugs in lint.

The tests ensure that every lint message can actually be triggered, and
they demonstrate how to do so.  Having a separate file for each test
leaves enough space for documenting historical anecdotes, rationale or
edge cases, keeping them away from the source code.

The interesting details of this commit are in Makefile and
t_integration.sh.  All other files are just auto-generated.

When running the tests as part of ATF, they are packed together as a
single test case.  Conceptually, it would have been better to have each
test as a separate test case, but ATF quickly becomes very slow as soon
as a test program defines too many test cases, and 50 is already too
many.  The time complexity is O(n^2), not O(n) as one would expect.
It's the same problem as in tests/usr.bin/make, which has over 300 test
cases as well.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>