summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-23 17:27:24 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-05-23 17:36:26 +0900
commitfe3ff5afb07e171fd950623c69abfbabbb2762a3 (patch)
treee7f285cf9cf0f84375e20c5d572e171b8af021e4
parentdc95b57a68da6999ce6a1542b3ad81c51429cc99 (diff)
Suppress paranoid warnings for external/3rd-party libraries
[Feature #15665]
-rw-r--r--ext/socket/mkconstants.rb1
-rw-r--r--include/ruby/ruby.h2
-rw-r--r--internal.h8
-rw-r--r--lib/mkmf.rb2
4 files changed, 8 insertions, 5 deletions
diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb
index 81b8224077..620a5f60ff 100644
--- a/ext/socket/mkconstants.rb
+++ b/ext/socket/mkconstants.rb
@@ -180,6 +180,7 @@ int
% }
default:
+ if (!str || !valp) {/* wrong argument */}
return -1;
}
}
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 0c6d7e3e63..86e01f64bf 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -2198,6 +2198,7 @@ rb_array_ptr_use_start(VALUE a, int allow_transient)
}
}
#endif
+ (void)allow_transient;
return rb_ary_ptr_use_start(a);
}
@@ -2208,6 +2209,7 @@ rb_array_ptr_use_end(VALUE a, int allow_transient)
{
void rb_ary_ptr_use_end(VALUE a);
rb_ary_ptr_use_end(a);
+ (void)allow_transient;
}
#if defined(EXTLIB) && defined(USE_DLN_A_OUT)
diff --git a/internal.h b/internal.h
index 2511aff3ef..bf57094db0 100644
--- a/internal.h
+++ b/internal.h
@@ -117,10 +117,10 @@ extern "C" {
#endif
#if !__has_feature(memory_sanitizer)
-# define __msan_allocated_memory(x, y)
-# define __msan_poison(x, y)
-# define __msan_unpoison(x, y)
-# define __msan_unpoison_string(x)
+# define __msan_allocated_memory(x, y) ((void)(x), (void)(y))
+# define __msan_poison(x, y) ((void)(x), (void)(y))
+# define __msan_unpoison(x, y) ((void)(x), (void)(y))
+# define __msan_unpoison_string(x) ((void)(x))
#endif
/*!
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index ea5a8ac2ce..bf95484aa8 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -2735,7 +2735,7 @@ MESSAGE
##
# A C main function which does no work
- MAIN_DOES_NOTHING = config_string('MAIN_DOES_NOTHING') || "int main(int argc, char **argv)\n{\n return 0;\n}"
+ MAIN_DOES_NOTHING = config_string('MAIN_DOES_NOTHING') || "int main(int argc, char **argv)\n{\n return !!argv[argc];\n}"
UNIVERSAL_INTS = config_string('UNIVERSAL_INTS') {|s| Shellwords.shellwords(s)} ||
%w[int short long long\ long]