diff options
| author | gingerBill <bill@gingerbill.org> | 2020-06-04 00:30:44 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-06-04 00:30:44 +0100 |
| commit | 15c4077806d3d0c05973cfb653fce80c74a01d57 (patch) | |
| tree | c8ebc4428c9037687007ebd1bcae3dadc9fe09ad /src | |
| parent | 37a3abdaaa0daa3fca0f8b649f67f069ca54443a (diff) | |
Fix WASM foreign import names
Diffstat (limited to 'src')
| -rw-r--r-- | src/llvm_backend.cpp | 9 | ||||
| -rw-r--r-- | src/parser.cpp | 15 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index e5058983f..875c01354 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2045,10 +2045,7 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) { if (build_context.metrics.os == TargetOs_js) { char const *export_name = alloc_cstring(heap_allocator(), p->name); - LLVMAddTargetDependentFunctionAttr(p->value, "export", export_name); - LLVMAddTargetDependentFunctionAttr(p->value, "export-name", export_name); LLVMAddTargetDependentFunctionAttr(p->value, "wasm-export-name", export_name); - LLVMAddTargetDependentFunctionAttr(p->value, "wasm-exported", nullptr); } } if (p->is_foreign) { @@ -2056,7 +2053,11 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) { char const *import_name = alloc_cstring(heap_allocator(), p->name); char const *module_name = "env"; if (entity->Procedure.foreign_library != nullptr) { - module_name = alloc_cstring(heap_allocator(), entity->Procedure.foreign_library->token.string); + Entity *foreign_library = entity->Procedure.foreign_library; + GB_ASSERT(foreign_library->kind == Entity_LibraryName); + if (foreign_library->LibraryName.paths.count > 0) { + module_name = alloc_cstring(heap_allocator(), foreign_library->LibraryName.paths[0]); + } } LLVMAddTargetDependentFunctionAttr(p->value, "wasm-import-name", import_name); LLVMAddTargetDependentFunctionAttr(p->value, "wasm-import-module", module_name); diff --git a/src/parser.cpp b/src/parser.cpp index 143644f70..86900c133 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -4736,14 +4736,15 @@ void parse_setup_file_decls(Parser *p, AstFile *f, String base_dir, Array<Ast *> for_array(fp_idx, fl->filepaths) { String file_str = fl->filepaths[fp_idx].string; String fullpath = file_str; - - String foreign_path = {}; - bool ok = determine_path_from_string(&p->file_decl_mutex, node, base_dir, file_str, &foreign_path); - if (!ok) { - decls[i] = ast_bad_decl(f, fl->filepaths[fp_idx], fl->filepaths[fl->filepaths.count-1]); - goto end; + if (build_context.metrics.os != TargetOs_js) { + String foreign_path = {}; + bool ok = determine_path_from_string(&p->file_decl_mutex, node, base_dir, file_str, &foreign_path); + if (!ok) { + decls[i] = ast_bad_decl(f, fl->filepaths[fp_idx], fl->filepaths[fl->filepaths.count-1]); + goto end; + } + fullpath = foreign_path; } - fullpath = foreign_path; array_add(&fl->fullpaths, fullpath); } if (fl->fullpaths.count == 0) { |