mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-27 04:04:23 +08:00
meson: Ignore unused variables in release builds
Variables that are only used for assertions are considered unused in release builds. Don't treat this as an error, since we build with -Werror even for release in CI. This causes reasonable code to build and pass tests locally (and therefore to be queued for merge by reasonable developers), but later fail in CI due to a variable used only as an assertion. This pattern is common enough we have an ASSERTED macro to workaround the behaviour, but failing a CI run to have the author go back and add in the ASSERTED and re-queue later is a recipe for frustration, wasted time, and wasted CI bandwidth. Disable this behaviour to reduce CI friction. In my view, sprinkling in ASSERTED clutters the code, rather than helps; I find CI's insistence on doing so actively counterproductive. Developers are free to continue doing so after this change. But this way CI won't fail merge requests over it. After all, CI enforces policy, and we shouldn't have "mark variables only used for assertions as ASSERTED" as policy. Let's pick our battles wisely and improve CI's signal-to-noise ratio. As an added benefit, this eliminates a class of defects where ASSERTED is used incorrectly, e.g:c91e3c6a42
("util: Should not use ASSERTED in util_thread_get_time_nano")3e22fc27af
("zink: remove incorrect ASSERTED macro")0d08ce287b
("pan/bi: Remove dated ASSERTED properties") Note that actual unused variables will be caught by debug builds. It is expected that developers do debug builds locally before ramming code through CI, so that should be caught. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Suggested-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Reviewed-by: Emma Anholt <emma@anholt.net> Acked-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15582>
This commit is contained in:
parent
3d5ba0e1b7
commit
46b099e392
@ -1207,6 +1207,14 @@ else
|
||||
_trial_cpp += ['-ffunction-sections', '-fdata-sections']
|
||||
endif
|
||||
|
||||
# Variables that are only used for assertions are considered unused in release
|
||||
# builds. Don't treat this as an error, since we build with -Werror even for
|
||||
# release in CI.
|
||||
if get_option('buildtype') == 'release'
|
||||
_trial_c += ['-Wno-unused-variable', '-Wno-unused-but-set-variable']
|
||||
_trial_cpp += ['-Wno-unused-variable', '-Wno-unused-but-set-variable']
|
||||
endif
|
||||
|
||||
c_args += cc.get_supported_arguments(_trial_c)
|
||||
cpp_args += cpp.get_supported_arguments(_trial_cpp)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user