From 9eee20ada8974e53227fa77e8dc0013ceaca88a3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 10 Nov 2020 22:58:12 +0100 Subject: Add nonnull and nullable attributes to API This will warn if NULL is passed to any nonnull-annotated parameter, and is also supported by sanitizers which can check for violations at runtime. Unfortunately, it is currently only supported by clang. GCC has a similar feature in the nonnull attribute, but this has a different syntax (it's a function attribute) and is more dangerous since it is used by the optimizer to assume a null pointer is undefined behavior. This one just warns and still allows code to handle the situation gracefully, which I think is more appropriate for a library API. Note that this optimization behavior is not some unlikely edge case: switching these attributes to the GCC one will break release builds. --- wscript | 2 ++ 1 file changed, 2 insertions(+) (limited to 'wscript') diff --git a/wscript b/wscript index f12503e9..bc21d526 100644 --- a/wscript +++ b/wscript @@ -60,6 +60,8 @@ def configure(conf): '-Wno-double-promotion', '-Wno-format-nonliteral', '-Wno-implicit-fallthrough', + '-Wno-nullability-extension', + '-Wno-nullable-to-nonnull-conversion', '-Wno-padded', '-Wno-reserved-id-macro', '-Wno-sign-conversion', -- cgit v1.2.1