summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-02-05 20:44:19 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-02-06 12:09:55 +0100
commitfc5688375c76a1e367ddb1f5b51603f1f2b4d081 (patch)
treef1d7f9f91bf0ff0a3027b3a363544f03696ffbd5 /meson.build
parentf41e4b82a42e22f7cdc9a05d02125bdc63334e6a (diff)
downloadsystemd-fc5688375c76a1e367ddb1f5b51603f1f2b4d081.tar.gz
meson: enable -Warray-bounds and -fstrict-flex-arrays
-fstrict-flex-arrays means that the compiler doesn't have to assume that any trailing array is a flex array. I.e. unless the array is declared without a specified size, only indices in the declared range are valid. -Warray-bounds turns on the warnings about out-of-bounds array accesses. -Warray-bounds=2 does some more warnings, with higher false positive rate. But it doesn't seem to yield any false positives in our codebase, so enable it. clang supports -Warray-bounds, but not -Warray-bounds=2. gcc supports both. gcc-13 supports -fstrict-flex-arrays. See https://people.kernel.org/kees/bounded-flexible-arrays-in-c for a long discussion of use in the kernel.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build4
1 files changed, 4 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 97246a3c6f..d1e39c8a5a 100644
--- a/meson.build
+++ b/meson.build
@@ -354,6 +354,8 @@ basic_disabled_warnings = [
]
possible_common_cc_flags = [
+ '-Warray-bounds', # clang
+ '-Warray-bounds=2',
'-Wdate-time',
'-Wendif-labels',
'-Werror=format=2',
@@ -391,6 +393,8 @@ possible_common_cc_flags = [
# negative arguments are correctly detected starting with meson 0.46.
'-Wno-error=#warnings', # clang
'-Wno-string-plus-int', # clang
+
+ '-fstrict-flex-arrays',
]
c_args = get_option('c_args')