#include "stdlib.h" void abort() { /* * On gcc, a 'while(true) {}' will infinitely loop * but clang will optimize it away on -O2 if it's empty * therefore, add no-op */ asm volatile("cli"); while (true) asm volatile("hlt"); __builtin_unreachable(); } extern "C" void print_exception(uint8_t irq) { printk("exception ", uhex{irq}, '\n'); asm volatile("cli"); while (true) asm volatile("hlt"); __builtin_unreachable(); };