aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--internal.h8
-rw-r--r--symbol.c9
2 files changed, 15 insertions, 2 deletions
diff --git a/internal.h b/internal.h
index 8b9701c597..2e88324f0c 100644
--- a/internal.h
+++ b/internal.h
@@ -40,6 +40,14 @@ extern "C" {
#define UNINITIALIZED_VAR(x) x
#endif
+#if __has_attribute(warn_unused_result)
+#define WARN_UNUSED_RESULT(x) x __attribute__((warn_unused_result))
+#elif defined(__GNUC__) && (__GNUC__ * 1000 + __GNUC_MINOR__) >= 3004
+#define WARN_UNUSED_RESULT(x) x __attribute__((warn_unused_result))
+#else
+#define WARN_UNUSED_RESULT(x) x
+#endif
+
#ifdef HAVE_VALGRIND_MEMCHECK_H
# include <valgrind/memcheck.h>
# ifndef VALGRIND_MAKE_MEM_DEFINED
diff --git a/symbol.c b/symbol.c
index c3ce50f830..630a386eb0 100644
--- a/symbol.c
+++ b/symbol.c
@@ -103,8 +103,13 @@ Init_sym(void)
Init_id();
}
-static ID attrsetname_to_attr(VALUE name);
-static VALUE lookup_id_str(ID id);
+WARN_UNUSED_RESULT(static VALUE dsymbol_alloc(const VALUE klass, const VALUE str, rb_encoding *const enc));
+WARN_UNUSED_RESULT(static VALUE dsymbol_check(const VALUE sym));
+WARN_UNUSED_RESULT(static ID dsymbol_pindown(VALUE sym));
+WARN_UNUSED_RESULT(static ID lookup_str_id(VALUE str));
+WARN_UNUSED_RESULT(static VALUE lookup_str_sym(const VALUE str));
+WARN_UNUSED_RESULT(static VALUE lookup_id_str(ID id));
+WARN_UNUSED_RESULT(static ID attrsetname_to_attr(VALUE name));
ID
rb_id_attrset(ID id)