Browse Source

- don't generate .size directives for function symbols on WebAssembly, to avoid
warnings from the external assembler

Nikolay Nikolov 11 months ago
parent
commit
38100cd501
1 changed files with 6 additions and 1 deletions
  1. 6 1
      compiler/aggas.pas

+ 6 - 1
compiler/aggas.pas

@@ -1475,7 +1475,12 @@ implementation
              end;
            ait_symbol_end :
              begin
-               if tf_needs_symbol_size in target_info.flags then
+               if (tf_needs_symbol_size in target_info.flags) and
+                 { On WebAssembly, the .size directive shouldn't be generated for
+                   function symbols, otherwise LLVM-MC v16 and above produce the
+                   'warning: .size directive ignored for function symbols' message. }
+                  (not (target_info.system in systems_wasm) or
+                   (tai_symbol_end(hp).sym.typ<>AT_FUNCTION)) then
                 begin
                   s:=asminfo^.labelprefix+'e'+tostr(symendcount);
                   inc(symendcount);