Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision ec8ef12310886f8dae440b616a2f7eb60602d141)
+++ kernel/generic/src/interrupt/interrupt.c	(revision dc0f6e4c8e25531a81515e002eb3011aa8098c45)
@@ -58,4 +58,11 @@
 #include <trace.h>
 
+/*
+ * If IVT_ITEMS is zero (e.g. for special/abs32le) we hide completely any
+ * access to the exception table array and panic if the function is called
+ * at all. It also silences (correct) compiler warnings about possible
+ * out-of-bound array access.
+ */
+
 exc_table_t exc_table[IVT_ITEMS];
 IRQ_SPINLOCK_INITIALIZE(exctbl_lock);
@@ -77,5 +84,4 @@
 #if (IVT_ITEMS > 0)
 	assert(n < IVT_ITEMS);
-#endif
 
 	irq_spinlock_lock(&exctbl_lock, true);
@@ -91,4 +97,7 @@
 
 	return old;
+#else
+	panic("No space for any exception handler, cannot register.");
+#endif
 }
 
@@ -103,5 +112,4 @@
 #if (IVT_ITEMS > 0)
 	assert(n < IVT_ITEMS);
-#endif
 
 	/* Account user cycles */
@@ -152,4 +160,7 @@
 		irq_spinlock_unlock(&THREAD->lock, false);
 	}
+#else
+	panic("No space for any exception handler, yet we want to handle some exception.");
+#endif
 }
 
