diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2021-10-12 09:15:48 +0300 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2021-10-12 13:09:35 +0300 |
commit | 4ecc67a999dec9f6c0a279c7f3241caa3b5aceaf (patch) | |
tree | 824eb6c1c707e8a7f0b000e569c59c87b9fc3858 /tests | |
parent | dee02534adbdb1ea03e7ba2772bdee22e744df04 (diff) | |
download | bdwgc-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.c | 8 |
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); |