Docs: clarify unreachable for ReleaseSmall

This commit is contained in:
Techatrix 2022-09-28 12:30:55 +02:00 committed by GitHub
parent 779c2daa19
commit 9a2f17f9f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4903,13 +4903,12 @@ test "errdefer unwinding" {
{#header_close#}
{#header_open|unreachable#}
<p>
In {#syntax#}Debug{#endsyntax#} and {#syntax#}ReleaseSafe{#endsyntax#} mode, and when using <kbd>zig test</kbd>,
In {#link|Debug#} and {#link|ReleaseSafe#} mode
{#syntax#}unreachable{#endsyntax#} emits a call to {#syntax#}panic{#endsyntax#} with the message <code>reached unreachable code</code>.
</p>
<p>
In {#syntax#}ReleaseFast{#endsyntax#} mode, the optimizer uses the assumption that {#syntax#}unreachable{#endsyntax#} code
will never be hit to perform optimizations. However, <kbd>zig test</kbd> even in {#syntax#}ReleaseFast{#endsyntax#} mode
still emits {#syntax#}unreachable{#endsyntax#} as calls to {#syntax#}panic{#endsyntax#}.
In {#link|ReleaseFast#} and {#link|ReleaseSmall#} mode, the optimizer uses the assumption that {#syntax#}unreachable{#endsyntax#} code
will never be hit to perform optimizations.
</p>
{#header_open|Basics#}
{#code_begin|test|test_unreachable#}