aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-04-15 18:05:46 -0400
committerGitHub <noreply@github.com>2019-04-15 18:05:46 -0400
commit3b8a85c94182f5600d5bec27b4061803869b4fe8 (patch)
tree73cb0f562a778c58ff3e3fff7b6544b6ad4dd414 /src/codegen.cpp
parent5cb18e9c6f5ee49541579ba3e45d9de4fcec8bcb (diff)
parenta0d2185199e7723aabc38cacd83d6a140f12e01d (diff)
downloadzig-3b8a85c94182f5600d5bec27b4061803869b4fe8.tar.gz
zig-3b8a85c94182f5600d5bec27b4061803869b4fe8.zip
Merge pull request #2281 from shritesh/wasm_module
Support wasm module imports
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 332eab59b9..88f0f739b6 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -495,6 +495,14 @@ static LLVMValueRef fn_llvm_value(CodeGen *g, ZigFn *fn_table_entry) {
auto entry = g->exported_symbol_names.maybe_get(symbol_name);
if (entry == nullptr) {
fn_table_entry->llvm_value = LLVMAddFunction(g->module, buf_ptr(symbol_name), fn_llvm_type);
+
+ if (target_is_wasm(g->zig_target)) {
+ assert(fn_table_entry->proto_node->type == NodeTypeFnProto);
+ AstNodeFnProto *fn_proto = &fn_table_entry->proto_node->data.fn_proto;
+ if (fn_proto-> is_extern && fn_proto->lib_name != nullptr ) {
+ addLLVMFnAttrStr(fn_table_entry->llvm_value, "wasm-import-module", buf_ptr(fn_proto->lib_name));
+ }
+ }
} else {
assert(entry->value->id == TldIdFn);
TldFn *tld_fn = reinterpret_cast<TldFn *>(entry->value);