From 2c1ffc66bf5d5db05018d7b06253b5ca51e557ab Mon Sep 17 00:00:00 2001 From: Ivan Komissarov Date: Tue, 26 Oct 2021 15:39:39 +0200 Subject: Suppress sanitizer for Heap::markConservatively This function does delibarately corrupt the stack when called from markCurrentThreadConservativelyInternal(). Change-Id: I63504c9bc1b892f9bb236de92bf363b82aebd420 Reviewed-by: Christian Kandeler --- src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp index e8f78ee..20e922f 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp @@ -93,6 +93,12 @@ #define COLLECT_ON_EVERY_ALLOCATION 0 +#if defined(__clang__) || defined (__GNUC__) +# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) +#else +# define ATTRIBUTE_NO_SANITIZE_ADDRESS +#endif + using std::max; namespace JSC { @@ -786,6 +792,7 @@ static inline bool isPossibleCell(void* p) } #endif // USE(JSVALUE32) +ATTRIBUTE_NO_SANITIZE_ADDRESS void Heap::markConservatively(MarkStack& markStack, void* start, void* end) { if (start > end) { -- cgit v1.2.1