diff --git a/nx/include/switch/services/fatal.h b/nx/include/switch/services/fatal.h index 59ddb6c1..f572dec6 100644 --- a/nx/include/switch/services/fatal.h +++ b/nx/include/switch/services/fatal.h @@ -1 +1 @@ -void fatalSimple(Result err); +__attribute__((noreturn)) void fatalSimple(Result err); diff --git a/nx/source/services/fatal.c b/nx/source/services/fatal.c index d99e23ff..54698999 100644 --- a/nx/source/services/fatal.c +++ b/nx/source/services/fatal.c @@ -36,4 +36,5 @@ void fatalSimple(Result err) { } ((void(*)())0xBADC0DE)(); + __builtin_unreachable(); } diff --git a/nx/source/system/newlib.c b/nx/source/system/newlib.c index 8d2776c5..4404a984 100644 --- a/nx/source/system/newlib.c +++ b/nx/source/system/newlib.c @@ -13,10 +13,8 @@ extern u8 __tls_start[]; static struct _reent* __libnx_get_reent() { ThreadVars* tv = getThreadVars(); - if (tv->magic != THREADVARS_MAGIC) { + if (tv->magic != THREADVARS_MAGIC) fatalSimple(MAKERESULT(MODULE_LIBNX, LIBNX_BADREENT)); - for (;;); - } return tv->reent; }