From 67c46a9e5366b3461d9f1e733129c792628c337b Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sat, 1 Aug 2015 15:06:12 -0400 Subject: [PATCH] work around _FORTIFY_SOURCE false positive In builds with profiling disabled (default), the opt_prof_prefix array has a one byte length as a micro-optimization. This will cause the usage of write in the unused profiling code to be statically detected as a buffer overflow by Bionic's _FORTIFY_SOURCE implementation as it tries to detect read overflows in addition to write overflows. This works around the problem by informing the compiler that not_reached() means code in unreachable in release builds. --- include/jemalloc/internal/util.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/jemalloc/internal/util.h b/include/jemalloc/internal/util.h index fac2a172..c977aeaa 100644 --- a/include/jemalloc/internal/util.h +++ b/include/jemalloc/internal/util.h @@ -60,9 +60,11 @@ #ifdef __GNUC__ # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_expect(!!(x), 0) +# define unreachable() __builtin_unreachable() #else # define likely(x) !!(x) # define unlikely(x) !!(x) +# define unreachable() #endif /* @@ -88,6 +90,7 @@ __FILE__, __LINE__); \ abort(); \ } \ + unreachable(); \ } while (0) #endif