| ... | ... | @@ -3974,7 +3974,7 @@ test "noreturn" { |
| 3974 | 3974 | <p>Another use case for {#syntax#}noreturn{#endsyntax#} is the {#syntax#}exit{#endsyntax#} function:</p> |
| 3975 | 3975 | {#code_begin|test#} |
| 3976 | 3976 | {#target_windows#} |
| 3977 | | pub extern "kernel32" stdcallcc fn ExitProcess(exit_code: c_uint) noreturn; |
| 3977 | pub extern "kernel32" fn ExitProcess(exit_code: c_uint) callconv(.Stdcall) noreturn; |
| 3978 | 3978 | |
| 3979 | 3979 | test "foo" { |
| 3980 | 3980 | const value = bar() catch ExitProcess(1); |
| ... | ... | @@ -4008,8 +4008,8 @@ export fn sub(a: i8, b: i8) i8 { return a - b; } |
| 4008 | 4008 | // The extern specifier is used to declare a function that will be resolved |
| 4009 | 4009 | // at link time, when linking statically, or at runtime, when linking |
| 4010 | 4010 | // dynamically. |
| 4011 | | // The stdcallcc specifier changes the calling convention of the function. |
| 4012 | | extern "kernel32" stdcallcc fn ExitProcess(exit_code: u32) noreturn; |
| 4011 | // The callconv specifier changes the calling convention of the function. |
| 4012 | extern "kernel32" fn ExitProcess(exit_code: u32) callconv(.Stdcall) noreturn; |
| 4013 | 4013 | extern "c" fn atan2(a: f64, b: f64) f64; |
| 4014 | 4014 | |
| 4015 | 4015 | // The @setCold builtin tells the optimizer that a function is rarely called. |
| ... | ... | @@ -4018,9 +4018,9 @@ fn abort() noreturn { |
| 4018 | 4018 | while (true) {} |
| 4019 | 4019 | } |
| 4020 | 4020 | |
| 4021 | | // The nakedcc specifier makes a function not have any function prologue or epilogue. |
| 4021 | // The naked calling convention makes a function not have any function prologue or epilogue. |
| 4022 | 4022 | // This can be useful when integrating with assembly. |
| 4023 | | nakedcc fn _start() noreturn { |
| 4023 | fn _start() callconv(.Naked) noreturn { |
| 4024 | 4024 | abort(); |
| 4025 | 4025 | } |
| 4026 | 4026 | |
| ... | ... | @@ -10382,9 +10382,7 @@ LinkSection &lt;- KEYWORD_linksection LPAREN Expr RPAREN |
| 10382 | 10382 | |
| 10383 | 10383 | # Fn specific |
| 10384 | 10384 | FnCC |
| 10385 | | &lt;- KEYWORD_nakedcc |
| 10386 | | / KEYWORD_stdcallcc |
| 10387 | | / KEYWORD_extern |
| 10385 | &lt;- KEYWORD_extern |
| 10388 | 10386 | / KEYWORD_async |
| 10389 | 10387 | |
| 10390 | 10388 | ParamDecl &lt;- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType |
| ... | ... | @@ -10648,7 +10646,6 @@ KEYWORD_fn &lt;- 'fn' end_of_word |
| 10648 | 10646 | KEYWORD_for &lt;- 'for' end_of_word |
| 10649 | 10647 | KEYWORD_if &lt;- 'if' end_of_word |
| 10650 | 10648 | KEYWORD_inline &lt;- 'inline' end_of_word |
| 10651 | | KEYWORD_nakedcc &lt;- 'nakedcc' end_of_word |
| 10652 | 10649 | KEYWORD_noalias &lt;- 'noalias' end_of_word |
| 10653 | 10650 | KEYWORD_null &lt;- 'null' end_of_word |
| 10654 | 10651 | KEYWORD_or &lt;- 'or' end_of_word |
| ... | ... | @@ -10659,7 +10656,6 @@ KEYWORD_pub &lt;- 'pub' end_of_word |
| 10659 | 10656 | KEYWORD_resume &lt;- 'resume' end_of_word |
| 10660 | 10657 | KEYWORD_return &lt;- 'return' end_of_word |
| 10661 | 10658 | KEYWORD_linksection &lt;- 'linksection' end_of_word |
| 10662 | | KEYWORD_stdcallcc &lt;- 'stdcallcc' end_of_word |
| 10663 | 10659 | KEYWORD_struct &lt;- 'struct' end_of_word |
| 10664 | 10660 | KEYWORD_suspend &lt;- 'suspend' end_of_word |
| 10665 | 10661 | KEYWORD_switch &lt;- 'switch' end_of_word |
| ... | ... | @@ -10681,10 +10677,10 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_asm |
| 10681 | 10677 | / KEYWORD_defer / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer |
| 10682 | 10678 | / KEYWORD_error / KEYWORD_export / KEYWORD_extern / KEYWORD_false |
| 10683 | 10679 | / KEYWORD_fn / KEYWORD_for / KEYWORD_if / KEYWORD_inline |
| 10684 | | / KEYWORD_nakedcc / KEYWORD_noalias / KEYWORD_null / KEYWORD_or |
| 10680 | / KEYWORD_noalias / KEYWORD_null / KEYWORD_or |
| 10685 | 10681 | / KEYWORD_orelse / KEYWORD_packed / KEYWORD_promise / KEYWORD_pub |
| 10686 | 10682 | / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection |
| 10687 | | / KEYWORD_stdcallcc / KEYWORD_struct / KEYWORD_suspend |
| 10683 | / KEYWORD_struct / KEYWORD_suspend |
| 10688 | 10684 | / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try |
| 10689 | 10685 | / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable |
| 10690 | 10686 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre> |