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
signaturelock-open 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" {
39743974 <p>Another use case for {#syntax#}noreturn{#endsyntax#} is the {#syntax#}exit{#endsyntax#} function:</p>
39753975 {#code_begin|test#}
39763976 {#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
39793979test "foo" {
39803980 const value = bar() catch ExitProcess(1);
......@@ -4008,8 +4008,8 @@ export fn sub(a: i8, b: i8) i8 { return a - b; }
40084008// The extern specifier is used to declare a function that will be resolved
40094009// at link time, when linking statically, or at runtime, when linking
40104010// dynamically.
4011// The stdcallcc specifier changes the calling convention of the function.
4012extern "kernel32" stdcallcc fn ExitProcess(exit_code: u32) noreturn;
4011// The callconv specifier changes the calling convention of the function.
4012extern "kernel32" fn ExitProcess(exit_code: u32) callconv(.Stdcall) noreturn;
40134013extern "c" fn atan2(a: f64, b: f64) f64;
40144014
40154015// The @setCold builtin tells the optimizer that a function is rarely called.
......@@ -4018,9 +4018,9 @@ fn abort() noreturn {
40184018 while (true) {}
40194019}
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.
40224022// This can be useful when integrating with assembly.
4023nakedcc fn _start() noreturn {
4023fn _start() callconv(.Naked) noreturn {
40244024 abort();
40254025}
40264026
......@@ -10382,9 +10382,7 @@ LinkSection &lt;- KEYWORD_linksection LPAREN Expr RPAREN
1038210382
1038310383# Fn specific
1038410384FnCC
10385 &lt;- KEYWORD_nakedcc
10386 / KEYWORD_stdcallcc
10387 / KEYWORD_extern
10385 &lt;- KEYWORD_extern
1038810386 / KEYWORD_async
1038910387
1039010388ParamDecl &lt;- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType
......@@ -10648,7 +10646,6 @@ KEYWORD_fn &lt;- 'fn' end_of_word
1064810646KEYWORD_for &lt;- 'for' end_of_word
1064910647KEYWORD_if &lt;- 'if' end_of_word
1065010648KEYWORD_inline &lt;- 'inline' end_of_word
10651KEYWORD_nakedcc &lt;- 'nakedcc' end_of_word
1065210649KEYWORD_noalias &lt;- 'noalias' end_of_word
1065310650KEYWORD_null &lt;- 'null' end_of_word
1065410651KEYWORD_or &lt;- 'or' end_of_word
......@@ -10659,7 +10656,6 @@ KEYWORD_pub &lt;- 'pub' end_of_word
1065910656KEYWORD_resume &lt;- 'resume' end_of_word
1066010657KEYWORD_return &lt;- 'return' end_of_word
1066110658KEYWORD_linksection &lt;- 'linksection' end_of_word
10662KEYWORD_stdcallcc &lt;- 'stdcallcc' end_of_word
1066310659KEYWORD_struct &lt;- 'struct' end_of_word
1066410660KEYWORD_suspend &lt;- 'suspend' end_of_word
1066510661KEYWORD_switch &lt;- 'switch' end_of_word
......@@ -10681,10 +10677,10 @@ keyword &lt;- KEYWORD_align / KEYWORD_and / KEYWORD_allowzero / KEYWORD_asm
1068110677 / KEYWORD_defer / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer
1068210678 / KEYWORD_error / KEYWORD_export / KEYWORD_extern / KEYWORD_false
1068310679 / KEYWORD_fn / KEYWORD_for / KEYWORD_if / KEYWORD_inline
10684 / KEYWORD_nakedcc / KEYWORD_noalias / KEYWORD_null / KEYWORD_or
10680 / KEYWORD_noalias / KEYWORD_null / KEYWORD_or
1068510681 / KEYWORD_orelse / KEYWORD_packed / KEYWORD_promise / KEYWORD_pub
1068610682 / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection
10687 / KEYWORD_stdcallcc / KEYWORD_struct / KEYWORD_suspend
10683 / KEYWORD_struct / KEYWORD_suspend
1068810684 / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try
1068910685 / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable
1069010686 / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre>