authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-06 18:26:15-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-06 18:26:20-05:00
logc0e8837ce9168088e89bfeef9516d7318cd5f97d
tree301be35678da01fd2fdac0198b1f2651eb2e641a
parentbe2483c576850c038d84cade26c1a509a940f047
signature Commit is signed but in an unrecognized format.

update docs with regards to callconv


1 files changed, 8 insertions(+), 12 deletions(-)

doc/langref.html.in+8-12
...@@ -3974,7 +3974,7 @@ test "noreturn" {...@@ -3974,7 +3974,7 @@ test "noreturn" {
3974 <p>Another use case for {#syntax#}noreturn{#endsyntax#} is the {#syntax#}exit{#endsyntax#} function:</p>3974 <p>Another use case for {#syntax#}noreturn{#endsyntax#} is the {#syntax#}exit{#endsyntax#} function:</p>
3975 {#code_begin|test#}3975 {#code_begin|test#}
3976 {#target_windows#}3976 {#target_windows#}
3977pub extern "kernel32" stdcallcc fn ExitProcess(exit_code: c_uint) noreturn;3977pub extern "kernel32" fn ExitProcess(exit_code: c_uint) callconv(.Stdcall) noreturn;
39783978
3979test "foo" {3979test "foo" {
3980 const value = bar() catch ExitProcess(1);3980 const value = bar() catch ExitProcess(1);
...@@ -4008,8 +4008,8 @@ export fn sub(a: i8, b: i8) i8 { return a - b; }...@@ -4008,8 +4008,8 @@ export fn sub(a: i8, b: i8) i8 { return a - b; }
4008// The extern specifier is used to declare a function that will be resolved4008// The extern specifier is used to declare a function that will be resolved
4009// at link time, when linking statically, or at runtime, when linking4009// at link time, when linking statically, or at runtime, when linking
4010// dynamically.4010// dynamically.
4011// The stdcallcc specifier changes the calling convention of the function.4011// The callconv specifier changes the calling convention of the function.
4012extern "kernel32" stdcallcc fn ExitProcess(exit_code: u32) noreturn;4012extern "kernel32" fn ExitProcess(exit_code: u32) callconv(.Stdcall) noreturn;
4013extern "c" fn atan2(a: f64, b: f64) f64;4013extern "c" fn atan2(a: f64, b: f64) f64;
40144014
4015// The @setCold builtin tells the optimizer that a function is rarely called.4015// The @setCold builtin tells the optimizer that a function is rarely called.
...@@ -4018,9 +4018,9 @@ fn abort() noreturn {...@@ -4018,9 +4018,9 @@ fn abort() noreturn {
4018 while (true) {}4018 while (true) {}
4019}4019}
40204020
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// This can be useful when integrating with assembly.4022// This can be useful when integrating with assembly.
4023nakedcc fn _start() noreturn {4023fn _start() callconv(.Naked) noreturn {
4024 abort();4024 abort();
4025}4025}
40264026
...@@ -10382,9 +10382,7 @@ LinkSection &lt;- KEYWORD_linksection LPAREN Expr RPAREN...@@ -10382,9 +10382,7 @@ LinkSection &lt;- KEYWORD_linksection LPAREN Expr RPAREN
1038210382
10383# Fn specific10383# Fn specific
10384FnCC10384FnCC
10385 &lt;- KEYWORD_nakedcc10385 &lt;- KEYWORD_extern
10386 / KEYWORD_stdcallcc
10387 / KEYWORD_extern
10388 / KEYWORD_async10386 / KEYWORD_async
1038910387
10390ParamDecl &lt;- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType10388ParamDecl &lt;- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType
...@@ -10648,7 +10646,6 @@ KEYWORD_fn &lt;- 'fn' end_of_word...@@ -10648,7 +10646,6 @@ KEYWORD_fn &lt;- 'fn' end_of_word
10648KEYWORD_for &lt;- 'for' end_of_word10646KEYWORD_for &lt;- 'for' end_of_word
10649KEYWORD_if &lt;- 'if' end_of_word10647KEYWORD_if &lt;- 'if' end_of_word
10650KEYWORD_inline &lt;- 'inline' end_of_word10648KEYWORD_inline &lt;- 'inline' end_of_word
10651KEYWORD_nakedcc &lt;- 'nakedcc' end_of_word
10652KEYWORD_noalias &lt;- 'noalias' end_of_word10649KEYWORD_noalias &lt;- 'noalias' end_of_word
10653KEYWORD_null &lt;- 'null' end_of_word10650KEYWORD_null &lt;- 'null' end_of_word
10654KEYWORD_or &lt;- 'or' end_of_word10651KEYWORD_or &lt;- 'or' end_of_word
...@@ -10659,7 +10656,6 @@ KEYWORD_pub &lt;- 'pub' end_of_word...@@ -10659,7 +10656,6 @@ KEYWORD_pub &lt;- 'pub' end_of_word
10659KEYWORD_resume &lt;- 'resume' end_of_word10656KEYWORD_resume &lt;- 'resume' end_of_word
10660KEYWORD_return &lt;- 'return' end_of_word10657KEYWORD_return &lt;- 'return' end_of_word
10661KEYWORD_linksection &lt;- 'linksection' end_of_word10658KEYWORD_linksection &lt;- 'linksection' end_of_word
10662KEYWORD_stdcallcc &lt;- 'stdcallcc' end_of_word
10663KEYWORD_struct &lt;- 'struct' end_of_word10659KEYWORD_struct &lt;- 'struct' end_of_word
10664KEYWORD_suspend &lt;- 'suspend' end_of_word10660KEYWORD_suspend &lt;- 'suspend' end_of_word
10665KEYWORD_switch &lt;- 'switch' end_of_word10661KEYWORD_switch &lt;- 'switch' end_of_word
...@@ -10681,10 +10677,10 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_asm...@@ -10681,10 +10677,10 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_asm
10681 / KEYWORD_defer / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer10677 / KEYWORD_defer / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer
10682 / KEYWORD_error / KEYWORD_export / KEYWORD_extern / KEYWORD_false10678 / KEYWORD_error / KEYWORD_export / KEYWORD_extern / KEYWORD_false
10683 / KEYWORD_fn / KEYWORD_for / KEYWORD_if / KEYWORD_inline10679 / KEYWORD_fn / KEYWORD_for / KEYWORD_if / KEYWORD_inline
10684 / KEYWORD_nakedcc / KEYWORD_noalias / KEYWORD_null / KEYWORD_or10680 / KEYWORD_noalias / KEYWORD_null / KEYWORD_or
10685 / KEYWORD_orelse / KEYWORD_packed / KEYWORD_promise / KEYWORD_pub10681 / KEYWORD_orelse / KEYWORD_packed / KEYWORD_promise / KEYWORD_pub
10686 / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection10682 / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection
10687 / KEYWORD_stdcallcc / KEYWORD_struct / KEYWORD_suspend10683 / KEYWORD_struct / KEYWORD_suspend
10688 / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try10684 / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try
10689 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable10685 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable
10690 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre>10686 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre>