diff --git a/compiler/aggas.pas b/compiler/aggas.pas index 4a1159cd46..4a24e26388 100644 --- a/compiler/aggas.pas +++ b/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);