system: Add WARN_UNUSED_RESULT
authorMarek Polacek <polacek@redhat.com>
Thu, 12 Nov 2020 01:18:06 +0000 (20:18 -0500)
committerMarek Polacek <polacek@redhat.com>
Thu, 12 Nov 2020 16:24:23 +0000 (11:24 -0500)
I'd like to have the option of marking functions with
__attribute__ ((__warn_unused_result__)), so this patch adds a macro.
And use it for maybe_wrap_with_location, it's always a bug if the
return value is not used, which happened to me and got me confused.

gcc/ChangeLog:

* system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4.
* tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT.

gcc/system.h
gcc/tree.h

index b0f3f1dd019d8c32056c3d91b500cc33932e6d8c..6f6ab616a61d0096fca5de1923cd5cb27e72e9bd 100644 (file)
@@ -789,6 +789,12 @@ extern void fancy_abort (const char *, int, const char *)
 #define ALWAYS_INLINE inline
 #endif
 
+#if GCC_VERSION >= 3004
+#define WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
+#else
+#define WARN_UNUSED_RESULT
+#endif
+
 /* Use gcc_unreachable() to mark unreachable locations (like an
    unreachable default case of a switch.  Do not use gcc_assert(0).  */
 #if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING
index 684be10b440a7b7617cc284a68ce22d0e7ac216c..9a713cdb0c725d764dc3eb9344bd6b2f4cb7364c 100644 (file)
@@ -1214,7 +1214,7 @@ get_expr_source_range (tree expr)
 extern void protected_set_expr_location (tree, location_t);
 extern void protected_set_expr_location_if_unset (tree, location_t);
 
-extern tree maybe_wrap_with_location (tree, location_t);
+WARN_UNUSED_RESULT extern tree maybe_wrap_with_location (tree, location_t);
 
 extern int suppress_location_wrappers;