소스 검색

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

Nikolay Nikolov 1 년 전
부모
커밋
38100cd501
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  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);