mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 16:54:52 +00:00
stage1: Check calling convention correctly for subsystem detection
This commit is contained in:
parent
c002a5026a
commit
51b362c350
@ -1896,7 +1896,7 @@ static Error emit_error_unless_callconv_allowed_for_target(CodeGen *g, AstNode *
|
|||||||
&& g->zig_target->arch != ZigLLVM_avr
|
&& g->zig_target->arch != ZigLLVM_avr
|
||||||
&& g->zig_target->arch != ZigLLVM_msp430)
|
&& g->zig_target->arch != ZigLLVM_msp430)
|
||||||
{
|
{
|
||||||
allowed_platforms = "x86, x86_64, AVR, and MS430";
|
allowed_platforms = "x86, x86_64, AVR, and MSP430";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CallingConventionSignal:
|
case CallingConventionSignal:
|
||||||
@ -3632,9 +3632,13 @@ void add_var_export(CodeGen *g, ZigVar *var, const char *symbol_name, GlobalLink
|
|||||||
}
|
}
|
||||||
|
|
||||||
void add_fn_export(CodeGen *g, ZigFn *fn_table_entry, const char *symbol_name, GlobalLinkageId linkage, CallingConvention cc) {
|
void add_fn_export(CodeGen *g, ZigFn *fn_table_entry, const char *symbol_name, GlobalLinkageId linkage, CallingConvention cc) {
|
||||||
|
CallingConvention winapi_cc = g->zig_target->arch == ZigLLVM_x86
|
||||||
|
? CallingConventionStdcall
|
||||||
|
: CallingConventionC;
|
||||||
|
|
||||||
if (cc == CallingConventionC && strcmp(symbol_name, "main") == 0 && g->link_libc) {
|
if (cc == CallingConventionC && strcmp(symbol_name, "main") == 0 && g->link_libc) {
|
||||||
g->stage1.have_c_main = true;
|
g->stage1.have_c_main = true;
|
||||||
} else if (cc == CallingConventionStdcall && g->zig_target->os == OsWindows) {
|
} else if (cc == winapi_cc && g->zig_target->os == OsWindows) {
|
||||||
if (strcmp(symbol_name, "WinMain") == 0) {
|
if (strcmp(symbol_name, "WinMain") == 0) {
|
||||||
g->stage1.have_winmain = true;
|
g->stage1.have_winmain = true;
|
||||||
} else if (strcmp(symbol_name, "wWinMain") == 0) {
|
} else if (strcmp(symbol_name, "wWinMain") == 0) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user