]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add "warn_unused_result" to attributes.h
authorEvan Hunt <each@isc.org>
Thu, 14 May 2026 01:57:59 +0000 (18:57 -0700)
committerEvan Hunt <each@isc.org>
Thu, 4 Jun 2026 08:20:33 +0000 (08:20 +0000)
A new ISC_ATTR_WARN_UNUSED_RESULT macro now defines
__attribute__((warn_unused_result)) and is used for
dns_rdata_fromstruct().

lib/dns/include/dns/rdata.h
lib/isc/include/isc/attributes.h
meson.build
tests/dns/private_test.c

index c7bdf5eaff7348caef13e7551cea3c7666f91ddc..c83ceb34b05d302aac516511886cb5aa2391d2e7 100644 (file)
@@ -497,6 +497,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 abad670af892846aa188dd1713fb49a44c95ed68..5f7f5a165dcea40454e09d4556f5e9e291f96c60 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 d6aac08883302e850e7f8d8325d8fd0a05fe0d6d..0ca704177bae02c07745c267b8d55162d986bbf3 100644 (file)
@@ -387,7 +387,7 @@ else
     cc.has_function('__builtin_popcountll', required: true)
 endif
 
-foreach attr : ['malloc', 'returns_nonnull']
+foreach attr : ['malloc', 'returns_nonnull', 'warn_unused_result']
     if cc.has_function_attribute(attr)
         config.set('HAVE_FUNC_ATTRIBUTE_@0@'.format(attr.to_upper()), 1)
     endif
index 2ee5310b1a224549968cb9aedae07c6451672a4a..ff851996a3ed1d5ea3be0f30c7efdb3060b3bfd0 100644 (file)
@@ -75,6 +75,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];
@@ -111,8 +112,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);