From 9722ed0e52aba80177960458d7d3deb3dde59c53 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Wed, 7 Nov 2018 04:56:24 +0000 Subject: 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 --- gc.c | 4 +--- internal.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gc.c b/gc.c index b38646988d..fe778aa917 100644 --- a/gc.c +++ b/gc.c @@ -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 -- cgit v1.2.3