diff --git a/lib/std/core/builtin.c3 b/lib/std/core/builtin.c3 index cccfca726..3c89bf8bf 100644 --- a/lib/std/core/builtin.c3 +++ b/lib/std/core/builtin.c3 @@ -204,8 +204,9 @@ macro void unreachable(String string = "Unreachable statement reached.", ...) @b { $if env::COMPILER_SAFE_MODE: panicf(string, $$FILE, $$FUNC, $$LINE, $vasplat); - $endif; + $else $$unreachable(); + $endif } <* diff --git a/releasenotes.md b/releasenotes.md index 5312cbf49..b0ac5c0b4 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -33,6 +33,7 @@ - Fixes to `@format` checking #2199. - Distinct versions of builtin types ignore @operator overloads #2204. - @operator macro using untyped parameter causes compiler segfault #2200. +- Make `unreachable()` only panic in safe mode. ### Stdlib changes - Deprecate `String.is_zstr` and `String.quick_zstr` #2188.