aboutsummaryrefslogtreecommitdiff
path: root/EASTL/source
diff options
context:
space:
mode:
Diffstat (limited to 'EASTL/source')
-rw-r--r--EASTL/source/assert.cpp8
-rw-r--r--EASTL/source/numeric_limits.cpp32
-rw-r--r--EASTL/source/thread_support.cpp6
3 files changed, 40 insertions, 6 deletions
diff --git a/EASTL/source/assert.cpp b/EASTL/source/assert.cpp
index a4734af..63b444a 100644
--- a/EASTL/source/assert.cpp
+++ b/EASTL/source/assert.cpp
@@ -7,7 +7,9 @@
#include <EASTL/string.h>
#include <EABase/eabase.h>
-#if defined(EA_PLATFORM_MICROSOFT)
+#if defined(EA_PLATFORM_WINDOWS_KERNEL)
+ #include <Wdm.h>
+#elif defined(EA_PLATFORM_MICROSOFT)
EA_DISABLE_ALL_VC_WARNINGS();
#if defined(EA_COMPILER_MSVC)
#include <crtdbg.h>
@@ -66,7 +68,9 @@ namespace eastl
EASTL_API void AssertionFailureFunctionDefault(const char* pExpression, void* /*pContext*/)
{
#if EASTL_ASSERT_ENABLED
- #if defined(EA_PLATFORM_MICROSOFT)
+ #if defined(EA_PLATFORM_WINDOWS_KERNEL)
+ DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "%s", pExpression);
+ #elif defined(EA_PLATFORM_MICROSOFT)
printf("%s\n", pExpression); // Write the message to stdout
if( ::IsDebuggerPresent())
{
diff --git a/EASTL/source/numeric_limits.cpp b/EASTL/source/numeric_limits.cpp
index 7b7bf2f..90b1d75 100644
--- a/EASTL/source/numeric_limits.cpp
+++ b/EASTL/source/numeric_limits.cpp
@@ -39,7 +39,7 @@
#endif
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && !defined(EA_COMPILER_CLANG_CL)
// VC++ has a long-standing bug: it fails to allow the definition of static const member variables
// outside the declaration within the class. The C++ Standard actually requires that they be defined
// and some other compilers fail to link if they aren't. So we simply don't define the members for VC++.
@@ -197,6 +197,32 @@
EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::has_denorm_loss;
EA_CONSTEXPR_OR_CONST bool numeric_limits<wchar_t>::is_iec559;
+ // char8_t
+ #if defined(EA_CHAR8_UNIQUE) && EA_CHAR8_UNIQUE // If char8_t is a true unique type (as called for by the C++20 Standard)
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_specialized;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::digits10;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_signed;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_integer;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_exact;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::radix;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::min_exponent10;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent;
+ EA_CONSTEXPR_OR_CONST int numeric_limits<char8_t>::max_exponent10;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_bounded;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_modulo;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::traps;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::tinyness_before;
+ EA_CONSTEXPR_OR_CONST float_round_style numeric_limits<char8_t>::round_style;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_infinity;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_quiet_NaN;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_signaling_NaN;
+ EA_CONSTEXPR_OR_CONST float_denorm_style numeric_limits<char8_t>::has_denorm;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::has_denorm_loss;
+ EA_CONSTEXPR_OR_CONST bool numeric_limits<char8_t>::is_iec559;
+ #endif
+
// char16_t
#if EA_CHAR16_NATIVE // If char16_t is a true unique type (as called for by the C++11 Standard)...
EA_CONSTEXPR_OR_CONST bool numeric_limits<char16_t>::is_specialized;
@@ -442,7 +468,7 @@
EA_CONSTEXPR_OR_CONST bool numeric_limits<long long>::is_iec559;
// __uint128_t
- #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported...
+ #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported...
EA_CONSTEXPR_OR_CONST bool numeric_limits<__uint128_t>::is_specialized;
EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits;
EA_CONSTEXPR_OR_CONST int numeric_limits<__uint128_t>::digits10;
@@ -468,7 +494,7 @@
#endif
// __int128_t
- #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(EA_COMPILER_CLANG)) // If __int128_t/__uint128_t is supported...
+ #if (EA_COMPILER_INTMAX_SIZE >= 16) && (defined(EA_COMPILER_GNUC) || defined(__clang__)) // If __int128_t/__uint128_t is supported...
EA_CONSTEXPR_OR_CONST bool numeric_limits<__int128_t>::is_specialized;
EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits;
EA_CONSTEXPR_OR_CONST int numeric_limits<__int128_t>::digits10;
diff --git a/EASTL/source/thread_support.cpp b/EASTL/source/thread_support.cpp
index 3b8550e..693dd24 100644
--- a/EASTL/source/thread_support.cpp
+++ b/EASTL/source/thread_support.cpp
@@ -53,7 +53,11 @@ namespace eastl
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
- pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
+
+ #if defined(EA_HAVE_pthread_mutexattr_setpshared_DECL)
+ pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
+ #endif
+
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&mMutex, &attr);
pthread_mutexattr_destroy(&attr);