From 24ed07b6d563373b2185196447f9afe2a9831483 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 6 Jun 2023 11:12:14 +0100 Subject: Add error requiring an explicit calling convention for foreign procedures --- src/checker.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/checker.cpp') diff --git a/src/checker.cpp b/src/checker.cpp index a25d85fb8..49f2c4bb4 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -3889,6 +3889,14 @@ gb_internal void check_collect_value_decl(CheckerContext *c, Ast *decl) { GB_ASSERT(pl->type->kind == Ast_ProcType); auto cc = pl->type->ProcType.calling_convention; if (cc == ProcCC_ForeignBlockDefault) { + if (is_arch_wasm()) { + begin_error_block(); + error(init, "For wasm related targets, it is required that you either define the" + " @(default_calling_convention=) on the foreign block or" + " explicitly assign it on the procedure signature"); + error_line("\tSuggestion: when dealing with normal Odin code (e.g. js_wasm32), use \"contextless\"; when dealing with Emscripten like code, use \"c\"\n"); + end_error_block(); + } cc = ProcCC_CDecl; if (c->foreign_context.default_cc > 0) { cc = c->foreign_context.default_cc; -- cgit v1.2.3