]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add "warn_unused_result" to attributes.h 12183/head
authorEvan Hunt <each@isc.org>
Thu, 4 Jun 2026 16:49:41 +0000 (09:49 -0700)
committerEvan Hunt <each@isc.org>
Thu, 4 Jun 2026 16:49:41 +0000 (09:49 -0700)
A new ISC_ATTR_WARN_UNUSED_RESULT macro now defines
__attribute__((warn_unused_result)) and is used for
dns_rdata_fromstruct().

(cherry picked from commit 07c8c1d2421fdb4beb1b7821fe9033ff7d66b46a)

configure.ac
lib/dns/include/dns/rdata.h
lib/isc/include/isc/attributes.h
tests/dns/private_test.c

index 53c3f269763d92cdb76e48eec3fb25e7ef619039..2278a5d763354786df1632c09463ab7913215742 100644 (file)
@@ -491,6 +491,11 @@ AC_COMPILE_IFELSE(
 #
 AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
 
+#
+# check for GCC returns_nonnull attribute
+#
+AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
+
 #
 # how to link math functions?
 #
index 02ac4eef221bd0aa5862686bfe8f22940887abcd..b014c5751f26bdd0d6b24c16c009fc991a1dbd14 100644 (file)
@@ -468,6 +468,7 @@ dns_rdata_tofmttext(dns_rdata_t *rdata, const dns_name_t *origin,
  * it is undefined and falls back to the default value of 'width'
  */
 
+ISC_ATTR_WARN_UNUSED_RESULT
 isc_result_t
 dns_rdata_fromstruct(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
                     dns_rdatatype_t type, void *source, isc_buffer_t *target);
index aab0629c45998037110e1807c1a101b65e9a516b..15958b93a99805692250242339feb4895240accc 100644 (file)
 #define ISC_ATTR_RETURNS_NONNULL
 #endif
 
+#if HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT
+#define ISC_ATTR_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+#else
+#define ISC_ATTR_WARN_UNUSED_RESULT
+#endif
+
 #ifdef HAVE_FUNC_ATTRIBUTE_MALLOC
 /*
  * Indicates that a function is malloc-like, i.e., that the
index f65408bdd06ba21b302f9eebc7a85be215f4435c..0ab974f34c0d193dad149bd4a84dc916db645406 100644 (file)
@@ -97,6 +97,7 @@ make_signing(signing_testcase_t *testcase, dns_rdata_t *private,
 static void
 make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private,
           unsigned char *pbuf) {
+       isc_result_t result;
        dns_rdata_nsec3param_t params;
        dns_rdata_t nsec3param = DNS_RDATA_INIT;
        unsigned char bufdata[BUFSIZ];
@@ -134,8 +135,9 @@ make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private,
        }
 
        isc_buffer_init(&buf, bufdata, sizeof(bufdata));
-       dns_rdata_fromstruct(&nsec3param, dns_rdataclass_in,
-                            dns_rdatatype_nsec3param, &params, &buf);
+       result = dns_rdata_fromstruct(&nsec3param, dns_rdataclass_in,
+                                     dns_rdatatype_nsec3param, &params, &buf);
+       assert_int_equal(result, ISC_R_SUCCESS);
 
        dns_rdata_init(private);