diff --git a/src/conf_post.h b/src/conf_post.h
index 6ea2c7b664b..7699d2c95bc 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -78,6 +78,7 @@ typedef bool bool_bf;
# define __has_attribute_no_address_safety_analysis false
# define __has_attribute_no_sanitize_address GNUC_PREREQ (4, 8, 0)
# define __has_attribute_no_sanitize_undefined GNUC_PREREQ (4, 9, 0)
+# define __has_attribute_warn_unused_result GNUC_PREREQ (3, 4, 0)
#endif
/* Simulate __has_feature on compilers that lack it. It is used only
diff --git a/src/systhread.h b/src/systhread.h
index a1d2746721d..8070bcde752 100644
--- a/src/systhread.h
+++ b/src/systhread.h
@@ -21,12 +21,8 @@ along with GNU Emacs. If not, see . */
#include
-#ifndef __has_attribute
-# define __has_attribute(a) false
-#endif
-
-#if __has_attribute (__warn_unused_result__)
-# define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
+#if __has_attribute (warn_unused_result)
+# define ATTRIBUTE_WARN_UNUSED_RESULT __attribute__ ((warn_unused_result))
#else
# define ATTRIBUTE_WARN_UNUSED_RESULT
#endif