0001-Add-pg_nodiscard-function-declaration-specifier.patch
text/plain
Filename: 0001-Add-pg_nodiscard-function-declaration-specifier.patch
Type: text/plain
Part: 0
Message:
warn_unused_results
Patch
Format: format-patch
Series: patch 0001
Subject: Add pg_nodiscard function declaration specifier
| File | + | − |
|---|---|---|
| src/include/c.h | 12 | 0 |
From 32a9bc5cd2c63500670b663964e878e4474ce257 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter@eisentraut.org> Date: Sat, 17 Oct 2020 08:38:39 +0200 Subject: [PATCH 1/3] Add pg_nodiscard function declaration specifier pg_nodiscard means the compiler should warn if the result of a function call is ignored. The name "nodiscard" is chosen in alignment with (possibly future) C and C++ standards. It maps to the GCC attribute warn_unused_result. --- src/include/c.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/include/c.h b/src/include/c.h index 9cd67f8f76..d5dc3632f7 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -111,6 +111,18 @@ #define pg_attribute_unused() #endif +/* + * pg_nodiscard means the compiler should warn if the result of a function + * call is ignored. The name "nodiscard" is chosen in alignment with + * (possibly future) C and C++ standards. For maximum compatibility, use it + * as a function declaration specifier, so it goes before the return type. + */ +#ifdef __GNUC__ +#define pg_nodiscard __attribute__((warn_unused_result)) +#else +#define pg_nodiscard +#endif + /* * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only * used in assert-enabled builds, to avoid compiler warnings about unused -- 2.28.0