Consolidate Linux and Mac version of YS_DEBUGTRAP_IF_DEBUGGING.
authorPeter Crozier <peter@crozier.com>
Wed, 13 May 2020 13:17:00 +0000 (14:17 +0100)
committerPeter Crozier <peter@crozier.com>
Wed, 13 May 2020 13:17:00 +0000 (14:17 +0100)
kernel/log.h

index 4b60ffb0da21f1fd16c5b1d42ccb7e70739f600e..6c5de78d780d0888239837126c2271e74965b0e0 100644 (file)
@@ -97,15 +97,12 @@ YOSYS_NAMESPACE_BEGIN
 // if a debugger is attached, and does nothing otherwise.
 #if defined(_WIN32)
 # define YS_DEBUGTRAP_IF_DEBUGGING do { if (IsDebuggerPresent()) DebugBreak(); } while(0)
-#elif defined(__unix__)
+# elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
 // There is no reliable (or portable) *nix equivalent of IsDebuggerPresent(). However,
 // debuggers will stop when SIGTRAP is raised, even if the action is set to ignore.
 # define YS_DEBUGTRAP_IF_DEBUGGING do { \
-               sighandler_t old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); \
+               auto old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); \
        } while(0)
-#elif defined(__APPLE__) && defined(__MACH__)
-// MacOS
-#define YS_DEBUGTRAP_IF_DEBUGGING { sig_t old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); }
 #else
 # define YS_DEBUGTRAP_IF_DEBUGGING do {} while(0)
 #endif