util: Add NONNULL macro

Macro leverages __attribute__((__nonnull__)) to help users mark
the function parameter that isn't allowed to be NULL.

Suggested-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18215>
This commit is contained in:
Roman Stratiienko 2023-08-10 16:14:02 +03:00 committed by Marge Bot
parent 9bf104f934
commit 21dcde096f
2 changed files with 7 additions and 0 deletions

View File

@ -916,6 +916,7 @@ endforeach
_attributes = [
'const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result',
'weak', 'format', 'packed', 'returns_nonnull', 'alias', 'noreturn',
'nonnull',
]
foreach a : cc.get_supported_function_attributes(_attributes)
pre_args += '-DHAVE_FUNC_ATTRIBUTE_@0@'.format(a.to_upper())

View File

@ -317,6 +317,12 @@ do { \
#define ASSERTED
#endif
#ifdef HAVE_FUNC_ATTRIBUTE_NONNULL
#define NONNULL __attribute__((__nonnull__))
#else
#define NONNULL
#endif
#ifdef HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT
#define MUST_CHECK __attribute__((warn_unused_result))
#else