summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2021-02-15 04:07:23 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-07-29 13:12:47 -0400
commite6731578246b6e6959026d4a9da9971b097c83aa (patch)
treeb187c46fc1d10b17a1f7d2a5952582269921b73a /rts
parent296ed7395c9a45352cf2e03ef9ff0b3b1f5a1a80 (diff)
downloadhaskell-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.c2
-rw-r--r--rts/sm/CNF.c3
-rw-r--r--rts/sm/GC.c2
-rw-r--r--rts/sm/MarkWeak.c2
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);