diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2021-02-15 04:07:23 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-07-29 13:12:47 -0400 |
commit | e6731578246b6e6959026d4a9da9971b097c83aa (patch) | |
tree | b187c46fc1d10b17a1f7d2a5952582269921b73a /rts | |
parent | 296ed7395c9a45352cf2e03ef9ff0b3b1f5a1a80 (diff) | |
download | haskell-e6731578246b6e6959026d4a9da9971b097c83aa.tar.gz |
Add configure flag to enable ASSERTs in all ways
Running the test suite with asserts enabled is somewhat tricky at the
moment as running it with a GHC compiled the DEBUG way has some hundred
failures from the start. These seem to be unrelated to assertions
though. So this provides a toggle to make it easier to debug failing
assertions using the test suite.
Diffstat (limited to 'rts')
-rw-r--r-- | rts/posix/OSThreads.c | 2 | ||||
-rw-r--r-- | rts/sm/CNF.c | 3 | ||||
-rw-r--r-- | rts/sm/GC.c | 2 | ||||
-rw-r--r-- | rts/sm/MarkWeak.c | 2 |
4 files changed, 4 insertions, 5 deletions
diff --git a/rts/posix/OSThreads.c b/rts/posix/OSThreads.c index 04375006d2..647b4840d3 100644 --- a/rts/posix/OSThreads.c +++ b/rts/posix/OSThreads.c @@ -202,7 +202,7 @@ osThreadIsAlive(OSThreadId id STG_UNUSED) void initMutex(Mutex* pMut) { -#if defined(DEBUG) +#if ASSERTS_ENABLED pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_ERRORCHECK); diff --git a/rts/sm/CNF.c b/rts/sm/CNF.c index 31b3cb99f2..bfe6493cfa 100644 --- a/rts/sm/CNF.c +++ b/rts/sm/CNF.c @@ -227,9 +227,8 @@ compactAllocateBlockInternal(Capability *cap, break; default: -#if defined(DEBUG) ASSERT(!"code should not be reached"); -#else +#if !defined(DEBUG) RTS_UNREACHABLE; #endif } diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 1a71bd7bf0..21b7b17f0d 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -1545,8 +1545,8 @@ releaseGCThreads (Capability *cap USED_IF_THREADS, bool idle_cap[]) const uint32_t n_threads = n_capabilities; const uint32_t me = cap->no; uint32_t i; -#if defined(DEBUG) uint32_t num_idle = 0; +#if defined(ASSERTS_ENABLED) for(i=0; i < n_threads; ++i) { ASSERT(!(i==me && idle_cap[i])); if (idle_cap[i]) { ++num_idle;} diff --git a/rts/sm/MarkWeak.c b/rts/sm/MarkWeak.c index b8d120823c..379e3aaa80 100644 --- a/rts/sm/MarkWeak.c +++ b/rts/sm/MarkWeak.c @@ -417,7 +417,7 @@ markWeakPtrList ( void ) for (w = gen->weak_ptr_list; w != NULL; w = RELAXED_LOAD(&w->link)) { // w might be WEAK, EVACUATED, or DEAD_WEAK (actually CON_STATIC) here -#if defined(DEBUG) +#if defined(ASSERTS_ENABLED) { // careful to do this assertion only reading the info ptr // once, because during parallel GC it might change under our feet. const StgInfoTable *info = RELAXED_LOAD(&w->header.info); |