| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- #pragma once
- #include "Banned.h"
- #include "CommonDefines.h"
- #define _CRT_RAND_S // Enable rand_s in the CRT
- #ifndef __has_feature
- #define __has_feature(f) 0
- #endif
- #if __has_feature(address_sanitizer)
- #define ADDRESS_SANITIZER_APPEND(x) , x
- #define NO_SANITIZE_ADDRESS __attribute__((no_sanitize("address")))
- #define NO_SANITIZE_ADDRESS_FIXVC
- #else
- #define ADDRESS_SANITIZER_APPEND(x)
- #define NO_SANITIZE_ADDRESS
- #endif
- // AddressSanitizer: check if an address is in asan fake stack
- #if __has_feature(address_sanitizer)
- extern "C"
- {
- void *__asan_get_current_fake_stack();
- void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, void **end);
- }
- inline bool IsAsanFakeStackAddr(const void * p)
- {
- void * fakeStack = __asan_get_current_fake_stack();
- return fakeStack && __asan_addr_is_in_fake_stack(fakeStack, const_cast<void*>(p), nullptr, nullptr);
- }
- #define IS_ASAN_FAKE_STACK_ADDR(p) IsAsanFakeStackAddr(p)
- #else
- #define IS_ASAN_FAKE_STACK_ADDR(p) false
- #endif
- #if defined(PROFILE_RECYCLER_ALLOC) || defined(HEAP_TRACK_ALLOC) || defined(ENABLE_DEBUG_CONFIG_OPTIONS)
- #ifdef __clang__
- #include <typeinfo>
- using std::type_info;
- #endif
- #endif
- #include "CommonPal.h"
- #include "Core/CommonMinMax.h"
- // === Core Header Files ===
- #include "Core/CommonTypedefs.h"
- #include "Core/Api.h"
- #include "Core/CriticalSection.h"
- #include "Core/Assertions.h"
- // === Exceptions Header Files ===
- #include "Exceptions/Throw.h"
- #include "Exceptions/ExceptionCheck.h"
- #include "Exceptions/ReportError.h"
|