Prevent warning due to type-limits on arrsetlen(arr, 0)
#1732
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #1731.
As suggested by @nothings, cast array capacity and new capacity to
ptrdiff_t
in order to avoid 'always-false´ complaints that arise from-Wextra
.Why?
I tend to work on projects with pretty restrictive flags (-Wall -Wextra etc.), and I've introduced a dependency on
stb_ds
, as it is an excellent library that I use a lot. Unfortunately,arrsetlen(arr, 0)
+-Wextra
always produces an extraneous warning because the array capacity is unsigned, and thus the array-growth part of setlen isalways-false
.Since the workaround is pretty trivial, I don't think it is a problem to satisfy stricter compilation options in this case.
Why not?
Theoretically this runs the risk of being a bad cast, since PTRDIFF_MAX < SIZE_MAX. Is there a realistic case where this would be a problem? I'm mostly referring to funky platforms I may not be aware of.
Thanks a lot, folks, it's a great library.