summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2021-10-12 09:15:48 +0300
committerIvan Maidanski <ivmai@mail.ru>2021-10-12 13:09:35 +0300
commit4ecc67a999dec9f6c0a279c7f3241caa3b5aceaf (patch)
tree824eb6c1c707e8a7f0b000e569c59c87b9fc3858 /tests
parentdee02534adbdb1ea03e7ba2772bdee22e744df04 (diff)
downloadbdwgc-4ecc67a999dec9f6c0a279c7f3241caa3b5aceaf.tar.gz
Workaround msvc_dbg.c build failure on arm[64] (MSVC)
As of now, backtrace() and backtrace_symbols() on Windows are implemented only for x86 (and only if MS VC compiler). * extra/msvc_dbg.c [!_M_X64 && _MSC_VER]: Skip entire file also if _M_ARM or _M_ARM64; add TODO item. * include/gc_config_macros.h [_MSC_VER && _MSC_VER>=1200 && !_AMD64_ && !_M_X64 && !_WIN32_WCE && !GC_HAVE_NO_BUILTIN_BACKTRACE && !GC_HAVE_BUILTIN_BACKTRACE] (GC_HAVE_BUILTIN_BACKTRACE): Do not define if _M_ARM or _M_ARM64. * tests/test.c [!PCR && !GC_WIN32_THREADS && !GC_PTHREADS && CPPCHECK && _MSC_VER && !_M_ARM && !_M_ARM64 && !_M_X64]: Include msvc_dbg.h. * tests/test.c [!PCR && !GC_WIN32_THREADS && !GC_PTHREADS && CPPCHECK && !_M_X64 && _MSC_VER] (WinMain): Do not pass GetFileLineFromStack, GetModuleNameFromStack and GetSymbolNameFromStack to UNTESTED() if _M_ARM or _M_ARM64.
Diffstat (limited to 'tests')
-rw-r--r--tests/test.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/tests/test.c b/tests/test.c
index 8a7c7437..2eaadadd 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -1943,6 +1943,11 @@ void enable_incremental_mode(void)
#if !defined(PCR) && !defined(GC_WIN32_THREADS) && !defined(GC_PTHREADS)
+#if defined(CPPCHECK) && defined(_MSC_VER) && !defined(_M_ARM) \
+ && !defined(_M_ARM64) && !defined(_M_X64)
+# include "private/msvc_dbg.h"
+#endif
+
#if defined(_DEBUG) && (_MSC_VER >= 1900) /* VS 2015+ */
# ifndef _CRTDBG_MAP_ALLOC
# define _CRTDBG_MAP_ALLOC
@@ -2039,7 +2044,8 @@ void enable_incremental_mode(void)
# if defined(MACOS) && defined(USE_TEMPORARY_MEMORY)
UNTESTED(GC_MacTemporaryNewPtr);
# endif
-# if !defined(_M_X64) && defined(_MSC_VER)
+# if !defined(_M_ARM) && !defined(_M_ARM64) \
+ && !defined(_M_X64) && defined(_MSC_VER)
UNTESTED(GetFileLineFromStack);
UNTESTED(GetModuleNameFromStack);
UNTESTED(GetSymbolNameFromStack);