summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--enumerator.c8
-rw-r--r--gc.c9
-rw-r--r--include/ruby/internal/attr/nonnull.h2
3 files changed, 6 insertions, 13 deletions
diff --git a/enumerator.c b/enumerator.c
index f359ab7bad..be469ee38b 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -3446,11 +3446,9 @@ rb_arithmetic_sequence_extract(VALUE obj, rb_arithmetic_sequence_components_t *c
VALUE
rb_arithmetic_sequence_beg_len_step(VALUE obj, long *begp, long *lenp, long *stepp, long len, int err)
{
-#if !RBIMPL_HAS_ATTRIBUTE(nonnull)
- RUBY_ASSERT(begp != NULL);
- RUBY_ASSERT(lenp != NULL);
- RUBY_ASSERT(stepp != NULL);
-#endif
+ RBIMPL_NONNULL_ARG(begp);
+ RBIMPL_NONNULL_ARG(lenp);
+ RBIMPL_NONNULL_ARG(stepp);
rb_arithmetic_sequence_components_t aseq;
if (!rb_arithmetic_sequence_extract(obj, &aseq)) {
diff --git a/gc.c b/gc.c
index 40c035fcd2..cdee81dd05 100644
--- a/gc.c
+++ b/gc.c
@@ -2767,21 +2767,14 @@ rb_data_object_zalloc(VALUE klass, size_t size, RUBY_DATA_FUNC dmark, RUBY_DATA_
return obj;
}
-COMPILER_WARNING_PUSH
-#if __has_warning("-Wnonnull-compare") || GCC_VERSION_SINCE(6, 1, 0)
-COMPILER_WARNING_IGNORED(-Wnonnull-compare)
-#endif
-
VALUE
rb_data_typed_object_wrap(VALUE klass, void *datap, const rb_data_type_t *type)
{
- RUBY_ASSERT_ALWAYS(type);
+ RBIMPL_NONNULL_ARG(type);
if (klass) rb_data_object_check(klass);
return newobj_of(klass, T_DATA, (VALUE)type, (VALUE)1, (VALUE)datap, type->flags & RUBY_FL_WB_PROTECTED, sizeof(RVALUE));
}
-COMPILER_WARNING_POP
-
VALUE
rb_data_typed_object_zalloc(VALUE klass, size_t size, const rb_data_type_t *type)
{
diff --git a/include/ruby/internal/attr/nonnull.h b/include/ruby/internal/attr/nonnull.h
index 874f4236c0..778d5be208 100644
--- a/include/ruby/internal/attr/nonnull.h
+++ b/include/ruby/internal/attr/nonnull.h
@@ -25,8 +25,10 @@
/** Wraps (or simulates) `__attribute__((nonnull))` */
#if RBIMPL_HAS_ATTRIBUTE(nonnull)
# define RBIMPL_ATTR_NONNULL(list) __attribute__((__nonnull__ list))
+# define RBIMPL_NONNULL_ARG(arg) RBIMPL_ASSERT_NOTHING
#else
# define RBIMPL_ATTR_NONNULL(list) /* void */
+# define RBIMPL_NONNULL_ARG(arg) RUBY_ASSERT(arg)
#endif
#endif /* RBIMPL_ATTR_NONNULL_H */