Browse Source

* wasm internal object reader: handle tag symbol flags properly (support weak and local symbols)

Nikolay Nikolov 1 year ago
parent
commit
6b47a03cc9
1 changed files with 6 additions and 1 deletions
  1. 6 1
      compiler/ogwasm.pas

+ 6 - 1
compiler/ogwasm.pas

@@ -4396,7 +4396,12 @@ implementation
                           exit;
                         end;
                       objsym:=TWasmObjSymbol(ObjData.CreateSymbol(SymName));
-                      objsym.bind:=AB_COMMON;
+                      if (symflags and WASM_SYM_BINDING_WEAK) <> 0 then
+                        objsym.bind:=AB_WEAK_EXTERNAL
+                      else if (symflags and WASM_SYM_BINDING_LOCAL) <> 0 then
+                        objsym.bind:=AB_LOCAL
+                      else
+                        objsym.bind:=AB_GLOBAL;
                       objsym.typ:=AT_WASM_EXCEPTION_TAG;
                       objsym.objsection:=ObjData.createsection('.wasm_tags.n_'+SymName,1,[oso_Data,oso_load],true);
                       if objsym.objsection.Size=0 then