| Index: Source/wtf/AddressSanitizer.h
|
| diff --git a/Source/wtf/AddressSanitizer.h b/Source/wtf/AddressSanitizer.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0427b638db700f8762816d6630ed7564227e4840
|
| --- /dev/null
|
| +++ b/Source/wtf/AddressSanitizer.h
|
| @@ -0,0 +1,43 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef WTF_AddressSanitizer_h
|
| +#define WTF_AddressSanitizer_h
|
| +
|
| +// TODO(sof): Add SyZyASan support?
|
| +#if defined(ADDRESS_SANITIZER)
|
| +#include <sanitizer/asan_interface.h>
|
| +#else
|
| +#define ASAN_POISON_MEMORY_REGION(addr, size) \
|
| + ((void)(addr), (void)(size))
|
| +#define ASAN_UNPOISON_MEMORY_REGION(addr, size) \
|
| + ((void)(addr), (void)(size))
|
| +#endif
|
| +
|
| +#if defined(LEAK_SANITIZER)
|
| +#include <sanitizer/lsan_interface.h>
|
| +#else
|
| +#define __lsan_register_root_region(addr, size) ((void)(addr), (void)(size))
|
| +#define __lsan_unregister_root_region(addr, size) ((void)(addr), (void)(size))
|
| +#endif
|
| +
|
| +// TODO(sof): Have to handle (ADDRESS_SANITIZER && _WIN32) differently as it
|
| +// uses both Clang (which supports the __attribute__ syntax) and CL (which doesn't)
|
| +// as long as we use "clang-cl /fallback". This shouldn't be needed when Clang
|
| +// handles all the code without falling back to CL.
|
| +#if defined(ADDRESS_SANITIZER) && (!OS(WIN) || COMPILER(CLANG))
|
| +#define NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address))
|
| +#if ENABLE(OILPAN)
|
| +// TODO(Oilpan): a temporary annotation while lazy sweeping is phased in.
|
| +// Remove the ENABLE(OILPAN) condition when lazy sweeping is globally enabled.
|
| +#define NO_LAZY_SWEEP_SANITIZE_ADDRESS NO_SANITIZE_ADDRESS
|
| +#else
|
| +#define NO_LAZY_SWEEP_SANITIZE_ADDRESS
|
| +#endif
|
| +#else
|
| +#define NO_SANITIZE_ADDRESS
|
| +#define NO_LAZY_SWEEP_SANITIZE_ADDRESS
|
| +#endif
|
| +
|
| +#endif // WTF_AddressSanitizer_h
|
|
|