diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-07 04:56:24 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-07 04:56:24 +0000 |
commit | 9722ed0e52aba80177960458d7d3deb3dde59c53 (patch) | |
tree | d3294b4331d992da288ee2878af19faad5cf56ed | |
parent | 234ffbce0e17464b0c174e3567ffe34917277229 (diff) | |
download | ruby-9722ed0e52aba80177960458d7d3deb3dde59c53.tar.gz |
suppress GCC warning about unknown sanitizers
See also: https://travis-ci.org/ruby/ruby/jobs/451710726#L1941
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | gc.c | 4 | ||||
-rw-r--r-- | internal.h | 10 |
2 files changed, 11 insertions, 3 deletions
@@ -4164,11 +4164,9 @@ ruby_stack_check(void) return stack_check(GET_EC(), STACKFRAME_FOR_CALL_CFUNC); } -ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS -( +ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n)); static void mark_locations_array(rb_objspace_t *objspace, register const VALUE *x, register long n) -) { VALUE v; while (n--) { diff --git a/internal.h b/internal.h index 2f3124f791..1a030566d3 100644 --- a/internal.h +++ b/internal.h @@ -68,6 +68,16 @@ extern "C" { # define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x #endif +#if defined(NO_SANITIZE) && defined(__GNUC__) &&! defined(__clang__) +/* GCC warns about unknown sanitizer, which is annoying. */ +#undef NO_SANITIZE +#define NO_SANITIZE(x, y) \ + COMPILER_WARNING_PUSH; \ + COMPILER_WARNING_IGNORED(-Wattributes); \ + __attribute__((__no_sanitize__(x))) y; \ + COMPILER_WARNING_POP +#endif + #ifndef NO_SANITIZE # define NO_SANITIZE(x, y) y #endif |