From b92890104b5697014e8c9f8767ddb88b4cd21227 Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 9 Jul 2025 19:06:58 +0200 Subject: Add NORETURN to failure functions, add `unreachable` Signed-off-by: Mel --- boot/common.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'boot/common.c') diff --git a/boot/common.c b/boot/common.c index d92684e..ccae087 100644 --- a/boot/common.c +++ b/boot/common.c @@ -10,6 +10,7 @@ #pragma once +#include #include #include #include @@ -17,7 +18,6 @@ #include #include #include -#include #define uint8 uint8_t #define uint16 uint16_t @@ -46,6 +46,8 @@ #define nil NULL #define unknown void +#define NORETURN _Noreturn + // ansi escape codes for terminal color and style #define ANSI(code) "\33[" code "m" @@ -77,6 +79,7 @@ // call on irrecoverable failure. // prints a very sad, apologetic message for // the user and aborts program with failure status. +NORETURN void failure(const ascii* message) { @@ -98,6 +101,13 @@ check(bool condition, const ascii* message) if (!condition) failure(message); } +NORETURN +void +unreachable() +{ + failure("unreachable code reached"); +} + // for each entry in a linked list. #define FOR_EACH(type, cursor, head) for (type cursor = head; cursor != nil; cursor = cursor->next) -- cgit 1.4.1