Browse Source

+ generate functype directives for all functions in all used units, regardless
of whether they have paraloc info created. This fixes linking of WebAssembly
programs that declare their own classes, because that causes the compiler to
generate a VMT, containing references to virtual methods, and these don't
necessarily have paraloc info (if they're not called from within the program)

Nikolay Nikolov 4 năm trước cách đây
mục cha
commit
99dbbcadcd
1 tập tin đã thay đổi với 1 bổ sung2 xóa
  1. 1 2
      compiler/wasm32/nwasmutil.pas

+ 1 - 2
compiler/wasm32/nwasmutil.pas

@@ -109,8 +109,7 @@ implementation
                   proc := tprocdef(def);
                   if (po_external in proc.procoptions) and (po_has_importdll in proc.procoptions) then
                     WriteImportDll(list,proc)
-                  else if (not proc.owner.iscurrentunit or (po_external in proc.procoptions)) and
-                     ((proc.paras.Count=0) or (proc.has_paraloc_info in [callerside,callbothsides])) then
+                  else if not proc.owner.iscurrentunit or (po_external in proc.procoptions) then
                     thlcgwasm(hlcg).g_procdef(list,proc);
                 end;
             end;