From 5e0f4a75dc137c6cfc60cfb094356b9f24d6fbba Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Tue, 13 Aug 2019 16:04:10 +0300 Subject: [PATCH] Added detection of address sanitizer. --- auto/clang | 20 ++++++++++++++++++++ src/test/njs_unit_test.c | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/auto/clang b/auto/clang index b776ef1c..e62433f9 100644 --- a/auto/clang +++ b/auto/clang @@ -291,6 +291,26 @@ njs_feature_test="int n __attribute__ ((aligned(64))); . auto/feature +njs_feature="Address sanitizer" +njs_feature_name=NJS_HAVE_ADDRESS_SANITIZER +njs_feature_run=no +njs_feature_path= +njs_feature_libs= +njs_feature_test="int main(void) { + return + #ifdef __SANITIZE_ADDRESS__ + 0; + #else + #if defined(__has_feature) + #if __has_feature(address_sanitizer) + 0; + #endif + #endif + #endif + }" +. auto/feature + + njs_feature="Memory sanitizer" njs_feature_name=NJS_HAVE_MEMORY_SANITIZER njs_feature_run=yes diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index 4a0f82c9..7ac78b6b 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -4163,7 +4163,7 @@ static njs_unit_test_t njs_test[] = "Array.prototype.fill.call(o, 2).a"), njs_str("4") }, -#if (!NJS_HAVE_MEMORY_SANITIZER) /* MSAN limits stack size */ +#if (!NJS_HAVE_ADDRESS_SANITIZER && !NJS_HAVE_MEMORY_SANITIZER) /* limited stack size */ { njs_str("var o = Object({length: 3});" "Object.defineProperty(o, '0', {set: function(v){this[0] = 2 * v}});" "Array.prototype.fill.call(o, 2)"), @@ -6421,7 +6421,7 @@ static njs_unit_test_t njs_test[] = { njs_str("{ function f() {} { var f }}"), njs_str("SyntaxError: \"f\" has already been declared in 1") }, -#if (!NJS_HAVE_MEMORY_SANITIZER) /* MSAN limits stack size */ +#if (!NJS_HAVE_ADDRESS_SANITIZER && !NJS_HAVE_MEMORY_SANITIZER) /* limited stack size */ { njs_str("function f() { return f() } f()"), njs_str("RangeError: Maximum call stack size exceeded") }, #endif -- 2.47.3