Explorar o código

* synchronised with trunk till r42049

git-svn-id: branches/debug_eh@42050 -
Jonas Maebe %!s(int64=6) %!d(string=hai) anos
pai
achega
1b6425176b
Modificáronse 100 ficheiros con 1382 adicións e 674 borrados
  1. 33 0
      .gitattributes
  2. 2 0
      compiler/aarch64/agcpugas.pas
  3. 2 0
      compiler/aarch64/aoptcpu.pas
  4. 2 0
      compiler/aarch64/aoptcpub.pas
  5. 4 2
      compiler/aarch64/cgcpu.pas
  6. 4 0
      compiler/aarch64/cpupara.pas
  7. 3 0
      compiler/aarch64/racpu.pas
  8. 2 0
      compiler/aarch64/racpugas.pas
  9. 4 0
      compiler/aarch64/rgcpu.pas
  10. 4 0
      compiler/aasmsym.pas
  11. 6 10
      compiler/aasmtai.pas
  12. 6 4
      compiler/aggas.pas
  13. 2 0
      compiler/aopt.pas
  14. 6 0
      compiler/aoptobj.pas
  15. 117 54
      compiler/arm/aasmcpu.pas
  16. 2 0
      compiler/arm/agarmgas.pas
  17. 29 1
      compiler/arm/aoptcpu.pas
  18. 16 8
      compiler/arm/aoptcpub.pas
  19. 55 2
      compiler/arm/cgcpu.pas
  20. 2 0
      compiler/arm/cpubase.pas
  21. 2 0
      compiler/arm/cpuelf.pas
  22. 2 0
      compiler/arm/cpupara.pas
  23. 5 1
      compiler/arm/cpupi.pas
  24. 5 1
      compiler/arm/narmadd.pas
  25. 3 0
      compiler/arm/narmcnv.pas
  26. 6 0
      compiler/arm/raarmgas.pas
  27. 8 0
      compiler/arm/rgcpu.pas
  28. 8 0
      compiler/assemble.pas
  29. 0 2
      compiler/cfidwarf.pas
  30. 12 0
      compiler/cgobj.pas
  31. 10 2
      compiler/dbgbase.pas
  32. 4 0
      compiler/dbgcodeview.pas
  33. 18 18
      compiler/dbgdwarf.pas
  34. 10 0
      compiler/dbgstabs.pas
  35. 4 0
      compiler/dbgstabx.pas
  36. 26 0
      compiler/defcmp.pas
  37. 12 3
      compiler/defutil.pas
  38. 0 2
      compiler/fppu.pas
  39. 2 0
      compiler/gendef.pas
  40. 5 2
      compiler/globtype.pas
  41. 6 0
      compiler/hlcg2ll.pas
  42. 8 0
      compiler/hlcgobj.pas
  43. 64 20
      compiler/htypechk.pas
  44. 43 15
      compiler/i386/aoptcpu.pas
  45. 8 0
      compiler/i386/cgcpu.pas
  46. 2 0
      compiler/i386/cpuelf.pas
  47. 10 0
      compiler/i386/cpupara.pas
  48. 6 0
      compiler/i386/n386add.pas
  49. 8 0
      compiler/i8086/aoptcpu.pas
  50. 24 0
      compiler/i8086/cgcpu.pas
  51. 2 0
      compiler/i8086/cpupara.pas
  52. 10 0
      compiler/i8086/n8086add.pas
  53. 0 8
      compiler/i8086/symcpu.pas
  54. 8 0
      compiler/jvm/agjasmin.pas
  55. 2 0
      compiler/jvm/aoptcpu.pas
  56. 2 0
      compiler/jvm/cpupara.pas
  57. 4 0
      compiler/jvm/dbgjasm.pas
  58. 16 0
      compiler/jvm/hlcgcpu.pas
  59. 8 4
      compiler/jvm/jvmdef.pas
  60. 0 2
      compiler/jvm/njvmcnv.pas
  61. 0 2
      compiler/jvm/njvmcon.pas
  62. 2 0
      compiler/jvm/njvminl.pas
  63. 8 0
      compiler/jvm/rgcpu.pas
  64. 2 2
      compiler/jvm/tgcpu.pas
  65. 4 0
      compiler/llvm/aasmllvm.pas
  66. 6 0
      compiler/llvm/agllvm.pas
  67. 8 0
      compiler/llvm/hlcgllvm.pas
  68. 0 4
      compiler/llvm/llvmdef.pas
  69. 12 0
      compiler/llvm/llvmtype.pas
  70. 2 0
      compiler/llvm/nllvmbas.pas
  71. 4 0
      compiler/llvm/nllvmld.pas
  72. 2 2
      compiler/llvm/nllvmtcon.pas
  73. 4 0
      compiler/llvm/rgllvm.pas
  74. 7 1
      compiler/mips/aasmcpu.pas
  75. 12 0
      compiler/mips/aoptcpu.pas
  76. 4 0
      compiler/mips/cgcpu.pas
  77. 8 0
      compiler/mips/cpubase.pas
  78. 2 0
      compiler/mips/cpuelf.pas
  79. 2 0
      compiler/mips/cpupara.pas
  80. 2 0
      compiler/mips/hlcgcpu.pas
  81. 2 0
      compiler/mips/itcpugas.pas
  82. 4 0
      compiler/mips/ncpuadd.pas
  83. 2 0
      compiler/mips/ncpuld.pas
  84. 4 1
      compiler/msg/errore.msg
  85. 4 2
      compiler/msgidx.inc
  86. 444 440
      compiler/msgtxt.inc
  87. 51 19
      compiler/nadd.pas
  88. 2 0
      compiler/nbas.pas
  89. 10 0
      compiler/ncal.pas
  90. 12 0
      compiler/ncgbas.pas
  91. 6 0
      compiler/ncgcal.pas
  92. 0 2
      compiler/ncgcnv.pas
  93. 4 2
      compiler/ncgcon.pas
  94. 12 0
      compiler/ncgld.pas
  95. 4 0
      compiler/ncgmem.pas
  96. 4 0
      compiler/ncgnstld.pas
  97. 12 0
      compiler/ncgrtti.pas
  98. 4 24
      compiler/ncgset.pas
  99. 34 10
      compiler/ncgutil.pas
  100. 2 2
      compiler/ncgvmt.pas

+ 33 - 0
.gitattributes

@@ -9852,6 +9852,7 @@ rtl/linux/sysnr-gen.inc svneol=native#text/plain
 rtl/linux/sysos.inc svneol=native#text/plain
 rtl/linux/sysos.inc svneol=native#text/plain
 rtl/linux/sysosh.inc svneol=native#text/plain
 rtl/linux/sysosh.inc svneol=native#text/plain
 rtl/linux/system.pp svneol=native#text/plain
 rtl/linux/system.pp svneol=native#text/plain
+rtl/linux/t_linux.h2paschk svneol=native#text/plain
 rtl/linux/termio.pp svneol=native#text/plain
 rtl/linux/termio.pp svneol=native#text/plain
 rtl/linux/termios.inc svneol=native#text/plain
 rtl/linux/termios.inc svneol=native#text/plain
 rtl/linux/termiosproc.inc svneol=native#text/plain
 rtl/linux/termiosproc.inc svneol=native#text/plain
@@ -10608,6 +10609,7 @@ rtl/unix/scripts/README svneol=native#text/plain
 rtl/unix/scripts/check_consts.sh svneol=native#text/plain
 rtl/unix/scripts/check_consts.sh svneol=native#text/plain
 rtl/unix/scripts/check_errno.sh svneol=native#text/plain
 rtl/unix/scripts/check_errno.sh svneol=native#text/plain
 rtl/unix/scripts/check_errnostr.sh svneol=native#text/plain
 rtl/unix/scripts/check_errnostr.sh svneol=native#text/plain
+rtl/unix/scripts/check_rtl_types.sh svneol=native#text/plain
 rtl/unix/scripts/check_sys.sh svneol=native#text/plain
 rtl/unix/scripts/check_sys.sh svneol=native#text/plain
 rtl/unix/settimeo.inc svneol=native#text/plain
 rtl/unix/settimeo.inc svneol=native#text/plain
 rtl/unix/syscall.pp svneol=native#text/plain
 rtl/unix/syscall.pp svneol=native#text/plain
@@ -13012,6 +13014,15 @@ tests/test/tcase6.pp svneol=native#text/pascal
 tests/test/tcase7.pp svneol=native#text/pascal
 tests/test/tcase7.pp svneol=native#text/pascal
 tests/test/tcase8.pp svneol=native#text/pascal
 tests/test/tcase8.pp svneol=native#text/pascal
 tests/test/tcase9.pp svneol=native#text/pascal
 tests/test/tcase9.pp svneol=native#text/pascal
+tests/test/tcasecov1.pp svneol=native#text/plain
+tests/test/tcasecov2.pp svneol=native#text/plain
+tests/test/tcasecov3.pp svneol=native#text/plain
+tests/test/tcasecov4.pp svneol=native#text/plain
+tests/test/tcasecov5.pp svneol=native#text/plain
+tests/test/tcasecov6.pp svneol=native#text/plain
+tests/test/tcasecov7.pp svneol=native#text/plain
+tests/test/tcasecov8.pp svneol=native#text/plain
+tests/test/tcasecov9.pp svneol=native#text/plain
 tests/test/tcg1.pp svneol=native#text/plain
 tests/test/tcg1.pp svneol=native#text/plain
 tests/test/tchlp1.pp svneol=native#text/pascal
 tests/test/tchlp1.pp svneol=native#text/pascal
 tests/test/tchlp10.pp svneol=native#text/pascal
 tests/test/tchlp10.pp svneol=native#text/pascal
@@ -13645,6 +13656,22 @@ tests/test/tmsg1.pp svneol=native#text/plain
 tests/test/tmsg2.pp svneol=native#text/plain
 tests/test/tmsg2.pp svneol=native#text/plain
 tests/test/tmsg3.pp svneol=native#text/plain
 tests/test/tmsg3.pp svneol=native#text/plain
 tests/test/tmsg4.pp svneol=native#text/plain
 tests/test/tmsg4.pp svneol=native#text/plain
+tests/test/tmshlp1.pp svneol=native#text/pascal
+tests/test/tmshlp10.pp svneol=native#text/pascal
+tests/test/tmshlp11.pp svneol=native#text/pascal
+tests/test/tmshlp12.pp svneol=native#text/pascal
+tests/test/tmshlp13.pp svneol=native#text/pascal
+tests/test/tmshlp14.pp svneol=native#text/pascal
+tests/test/tmshlp15.pp svneol=native#text/pascal
+tests/test/tmshlp16.pp svneol=native#text/pascal
+tests/test/tmshlp2.pp svneol=native#text/pascal
+tests/test/tmshlp3.pp svneol=native#text/pascal
+tests/test/tmshlp4.pp svneol=native#text/pascal
+tests/test/tmshlp5.pp svneol=native#text/pascal
+tests/test/tmshlp6.pp svneol=native#text/pascal
+tests/test/tmshlp7.pp svneol=native#text/pascal
+tests/test/tmshlp8.pp svneol=native#text/pascal
+tests/test/tmshlp9.pp svneol=native#text/pascal
 tests/test/tmt1.pp svneol=native#text/plain
 tests/test/tmt1.pp svneol=native#text/plain
 tests/test/tmul1.pp svneol=native#text/pascal
 tests/test/tmul1.pp svneol=native#text/pascal
 tests/test/tnest1.pp svneol=native#text/plain
 tests/test/tnest1.pp svneol=native#text/plain
@@ -14074,6 +14101,8 @@ tests/test/tthlp25.pp svneol=native#text/pascal
 tests/test/tthlp26a.pp -text svneol=native#text/pascal
 tests/test/tthlp26a.pp -text svneol=native#text/pascal
 tests/test/tthlp26b.pp -text svneol=native#text/pascal
 tests/test/tthlp26b.pp -text svneol=native#text/pascal
 tests/test/tthlp26c.pp -text svneol=native#text/pascal
 tests/test/tthlp26c.pp -text svneol=native#text/pascal
+tests/test/tthlp27.pp svneol=native#text/pascal
+tests/test/tthlp28.pp svneol=native#text/pascal
 tests/test/tthlp3.pp svneol=native#text/pascal
 tests/test/tthlp3.pp svneol=native#text/pascal
 tests/test/tthlp4.pp svneol=native#text/pascal
 tests/test/tthlp4.pp svneol=native#text/pascal
 tests/test/tthlp5.pp svneol=native#text/pascal
 tests/test/tthlp5.pp svneol=native#text/pascal
@@ -14204,6 +14233,9 @@ tests/test/ulib2a.pp svneol=native#text/plain
 tests/test/umaclocalprocparam3f.pp svneol=native#text/plain
 tests/test/umaclocalprocparam3f.pp svneol=native#text/plain
 tests/test/umacpas1.pp svneol=native#text/plain
 tests/test/umacpas1.pp svneol=native#text/plain
 tests/test/umainnam.pp svneol=native#text/plain
 tests/test/umainnam.pp svneol=native#text/plain
+tests/test/umshlp1.pp svneol=native#text/pascal
+tests/test/umshlp15a.pp svneol=native#text/pascal
+tests/test/umshlp15b.pp svneol=native#text/pascal
 tests/test/unit3.pp svneol=native#text/pascal
 tests/test/unit3.pp svneol=native#text/pascal
 tests/test/units/character/tgetnumericvalue.pp svneol=native#text/pascal
 tests/test/units/character/tgetnumericvalue.pp svneol=native#text/pascal
 tests/test/units/character/tgetnumericvalue2.pp svneol=native#text/pascal
 tests/test/units/character/tgetnumericvalue2.pp svneol=native#text/pascal
@@ -16600,6 +16632,7 @@ tests/webtbs/tw3533.pp svneol=native#text/plain
 tests/webtbs/tw3534.pp svneol=native#text/plain
 tests/webtbs/tw3534.pp svneol=native#text/plain
 tests/webtbs/tw3540.pp svneol=native#text/plain
 tests/webtbs/tw3540.pp svneol=native#text/plain
 tests/webtbs/tw3546.pp svneol=native#text/plain
 tests/webtbs/tw3546.pp svneol=native#text/plain
+tests/webtbs/tw35533.pp svneol=native#text/pascal
 tests/webtbs/tw3554.pp svneol=native#text/plain
 tests/webtbs/tw3554.pp svneol=native#text/plain
 tests/webtbs/tw3564.pp svneol=native#text/plain
 tests/webtbs/tw3564.pp svneol=native#text/plain
 tests/webtbs/tw3567.pp svneol=native#text/plain
 tests/webtbs/tw3567.pp svneol=native#text/plain

+ 2 - 0
compiler/aarch64/agcpugas.pas

@@ -180,6 +180,8 @@ unit agcpugas;
                 result:=result+']';
                 result:=result+']';
               AM_PREINDEXED:
               AM_PREINDEXED:
                 result:=result+']!';
                 result:=result+']!';
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

+ 2 - 0
compiler/aarch64/aoptcpu.pas

@@ -159,6 +159,8 @@ Implementation
               begin
               begin
                 Result:=LookForPostindexedPattern(taicpu(p));
                 Result:=LookForPostindexedPattern(taicpu(p));
               end;
               end;
+            else
+              ;
           end;
           end;
         end;
         end;
     end;
     end;

+ 2 - 0
compiler/aarch64/aoptcpub.pas

@@ -142,6 +142,8 @@ Implementation
                   exit
                   exit
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
     end;
     end;
 
 

+ 4 - 2
compiler/aarch64/cgcpu.pas

@@ -382,8 +382,6 @@ implementation
                             reference_reset_base(ref,preferred_newbasereg,ref.offset,ref.temppos,ref.alignment,ref.volatility);
                             reference_reset_base(ref,preferred_newbasereg,ref.offset,ref.temppos,ref.alignment,ref.volatility);
                           end;
                           end;
                       end
                       end
-                    else
-                      internalerror(2014110904);
                   end;
                   end;
                 end;
                 end;
               A_LDP,A_STP:
               A_LDP,A_STP:
@@ -1305,6 +1303,8 @@ implementation
               a_load_const_reg(list,size,a,dst);
               a_load_const_reg(list,size,a,dst);
               exit;
               exit;
             end;
             end;
+          else
+            ;
         end;
         end;
         case op of
         case op of
           OP_ADD,
           OP_ADD,
@@ -1453,6 +1453,8 @@ implementation
                     check for overflow) }
                     check for overflow) }
                   internalerror(2014122101);
                   internalerror(2014122101);
                 end;
                 end;
+              else
+                internalerror(2019050936);
             end;
             end;
           end;
           end;
         a_op_reg_reg_reg(list,op,size,src1,src2,dst);
         a_op_reg_reg_reg(list,op,size,src1,src2,dst);

+ 4 - 0
compiler/aarch64/cpupara.pas

@@ -208,6 +208,8 @@ unit cpupara;
             result:=def.size>16;
             result:=def.size>16;
           stringdef :
           stringdef :
             result:=tstringdef(def).stringtype in [st_shortstring,st_longstring];
             result:=tstringdef(def).stringtype in [st_shortstring,st_longstring];
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -440,6 +442,8 @@ unit cpupara;
                    loc:=LOC_REFERENCE;
                    loc:=LOC_REFERENCE;
                  end;
                  end;
              end;
              end;
+           else
+             ;
          end;
          end;
 
 
          { allocate registers/stack locations }
          { allocate registers/stack locations }

+ 3 - 0
compiler/aarch64/racpu.pas

@@ -73,6 +73,7 @@ unit racpu;
         { a 32 bit integer register could actually be 16 or 8 bit }
         { a 32 bit integer register could actually be 16 or 8 bit }
         if result=OS_32 then
         if result=OS_32 then
           case oppostfix of
           case oppostfix of
+            PF_NONE: ;
             PF_B:
             PF_B:
               result:=OS_8;
               result:=OS_8;
             PF_SB:
             PF_SB:
@@ -81,6 +82,8 @@ unit racpu;
               result:=OS_16;
               result:=OS_16;
             PF_SH:
             PF_SH:
               result:=OS_S16;
               result:=OS_S16;
+            else
+              Message(asmr_e_invalid_opcode_and_operand)
           end;
           end;
       end;
       end;
 
 

+ 2 - 0
compiler/aarch64/racpugas.pas

@@ -523,6 +523,8 @@ Unit racpugas;
                     end;
                     end;
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
         result:=C_None;;
         result:=C_None;;
       end;
       end;

+ 4 - 0
compiler/aarch64/rgcpu.pas

@@ -140,6 +140,8 @@ implementation
                { ok in immediate form }
                { ok in immediate form }
                if taicpu(p).oper[taicpu(p).ops-1]^.typ=top_const then
                if taicpu(p).oper[taicpu(p).ops-1]^.typ=top_const then
                  exit;
                  exit;
+             else
+               ;
            end;
            end;
            { add interferences for other registers }
            { add interferences for other registers }
            for i:=0 to taicpu(p).ops-1 do
            for i:=0 to taicpu(p).ops-1 do
@@ -163,6 +165,8 @@ implementation
                              add_edge(getsupreg(taicpu(p).oper[j]^.reg),getsupreg(taicpu(p).oper[i]^.ref^.base));
                              add_edge(getsupreg(taicpu(p).oper[j]^.reg),getsupreg(taicpu(p).oper[i]^.ref^.base));
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
          end;
          end;

+ 4 - 0
compiler/aasmsym.pas

@@ -53,6 +53,8 @@ implementation
         case o.typ of
         case o.typ of
           top_local :
           top_local :
             o.localoper^.localsymderef.build(tlocalvarsym(o.localoper^.localsym));
             o.localoper^.localsymderef.build(tlocalvarsym(o.localoper^.localsym));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -65,6 +67,8 @@ implementation
             end;
             end;
           top_local :
           top_local :
             o.localoper^.localsym:=tlocalvarsym(o.localoper^.localsymderef.resolve);
             o.localoper^.localsym:=tlocalvarsym(o.localoper^.localsymderef.resolve);
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 6 - 10
compiler/aasmtai.pas

@@ -2108,8 +2108,6 @@ implementation
             value.s128val:=ppufile.getreal;
             value.s128val:=ppufile.getreal;
           aitrealconst_s64comp:
           aitrealconst_s64comp:
             value.s64compval:=comp(ppufile.getint64);
             value.s64compval:=comp(ppufile.getint64);
-          else
-            internalerror(2014050602);
         end;
         end;
       end;
       end;
 
 
@@ -2137,8 +2135,6 @@ implementation
               c:=comp(value.s64compval);
               c:=comp(value.s64compval);
               ppufile.putint64(int64(c));
               ppufile.putint64(int64(c));
             end
             end
-          else
-            internalerror(2014050601);
         end;
         end;
       end;
       end;
 
 
@@ -2167,8 +2163,6 @@ implementation
             result:=10;
             result:=10;
           aitrealconst_s128bit:
           aitrealconst_s128bit:
             result:=16;
             result:=16;
-          else
-            internalerror(2014050603);
         end;
         end;
       end;
       end;
 
 
@@ -2833,6 +2827,8 @@ implementation
                     add_reg_instruction_hook(self,shifterop^.rs);
                     add_reg_instruction_hook(self,shifterop^.rs);
                 end;
                 end;
 {$endif ARM}
 {$endif ARM}
+              else
+                ;
              end;
              end;
           end;
           end;
       end;
       end;
@@ -2858,6 +2854,8 @@ implementation
               top_wstring:
               top_wstring:
                 donewidestring(pwstrval);
                 donewidestring(pwstrval);
 {$endif jvm}
 {$endif jvm}
+              else
+                ;
             end;
             end;
             typ:=top_none;
             typ:=top_none;
           end;
           end;
@@ -2911,6 +2909,8 @@ implementation
                   p.oper[i]^.shifterop^:=oper[i]^.shifterop^;
                   p.oper[i]^.shifterop^:=oper[i]^.shifterop^;
                 end;
                 end;
 {$endif ARM}
 {$endif ARM}
+              else
+                ;
             end;
             end;
           end;
           end;
         getcopy:=p;
         getcopy:=p;
@@ -3272,8 +3272,6 @@ implementation
               ppufile.getdata(data.reg,sizeof(TRegister));
               ppufile.getdata(data.reg,sizeof(TRegister));
               data.offset:=ppufile.getdword;
               data.offset:=ppufile.getdword;
             end;
             end;
-        else
-          InternalError(2011091201);
         end;
         end;
       end;
       end;
 
 
@@ -3301,8 +3299,6 @@ implementation
               ppufile.putdata(data.reg,sizeof(TRegister));
               ppufile.putdata(data.reg,sizeof(TRegister));
               ppufile.putdword(data.offset);
               ppufile.putdword(data.offset);
             end;
             end;
-        else
-          InternalError(2011091202);
         end;
         end;
       end;
       end;
 
 

+ 6 - 4
compiler/aggas.pas

@@ -378,6 +378,8 @@ implementation
                 secname:='.data.rel.ro';
                 secname:='.data.rel.ro';
               sec_rodata_norel:
               sec_rodata_norel:
                 secname:='.rodata';
                 secname:='.rodata';
+              else
+                ;
             end;
             end;
           end;
           end;
 
 
@@ -511,8 +513,6 @@ implementation
                 writer.AsmWrite(',"x"');
                 writer.AsmWrite(',"x"');
               SF_None:
               SF_None:
                 writer.AsmWrite(',""');
                 writer.AsmWrite(',""');
-              else
-                Internalerror(2018101502);
             end;
             end;
             case secprogbits of
             case secprogbits of
               SPB_PROGBITS:
               SPB_PROGBITS:
@@ -521,8 +521,6 @@ implementation
                 writer.AsmWrite(',%nobits');
                 writer.AsmWrite(',%nobits');
               SPB_None:
               SPB_None:
                 ;
                 ;
-              else
-                Internalerror(2018101503);
             end;
             end;
           end
           end
         else
         else
@@ -1062,6 +1060,8 @@ implementation
                              WriteDecodedUleb128(qword(tai_const(hp).value));
                              WriteDecodedUleb128(qword(tai_const(hp).value));
                            aitconst_sleb128bit:
                            aitconst_sleb128bit:
                              WriteDecodedSleb128(int64(tai_const(hp).value));
                              WriteDecodedSleb128(int64(tai_const(hp).value));
+                           else
+                             ;
                          end
                          end
                        end
                        end
                      else
                      else
@@ -1814,6 +1814,8 @@ implementation
                 result:='.section '+objc_section_name(atype);
                 result:='.section '+objc_section_name(atype);
                 exit
                 exit
               end;
               end;
+            else
+              ;
           end;
           end;
         result := inherited sectionname(atype,aname,aorder);
         result := inherited sectionname(atype,aname,aorder);
       end;
       end;

+ 2 - 0
compiler/aopt.pas

@@ -234,6 +234,8 @@ Unit aopt;
                           end;
                           end;
                       End
                       End
                   End
                   End
+                else
+                  ;
               End;
               End;
               P := tai(p.Next);
               P := tai(p.Next);
               While Assigned(p) and
               While Assigned(p) and

+ 6 - 0
compiler/aoptobj.pas

@@ -443,6 +443,8 @@ Unit AoptObj;
                         Include(UsedRegs, getsupreg(tai_regalloc(p).reg));
                         Include(UsedRegs, getsupreg(tai_regalloc(p).reg));
                     ra_dealloc :
                     ra_dealloc :
                       Exclude(UsedRegs, getsupreg(tai_regalloc(p).reg));
                       Exclude(UsedRegs, getsupreg(tai_regalloc(p).reg));
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
               p := tai(p.next);
               p := tai(p.next);
@@ -919,6 +921,8 @@ Unit AoptObj;
                     Include(UsedRegs[getregtype(tai_regalloc(p).reg)].UsedRegs, getsupreg(tai_regalloc(p).reg));
                     Include(UsedRegs[getregtype(tai_regalloc(p).reg)].UsedRegs, getsupreg(tai_regalloc(p).reg));
                   ra_dealloc :
                   ra_dealloc :
                     Exclude(UsedRegs[getregtype(tai_regalloc(p).reg)].UsedRegs, getsupreg(tai_regalloc(p).reg));
                     Exclude(UsedRegs[getregtype(tai_regalloc(p).reg)].UsedRegs, getsupreg(tai_regalloc(p).reg));
+                  else
+                    ;
                 end;
                 end;
                 p := tai(p.next);
                 p := tai(p.next);
               end;
               end;
@@ -1689,6 +1693,8 @@ Unit AoptObj;
                       begin
                       begin
                       end; { if is_jmp }
                       end; { if is_jmp }
                   end;
                   end;
+                else
+                  ;
               end;
               end;
               if assigned(p) then
               if assigned(p) then
                 begin
                 begin

+ 117 - 54
compiler/arm/aasmcpu.pas

@@ -381,6 +381,8 @@ implementation
                    if assigned(add_reg_instruction_hook) and (i in regset^) then
                    if assigned(add_reg_instruction_hook) and (i in regset^) then
                      add_reg_instruction_hook(self,newreg(R_MMREGISTER,i,regsetsubregtype));
                      add_reg_instruction_hook(self,newreg(R_MMREGISTER,i,regsetsubregtype));
                  end;
                  end;
+             else
+               internalerror(2019050932);
            end;
            end;
          end;
          end;
       end;
       end;
@@ -1141,6 +1143,8 @@ implementation
                                           begin
                                           begin
                                             inc(extradataoffset,multiplier*(((tai_realconst(hp).savesize-4)+3) div 4));
                                             inc(extradataoffset,multiplier*(((tai_realconst(hp).savesize-4)+3) div 4));
                                           end;
                                           end;
+                                        else
+                                          ;
                                       end;
                                       end;
                                       { check if the same constant has been already inserted into the currently handled list,
                                       { check if the same constant has been already inserted into the currently handled list,
                                         if yes, reuse it }
                                         if yes, reuse it }
@@ -1200,6 +1204,8 @@ implementation
                 begin
                 begin
                   inc(curinspos,multiplier*((tai_realconst(hp).savesize+3) div 4));
                   inc(curinspos,multiplier*((tai_realconst(hp).savesize+3) div 4));
                 end;
                 end;
+              else
+                ;
             end;
             end;
             { special case for case jump tables }
             { special case for case jump tables }
             penalty:=0;
             penalty:=0;
@@ -1270,6 +1276,8 @@ implementation
                           or if we splitted them so split before }
                           or if we splitted them so split before }
                       CheckLimit(hp,4);
                       CheckLimit(hp,4);
                     end;
                     end;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
 
 
@@ -1424,8 +1432,11 @@ implementation
                               end;
                               end;
                           end;
                           end;
                       end;
                       end;
+                    else;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -1489,8 +1500,12 @@ implementation
                             taicpu(curtai).ops:=2;
                             taicpu(curtai).ops:=2;
                           end;
                           end;
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -1536,55 +1551,59 @@ implementation
           begin
           begin
             case curtai.typ of
             case curtai.typ of
               ait_instruction:
               ait_instruction:
-                if IsIT(taicpu(curtai).opcode) then
-                  begin
-                    levels := GetITLevels(taicpu(curtai).opcode);
-                    if levels < 4 then
-                      begin
-                        i:=levels;
-                        hp1:=tai(curtai.Next);
-                        while assigned(hp1) and
-                          (i > 0) do
-                          begin
-                            if hp1.typ=ait_instruction then
-                              begin
-                                dec(i);
-                                if (i = 0) and
-                                  mustbelast(hp1) then
-                                  begin
-                                    hp1:=nil;
-                                    break;
-                                  end;
-                              end;
-                            hp1:=tai(hp1.Next);
-                          end;
+                begin
+                  if IsIT(taicpu(curtai).opcode) then
+                    begin
+                      levels := GetITLevels(taicpu(curtai).opcode);
+                      if levels < 4 then
+                        begin
+                          i:=levels;
+                          hp1:=tai(curtai.Next);
+                          while assigned(hp1) and
+                            (i > 0) do
+                            begin
+                              if hp1.typ=ait_instruction then
+                                begin
+                                  dec(i);
+                                  if (i = 0) and
+                                    mustbelast(hp1) then
+                                    begin
+                                      hp1:=nil;
+                                      break;
+                                    end;
+                                end;
+                              hp1:=tai(hp1.Next);
+                            end;
 
 
-                        if assigned(hp1) then
-                          begin
-                            // We are pointing at the first instruction after the IT block
-                            while assigned(hp1) and
-                              (hp1.typ<>ait_instruction) do
-                                hp1:=tai(hp1.Next);
-
-                            if assigned(hp1) and
-                              (hp1.typ=ait_instruction) and
-                              IsIT(taicpu(hp1).opcode) then
-                              begin
-                                if (levels+GetITLevels(taicpu(hp1).opcode) <= 4) and
-                                  ((taicpu(curtai).oper[0]^.cc=taicpu(hp1).oper[0]^.cc) or
-                                   (taicpu(curtai).oper[0]^.cc=inverse_cond(taicpu(hp1).oper[0]^.cc))) then
-                                  begin
-                                    taicpu(curtai).opcode:=getMergedInstruction(taicpu(curtai).opcode,
-                                                                                taicpu(hp1).opcode,
-                                                                                taicpu(curtai).oper[0]^.cc=inverse_cond(taicpu(hp1).oper[0]^.cc));
+                          if assigned(hp1) then
+                            begin
+                              // We are pointing at the first instruction after the IT block
+                              while assigned(hp1) and
+                                (hp1.typ<>ait_instruction) do
+                                  hp1:=tai(hp1.Next);
+
+                              if assigned(hp1) and
+                                (hp1.typ=ait_instruction) and
+                                IsIT(taicpu(hp1).opcode) then
+                                begin
+                                  if (levels+GetITLevels(taicpu(hp1).opcode) <= 4) and
+                                    ((taicpu(curtai).oper[0]^.cc=taicpu(hp1).oper[0]^.cc) or
+                                     (taicpu(curtai).oper[0]^.cc=inverse_cond(taicpu(hp1).oper[0]^.cc))) then
+                                    begin
+                                      taicpu(curtai).opcode:=getMergedInstruction(taicpu(curtai).opcode,
+                                                                                  taicpu(hp1).opcode,
+                                                                                  taicpu(curtai).oper[0]^.cc=inverse_cond(taicpu(hp1).oper[0]^.cc));
 
 
-                                    list.Remove(hp1);
-                                    hp1.Free;
-                                  end;
-                              end;
-                          end;
-                      end;
-                  end;
+                                      list.Remove(hp1);
+                                      hp1.Free;
+                                    end;
+                                end;
+                            end;
+                        end;
+                    end;
+                end
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -1611,6 +1630,8 @@ implementation
                       case taicpu(curtai).opcode of
                       case taicpu(curtai).opcode of
                         A_AND: taicpu(curtai).opcode:=A_BIC;
                         A_AND: taicpu(curtai).opcode:=A_BIC;
                         A_BIC: taicpu(curtai).opcode:=A_AND;
                         A_BIC: taicpu(curtai).opcode:=A_AND;
+                        else
+                          internalerror(2019050931);
                       end;
                       end;
                       taicpu(curtai).oper[2]^.val:=(not taicpu(curtai).oper[2]^.val) and $FFFFFFFF;
                       taicpu(curtai).oper[2]^.val:=(not taicpu(curtai).oper[2]^.val) and $FFFFFFFF;
                     end
                     end
@@ -1623,10 +1644,14 @@ implementation
                       case taicpu(curtai).opcode of
                       case taicpu(curtai).opcode of
                         A_ADD: taicpu(curtai).opcode:=A_SUB;
                         A_ADD: taicpu(curtai).opcode:=A_SUB;
                         A_SUB: taicpu(curtai).opcode:=A_ADD;
                         A_SUB: taicpu(curtai).opcode:=A_ADD;
+                        else
+                          internalerror(2019050930);
                       end;
                       end;
                       taicpu(curtai).oper[2]^.val:=-taicpu(curtai).oper[2]^.val;
                       taicpu(curtai).oper[2]^.val:=-taicpu(curtai).oper[2]^.val;
                     end;
                     end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -1674,6 +1699,8 @@ implementation
                       end;
                       end;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -1699,6 +1726,7 @@ implementation
                            (taicpu(curtai).oper[2]^.typ=top_shifterop) then
                            (taicpu(curtai).oper[2]^.typ=top_shifterop) then
                           begin
                           begin
                             case taicpu(curtai).oper[2]^.shifterop^.shiftmode of
                             case taicpu(curtai).oper[2]^.shifterop^.shiftmode of
+                              SM_NONE: ;
                               SM_LSL: taicpu(curtai).opcode:=A_LSL;
                               SM_LSL: taicpu(curtai).opcode:=A_LSL;
                               SM_LSR: taicpu(curtai).opcode:=A_LSR;
                               SM_LSR: taicpu(curtai).opcode:=A_LSR;
                               SM_ASR: taicpu(curtai).opcode:=A_ASR;
                               SM_ASR: taicpu(curtai).opcode:=A_ASR;
@@ -1735,8 +1763,12 @@ implementation
                       begin
                       begin
                         taicpu(curtai).opcode:=A_SVC;
                         taicpu(curtai).opcode:=A_SVC;
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             curtai:=tai(curtai.Next);
             curtai:=tai(curtai.Next);
@@ -2971,6 +3003,7 @@ implementation
           shift:=0;
           shift:=0;
           typ:=0;
           typ:=0;
           case oper[op]^.shifterop^.shiftmode of
           case oper[op]^.shifterop^.shiftmode of
+            SM_None: ;
             SM_LSL: begin typ:=0; shift:=oper[op]^.shifterop^.shiftimm; end;
             SM_LSL: begin typ:=0; shift:=oper[op]^.shifterop^.shiftimm; end;
             SM_LSR: begin typ:=1; shift:=oper[op]^.shifterop^.shiftimm; if shift=32 then shift:=0; end;
             SM_LSR: begin typ:=1; shift:=oper[op]^.shifterop^.shiftimm; if shift=32 then shift:=0; end;
             SM_ASR: begin typ:=2; shift:=oper[op]^.shifterop^.shiftimm; if shift=32 then shift:=0; end;
             SM_ASR: begin typ:=2; shift:=oper[op]^.shifterop^.shiftimm; if shift=32 then shift:=0; end;
@@ -3983,6 +4016,8 @@ implementation
                     bytes:=bytes or ((Rd and $F) shl 12);
                     bytes:=bytes or ((Rd and $F) shl 12);
                     bytes:=bytes or (((Rd and $10) shr 4) shl 22);
                     bytes:=bytes or (((Rd and $10) shr 4) shl 22);
                   end;
                   end;
+                else
+                  Message(asmw_e_invalid_opcode_and_operands);
               end;
               end;
             end;
             end;
           #$41,#$91: // VMRS/VMSR
           #$41,#$91: // VMRS/VMSR
@@ -4143,6 +4178,8 @@ implementation
                         d:=(rd shr 4) and 1;
                         d:=(rd shr 4) and 1;
                         rd:=rd and $F;
                         rd:=rd and $F;
                       end;
                       end;
+                    else
+                      internalerror(2019050929);
                   end;
                   end;
 
 
                   m:=0;
                   m:=0;
@@ -4163,6 +4200,8 @@ implementation
                         m:=(rm shr 4) and 1;
                         m:=(rm shr 4) and 1;
                         rm:=rm and $F;
                         rm:=rm and $F;
                       end;
                       end;
+                    else
+                      internalerror(2019050928);
                   end;
                   end;
 
 
                   bytes:=bytes or (Rd shl 12);
                   bytes:=bytes or (Rd shl 12);
@@ -4179,6 +4218,8 @@ implementation
                     PF_F64S32,
                     PF_F64S32,
                     PF_F64U32:
                     PF_F64U32:
                       bytes:=bytes or (1 shl 8);
                       bytes:=bytes or (1 shl 8);
+                    else
+                      ;
                   end;
                   end;
 
 
                   if oppostfix in [PF_S32F32,PF_S32F64,PF_U32F32,PF_U32F64] then
                   if oppostfix in [PF_S32F32,PF_S32F64,PF_U32F32,PF_U32F64] then
@@ -4187,6 +4228,8 @@ implementation
                         PF_S32F64,
                         PF_S32F64,
                         PF_S32F32:
                         PF_S32F32:
                           bytes:=bytes or (1 shl 16);
                           bytes:=bytes or (1 shl 16);
+                        else
+                          ;
                       end;
                       end;
 
 
                       bytes:=bytes or (1 shl 18);
                       bytes:=bytes or (1 shl 18);
@@ -4257,9 +4300,9 @@ implementation
 
 
                         rn:=16;
                         rn:=16;
                       end;
                       end;
-                  else
-                    Rn:=0;
-                    message(asmw_e_invalid_opcode_and_operands);
+                    else
+                      Rn:=0;
+                      message(asmw_e_invalid_opcode_and_operands);
                   end;
                   end;
 
 
                   case oppostfix of
                   case oppostfix of
@@ -4271,10 +4314,10 @@ implementation
                         bytes:=bytes or (1 shl 8);
                         bytes:=bytes or (1 shl 8);
                         D:=(rd shr 4) and $1; Rd:=Rd and $F;
                         D:=(rd shr 4) and $1; Rd:=Rd and $F;
                       end;
                       end;
-                  else
-                    begin
-                      D:=rd and $1; Rd:=Rd shr 1;
-                    end;
+                    else
+                      begin
+                        D:=rd and $1; Rd:=Rd shr 1;
+                      end;
                   end;
                   end;
 
 
                   case oppostfix of
                   case oppostfix of
@@ -4283,6 +4326,8 @@ implementation
                     PF_F64U16,PF_F32U16,
                     PF_F64U16,PF_F32U16,
                     PF_F32U32,PF_F64U32:
                     PF_F32U32,PF_F64U32:
                       bytes:=bytes or (1 shl 16);
                       bytes:=bytes or (1 shl 16);
+                    else
+                      ;
                   end;
                   end;
 
 
                   if oppostfix in [PF_S32F32,PF_S32F64,PF_U32F32,PF_U32F64,PF_S16F32,PF_S16F64,PF_U16F32,PF_U16F64] then
                   if oppostfix in [PF_S32F32,PF_S32F64,PF_U32F32,PF_U32F64,PF_S16F32,PF_S16F64,PF_U16F32,PF_U16F64] then
@@ -4335,6 +4380,8 @@ implementation
                       bytes:=bytes or (1 shl 23);
                       bytes:=bytes or (1 shl 23);
                     PF_DB,PF_DBS,PF_DBD,PF_DBX:
                     PF_DB,PF_DBS,PF_DBD,PF_DBX:
                       bytes:=bytes or (2 shl 23);
                       bytes:=bytes or (2 shl 23);
+                    else
+                      ;
                   end;
                   end;
 
 
                   case oppostfix of
                   case oppostfix of
@@ -4343,6 +4390,8 @@ implementation
                         bytes:=bytes or (1 shl 8);
                         bytes:=bytes or (1 shl 8);
                         bytes:=bytes or (1 shl 0); // Offset is odd
                         bytes:=bytes or (1 shl 0); // Offset is odd
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
 
 
                   dp_operation:=(oper[1]^.subreg=R_SUBFD);
                   dp_operation:=(oper[1]^.subreg=R_SUBFD);
@@ -4634,6 +4683,8 @@ implementation
                         bytes:=bytes or ((oper[2]^.val shr 2) and $7F);
                         bytes:=bytes or ((oper[2]^.val shr 2) and $7F);
                       end;
                       end;
                   end;
                   end;
+                else
+                  internalerror(2019050926);
               end;
               end;
             end;
             end;
           #$65: { Thumb load/store }
           #$65: { Thumb load/store }
@@ -4770,6 +4821,8 @@ implementation
                     else
                     else
                       bytes:=bytes or (getsupreg(oper[0]^.reg) shl 8);
                       bytes:=bytes or (getsupreg(oper[0]^.reg) shl 8);
                   end;
                   end;
+                else
+                  internalerror(2019050925);
               end;
               end;
             end;
             end;
           #$6A: { Thumb: IT }
           #$6A: { Thumb: IT }
@@ -5375,6 +5428,8 @@ implementation
               case oppostfix of
               case oppostfix of
                 PF_None,PF_IA,PF_FD: bytes:=bytes or ($1 shl 23);
                 PF_None,PF_IA,PF_FD: bytes:=bytes or ($1 shl 23);
                 PF_DB,PF_EA: bytes:=bytes or ($2 shl 23);
                 PF_DB,PF_EA: bytes:=bytes or ($2 shl 23);
+              else
+                message1(asmw_e_invalid_opcode_and_operands, '"Invalid Postfix"');
               end;
               end;
             end;
             end;
           #$8D: { Thumb-2: BL/BLX }
           #$8D: { Thumb-2: BL/BLX }
@@ -5525,6 +5580,9 @@ implementation
                     PF_D: bytes:=bytes or (0 shl 22) or (1 shl 15);
                     PF_D: bytes:=bytes or (0 shl 22) or (1 shl 15);
                     PF_E: bytes:=bytes or (1 shl 22) or (0 shl 15);
                     PF_E: bytes:=bytes or (1 shl 22) or (0 shl 15);
                     PF_P: bytes:=bytes or (1 shl 22) or (1 shl 15);
                     PF_P: bytes:=bytes or (1 shl 22) or (1 shl 15);
+                    PF_EP: ;
+                    else
+                      message1(asmw_e_invalid_opcode_and_operands, '"Invalid postfix"');
                   end;
                   end;
                 end
                 end
               else
               else
@@ -5599,6 +5657,7 @@ implementation
                 end;
                 end;
 
 
               case roundingmode of
               case roundingmode of
+                RM_NONE: ;
                 RM_P: bytes:=bytes or (1 shl 5);
                 RM_P: bytes:=bytes or (1 shl 5);
                 RM_M: bytes:=bytes or (2 shl 5);
                 RM_M: bytes:=bytes or (2 shl 5);
                 RM_Z: bytes:=bytes or (3 shl 5);
                 RM_Z: bytes:=bytes or (3 shl 5);
@@ -5626,6 +5685,7 @@ implementation
                     bytes:=bytes or (getsupreg(oper[1]^.reg) shl 12);
                     bytes:=bytes or (getsupreg(oper[1]^.reg) shl 12);
 
 
                     case roundingmode of
                     case roundingmode of
+                      RM_NONE: ;
                       RM_P: bytes:=bytes or (1 shl 5);
                       RM_P: bytes:=bytes or (1 shl 5);
                       RM_M: bytes:=bytes or (2 shl 5);
                       RM_M: bytes:=bytes or (2 shl 5);
                       RM_Z: bytes:=bytes or (3 shl 5);
                       RM_Z: bytes:=bytes or (3 shl 5);
@@ -5645,6 +5705,7 @@ implementation
                     bytes:=bytes or (getsupreg(oper[1]^.reg) shl 0);
                     bytes:=bytes or (getsupreg(oper[1]^.reg) shl 0);
 
 
                     case roundingmode of
                     case roundingmode of
+                      RM_NONE: ;
                       RM_P: bytes:=bytes or (1 shl 5);
                       RM_P: bytes:=bytes or (1 shl 5);
                       RM_M: bytes:=bytes or (2 shl 5);
                       RM_M: bytes:=bytes or (2 shl 5);
                       RM_Z: bytes:=bytes or (3 shl 5);
                       RM_Z: bytes:=bytes or (3 shl 5);
@@ -5674,6 +5735,8 @@ implementation
                         Message(asmw_e_invalid_opcode_and_operands);
                         Message(asmw_e_invalid_opcode_and_operands);
                       end;
                       end;
                   end;
                   end;
+                else
+                  Message1(asmw_e_invalid_opcode_and_operands, '"Unsupported opcode"');
               end;
               end;
             end;
             end;
           #$fe: // No written data
           #$fe: // No written data

+ 2 - 0
compiler/arm/agarmgas.pas

@@ -218,6 +218,8 @@ unit agarmgas;
                     s:=s+']';
                     s:=s+']';
                   AM_PREINDEXED:
                   AM_PREINDEXED:
                     s:=s+']!';
                     s:=s+']!';
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
 
 

+ 29 - 1
compiler/arm/aoptcpu.pas

@@ -241,6 +241,8 @@ Implementation
               instructionLoadsFromReg :=
               instructionLoadsFromReg :=
                 (p.oper[I]^.ref^.base = reg) or
                 (p.oper[I]^.ref^.base = reg) or
                 (p.oper[I]^.ref^.index = reg);
                 (p.oper[I]^.ref^.index = reg);
+            else
+              ;
           end;
           end;
           if instructionLoadsFromReg then exit; {Bailout if we found something}
           if instructionLoadsFromReg then exit; {Bailout if we found something}
           Inc(I);
           Inc(I);
@@ -300,6 +302,8 @@ Implementation
         A_POP:
         A_POP:
           Result := (getsupreg(reg) in p.oper[0]^.regset^) or
           Result := (getsupreg(reg) in p.oper[0]^.regset^) or
                                    (reg=NR_STACK_POINTER_REG);
                                    (reg=NR_STACK_POINTER_REG);
+        else
+          ;
       end;
       end;
 
 
       if Result then
       if Result then
@@ -316,6 +320,8 @@ Implementation
           Result :=
           Result :=
             (taicpu(p).oper[0]^.ref^.addressmode in [AM_PREINDEXED,AM_POSTINDEXED]) and
             (taicpu(p).oper[0]^.ref^.addressmode in [AM_PREINDEXED,AM_POSTINDEXED]) and
             (taicpu(p).oper[0]^.ref^.base = reg);
             (taicpu(p).oper[0]^.ref^.base = reg);
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -2252,8 +2258,12 @@ Implementation
                       RemoveSuperfluousVMov(p, hp1, 'VOpVMov2VOp') then
                       RemoveSuperfluousVMov(p, hp1, 'VOpVMov2VOp') then
                       Result:=true;
                       Result:=true;
                   end
                   end
+                else
+                  ;
               end;
               end;
           end;
           end;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -2431,8 +2441,12 @@ Implementation
                                 end;
                                 end;
                            end;
                            end;
                       end;
                       end;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
+            else
+              ;
           end;
           end;
           p := tai(p.next)
           p := tai(p.next)
         end;
         end;
@@ -2512,6 +2526,8 @@ Implementation
             for r:=RS_R0 to RS_R15 do
             for r:=RS_R0 to RS_R15 do
                if r in p.oper[i]^.regset^ then
                if r in p.oper[i]^.regset^ then
                  CheckLiveStart(newreg(R_INTREGISTER,r,R_SUBWHOLE));
                  CheckLiveStart(newreg(R_INTREGISTER,r,R_SUBWHOLE));
+          else
+            ;
         end;
         end;
 
 
       { if live of any reg used by hp1 ends at hp1 and p uses this register then
       { if live of any reg used by hp1 ends at hp1 and p uses this register then
@@ -2531,6 +2547,8 @@ Implementation
             for r:=RS_R0 to RS_R15 do
             for r:=RS_R0 to RS_R15 do
                if r in hp1.oper[i]^.regset^ then
                if r in hp1.oper[i]^.regset^ then
                  CheckLiveEnd(newreg(R_INTREGISTER,r,R_SUBWHOLE));
                  CheckLiveEnd(newreg(R_INTREGISTER,r,R_SUBWHOLE));
+          else
+            ;
         end;
         end;
     end;
     end;
 
 
@@ -2727,7 +2745,11 @@ Implementation
                       A_ITETT:
                       A_ITETT:
                         if l=4 then taicpu(hp).opcode := A_ITET;
                         if l=4 then taicpu(hp).opcode := A_ITET;
                       A_ITTTT:
                       A_ITTTT:
-                        if l=4 then taicpu(hp).opcode := A_ITTT;
+                        begin
+                          if l=4 then taicpu(hp).opcode := A_ITTT;
+                        end
+                      else
+                        ;
                     end;
                     end;
 
 
                   break;
                   break;
@@ -2958,8 +2980,12 @@ Implementation
                                 end;
                                 end;
                            end;
                            end;
                       end;
                       end;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
+            else
+              ;
           end;
           end;
           p := tai(p.next)
           p := tai(p.next)
         end;
         end;
@@ -3110,6 +3136,8 @@ Implementation
                 SM_LSR: taicpu(p).opcode:=A_LSR;
                 SM_LSR: taicpu(p).opcode:=A_LSR;
                 SM_ASR: taicpu(p).opcode:=A_ASR;
                 SM_ASR: taicpu(p).opcode:=A_ASR;
                 SM_ROR: taicpu(p).opcode:=A_ROR;
                 SM_ROR: taicpu(p).opcode:=A_ROR;
+                else
+                  internalerror(2019050912);
               end;
               end;
 
 
               if taicpu(p).oper[2]^.shifterop^.rs<>NR_NO then
               if taicpu(p).oper[2]^.shifterop^.rs<>NR_NO then

+ 16 - 8
compiler/arm/aoptcpub.pas

@@ -121,12 +121,16 @@ Implementation
       result:=false;
       result:=false;
       case taicpu(p1).opcode of
       case taicpu(p1).opcode of
         A_LDR:
         A_LDR:
-          { special handling for LDRD }
-          if (taicpu(p1).oppostfix=PF_D) and (getsupreg(taicpu(p1).oper[0]^.reg)+1=getsupreg(Reg)) then
-            begin
-              result:=true;
-              exit;
-            end;
+          begin
+            { special handling for LDRD }
+            if (taicpu(p1).oppostfix=PF_D) and (getsupreg(taicpu(p1).oper[0]^.reg)+1=getsupreg(Reg)) then
+              begin
+                result:=true;
+                exit;
+              end;
+          end;
+        else
+          ;
       end;
       end;
       for i:=0 to taicpu(p1).ops-1 do
       for i:=0 to taicpu(p1).ops-1 do
         case taicpu(p1).oper[i]^.typ of
         case taicpu(p1).oper[i]^.typ of
@@ -134,8 +138,12 @@ Implementation
             if (taicpu(p1).oper[i]^.reg=Reg) and (taicpu(p1).spilling_get_operation_type(i) in [operand_write,operand_readwrite]) then
             if (taicpu(p1).oper[i]^.reg=Reg) and (taicpu(p1).spilling_get_operation_type(i) in [operand_write,operand_readwrite]) then
               exit(true);
               exit(true);
           top_ref:
           top_ref:
-            if (taicpu(p1).spilling_get_operation_type_ref(i,Reg)<>operand_read) then
-              exit(true);
+            begin
+              if (taicpu(p1).spilling_get_operation_type_ref(i,Reg)<>operand_read) then
+                exit(true);
+            end
+          else
+            ;
         end;
         end;
     end;
     end;
 
 

+ 55 - 2
compiler/arm/cgcpu.pas

@@ -898,9 +898,11 @@ unit cgcpu;
               a_load_const_reg(list, size, a, dst);
               a_load_const_reg(list, size, a, dst);
               exit;
               exit;
             end;
             end;
+          else
+            ;
         end;
         end;
         ovloc.loc:=LOC_VOID;
         ovloc.loc:=LOC_VOID;
-        if {$ifopt R+}(a<>-2147483648) and{$endif} not setflags and is_shifter_const(-a,shift) then
+        if (a<>-2147483648) and not setflags and is_shifter_const(-a,shift) then
           case op of
           case op of
             OP_ADD:
             OP_ADD:
               begin
               begin
@@ -912,6 +914,8 @@ unit cgcpu;
                 op:=OP_ADD;
                 op:=OP_ADD;
                 a:=aint(dword(-a));
                 a:=aint(dword(-a));
               end
               end
+            else
+              ;
           end;
           end;
 
 
         if is_shifter_const(a,shift) and not(op in [OP_IMUL,OP_MUL]) then
         if is_shifter_const(a,shift) and not(op in [OP_IMUL,OP_MUL]) then
@@ -960,6 +964,8 @@ unit cgcpu;
                       ovloc.resflags:=F_CS;
                       ovloc.resflags:=F_CS;
                     OP_SUB:
                     OP_SUB:
                       ovloc.resflags:=F_CC;
                       ovloc.resflags:=F_CC;
+                    else
+                      internalerror(2019050922);
                   end;
                   end;
                 end;
                 end;
           end
           end
@@ -1871,6 +1877,10 @@ unit cgcpu;
             firstfloatreg:=RS_NO;
             firstfloatreg:=RS_NO;
             mmregs:=[];
             mmregs:=[];
             case current_settings.fputype of
             case current_settings.fputype of
+              fpu_none,
+              fpu_soft,
+              fpu_libgcc:
+                ;
               fpu_fpa,
               fpu_fpa,
               fpu_fpa10,
               fpu_fpa10,
               fpu_fpa11:
               fpu_fpa11:
@@ -1896,6 +1906,8 @@ unit cgcpu;
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
                 end;
                 end;
+              else
+                internalerror(2019050924);
             end;
             end;
             a_reg_alloc(list,NR_STACK_POINTER_REG);
             a_reg_alloc(list,NR_STACK_POINTER_REG);
             if current_procinfo.framepointer<>NR_STACK_POINTER_REG then
             if current_procinfo.framepointer<>NR_STACK_POINTER_REG then
@@ -2080,6 +2092,8 @@ unit cgcpu;
                      if mmregs<>[] then
                      if mmregs<>[] then
                        list.concat(taicpu.op_ref_regset(A_VSTM,ref,R_MMREGISTER,R_SUBFD,mmregs));
                        list.concat(taicpu.op_ref_regset(A_VSTM,ref,R_MMREGISTER,R_SUBFD,mmregs));
                    end;
                    end;
+                 else
+                   internalerror(2019050923);
                end;
                end;
              end;
              end;
           end;
           end;
@@ -2109,6 +2123,10 @@ unit cgcpu;
             mmregs:=[];
             mmregs:=[];
             saveregs:=[];
             saveregs:=[];
             case current_settings.fputype of
             case current_settings.fputype of
+              fpu_none,
+              fpu_soft,
+              fpu_libgcc:
+                ;
               fpu_fpa,
               fpu_fpa,
               fpu_fpa10,
               fpu_fpa10,
               fpu_fpa11:
               fpu_fpa11:
@@ -2138,6 +2156,8 @@ unit cgcpu;
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                     as the even ones by with a different subtype as it is done on x86 with al/ah }
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
                   mmregs:=(rg[R_MMREGISTER].used_in_proc-paramanager.get_volatile_registers_mm(pocall_stdcall))*[0..31];
                 end;
                 end;
+              else
+                internalerror(2019050926);
             end;
             end;
 
 
             if (firstfloatreg<>RS_NO) or
             if (firstfloatreg<>RS_NO) or
@@ -2186,6 +2206,8 @@ unit cgcpu;
                      if mmregs<>[] then
                      if mmregs<>[] then
                        list.concat(taicpu.op_ref_regset(A_VLDM,ref,R_MMREGISTER,R_SUBFD,mmregs));
                        list.concat(taicpu.op_ref_regset(A_VLDM,ref,R_MMREGISTER,R_SUBFD,mmregs));
                     end;
                     end;
+                  else
+                    internalerror(2019050921);
                 end;
                 end;
               end;
               end;
 
 
@@ -3044,6 +3066,8 @@ unit cgcpu;
         case instr.opcode of
         case instr.opcode of
           A_VMOV:
           A_VMOV:
             add_move_instruction(instr);
             add_move_instruction(instr);
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -3073,6 +3097,10 @@ unit cgcpu;
               if (fromsize<>tosize) then
               if (fromsize<>tosize) then
                 internalerror(2009112901);
                 internalerror(2009112901);
             end;
             end;
+          OS_F32,OS_F64:
+            ;
+          else
+            internalerror(2019050920);
         end;
         end;
 
 
         if (fromsize<>tosize) then
         if (fromsize<>tosize) then
@@ -3134,6 +3162,10 @@ unit cgcpu;
               if (fromsize<>tosize) then
               if (fromsize<>tosize) then
                 internalerror(2009112901);
                 internalerror(2009112901);
             end;
             end;
+          OS_F32,OS_F64:
+            ;
+          else
+            internalerror(2019050919);
         end;
         end;
 
 
         if (fromsize<>tosize) then
         if (fromsize<>tosize) then
@@ -3347,6 +3379,8 @@ unit cgcpu;
           OP_NEG,
           OP_NEG,
           OP_NOT :
           OP_NOT :
             internalerror(2012022501);
             internalerror(2012022501);
+          else
+            ;
         end;
         end;
         if (setflags or tbasecgarm(cg).cgsetflags) and (op in [OP_ADD,OP_SUB]) then
         if (setflags or tbasecgarm(cg).cgsetflags) and (op in [OP_ADD,OP_SUB]) then
           begin
           begin
@@ -3411,6 +3445,8 @@ unit cgcpu;
                     ovloc.resflags:=F_CS;
                     ovloc.resflags:=F_CS;
                   OP_SUB:
                   OP_SUB:
                     ovloc.resflags:=F_CC;
                     ovloc.resflags:=F_CC;
+                  else
+                    internalerror(2019050918);
                 end;
                 end;
               end;
               end;
           end
           end
@@ -3484,6 +3520,8 @@ unit cgcpu;
           OP_NEG,
           OP_NEG,
           OP_NOT :
           OP_NOT :
             internalerror(2012022502);
             internalerror(2012022502);
+          else
+            ;
         end;
         end;
         if (setflags or tbasecgarm(cg).cgsetflags) and (op in [OP_ADD,OP_SUB]) then
         if (setflags or tbasecgarm(cg).cgsetflags) and (op in [OP_ADD,OP_SUB]) then
           begin
           begin
@@ -3512,6 +3550,8 @@ unit cgcpu;
                     ovloc.resflags:=F_CS;
                     ovloc.resflags:=F_CS;
                   OP_SUB:
                   OP_SUB:
                     ovloc.resflags:=F_CC;
                     ovloc.resflags:=F_CC;
+                  else
+                    internalerror(2019050917);
                 end;
                 end;
               end;
               end;
           end
           end
@@ -4087,6 +4127,8 @@ unit cgcpu;
                 op:=OP_ADD;
                 op:=OP_ADD;
                 a:=aint(dword(-a));
                 a:=aint(dword(-a));
               end
               end
+            else
+              ;
           end;
           end;
 
 
         if is_thumb_imm(a) and (op in [OP_ADD,OP_SUB]) then
         if is_thumb_imm(a) and (op in [OP_ADD,OP_SUB]) then
@@ -4106,6 +4148,8 @@ unit cgcpu;
                   OP_SUB:
                   OP_SUB:
                     //!!! ovloc.resflags:=F_CC;
                     //!!! ovloc.resflags:=F_CC;
                     ;
                     ;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
           end
           end
@@ -4435,6 +4479,11 @@ unit cgcpu;
               OS_S8: list.concat(taicpu.op_reg_reg(A_SXTB,dst,dst));
               OS_S8: list.concat(taicpu.op_reg_reg(A_SXTB,dst,dst));
               OS_16: list.concat(taicpu.op_reg_reg(A_UXTH,dst,dst));
               OS_16: list.concat(taicpu.op_reg_reg(A_UXTH,dst,dst));
               OS_S16: list.concat(taicpu.op_reg_reg(A_SXTH,dst,dst));
               OS_S16: list.concat(taicpu.op_reg_reg(A_SXTH,dst,dst));
+              OS_32,
+              OS_S32:
+                ;
+              else
+                internalerror(2019050916);
             end;
             end;
           end
           end
         else
         else
@@ -4450,7 +4499,7 @@ unit cgcpu;
         l1 : longint;
         l1 : longint;
       begin
       begin
         ovloc.loc:=LOC_VOID;
         ovloc.loc:=LOC_VOID;
-        if {$ifopt R+}(a<>-2147483648) and{$endif} is_shifter_const(-a,shift) then
+        if (a<>-2147483648) and is_shifter_const(-a,shift) then
           case op of
           case op of
             OP_ADD:
             OP_ADD:
               begin
               begin
@@ -4462,6 +4511,8 @@ unit cgcpu;
                 op:=OP_ADD;
                 op:=OP_ADD;
                 a:=aint(dword(-a));
                 a:=aint(dword(-a));
               end
               end
+            else
+              ;
           end;
           end;
 
 
         if is_shifter_const(a,shift) and not(op in [OP_IMUL,OP_MUL]) then
         if is_shifter_const(a,shift) and not(op in [OP_IMUL,OP_MUL]) then
@@ -4566,6 +4617,8 @@ unit cgcpu;
                       ovloc.resflags:=F_CS;
                       ovloc.resflags:=F_CS;
                     OP_SUB:
                     OP_SUB:
                       ovloc.resflags:=F_CC;
                       ovloc.resflags:=F_CC;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
           end
           end

+ 2 - 0
compiler/arm/cpubase.pas

@@ -780,6 +780,8 @@ unit cpubase;
                       ((((doublerec.bytes[6] and $7f)=$40) and ((doublerec.bytes[7] and $c0)=0)) or
                       ((((doublerec.bytes[6] and $7f)=$40) and ((doublerec.bytes[7] and $c0)=0)) or
                        (((doublerec.bytes[6] and $7f)=$3f) and ((doublerec.bytes[7] and $c0)=$c0)));
                        (((doublerec.bytes[6] and $7f)=$3f) and ((doublerec.bytes[7] and $c0)=$c0)));
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 2 - 0
compiler/arm/cpuelf.pas

@@ -588,6 +588,8 @@ implementation
               data.Write(zero,4);
               data.Write(zero,4);
               continue;
               continue;
             end;
             end;
+          else
+            ;
         end;
         end;
 
 
         if (objreloc.flags and rf_raw)=0 then
         if (objreloc.flags and rf_raw)=0 then

+ 2 - 0
compiler/arm/cpupara.pas

@@ -232,6 +232,8 @@ unit cpupara;
             result:=not is_smallset(def);
             result:=not is_smallset(def);
           stringdef :
           stringdef :
             result:=tstringdef(def).stringtype in [st_shortstring,st_longstring];
             result:=tstringdef(def).stringtype in [st_shortstring,st_longstring];
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 5 - 1
compiler/arm/cpupi.pas

@@ -57,7 +57,7 @@ unit cpupi;
   implementation
   implementation
 
 
     uses
     uses
-       globals,systems,
+       globals,systems,verbose,
        cpubase,
        cpubase,
        tgobj,
        tgobj,
        symconst,symtype,symsym,symcpu,paramgr,
        symconst,symtype,symsym,symcpu,paramgr,
@@ -156,6 +156,10 @@ unit cpupi;
             maxpushedparasize:=align(maxpushedparasize,max(current_settings.alignment.localalignmin,4));
             maxpushedparasize:=align(maxpushedparasize,max(current_settings.alignment.localalignmin,4));
             floatsavesize:=0;
             floatsavesize:=0;
             case current_settings.fputype of
             case current_settings.fputype of
+              fpu_none,
+              fpu_soft,
+              fpu_libgcc:
+                ;
               fpu_fpa,
               fpu_fpa,
               fpu_fpa10,
               fpu_fpa10,
               fpu_fpa11:
               fpu_fpa11:

+ 5 - 1
compiler/arm/narmadd.pas

@@ -344,7 +344,7 @@ interface
               cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
               cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
               current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_VMRS, NR_APSR_nzcv, NR_FPSCR));
               current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_VMRS, NR_APSR_nzcv, NR_FPSCR));
             end;
             end;
-          fpu_soft:
+          else
             { this case should be handled already by pass1 }
             { this case should be handled already by pass1 }
             internalerror(2009112404);
             internalerror(2009112404);
         end;
         end;
@@ -517,6 +517,8 @@ interface
                         cg.a_reg_dealloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
                         cg.a_reg_dealloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
                         nodetype:=oldnodetype;
                         nodetype:=oldnodetype;
                      end;
                      end;
+                   else
+                     ;
                 end;
                 end;
                 cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
                 cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
                 current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,left.location.register64.reglo,right.location.register64.reglo));
                 current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,left.location.register64.reglo,right.location.register64.reglo));
@@ -647,6 +649,8 @@ interface
                   if notnode then
                   if notnode then
                     result:=cnotnode.create(result);
                     result:=cnotnode.create(result);
                 end;
                 end;
+              else
+                internalerror(2019050933);
             end;
             end;
           end
           end
         else
         else

+ 3 - 0
compiler/arm/narmcnv.pas

@@ -278,6 +278,9 @@ implementation
               else
               else
                 current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VCVT,location.register,left.location.register), PF_F32U32));
                 current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_VCVT,location.register,left.location.register), PF_F32U32));
             end;
             end;
+          else
+            { should be handled in pass 1 }
+            internalerror(2019050934);
         end;
         end;
       end;
       end;
 
 

+ 6 - 0
compiler/arm/raarmgas.pas

@@ -724,6 +724,8 @@ Unit raarmgas;
                         end;
                         end;
                     end;
                     end;
                 end;
                 end;
+              else
+               ;
             end;
             end;
           end;
           end;
 
 
@@ -817,6 +819,8 @@ Unit raarmgas;
                   oper.opr.ref.base:=NR_PC;
                   oper.opr.ref.base:=NR_PC;
                   oper.opr.ref.symbol:=GetConstLabel(sym,val);
                   oper.opr.ref.symbol:=GetConstLabel(sym,val);
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
 
 
@@ -1143,6 +1147,8 @@ Unit raarmgas;
               else
               else
                 Message(asmr_e_invalid_operand_type); // Otherwise it would have been seen as a AS_REGISTER
                 Message(asmr_e_invalid_operand_type); // Otherwise it would have been seen as a AS_REGISTER
             end;
             end;
+          else
+            Message(asmr_e_invalid_operand_type);
         end;
         end;
       end;
       end;
 
 

+ 8 - 0
compiler/arm/rgcpu.pas

@@ -166,6 +166,8 @@ unit rgcpu;
                     if current_procinfo.framepointer<>r then
                     if current_procinfo.framepointer<>r then
                       add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(r));
                       add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(r));
                   end;
                   end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;
@@ -353,6 +355,8 @@ unit rgcpu;
                 RS_S21,RS_S23,RS_S25,RS_S27,RS_S29,RS_S31] do
                 RS_S21,RS_S23,RS_S25,RS_S27,RS_S29,RS_S31] do
                 add_edge(supreg,i);
                 add_edge(supreg,i);
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -606,6 +610,8 @@ unit rgcpu;
                     if current_procinfo.framepointer<>r then
                     if current_procinfo.framepointer<>r then
                       add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(r));
                       add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(r));
                   end;
                   end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;
@@ -658,6 +664,8 @@ unit rgcpu;
                        add_edge(getsupreg(taicpu(p).oper[0]^.reg),i);
                        add_edge(getsupreg(taicpu(p).oper[0]^.reg),i);
                      end;
                      end;
                  end;
                  end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

+ 8 - 0
compiler/assemble.pas

@@ -1690,6 +1690,8 @@ Implementation
              ait_cutobject :
              ait_cutobject :
                if SmartAsm then
                if SmartAsm then
                 break;
                 break;
+             else
+               ;
            end;
            end;
            hp:=Tai(hp.next);
            hp:=Tai(hp.next);
          end;
          end;
@@ -1835,6 +1837,8 @@ Implementation
                      internalerror(2010011102);
                      internalerror(2010011102);
                  end;
                  end;
                end;
                end;
+             else
+               ;
            end;
            end;
            hp:=Tai(hp.next);
            hp:=Tai(hp.next);
          end;
          end;
@@ -2101,6 +2105,8 @@ Implementation
                          ));
                          ));
                      end;
                      end;
 {$endif OMFOBJSUPPORT}
 {$endif OMFOBJSUPPORT}
+                   else
+                     ;
                  end
                  end
                end;
                end;
              ait_symbolpair:
              ait_symbolpair:
@@ -2121,6 +2127,8 @@ Implementation
              ait_seh_directive :
              ait_seh_directive :
                tai_seh_directive(hp).generate_code(objdata);
                tai_seh_directive(hp).generate_code(objdata);
 {$endif DISABLE_WIN64_SEH}
 {$endif DISABLE_WIN64_SEH}
+             else
+               ;
            end;
            end;
            hp:=Tai(hp.next);
            hp:=Tai(hp.next);
          end;
          end;

+ 0 - 2
compiler/cfidwarf.pas

@@ -217,8 +217,6 @@ implementation
                 list.concat(tai_const.create_rel_sym(enc2ait_const[oper[i].enc],oper[i].beginsym,oper[i].endsym));
                 list.concat(tai_const.create_rel_sym(enc2ait_const[oper[i].enc],oper[i].beginsym,oper[i].endsym));
               dop_reg :
               dop_reg :
                 list.concat(tai_const.create(enc2ait_const[oper[i].enc],dwarf_reg(oper[i].register)));
                 list.concat(tai_const.create(enc2ait_const[oper[i].enc],dwarf_reg(oper[i].register)));
-              else
-                internalerror(200404128);
             end;
             end;
           end;
           end;
       end;
       end;

+ 12 - 0
compiler/cgobj.pas

@@ -1793,10 +1793,14 @@ implementation
                 a:=a and 15;
                 a:=a and 15;
               OS_8,OS_S8:
               OS_8,OS_S8:
                 a:=a and 7;
                 a:=a and 7;
+              else
+                internalerror(2019050521);
             end;
             end;
             if a = 0 then
             if a = 0 then
               op:=OP_NONE;
               op:=OP_NONE;
           end;
           end;
+        else
+          ;
         end;
         end;
       end;
       end;
 
 
@@ -2123,6 +2127,8 @@ implementation
                     a_load_const_reg(list,OS_16,0,dst);
                     a_load_const_reg(list,OS_16,0,dst);
                     exit;
                     exit;
                   end;
                   end;
+                else
+                  ;
               end;
               end;
           end;
           end;
         OP_SHR:
         OP_SHR:
@@ -2135,9 +2141,13 @@ implementation
                     a_load_const_reg(list,OS_16,0,GetNextReg(dst));
                     a_load_const_reg(list,OS_16,0,GetNextReg(dst));
                     exit;
                     exit;
                   end;
                   end;
+                else
+                  ;
               end;
               end;
           end;
           end;
 {$endif cpu16bitalu}
 {$endif cpu16bitalu}
+        else
+          ;
       end;
       end;
       a_load_reg_reg(list,size,size,src,dst);
       a_load_reg_reg(list,size,size,src,dst);
       a_op_const_reg(list,op,size,a,dst);
       a_op_const_reg(list,op,size,a,dst);
@@ -2787,6 +2797,8 @@ implementation
               { a_load_ref_reg will turn this into a pic-load if needed }
               { a_load_ref_reg will turn this into a pic-load if needed }
               a_load_ref_reg(list,OS_ADDR,OS_ADDR,ref,result);
               a_load_ref_reg(list,OS_ADDR,OS_ADDR,ref,result);
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 10 - 2
compiler/dbgbase.pas

@@ -339,8 +339,6 @@ implementation
                       else
                       else
                         internalerror(2012072402);
                         internalerror(2012072402);
                     end;
                     end;
-                  else
-                    internalerror(200610054);
                 end;
                 end;
               end;
               end;
             looplist.clear;
             looplist.clear;
@@ -476,6 +474,8 @@ implementation
             list.concat(tai_comment.Create(strpnew('Defs - Begin Staticsymtable')));
             list.concat(tai_comment.Create(strpnew('Defs - Begin Staticsymtable')));
           globalsymtable :
           globalsymtable :
             list.concat(tai_comment.Create(strpnew('Defs - Begin unit '+st.name^+' has index '+tostr(st.moduleid))));
             list.concat(tai_comment.Create(strpnew('Defs - Begin unit '+st.name^+' has index '+tostr(st.moduleid))));
+          else
+            ;
         end;
         end;
         repeat
         repeat
           nonewadded:=true;
           nonewadded:=true;
@@ -494,6 +494,8 @@ implementation
             list.concat(tai_comment.Create(strpnew('Defs - End Staticsymtable')));
             list.concat(tai_comment.Create(strpnew('Defs - End Staticsymtable')));
           globalsymtable :
           globalsymtable :
             list.concat(tai_comment.Create(strpnew('Defs - End unit '+st.name^+' has index '+tostr(st.moduleid))));
             list.concat(tai_comment.Create(strpnew('Defs - End unit '+st.name^+' has index '+tostr(st.moduleid))));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -528,6 +530,8 @@ implementation
             list.concat(tai_comment.Create(strpnew('Syms - Begin Staticsymtable')));
             list.concat(tai_comment.Create(strpnew('Syms - Begin Staticsymtable')));
           globalsymtable :
           globalsymtable :
             list.concat(tai_comment.Create(strpnew('Syms - Begin unit '+st.name^+' has index '+tostr(st.moduleid))));
             list.concat(tai_comment.Create(strpnew('Syms - Begin unit '+st.name^+' has index '+tostr(st.moduleid))));
+          else
+            ;
         end;
         end;
         for i:=0 to st.SymList.Count-1 do
         for i:=0 to st.SymList.Count-1 do
           begin
           begin
@@ -545,6 +549,8 @@ implementation
             list.concat(tai_comment.Create(strpnew('Syms - End Staticsymtable')));
             list.concat(tai_comment.Create(strpnew('Syms - End Staticsymtable')));
           globalsymtable :
           globalsymtable :
             list.concat(tai_comment.Create(strpnew('Syms - End unit '+st.name^+' has index '+tostr(st.moduleid))));
             list.concat(tai_comment.Create(strpnew('Syms - End unit '+st.name^+' has index '+tostr(st.moduleid))));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -568,6 +574,8 @@ implementation
                 begin
                 begin
                   write_symtable_procdefs(list,tabstractrecorddef(def).symtable);
                   write_symtable_procdefs(list,tabstractrecorddef(def).symtable);
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

+ 4 - 0
compiler/dbgcodeview.pas

@@ -229,8 +229,12 @@ implementation
                       inc(nolineinfolevel);
                       inc(nolineinfolevel);
                     mark_NoLineInfoEnd:
                     mark_NoLineInfoEnd:
                       dec(nolineinfolevel);
                       dec(nolineinfolevel);
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             { OMF LINNUM records do not support multiple source files }
             { OMF LINNUM records do not support multiple source files }

+ 18 - 18
compiler/dbgdwarf.pas

@@ -1110,6 +1110,8 @@ implementation
             appendsym_property(TAsmList(arg),tpropertysym(p));
             appendsym_property(TAsmList(arg),tpropertysym(p));
           constsym:
           constsym:
             appendsym_const_member(TAsmList(arg),tconstsym(p),true);
             appendsym_const_member(TAsmList(arg),tconstsym(p),true);
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -1365,8 +1367,6 @@ implementation
             append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_far16]);
             append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_far16]);
           x86pt_huge:
           x86pt_huge:
             append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_huge16]);
             append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_huge16]);
-          else
-            internalerror(2018052401);
         end;
         end;
 {$else i8086}
 {$else i8086}
         { Theoretically, we could do this, but it might upset some debuggers, }
         { Theoretically, we could do this, but it might upset some debuggers, }
@@ -3166,8 +3166,6 @@ implementation
               templist.free;
               templist.free;
               exit;
               exit;
             end;
             end;
-          else
-            internalerror(2013120111);
         end;
         end;
 
 
         append_entry(DW_TAG_variable,false,[
         append_entry(DW_TAG_variable,false,[
@@ -3511,8 +3509,6 @@ implementation
             append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_large]);
             append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_large]);
           mm_huge:
           mm_huge:
             append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_huge]);
             append_attribute(DW_AT_WATCOM_memory_model,DW_FORM_data1,[DW_WATCOM_MEMORY_MODEL_huge]);
-          else
-            internalerror(2018052402);
         end;
         end;
 {$endif i8086}
 {$endif i8086}
 
 
@@ -3681,14 +3677,18 @@ implementation
         procedure TDebugInfoDwarf.append_visibility(vis: tvisibility);
         procedure TDebugInfoDwarf.append_visibility(vis: tvisibility);
       begin
       begin
         case vis of
         case vis of
+          vis_hidden,
           vis_private,
           vis_private,
           vis_strictprivate:
           vis_strictprivate:
             append_attribute(DW_AT_accessibility,DW_FORM_data1,[ord(DW_ACCESS_private)]);
             append_attribute(DW_AT_accessibility,DW_FORM_data1,[ord(DW_ACCESS_private)]);
           vis_protected,
           vis_protected,
           vis_strictprotected:
           vis_strictprotected:
             append_attribute(DW_AT_accessibility,DW_FORM_data1,[ord(DW_ACCESS_protected)]);
             append_attribute(DW_AT_accessibility,DW_FORM_data1,[ord(DW_ACCESS_protected)]);
+          vis_published,
           vis_public:
           vis_public:
             { default };
             { default };
+          vis_none:
+            internalerror(2019050720);
         end;
         end;
       end;
       end;
 
 
@@ -3754,8 +3754,12 @@ implementation
                       inc(nolineinfolevel);
                       inc(nolineinfolevel);
                     mark_NoLineInfoEnd:
                     mark_NoLineInfoEnd:
                       dec(nolineinfolevel);
                       dec(nolineinfolevel);
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             if (currsectype=sec_code) and
             if (currsectype=sec_code) and
@@ -4265,7 +4269,7 @@ implementation
           { now the information about the length of the string }
           { now the information about the length of the string }
           if deref then
           if deref then
             begin
             begin
-              if (chardef.size=1) then
+              if not (is_widestring(def) and (tf_winlikewidestring in target_info.flags)) then
                 upperopcodes:=13
                 upperopcodes:=13
               else
               else
                 upperopcodes:=15;
                 upperopcodes:=15;
@@ -4275,7 +4279,7 @@ implementation
                 DW_AT_upper_bound,DW_FORM_block1,upperopcodes
                 DW_AT_upper_bound,DW_FORM_block1,upperopcodes
                 ]);
                 ]);
 
 
-              { high(string) is stored sizeof(ptrint) bytes before the string data }
+              { high(string) is stored sizeof(sizeint) bytes before the string data }
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_push_object_address)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_push_object_address)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_dup)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_dup)));
@@ -4287,7 +4291,11 @@ implementation
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_skip)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_skip)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_16bit_unaligned(3));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_16bit_unaligned(3));
               { no -> load length }
               { no -> load length }
-              current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit0)+sizeof(ptrint)));
+              if upperopcodes=15 then
+                { for Windows WideString the size is always a DWORD }
+                current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit4)))
+              else
+                current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_lit0)+sizesinttype.size));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_minus)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_minus)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));
               current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_8bit(ord(DW_OP_deref)));
 
 
@@ -4346,15 +4354,7 @@ implementation
            end;
            end;
          st_widestring:
          st_widestring:
            begin
            begin
-             if not(tf_winlikewidestring in target_info.flags) then
-               addstringdef('WideString',cwidechartype,true,-1)
-             else
-               begin
-                 { looks like a pwidechar (no idea about length location) }
-                 append_entry(DW_TAG_pointer_type,false,[]);
-                 append_labelentry_ref(DW_AT_type,def_dwarf_lab(cwidechartype));
-                 finish_entry;
-              end;
+             addstringdef('WideString',cwidechartype,true,-1)
            end;
            end;
         end;
         end;
       end;
       end;

+ 10 - 0
compiler/dbgstabs.pas

@@ -516,6 +516,10 @@ implementation
                         argnames:=argnames+'3out';
                         argnames:=argnames+'3out';
                       vs_constref :
                       vs_constref :
                         argnames:=argnames+'8constref';
                         argnames:=argnames+'8constref';
+                      vs_value :
+                        ;
+                      vs_final:
+                        internalerror(2019050911);
                     end;
                     end;
                   end
                   end
                 else
                 else
@@ -1079,6 +1083,8 @@ implementation
                         def.dbg_state:=dbg_state_queued;
                         def.dbg_state:=dbg_state_queued;
                         break;
                         break;
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
               appenddef(list,vmtarraytype);
               appenddef(list,vmtarraytype);
@@ -1106,6 +1112,8 @@ implementation
                       appenddef(list,TImplementedInterface(anc.ImplementedInterfaces[i]).IntfDef);
                       appenddef(list,TImplementedInterface(anc.ImplementedInterfaces[i]).IntfDef);
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -1760,6 +1768,8 @@ implementation
                 currfuncname:=tai_function_name(hp).funcname;
                 currfuncname:=tai_function_name(hp).funcname;
               ait_force_line :
               ait_force_line :
                 lastfileinfo.line:=-1;
                 lastfileinfo.line:=-1;
+              else
+                ;
             end;
             end;
 
 
             if (currsectype=sec_code) and
             if (currsectype=sec_code) and

+ 4 - 0
compiler/dbgstabx.pas

@@ -341,8 +341,12 @@ implementation
                     inc(nolineinfolevel);
                     inc(nolineinfolevel);
                   mark_NoLineInfoEnd:
                   mark_NoLineInfoEnd:
                     dec(nolineinfolevel);
                     dec(nolineinfolevel);
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
+            else
+              ;
           end;
           end;
 
 
           if (currsectype=sec_code) and
           if (currsectype=sec_code) and

+ 26 - 0
compiler/defcmp.pas

@@ -507,6 +507,8 @@ implementation
                          doconv:=tc_cstring_2_int;
                          doconv:=tc_cstring_2_int;
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -615,6 +617,8 @@ implementation
                                    eq:=te_convert_l6;
                                    eq:=te_convert_l6;
                                end;
                                end;
                              end;
                              end;
+                           else
+                             ;
                          end;
                          end;
                        end;
                        end;
                    end;
                    end;
@@ -794,6 +798,8 @@ implementation
                            end;
                            end;
                       end;
                       end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -851,6 +857,8 @@ implementation
                            end;
                            end;
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -943,6 +951,8 @@ implementation
                            end;
                            end;
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -1213,6 +1223,8 @@ implementation
                               eq:=te_convert_l1;
                               eq:=te_convert_l1;
                            end;
                            end;
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
              end;
              end;
@@ -1256,6 +1268,8 @@ implementation
                              eq:=te_convert_l1;
                              eq:=te_convert_l1;
                            end;
                            end;
                        end;
                        end;
+                     else
+                       ;
                    end;
                    end;
                  end;
                  end;
              end;
              end;
@@ -1542,6 +1556,8 @@ implementation
                          eq:=te_convert_l2;
                          eq:=te_convert_l2;
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -1582,6 +1598,8 @@ implementation
                         eq:=te_convert_l1;
                         eq:=te_convert_l1;
                       end;
                       end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -1638,6 +1656,8 @@ implementation
                          eq:=te_convert_l1;
                          eq:=te_convert_l1;
                        end;
                        end;
                    end;
                    end;
+                 else
+                   ;
                end;
                end;
              end;
              end;
 
 
@@ -1889,6 +1909,8 @@ implementation
                 if not (def_from.typ in [abstractdef,errordef]) then
                 if not (def_from.typ in [abstractdef,errordef]) then
                   eq:=te_convert_l6;
                   eq:=te_convert_l6;
              end;
              end;
+           else
+             ;
         end;
         end;
 
 
         { if we didn't find an appropriate type conversion yet
         { if we didn't find an appropriate type conversion yet
@@ -1978,6 +2000,10 @@ implementation
                   is_subequal:=(torddef(def2).ordtype=uwidechar);
                   is_subequal:=(torddef(def2).ordtype=uwidechar);
                 customint:
                 customint:
                   is_subequal:=(torddef(def2).low=torddef(def1).low) and (torddef(def2).high=torddef(def1).high);
                   is_subequal:=(torddef(def2).low=torddef(def1).low) and (torddef(def2).high=torddef(def1).high);
+                u128bit, s128bit,
+                scurrency,
+                uvoid:
+                  ;
               end;
               end;
             end
             end
            else
            else

+ 12 - 3
compiler/defutil.pas

@@ -1057,6 +1057,8 @@ implementation
                1: l := l and $ff;
                1: l := l and $ff;
                2: l := l and $ffff;
                2: l := l and $ffff;
                4: l := l and $ffffffff;
                4: l := l and $ffffffff;
+               else
+                 ;
              end;
              end;
              {reset sign, i.e. converting -1 to qword changes the value to high(qword)}
              {reset sign, i.e. converting -1 to qword changes the value to high(qword)}
              l.signed:=false;
              l.signed:=false;
@@ -1067,6 +1069,8 @@ implementation
                   1: l.svalue := shortint(l.svalue);
                   1: l.svalue := shortint(l.svalue);
                   2: l.svalue := smallint(l.svalue);
                   2: l.svalue := smallint(l.svalue);
                   4: l.svalue := longint(l.svalue);
                   4: l.svalue := longint(l.svalue);
+                  else
+                    ;
                 end;
                 end;
                 l.signed:=true;
                 l.signed:=true;
               end;
               end;
@@ -1113,6 +1117,8 @@ implementation
                 case tfloatdef(tarraydef(p).elementdef).floattype of
                 case tfloatdef(tarraydef(p).elementdef).floattype of
                   s32real:
                   s32real:
                     mmx_type:=mmxsingle;
                     mmx_type:=mmxsingle;
+                  else
+                    ;
                 end
                 end
               else
               else
                 case torddef(tarraydef(p).elementdef).ordtype of
                 case torddef(tarraydef(p).elementdef).ordtype of
@@ -1128,6 +1134,8 @@ implementation
                      mmx_type:=mmxu32bit;
                      mmx_type:=mmxu32bit;
                    s32bit:
                    s32bit:
                      mmx_type:=mmxs32bit;
                      mmx_type:=mmxs32bit;
+                   else
+                     ;
                 end;
                 end;
            end;
            end;
       end;
       end;
@@ -1462,7 +1470,6 @@ implementation
       As of today, both signed and unsigned types from 8 to 64 bits are supported. }
       As of today, both signed and unsigned types from 8 to 64 bits are supported. }
     function is_automatable(p : tdef) : boolean;
     function is_automatable(p : tdef) : boolean;
       begin
       begin
-        result:=false;
         case p.typ of
         case p.typ of
           orddef:
           orddef:
             result:=torddef(p).ordtype in [u8bit,s8bit,u16bit,s16bit,u32bit,s32bit,
             result:=torddef(p).ordtype in [u8bit,s8bit,u16bit,s16bit,u32bit,s32bit,
@@ -1475,6 +1482,8 @@ implementation
             result:=true;
             result:=true;
           objectdef:
           objectdef:
             result:=tobjectdef(p).objecttype in [odt_interfacecom,odt_dispinterface,odt_interfacecorba];
             result:=tobjectdef(p).objecttype in [odt_interfacecom,odt_dispinterface,odt_interfacecorba];
+          else
+            result:=false;
         end;
         end;
       end;
       end;
 
 
@@ -1554,6 +1563,8 @@ implementation
               result:=torddef(s64inttype);
               result:=torddef(s64inttype);
             s64bit:
             s64bit:
               result:=torddef(u64inttype);
               result:=torddef(u64inttype);
+            else
+              ;
           end;
           end;
       end;
       end;
 
 
@@ -1647,8 +1658,6 @@ implementation
                 result:=tkWString;
                 result:=tkWString;
               st_unicodestring:
               st_unicodestring:
                 result:=tkUString;
                 result:=tkUString;
-              else
-                result:=tkUnknown;
             end;
             end;
           enumdef:
           enumdef:
             result:=tkEnumeration;
             result:=tkEnumeration;

+ 0 - 2
compiler/fppu.pas

@@ -1354,8 +1354,6 @@ var
             list:=publicasmsyms;
             list:=publicasmsyms;
           ualt_extern:
           ualt_extern:
             list:=externasmsyms;
             list:=externasmsyms;
-          else
-            internalerror(2016060301);
         end;
         end;
         c:=ppufile.getlongint;
         c:=ppufile.getlongint;
         for i:=0 to c-1 do
         for i:=0 to c-1 do

+ 2 - 0
compiler/gendef.pas

@@ -136,6 +136,8 @@ begin
         if dllversion<>'' then
         if dllversion<>'' then
           writeln(t,'VERSION '+dllversion);
           writeln(t,'VERSION '+dllversion);
       end;
       end;
+    else
+      ;
   end;
   end;
 
 
 {write imports}
 {write imports}

+ 5 - 2
compiler/globtype.pas

@@ -157,6 +157,7 @@ interface
          cs_do_inline,cs_fpu_fwait,cs_ieee_errors,
          cs_do_inline,cs_fpu_fwait,cs_ieee_errors,
          cs_check_low_addr_load,cs_imported_data,
          cs_check_low_addr_load,cs_imported_data,
          cs_excessprecision,cs_check_fpu_exceptions,
          cs_excessprecision,cs_check_fpu_exceptions,
+         cs_check_all_case_coverage,
          { mmx }
          { mmx }
          cs_mmx,cs_mmx_saturation,
          cs_mmx,cs_mmx_saturation,
          { parser }
          { parser }
@@ -485,7 +486,8 @@ interface
          m_isolike_io,          { I/O as it required by an ISO compatible compiler }
          m_isolike_io,          { I/O as it required by an ISO compatible compiler }
          m_isolike_program_para, { program parameters as it required by an ISO compatible compiler }
          m_isolike_program_para, { program parameters as it required by an ISO compatible compiler }
          m_isolike_mod,         { mod operation as it is required by an iso compatible compiler }
          m_isolike_mod,         { mod operation as it is required by an iso compatible compiler }
-         m_array_operators      { use Delphi compatible array operators instead of custom ones ("+") }
+         m_array_operators,     { use Delphi compatible array operators instead of custom ones ("+") }
+         m_multi_helpers        { helpers can appear in multiple scopes simultaneously }
        );
        );
        tmodeswitches = set of tmodeswitch;
        tmodeswitches = set of tmodeswitch;
 
 
@@ -674,7 +676,8 @@ interface
          'ISOIO',
          'ISOIO',
          'ISOPROGRAMPARAS',
          'ISOPROGRAMPARAS',
          'ISOMOD',
          'ISOMOD',
-         'ARRAYOPERATORS'
+         'ARRAYOPERATORS',
+         'MULTIHELPERS'
          );
          );
 
 
 
 

+ 6 - 0
compiler/hlcg2ll.pas

@@ -1339,6 +1339,8 @@ implementation
                if getsupreg(paraloc.register)<first_fpu_imreg then
                if getsupreg(paraloc.register)<first_fpu_imreg then
                  cg.getcpuregister(list,paraloc.register);
                  cg.getcpuregister(list,paraloc.register);
              end;
              end;
+           else
+             ;
          end;
          end;
       end;
       end;
 
 
@@ -1620,6 +1622,8 @@ implementation
                if getsupreg(paraloc.register)<first_fpu_imreg then
                if getsupreg(paraloc.register)<first_fpu_imreg then
                  cg.ungetcpuregister(list,paraloc.register);
                  cg.ungetcpuregister(list,paraloc.register);
              end;
              end;
+           else
+             ;
          end;
          end;
       end;
       end;
 
 
@@ -2151,6 +2155,8 @@ implementation
               result:=OS_F64;
               result:=OS_F64;
             OS_128:
             OS_128:
               result:=OS_M128;
               result:=OS_M128;
+            else
+              ;
           end;
           end;
         end;
         end;
     end;
     end;

+ 8 - 0
compiler/hlcgobj.pas

@@ -4469,6 +4469,8 @@ implementation
         inn,
         inn,
         asn,isn:
         asn,isn:
           result := fen_norecurse_false;
           result := fen_norecurse_false;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -4549,6 +4551,8 @@ implementation
         potype_unitinit,
         potype_unitinit,
         potype_proginit:
         potype_proginit:
           TSymtable(current_module.localsymtable).SymList.ForEachCall(@initialize_regvars,list);
           TSymtable(current_module.localsymtable).SymList.ForEachCall(@initialize_regvars,list);
+        else
+          ;
       end;
       end;
 
 
       { initialises temp. ansi/wide string data }
       { initialises temp. ansi/wide string data }
@@ -4599,6 +4603,8 @@ implementation
                      std_regname(vs.initialloc.reference.base)+tostr_with_plus(vs.initialloc.reference.offset)+
                      std_regname(vs.initialloc.reference.base)+tostr_with_plus(vs.initialloc.reference.offset)+
                      ', size='+tcgsize2str(vs.initialloc.size))));
                      ', size='+tcgsize2str(vs.initialloc.size))));
               end;
               end;
+            else
+              ;
           end;
           end;
         end;
         end;
       vs.localloc:=vs.initialloc;
       vs.localloc:=vs.initialloc;
@@ -4881,6 +4887,8 @@ implementation
                      end;
                      end;
                  end;
                  end;
              end;
              end;
+           else
+             ;
          end;
          end;
        end;
        end;
     end;
     end;

+ 64 - 20
compiler/htypechk.pas

@@ -605,6 +605,8 @@ implementation
 
 
               result:=true;
               result:=true;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -773,7 +775,11 @@ implementation
                   optoken:=_OP_INC;
                   optoken:=_OP_INC;
                 in_dec_x:
                 in_dec_x:
                   optoken:=_OP_DEC;
                   optoken:=_OP_DEC;
+                else
+                  ;
              end;
              end;
+           else
+             ;
         end;
         end;
         if (optoken=NOTOKEN) then
         if (optoken=NOTOKEN) then
           begin
           begin
@@ -897,6 +903,8 @@ implementation
                     optoken:=_GT;
                     optoken:=_GT;
                   _GTE:
                   _GTE:
                     optoken:=_LT;
                     optoken:=_LT;
+                  else
+                    ;
                 end;
                 end;
                 candidates:=tcallcandidates.create_operator(optoken,ppn);
                 candidates:=tcallcandidates.create_operator(optoken,ppn);
               end;
               end;
@@ -1259,6 +1267,8 @@ implementation
                          pointer itself is read and never written }
                          pointer itself is read and never written }
                        newstate := vs_read;
                        newstate := vs_read;
                      end;
                      end;
+                   else
+                     ;
                end;
                end;
                  p:=tunarynode(p).left;
                  p:=tunarynode(p).left;
                end;
                end;
@@ -1361,6 +1371,8 @@ implementation
                    vs_readwritten:
                    vs_readwritten:
                      if not(nf_write in tloadnode(p).flags) then
                      if not(nf_write in tloadnode(p).flags) then
                        include(tloadnode(p).flags,nf_modify);
                        include(tloadnode(p).flags,nf_modify);
+                   else
+                     ;
                  end;
                  end;
                  break;
                  break;
                end;
                end;
@@ -1484,6 +1496,8 @@ implementation
                    gotrecord:=true;
                    gotrecord:=true;
                  stringdef :
                  stringdef :
                    gotstring:=true;
                    gotstring:=true;
+                 else
+                   ;
                end;
                end;
                if (valid_property in opts) then
                if (valid_property in opts) then
                  begin
                  begin
@@ -1626,6 +1640,8 @@ implementation
                            exit
                            exit
                          end;
                          end;
                      end;
                      end;
+                   else
+                     ;
                  end;
                  end;
                  hp:=ttypeconvnode(hp).left;
                  hp:=ttypeconvnode(hp).left;
                end;
                end;
@@ -2056,6 +2072,8 @@ implementation
                  (tfiledef(def_to).filetyp = ft_untyped) then
                  (tfiledef(def_to).filetyp = ft_untyped) then
                 eq:=te_convert_l1;
                 eq:=te_convert_l1;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -2133,6 +2151,8 @@ implementation
                     end
                     end
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -2261,6 +2281,33 @@ implementation
             end;
             end;
         end;
         end;
 
 
+      function processhelper(hashedid:THashedIDString;helperdef:tobjectdef):boolean;
+        var
+          srsym : tsym;
+          hasoverload,foundanything : boolean;
+        begin
+          result:=false;
+          srsym:=nil;
+          hasoverload:=false;
+          while assigned(helperdef) do
+            begin
+              srsym:=tsym(helperdef.symtable.FindWithHash(hashedid));
+              if assigned(srsym) and
+                  { Delphi allows hiding a property by a procedure with the same name }
+                  (srsym.typ=procsym) then
+                begin
+                  hasoverload:=processprocsym(tprocsym(srsym),foundanything);
+                  { when there is no explicit overload we stop searching }
+                  if foundanything and
+                     not hasoverload then
+                    break;
+                end;
+              helperdef:=helperdef.childof;
+            end;
+          if not hasoverload and assigned(srsym) then
+            exit(true);
+        end;
+
       var
       var
         srsym      : tsym;
         srsym      : tsym;
         hashedid   : THashedIDString;
         hashedid   : THashedIDString;
@@ -2268,6 +2315,8 @@ implementation
         foundanything : boolean;
         foundanything : boolean;
         extendeddef : tabstractrecorddef;
         extendeddef : tabstractrecorddef;
         helperdef  : tobjectdef;
         helperdef  : tobjectdef;
+        helperlist : TFPObjectList;
+        i : integer;
       begin
       begin
         if FOperator=NOTOKEN then
         if FOperator=NOTOKEN then
           hashedid.id:=FProcsym.name
           hashedid.id:=FProcsym.name
@@ -2287,27 +2336,24 @@ implementation
                )
                )
                and searchhelpers then
                and searchhelpers then
              begin
              begin
-               if search_last_objectpascal_helper(structdef,nil,helperdef) then
+               if m_multi_helpers in current_settings.modeswitches then
                  begin
                  begin
-                   srsym:=nil;
-                   while assigned(helperdef) do
+                   helperlist:=get_objectpascal_helpers(structdef);
+                   if assigned(helperlist) and (helperlist.count>0) then
                      begin
                      begin
-                       srsym:=tsym(helperdef.symtable.FindWithHash(hashedid));
-                       if assigned(srsym) and
-                           { Delphi allows hiding a property by a procedure with the same name }
-                           (srsym.typ=procsym) then
-                         begin
-                           hasoverload:=processprocsym(tprocsym(srsym),foundanything);
-                           { when there is no explicit overload we stop searching }
-                           if foundanything and
-                              not hasoverload then
-                             break;
-                         end;
-                       helperdef:=helperdef.childof;
+                       i:=helperlist.count-1;
+                       repeat
+                         helperdef:=tobjectdef(helperlist[i]);
+                         if (helperdef.owner.symtabletype in [staticsymtable,globalsymtable]) or
+                            is_visible_for_object(helperdef.typesym,helperdef) then
+                              if processhelper(hashedid,helperdef) then
+                                exit;
+                         dec(i);
+                       until (i<0);
                      end;
                      end;
-                   if not hasoverload and assigned(srsym) then
-                     exit;
-                 end;
+                 end
+               else if search_last_objectpascal_helper(structdef,nil,helperdef) and processhelper(hashedid,helperdef) then
+                  exit;
              end;
              end;
            { now search in the type itself }
            { now search in the type itself }
            srsym:=tsym(structdef.symtable.FindWithHash(hashedid));
            srsym:=tsym(structdef.symtable.FindWithHash(hashedid));
@@ -3096,8 +3142,6 @@ implementation
                   inc(hp^.coper_count);
                   inc(hp^.coper_count);
                 te_incompatible :
                 te_incompatible :
                   hp^.invalid:=true;
                   hp^.invalid:=true;
-                else
-                  internalerror(200212072);
               end;
               end;
 
 
               { stop checking when an incompatible parameter is found }
               { stop checking when an incompatible parameter is found }

+ 43 - 15
compiler/i386/aoptcpu.pas

@@ -105,17 +105,23 @@ begin
                 if PrePeepholeOptSxx(p) then
                 if PrePeepholeOptSxx(p) then
                   continue;
                   continue;
               A_XOR:
               A_XOR:
-                if (taicpu(p).oper[0]^.typ = top_reg) and
-                   (taicpu(p).oper[1]^.typ = top_reg) and
-                   (taicpu(p).oper[0]^.reg = taicpu(p).oper[1]^.reg) then
-                 { temporarily change this to 'mov reg,0' to make it easier }
-                 { for the CSE. Will be changed back in pass 2              }
-                  begin
-                    taicpu(p).opcode := A_MOV;
-                    taicpu(p).loadConst(0,0);
-                  end;
+                begin
+                  if (taicpu(p).oper[0]^.typ = top_reg) and
+                     (taicpu(p).oper[1]^.typ = top_reg) and
+                     (taicpu(p).oper[0]^.reg = taicpu(p).oper[1]^.reg) then
+                   { temporarily change this to 'mov reg,0' to make it easier }
+                   { for the CSE. Will be changed back in pass 2              }
+                    begin
+                      taicpu(p).opcode := A_MOV;
+                      taicpu(p).loadConst(0,0);
+                    end;
+                end;
+              else
+                ;
             end;
             end;
           end;
           end;
+        else
+          ;
       end;
       end;
       p := tai(p.next)
       p := tai(p.next)
     end;
     end;
@@ -398,6 +404,8 @@ begin
                           case taicpu(hp1).condition of
                           case taicpu(hp1).condition of
                             C_LE: taicpu(hp3).condition := C_GE;
                             C_LE: taicpu(hp3).condition := C_GE;
                             C_BE: taicpu(hp3).condition := C_AE;
                             C_BE: taicpu(hp3).condition := C_AE;
+                            else
+                              internalerror(2019050903);
                           end;
                           end;
                           asml.remove(p);
                           asml.remove(p);
                           asml.remove(hp1);
                           asml.remove(hp1);
@@ -576,11 +584,17 @@ begin
                     if OptPass1MOVXX(p) then
                     if OptPass1MOVXX(p) then
                       continue;
                       continue;
                   A_SETcc:
                   A_SETcc:
-                   if OptPass1SETcc(p) then
-                     continue;
+                    begin
+                      if OptPass1SETcc(p) then
+                        continue;
+                    end
+                  else
+                    ;
                 end;
                 end;
             end; { if is_jmp }
             end; { if is_jmp }
           end;
           end;
+        else
+          ;
       end;
       end;
       updateUsedRegs(UsedRegs,p);
       updateUsedRegs(UsedRegs,p);
       p:=tai(p.next);
       p:=tai(p.next);
@@ -619,10 +633,16 @@ begin
                 if OptPass2Jmp(p) then
                 if OptPass2Jmp(p) then
                   continue;
                   continue;
               A_MOV:
               A_MOV:
-                if OptPass2MOV(p) then
-                  continue;
+                begin
+                  if OptPass2MOV(p) then
+                    continue;
+                end
+              else
+                ;
             end;
             end;
           end;
           end;
+        else
+          ;
       end;
       end;
       p := tai(p.next)
       p := tai(p.next)
     end;
     end;
@@ -687,6 +707,8 @@ begin
                                   setsubreg(taicpu(p).oper[1]^.reg,R_SUBL);
                                   setsubreg(taicpu(p).oper[1]^.reg,R_SUBL);
                                 end;
                                 end;
                             end;
                             end;
+                          else
+                            ;
                         end
                         end
                       else if (taicpu(p).oper[0]^.typ = top_ref) and
                       else if (taicpu(p).oper[0]^.typ = top_ref) and
                           (taicpu(p).oper[0]^.ref^.base <> taicpu(p).oper[1]^.reg) and
                           (taicpu(p).oper[0]^.ref^.base <> taicpu(p).oper[1]^.reg) and
@@ -707,10 +729,16 @@ begin
                         end;
                         end;
                  end;
                  end;
               A_TEST, A_OR:
               A_TEST, A_OR:
-                if PostPeepholeOptTestOr(p) then
-                  Continue;
+                begin
+                  if PostPeepholeOptTestOr(p) then
+                    Continue;
+                end;
+              else
+                ;
             end;
             end;
           end;
           end;
+        else
+          ;
       end;
       end;
       p := tai(p.next)
       p := tai(p.next)
     end;
     end;

+ 8 - 0
compiler/i386/cgcpu.pas

@@ -514,6 +514,8 @@ unit cgcpu;
           S_B : list.concat(Taicpu.Op_none(A_MOVSB,S_NO));
           S_B : list.concat(Taicpu.Op_none(A_MOVSB,S_NO));
           S_W : list.concat(Taicpu.Op_none(A_MOVSW,S_NO));
           S_W : list.concat(Taicpu.Op_none(A_MOVSW,S_NO));
           S_L : list.concat(Taicpu.Op_none(A_MOVSD,S_NO));
           S_L : list.concat(Taicpu.Op_none(A_MOVSD,S_NO));
+          else
+            internalerror(2019050901);
         end;
         end;
         ungetcpuregister(list,NR_EDI);
         ungetcpuregister(list,NR_EDI);
         ungetcpuregister(list,NR_ECX);
         ungetcpuregister(list,NR_ECX);
@@ -873,6 +875,8 @@ unit cgcpu;
               cg.ungetcpuregister(list,NR_ECX);
               cg.ungetcpuregister(list,NR_ECX);
               exit;
               exit;
             end;
             end;
+          else
+            ;
         end;
         end;
         get_64bit_ops(op,op1,op2);
         get_64bit_ops(op,op1,op2);
         if op in [OP_ADD,OP_SUB] then
         if op in [OP_ADD,OP_SUB] then
@@ -940,6 +944,8 @@ unit cgcpu;
                           list.concat(taicpu.op_const_reg(A_RCR,S_L,value,reg.reglo));
                           list.concat(taicpu.op_const_reg(A_RCR,S_L,value,reg.reglo));
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                         end;
                         end;
+                      else
+                        internalerror(2019050902);
                     end
                     end
                   else if value>31 then
                   else if value>31 then
                     case op of
                     case op of
@@ -1053,6 +1059,8 @@ unit cgcpu;
                           list.concat(taicpu.op_const_ref(A_RCR,S_L,value,tempref));
                           list.concat(taicpu.op_const_ref(A_RCR,S_L,value,tempref));
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                         end;
                         end;
+                      else
+                        internalerror(2019050901);
                     end
                     end
                   else if value>31 then
                   else if value>31 then
                     case op of
                     case op of

+ 2 - 0
compiler/i386/cpuelf.pas

@@ -334,6 +334,8 @@ implementation
                 data.Write(zero,4);
                 data.Write(zero,4);
                 continue;
                 continue;
               end;
               end;
+            else
+              ;
           end;
           end;
 
 
           if (objreloc.flags and rf_raw)=0 then
           if (objreloc.flags and rf_raw)=0 then

+ 10 - 0
compiler/i386/cpupara.pas

@@ -113,6 +113,8 @@ unit cpupara;
                        exit;
                        exit;
                      end;
                      end;
                   end;
                   end;
+                else
+                  ;
               end;
               end;
             end;
             end;
           system_i386_os2,
           system_i386_os2,
@@ -130,6 +132,8 @@ unit cpupara;
                        exit;
                        exit;
                      end;
                      end;
                   end;
                   end;
+                else
+                  ;
               end;
               end;
             end;
             end;
           system_i386_freebsd,
           system_i386_freebsd,
@@ -157,9 +161,13 @@ unit cpupara;
                         result:=false;
                         result:=false;
                         exit;
                         exit;
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
               end;
               end;
             end;
             end;
+          else
+            ;
         end;
         end;
         result:=inherited ret_in_param(def,pd);
         result:=inherited ret_in_param(def,pd);
       end;
       end;
@@ -234,6 +242,8 @@ unit cpupara;
             result:=not(calloption in cdecl_pocalls) and not tprocvardef(def).is_addressonly;
             result:=not(calloption in cdecl_pocalls) and not tprocvardef(def).is_addressonly;
           setdef :
           setdef :
             result:=not(calloption in cdecl_pocalls) and (not is_smallset(def));
             result:=not(calloption in cdecl_pocalls) and (not is_smallset(def));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 6 - 0
compiler/i386/n386add.pas

@@ -280,6 +280,8 @@ interface
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
               unequaln:
               unequaln:
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
+              else
+                internalerror(2019050905);
            end;
            end;
         end;
         end;
 
 
@@ -305,6 +307,8 @@ interface
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                 end;
                 end;
+              else
+                internalerror(2019050904);
            end;
            end;
         end;
         end;
 
 
@@ -332,6 +336,8 @@ interface
             case getresflags(true) of
             case getresflags(true) of
               F_AE: hlab:=location.truelabel ;
               F_AE: hlab:=location.truelabel ;
               F_B:  hlab:=location.falselabel;
               F_B:  hlab:=location.falselabel;
+              else
+                ;
             end;
             end;
           end;
           end;
 
 

+ 8 - 0
compiler/i8086/aoptcpu.pas

@@ -138,8 +138,12 @@ unit aoptcpu;
                   end;
                   end;
                 A_SUB:
                 A_SUB:
                   result:=OptPass1Sub(p);
                   result:=OptPass1Sub(p);
+                else
+                  ;
               end;
               end;
             end
             end
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -159,8 +163,12 @@ unit aoptcpu;
                 A_OR,
                 A_OR,
                 A_TEST:
                 A_TEST:
                   Result:=PostPeepholeOptTestOr(p);
                   Result:=PostPeepholeOptTestOr(p);
+                else
+                  ;
               end;
               end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 24 - 0
compiler/i8086/cgcpu.pas

@@ -2286,6 +2286,8 @@ unit cgcpu;
                   list.concat(ai);
                   list.concat(ai);
                   invf:=FPUFlags2Flags[invf];
                   invf:=FPUFlags2Flags[invf];
                 end;
                 end;
+              else
+                ;
             end;
             end;
             a_jmp_flags(list,invf,hl_skip);
             a_jmp_flags(list,invf,hl_skip);
 
 
@@ -2570,6 +2572,8 @@ unit cgcpu;
             case opsize of
             case opsize of
               S_B : list.concat(Taicpu.Op_none(A_MOVSB,S_NO));
               S_B : list.concat(Taicpu.Op_none(A_MOVSB,S_NO));
               S_W : list.concat(Taicpu.Op_none(A_MOVSW,S_NO));
               S_W : list.concat(Taicpu.Op_none(A_MOVSW,S_NO));
+              else
+                internalerror(2019051019);
             end;
             end;
           end;
           end;
         ungetcpuregister(list,NR_DI);
         ungetcpuregister(list,NR_DI);
@@ -2936,6 +2940,8 @@ unit cgcpu;
                     list.concat(taicpu.op_const_reg(A_RCR,S_W,1,regdst.reglo));
                     list.concat(taicpu.op_const_reg(A_RCR,S_W,1,regdst.reglo));
                     cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                     cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                   end;
                   end;
+                else
+                  internalerror(2019051018);
               end;
               end;
               ai:=Taicpu.Op_Sym(A_LOOP,S_W,l2);
               ai:=Taicpu.Op_Sym(A_LOOP,S_W,l2);
               ai.is_jmp := True;
               ai.is_jmp := True;
@@ -2945,6 +2951,8 @@ unit cgcpu;
               cg.ungetcpuregister(list,NR_CX);
               cg.ungetcpuregister(list,NR_CX);
               exit;
               exit;
             end;
             end;
+          else
+            ;
         end;
         end;
         get_64bit_ops(op,op1,op2);
         get_64bit_ops(op,op1,op2);
         if op in [OP_ADD,OP_SUB] then
         if op in [OP_ADD,OP_SUB] then
@@ -3030,6 +3038,8 @@ unit cgcpu;
                         list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                         list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                         cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                         cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                       end;
                       end;
+                    else
+                      internalerror(2019051017);
                   end;
                   end;
                 2..15:
                 2..15:
                   begin
                   begin
@@ -3056,6 +3066,8 @@ unit cgcpu;
                           list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                           list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                         end;
                         end;
+                      else
+                        internalerror(2019051010);
                     end;
                     end;
                     ai:=Taicpu.Op_Sym(A_LOOP,S_W,loop_start);
                     ai:=Taicpu.Op_Sym(A_LOOP,S_W,loop_start);
                     ai.is_jmp := True;
                     ai.is_jmp := True;
@@ -3086,6 +3098,8 @@ unit cgcpu;
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reghi),reg.reghi);
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reghi),reg.reghi);
                           cg.a_op_const_reg(list,OP_SAR,OS_16,15,cg.GetNextReg(reg.reghi));
                           cg.a_op_const_reg(list,OP_SAR,OS_16,15,cg.GetNextReg(reg.reghi));
                         end;
                         end;
+                      else
+                        internalerror(2019051011);
                     end;
                     end;
                     if value=17 then
                     if value=17 then
                       case op of
                       case op of
@@ -3105,6 +3119,8 @@ unit cgcpu;
                             list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                             list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                             cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                             cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                           end;
                           end;
+                        else
+                          internalerror(2019051012);
                       end;
                       end;
                   end;
                   end;
                 18..31:
                 18..31:
@@ -3131,6 +3147,8 @@ unit cgcpu;
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reghi),reg.reghi);
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reghi),reg.reghi);
                           cg.a_op_const_reg(list,OP_SAR,OS_16,15,cg.GetNextReg(reg.reghi));
                           cg.a_op_const_reg(list,OP_SAR,OS_16,15,cg.GetNextReg(reg.reghi));
                         end;
                         end;
+                      else
+                        internalerror(2019051013);
                     end;
                     end;
                     cg.getcpuregister(list,NR_CX);
                     cg.getcpuregister(list,NR_CX);
                     cg.a_load_const_reg(list,OS_16,value-16,NR_CX);
                     cg.a_load_const_reg(list,OS_16,value-16,NR_CX);
@@ -3153,6 +3171,8 @@ unit cgcpu;
                           list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                           list.concat(taicpu.op_const_reg(A_RCR,S_W,1,reg.reglo));
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                           cg.a_reg_dealloc(list,NR_DEFAULTFLAGS);
                         end;
                         end;
+                      else
+                        internalerror(2019051014);
                     end;
                     end;
                     ai:=Taicpu.Op_Sym(A_LOOP,S_W,loop_start);
                     ai:=Taicpu.Op_Sym(A_LOOP,S_W,loop_start);
                     ai.is_jmp := True;
                     ai.is_jmp := True;
@@ -3179,6 +3199,8 @@ unit cgcpu;
                         cg.a_op_const_reg_reg(list,OP_SAR,OS_16,15-(value-32),cg.GetNextReg(reg.reglo),reg.reghi);
                         cg.a_op_const_reg_reg(list,OP_SAR,OS_16,15-(value-32),cg.GetNextReg(reg.reglo),reg.reghi);
                         cg.a_load_reg_reg(list,OS_16,OS_16,reg.reghi,cg.GetNextReg(reg.reghi));
                         cg.a_load_reg_reg(list,OS_16,OS_16,reg.reghi,cg.GetNextReg(reg.reghi));
                       end;
                       end;
+                    else
+                      internalerror(2019051015);
                   end;
                   end;
                 48..63:
                 48..63:
                   case op of
                   case op of
@@ -3213,6 +3235,8 @@ unit cgcpu;
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reglo),reg.reghi);
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reglo),reg.reghi);
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reglo),cg.GetNextReg(reg.reghi));
                           cg.a_load_reg_reg(list,OS_16,OS_16,cg.GetNextReg(reg.reglo),cg.GetNextReg(reg.reghi));
                         end;
                         end;
+                    else
+                      internalerror(2019051016);
                   end;
                   end;
               end;
               end;
             end;
             end;

+ 2 - 0
compiler/i8086/cpupara.pas

@@ -192,6 +192,8 @@ unit cpupara;
             result:=not(calloption in cdecl_pocalls) and not tprocvardef(def).is_addressonly;
             result:=not(calloption in cdecl_pocalls) and not tprocvardef(def).is_addressonly;
           setdef :
           setdef :
             result:=not(calloption in cdecl_pocalls) and (not is_smallset(def));
             result:=not(calloption in cdecl_pocalls) and (not is_smallset(def));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 10 - 0
compiler/i8086/n8086add.pas

@@ -581,6 +581,8 @@ interface
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
               unequaln:
               unequaln:
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
+              else
+                internalerror(2019051024);
            end;
            end;
         end;
         end;
 
 
@@ -625,6 +627,8 @@ interface
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
               unequaln:
               unequaln:
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
+              else
+                internalerror(2019051023);
            end;
            end;
         end;
         end;
 
 
@@ -650,6 +654,8 @@ interface
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                 end;
                 end;
+              else
+                internalerror(2019051022);
            end;
            end;
         end;
         end;
 
 
@@ -802,6 +808,8 @@ interface
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.falselabel);
               unequaln:
               unequaln:
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                 cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
+              else
+                internalerror(2019051021);
            end;
            end;
         end;
         end;
 
 
@@ -827,6 +835,8 @@ interface
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,location.truelabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                    cg.a_jmp_always(current_asmdata.CurrAsmList,location.falselabel);
                 end;
                 end;
+              else
+                internalerror(2019051020);
            end;
            end;
         end;
         end;
 
 

+ 0 - 8
compiler/i8086/symcpu.pas

@@ -541,8 +541,6 @@ implementation
           x86pt_near_fs,
           x86pt_near_fs,
           x86pt_near_gs:
           x86pt_near_gs:
             result:=s16inttype;
             result:=s16inttype;
-          else
-            internalerror(2016100403);
         end;
         end;
       end;
       end;
 
 
@@ -561,8 +559,6 @@ implementation
           x86pt_near_fs,
           x86pt_near_fs,
           x86pt_near_gs:
           x86pt_near_gs:
             result:=u16inttype;
             result:=u16inttype;
-          else
-            internalerror(2016100403);
         end;
         end;
       end;
       end;
 
 
@@ -582,8 +578,6 @@ implementation
           x86pt_near_fs,
           x86pt_near_fs,
           x86pt_near_gs:
           x86pt_near_gs:
             result:=s16inttype;
             result:=s16inttype;
-          else
-            internalerror(2016100402);
         end;
         end;
       end;
       end;
 
 
@@ -602,8 +596,6 @@ implementation
           x86pt_near_fs,
           x86pt_near_fs,
           x86pt_near_gs:
           x86pt_near_gs:
             result:=s16inttype;
             result:=s16inttype;
-          else
-            internalerror(2016100401);
         end;
         end;
       end;
       end;
 
 

+ 8 - 0
compiler/jvm/agjasmin.pas

@@ -624,6 +624,8 @@ implementation
                       internalerror(2011010906);
                       internalerror(2011010906);
                   end;
                   end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
             { superclass }
             { superclass }
             if assigned(superclass) then
             if assigned(superclass) then
@@ -1014,6 +1016,8 @@ implementation
                    if not(df_generic in tprocdef(tprocsym(sym).procdeflist[j]).defoptions) then
                    if not(df_generic in tprocdef(tprocsym(sym).procdeflist[j]).defoptions) then
                      WriteSymtableVarSyms(tprocdef(tprocsym(sym).procdeflist[j]).localst);
                      WriteSymtableVarSyms(tprocdef(tprocsym(sym).procdeflist[j]).localst);
                end;
                end;
+             else
+               ;
            end;
            end;
          end;
          end;
       end;
       end;
@@ -1044,6 +1048,8 @@ implementation
                         WriteSymtableProcdefs(tprocdef(def).localst);
                         WriteSymtableProcdefs(tprocdef(def).localst);
                     end;
                     end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;
@@ -1069,6 +1075,8 @@ implementation
                   nestedstructs.add(def);
                   nestedstructs.add(def);
               recorddef:
               recorddef:
                 nestedstructs.add(def);
                 nestedstructs.add(def);
+              else
+                ;
             end;
             end;
           end;
           end;
         for i:=0 to nestedstructs.count-1 do
         for i:=0 to nestedstructs.count-1 do

+ 2 - 0
compiler/jvm/aoptcpu.pas

@@ -135,6 +135,8 @@ Implementation
                RemoveCommutativeSwap(p) then
                RemoveCommutativeSwap(p) then
               exit(true)
               exit(true)
           end;
           end;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 

+ 2 - 0
compiler/jvm/cpupara.pas

@@ -291,6 +291,8 @@ implementation
                   paraloc^.loc:=LOC_REFERENCE;
                   paraloc^.loc:=LOC_REFERENCE;
                   paraloc^.reference.index:=NR_STACK_POINTER_REG;
                   paraloc^.reference.index:=NR_STACK_POINTER_REG;
                 end;
                 end;
+              else
+                ;
             end;
             end;
             { 2 slots for 64 bit integers and floats, 1 slot for the rest }
             { 2 slots for 64 bit integers and floats, 1 slot for the rest }
             if not(is_64bit(paradef) or
             if not(is_64bit(paradef) or

+ 4 - 0
compiler/jvm/dbgjasm.pas

@@ -193,8 +193,12 @@ implementation
                     inc(nolineinfolevel);
                     inc(nolineinfolevel);
                   mark_NoLineInfoEnd:
                   mark_NoLineInfoEnd:
                     dec(nolineinfolevel);
                     dec(nolineinfolevel);
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
+            else
+              ;
           end;
           end;
 
 
           { Java does not support multiple source files }
           { Java does not support multiple source files }

+ 16 - 0
compiler/jvm/hlcgcpu.pas

@@ -346,6 +346,8 @@ implementation
               a:=shortint(a);
               a:=shortint(a);
             u16bit:
             u16bit:
               a:=smallint(a);
               a:=smallint(a);
+            else
+              ;
           end;
           end;
         end;
         end;
       a_load_const_stack(list,size,a,typ);
       a_load_const_stack(list,size,a,typ);
@@ -641,6 +643,8 @@ implementation
                      (fromloc.reference.indexbase<>NR_STACK_POINTER_REG) then
                      (fromloc.reference.indexbase<>NR_STACK_POINTER_REG) then
                     g_allocload_reg_reg(list,voidpointertype,fromloc.reference.indexbase,toloc.reference.indexbase,R_ADDRESSREGISTER);
                     g_allocload_reg_reg(list,voidpointertype,fromloc.reference.indexbase,toloc.reference.indexbase,R_ADDRESSREGISTER);
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
         else
         else
@@ -724,6 +728,8 @@ implementation
                     end;
                     end;
                   procvardef:
                   procvardef:
                     g_call_system_proc(list,'fpc_initialize_array_procvar',[],nil);
                     g_call_system_proc(list,'fpc_initialize_array_procvar',[],nil);
+                  else
+                    internalerror(2019051025);
                 end;
                 end;
                 tg.ungettemp(list,recref);
                 tg.ungettemp(list,recref);
               end;
               end;
@@ -854,6 +860,8 @@ implementation
             a_op_const_stack(list,OP_XOR,size,cardinal($80000000));
             a_op_const_stack(list,OP_XOR,size,cardinal($80000000));
           OS_64,OS_S64:
           OS_64,OS_S64:
             a_op_const_stack(list,OP_XOR,size,tcgint($8000000000000000));
             a_op_const_stack(list,OP_XOR,size,tcgint($8000000000000000));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -869,7 +877,11 @@ implementation
           OS_32,OS_S32:
           OS_32,OS_S32:
             result:=a xor cardinal($80000000);
             result:=a xor cardinal($80000000);
           OS_64,OS_S64:
           OS_64,OS_S64:
+{$push}{$r-}
             result:=a xor tcgint($8000000000000000);
             result:=a xor tcgint($8000000000000000);
+{$pop}
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -1518,6 +1530,8 @@ implementation
                 handled:=true;
                 handled:=true;
               end;
               end;
           end;
           end;
+        else
+          ;
       end;
       end;
       if not handled then
       if not handled then
         inherited;
         inherited;
@@ -2235,6 +2249,8 @@ implementation
               a_op_const_stack(list,OP_AND,s32inttype,65535);
               a_op_const_stack(list,OP_AND,s32inttype,65535);
           OS_S16:
           OS_S16:
             list.concat(taicpu.op_none(a_i2s));
             list.concat(taicpu.op_none(a_i2s));
+          else
+            ;
         end;
         end;
     end;
     end;
 
 

+ 8 - 4
compiler/jvm/jvmdef.pas

@@ -302,8 +302,6 @@ implementation
                 ft_typed,
                 ft_typed,
                 ft_untyped:
                 ft_untyped:
                   result:=jvmaddencodedtype(search_system_type('FILEREC').typedef,false,encodedstr,forcesignature,founderror);
                   result:=jvmaddencodedtype(search_system_type('FILEREC').typedef,false,encodedstr,forcesignature,founderror);
-                else
-                  internalerror(2015091406);
               end;
               end;
             end;
             end;
           recorddef :
           recorddef :
@@ -768,8 +766,12 @@ implementation
             if torddef(def).high>127 then
             if torddef(def).high>127 then
               result:=s8inttype;
               result:=s8inttype;
           u16bit:
           u16bit:
-            if torddef(def).high>32767 then
-              result:=s16inttype;
+            begin
+              if torddef(def).high>32767 then
+                result:=s16inttype;
+            end
+          else
+            ;
         end;
         end;
     end;
     end;
 
 
@@ -900,6 +902,8 @@ implementation
                         usedef:=s16inttype;
                         usedef:=s16inttype;
                       u16bit:
                       u16bit:
                         usedef:=s32inttype;
                         usedef:=s32inttype;
+                      else
+                        ;
                     end;
                     end;
                 end;
                 end;
               result:=jvmencodetype(usedef,false);
               result:=jvmencodetype(usedef,false);

+ 0 - 2
compiler/jvm/njvmcnv.pas

@@ -1147,8 +1147,6 @@ implementation
               ft_typed,
               ft_typed,
               ft_untyped:
               ft_untyped:
                 result:=def2=search_system_type('FILEREC').typedef;
                 result:=def2=search_system_type('FILEREC').typedef;
-              else
-                internalerror(2015091401);
             end
             end
           else
           else
             result:=false;
             result:=false;

+ 0 - 2
compiler/jvm/njvmcon.pas

@@ -400,8 +400,6 @@ implementation
               inserttypeconv_explicit(result,cpointerdef.getreusable(resultdef));
               inserttypeconv_explicit(result,cpointerdef.getreusable(resultdef));
               result:=cderefnode.create(result);
               result:=cderefnode.create(result);
             end;
             end;
-          else
-            internalerror(2011060301);
         end;
         end;
       end;
       end;
 
 

+ 2 - 0
compiler/jvm/njvminl.pas

@@ -311,6 +311,8 @@ implementation
                if left.resultdef.typ in [objectdef,classrefdef] then
                if left.resultdef.typ in [objectdef,classrefdef] then
                  Message(parser_e_illegal_expression);
                  Message(parser_e_illegal_expression);
              end;
              end;
+           else
+             ;
          end;
          end;
         if not handled then
         if not handled then
           result:=inherited pass_typecheck;
           result:=inherited pass_typecheck;

+ 8 - 0
compiler/jvm/rgcpu.pas

@@ -164,6 +164,8 @@ implementation
                   if (getsupreg(taicpu(p).oper[0]^.ref^.indexbase)=sr) then
                   if (getsupreg(taicpu(p).oper[0]^.ref^.indexbase)=sr) then
                     exit(true);
                     exit(true);
                 end;
                 end;
+              else
+                ;
             end;
             end;
         end;
         end;
 
 
@@ -313,6 +315,8 @@ implementation
                         continue;
                         continue;
                       end;
                       end;
                   end;
                   end;
+                else
+                  ;
               end;
               end;
               p:=tai(p.next);
               p:=tai(p.next);
             end;
             end;
@@ -385,6 +389,8 @@ implementation
                           { don't invalidate the temp reference, may still be used one instruction
                           { don't invalidate the temp reference, may still be used one instruction
                             later }
                             later }
                         end;
                         end;
+                      else
+                        ;
                     end;
                     end;
                     { insert the tempallocation/free at the right place }
                     { insert the tempallocation/free at the right place }
                     list.insertlistbefore(p,templist);
                     list.insertlistbefore(p,templist);
@@ -398,6 +404,8 @@ implementation
                   end;
                   end;
               ait_instruction:
               ait_instruction:
                 do_spill_replace_all(list,taicpu(p),spill_temps);
                 do_spill_replace_all(list,taicpu(p),spill_temps);
+              else
+                ;
             end;
             end;
             p:=Tai(p.next);
             p:=Tai(p.next);
           end;
           end;

+ 2 - 2
compiler/jvm/tgcpu.pas

@@ -219,10 +219,10 @@ unit tgcpu;
                 ft_typed,
                 ft_typed,
                 ft_untyped:
                 ft_untyped:
                   result:=getifspecialtemp(list,search_system_type('FILEREC').typedef,forcesize,temptype,ref);
                   result:=getifspecialtemp(list,search_system_type('FILEREC').typedef,forcesize,temptype,ref);
-                else
-                  internalerror(2015091405);
               end;
               end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 4 - 0
compiler/llvm/aasmllvm.pas

@@ -289,6 +289,8 @@ uses
             _bind:=AB_GLOBAL;
             _bind:=AB_GLOBAL;
           AB_EXTERNAL_INDIRECT:
           AB_EXTERNAL_INDIRECT:
             _bind:=AB_INDIRECT;
             _bind:=AB_INDIRECT;
+          else
+            ;
         end;
         end;
         bind:=_bind;
         bind:=_bind;
       end;
       end;
@@ -353,6 +355,8 @@ uses
             oper[opidx]^.ai.free;
             oper[opidx]^.ai.free;
           top_asmlist:
           top_asmlist:
             oper[opidx]^.asmlist.free;
             oper[opidx]^.asmlist.free;
+          else
+            ;
         end;
         end;
         inherited;
         inherited;
       end;
       end;

+ 6 - 0
compiler/llvm/agllvm.pas

@@ -791,6 +791,8 @@ implementation
             if vol_write in hp.oper[3]^.ref^.volatility then
             if vol_write in hp.oper[3]^.ref^.volatility then
               result:=result+' volatile';
               result:=result+' volatile';
           end;
           end;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -1355,6 +1357,8 @@ implementation
                         writer.AsmWrite(objc_section_name(taillvmdecl(hp).sec));
                         writer.AsmWrite(objc_section_name(taillvmdecl(hp).sec));
                         writer.AsmWrite('"');
                         writer.AsmWrite('"');
                       end;
                       end;
+                    else
+                      ;
                   end;
                   end;
                   { sections whose name starts with 'llvm.' are for LLVM
                   { sections whose name starts with 'llvm.' are for LLVM
                     internal use and don't have an alignment }
                     internal use and don't have an alignment }
@@ -1458,6 +1462,8 @@ implementation
                   asmblock:=true;
                   asmblock:=true;
                 mark_AsmBlockEnd:
                 mark_AsmBlockEnd:
                   asmblock:=false;
                   asmblock:=false;
+                else
+                  ;
               end;
               end;
 
 
           ait_directive :
           ait_directive :

+ 8 - 0
compiler/llvm/hlcgllvm.pas

@@ -739,6 +739,8 @@ implementation
             reg1:=tmpreg;
             reg1:=tmpreg;
             fromsize:=tmpintdef;
             fromsize:=tmpintdef;
           end;
           end;
+        else
+          ;
       end;
       end;
       { reg2 = bitcast fromsize reg1 to tosize }
       { reg2 = bitcast fromsize reg1 to tosize }
       list.concat(taillvm.op_reg_size_reg_size(op,reg2,fromsize,reg1,tosize));
       list.concat(taillvm.op_reg_size_reg_size(op,reg2,fromsize,reg1,tosize));
@@ -823,6 +825,8 @@ implementation
                 a_loadmm_ref_ref(list,fromsize,fromsize,simpleref,tmpref2,firstshuffle);
                 a_loadmm_ref_ref(list,fromsize,fromsize,simpleref,tmpref2,firstshuffle);
                 a_loadmm_ref_reg(list,tosize,tosize,tmpref,register,shuffle);
                 a_loadmm_ref_reg(list,tosize,tosize,tmpref,register,shuffle);
               end;
               end;
+            else
+              internalerror(2019051040);
           end;
           end;
           tg.ungettemp(list,tmpref);
           tg.ungettemp(list,tmpref);
           result:=true;
           result:=true;
@@ -1997,6 +2001,8 @@ implementation
                   a_loadfpu_reg_ref(list,llvmretdef,llvmretdef,resval,rettemp);
                   a_loadfpu_reg_ref(list,llvmretdef,llvmretdef,resval,rettemp);
                 R_MMREGISTER:
                 R_MMREGISTER:
                   a_loadmm_reg_ref(list,llvmretdef,llvmretdef,resval,rettemp,mms_movescalar);
                   a_loadmm_reg_ref(list,llvmretdef,llvmretdef,resval,rettemp,mms_movescalar);
+                else
+                  ;
               end;
               end;
               { the return parameter now contains a value whose type matches the one
               { the return parameter now contains a value whose type matches the one
                 that the high level code generator expects instead of the llvm shim
                 that the high level code generator expects instead of the llvm shim
@@ -2082,6 +2088,8 @@ implementation
                   list.concat(Tai_comment.Create(strpnew('Var '+vs.realname+' located at %tmp.'+
                   list.concat(Tai_comment.Create(strpnew('Var '+vs.realname+' located at %tmp.'+
                      tostr(getsupreg(vs.initialloc.reference.base)))));
                      tostr(getsupreg(vs.initialloc.reference.base)))));
               end;
               end;
+            else
+              ;
           end;
           end;
         end;
         end;
       vs.localloc:=vs.initialloc;
       vs.localloc:=vs.initialloc;

+ 0 - 4
compiler/llvm/llvmdef.pas

@@ -393,8 +393,6 @@ implementation
 {$else}
 {$else}
                   encodedstr:=encodedstr+'fp128';
                   encodedstr:=encodedstr+'fp128';
 {$endif}
 {$endif}
-                else
-                  internalerror(2013100202);
               end;
               end;
             end;
             end;
           filedef :
           filedef :
@@ -420,8 +418,6 @@ implementation
                   end;
                   end;
                 ft_untyped :
                 ft_untyped :
                   llvmaddencodedtype_intern(search_system_type('FILEREC').typedef,[lef_inaggregate]+[lef_typedecl]*flags,encodedstr);
                   llvmaddencodedtype_intern(search_system_type('FILEREC').typedef,[lef_inaggregate]+[lef_typedecl]*flags,encodedstr);
-                else
-                  internalerror(2013100203);
               end;
               end;
             end;
             end;
           recorddef :
           recorddef :

+ 12 - 0
compiler/llvm/llvmtype.pas

@@ -222,6 +222,8 @@ implementation
         case tsym(p).typ of
         case tsym(p).typ of
           fieldvarsym:
           fieldvarsym:
             appendsym_fieldvar(TAsmList(arg),tfieldvarsym(p));
             appendsym_fieldvar(TAsmList(arg),tfieldvarsym(p));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -259,6 +261,8 @@ implementation
                   if callpara^.typ=top_tai then
                   if callpara^.typ=top_tai then
                     collect_tai_info(deftypelist,callpara^.ai);
                     collect_tai_info(deftypelist,callpara^.ai);
                 end;
                 end;
+            else
+              ;
           end;
           end;
       end;
       end;
 
 
@@ -292,6 +296,8 @@ implementation
                     collect_tai_info(deftypelist,value);
                     collect_tai_info(deftypelist,value);
               end;
               end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -383,6 +389,8 @@ implementation
                       end;
                       end;
                   top_tai:
                   top_tai:
                     insert_tai_typeconversions(toplevellist,p.oper[i]^.ai);
                     insert_tai_typeconversions(toplevellist,p.oper[i]^.ai);
+                  else
+                    ;
                 end;
                 end;
             end;
             end;
         end;
         end;
@@ -453,6 +461,8 @@ implementation
                   tprocdef(taillvmdecl(p).def).personality);
                   tprocdef(taillvmdecl(p).def).personality);
               insert_asmlist_typeconversions(toplevellist,taillvmdecl(p).initdata);
               insert_asmlist_typeconversions(toplevellist,taillvmdecl(p).initdata);
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -538,6 +548,8 @@ implementation
                 end;
                 end;
               ait_llvmdecl:
               ait_llvmdecl:
                 update_asmlist_alias_types(taillvmdecl(hp).initdata);
                 update_asmlist_alias_types(taillvmdecl(hp).initdata);
+              else
+                ;
             end;
             end;
             hp:=tai(hp.next);
             hp:=tai(hp.next);
           end;
           end;

+ 2 - 0
compiler/llvm/nllvmbas.pas

@@ -176,6 +176,8 @@ interface
                   internalerror(2016101506);
                   internalerror(2016101506);
               end;
               end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 4 - 0
compiler/llvm/nllvmld.pas

@@ -66,6 +66,8 @@ function tllvmloadnode.pass_1: tnode;
           if assigned(left) then
           if assigned(left) then
             expectloc:=LOC_REFERENCE;
             expectloc:=LOC_REFERENCE;
         end;
         end;
+      else
+        ;
     end;
     end;
   end;
   end;
 
 
@@ -133,6 +135,8 @@ procedure tllvmloadnode.pass_generate_code;
           );
           );
           reference_reset_base(location.reference,selfreg,0,ctempposinvalid,location.reference.alignment,location.reference.volatility);
           reference_reset_base(location.reference,selfreg,0,ctempposinvalid,location.reference.alignment,location.reference.volatility);
         end;
         end;
+      else
+        ;
     end;
     end;
   end;
   end;
 
 

+ 2 - 2
compiler/llvm/nllvmtcon.pas

@@ -660,8 +660,6 @@ implementation
             st_widestring,
             st_widestring,
             st_unicodestring:
             st_unicodestring:
               eledef:=cwidechartype;
               eledef:=cwidechartype;
-            else
-              internalerror(2014062202);
           end;
           end;
         else
         else
           internalerror(2014062203);
           internalerror(2014062203);
@@ -766,6 +764,8 @@ implementation
             todef:=tmpintdef;
             todef:=tmpintdef;
             op:=firstop
             op:=firstop
           end;
           end;
+        else
+          ;
       end;
       end;
       ai:=taillvm.op_reg_tai_size(op,NR_NO,nil,todef);
       ai:=taillvm.op_reg_tai_size(op,NR_NO,nil,todef);
       typedai:=wrap_with_type(ai,todef);
       typedai:=wrap_with_type(ai,todef);

+ 4 - 0
compiler/llvm/rgllvm.pas

@@ -201,6 +201,8 @@ implementation
                            writtenregs^[sr]:=succ(writtenregs^[sr]);
                            writtenregs^[sr]:=succ(writtenregs^[sr]);
                        end;
                        end;
                  end;
                  end;
+               else
+                 ;
              end;
              end;
              hp:=tai(hp.next);
              hp:=tai(hp.next);
            end;
            end;
@@ -249,6 +251,8 @@ implementation
                         end;
                         end;
                     end;
                     end;
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
         if not assigned(def) then
         if not assigned(def) then

+ 7 - 1
compiler/mips/aasmcpu.pas

@@ -1,4 +1,4 @@
-{
+        {
     Copyright (c) 1999-2009 by Mazen Neifer and David Zhang
     Copyright (c) 1999-2009 by Mazen Neifer and David Zhang
 
 
     Contains the assembler object for the MIPSEL
     Contains the assembler object for the MIPSEL
@@ -558,6 +558,8 @@ procedure fixup_jmps(list: TAsmList);
                 internalerror(2008052101);
                 internalerror(2008052101);
               inc(instrpos);
               inc(instrpos);
             end;
             end;
+          else
+            ;
         end;
         end;
         p := tai(p.next);
         p := tai(p.next);
       end;
       end;
@@ -657,10 +659,14 @@ procedure fixup_jmps(list: TAsmList);
                               end;
                               end;
                           end;
                           end;
                       end;
                       end;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
             ait_const:
             ait_const:
               inc(instrpos);
               inc(instrpos);
+            else
+              ;
           end;
           end;
           p := tai(p.next);
           p := tai(p.next);
         end;
         end;

+ 12 - 0
compiler/mips/aoptcpu.pas

@@ -167,6 +167,8 @@ unit aoptcpu;
               result:=
               result:=
                 (p.oper[I]^.ref^.base=reg) or
                 (p.oper[I]^.ref^.base=reg) or
                 (p.oper[I]^.ref^.index=reg);
                 (p.oper[I]^.ref^.index=reg);
+            else
+              ;
           end;
           end;
           if result then exit; {Bailout if we found something}
           if result then exit; {Bailout if we found something}
           Inc(I);
           Inc(I);
@@ -190,6 +192,8 @@ unit aoptcpu;
         A_BA,A_BC,
         A_BA,A_BC,
         A_SB,A_SH,A_SW,A_SWL,A_SWR,A_SWC1,A_SDC1:
         A_SB,A_SH,A_SW,A_SWL,A_SWR,A_SWC1,A_SDC1:
           exit;
           exit;
+        else
+        ;
       end;
       end;
 
 
       result:=(p.ops>0) and (p.oper[0]^.typ=top_reg) and
       result:=(p.ops>0) and (p.oper[0]^.typ=top_reg) and
@@ -716,8 +720,12 @@ unit aoptcpu;
               A_ABS_d, A_NEG_d, A_SQRT_d,
               A_ABS_d, A_NEG_d, A_SQRT_d,
               A_CVT_d_w, A_CVT_d_l, A_CVT_d_s:
               A_CVT_d_w, A_CVT_d_l, A_CVT_d_s:
                 result:=TryRemoveMov(p,A_MOV_d);
                 result:=TryRemoveMov(p,A_MOV_d);
+              else
+                ;
             end;
             end;
           end;
           end;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -867,8 +875,12 @@ unit aoptcpu;
                             end;
                             end;
                         end;
                         end;
                     end;
                     end;
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
+            else
+              ;
           end;
           end;
           UpdateUsedRegs(p);
           UpdateUsedRegs(p);
           p:=tai(p.next);
           p:=tai(p.next);

+ 4 - 0
compiler/mips/cgcpu.pas

@@ -1098,6 +1098,8 @@ procedure TCGMIPS.a_jmp_flags(list: tasmlist; const f: TResFlags; l: tasmlabel);
           end;
           end;
           exit;
           exit;
         end;
         end;
+      else
+        ;
     end;
     end;
     if f.use_const then
     if f.use_const then
       a_cmp_const_reg_label(list,OS_INT,f.cond,f.value,f.reg1,l)
       a_cmp_const_reg_label(list,OS_INT,f.cond,f.value,f.reg1,l)
@@ -1136,6 +1138,8 @@ procedure TCGMIPS.g_flags2reg(list: tasmlist; size: tcgsize; const f: tresflags;
             end;
             end;
           exit;
           exit;
         end;
         end;
+      else
+        ;
     end;
     end;
     if (f.cond in [OC_EQ,OC_NE]) then
     if (f.cond in [OC_EQ,OC_NE]) then
       begin
       begin

+ 8 - 0
compiler/mips/cpubase.pas

@@ -357,6 +357,8 @@ unit cpubase;
             setsubreg(r, R_SUBFS);
             setsubreg(r, R_SUBFS);
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
             setsubreg(r, R_SUBD);
             setsubreg(r, R_SUBD);
+          else
+            ;
         end;
         end;
         result:=rgBase.findreg_by_number_table(r,regnumber_index);
         result:=rgBase.findreg_by_number_table(r,regnumber_index);
       end;
       end;
@@ -385,6 +387,8 @@ unit cpubase;
             setsubreg(hr, R_SUBFS);
             setsubreg(hr, R_SUBFS);
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
             setsubreg(hr, R_SUBD);
             setsubreg(hr, R_SUBD);
+          else
+            ;
         end;
         end;
         p:=findreg_by_number_table(hr,regnumber_index);
         p:=findreg_by_number_table(hr,regnumber_index);
         if p<>0 then
         if p<>0 then
@@ -402,6 +406,8 @@ unit cpubase;
             setsubreg(r, R_SUBFS);
             setsubreg(r, R_SUBFS);
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
             setsubreg(r, R_SUBD);
             setsubreg(r, R_SUBD);
+          else
+            ;
         end;
         end;
         result:=regdwarf_table[findreg_by_number(r)];
         result:=regdwarf_table[findreg_by_number(r)];
         if result=-1 then
         if result=-1 then
@@ -415,6 +421,8 @@ unit cpubase;
             setsubreg(r, R_SUBFS);
             setsubreg(r, R_SUBFS);
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
           R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
             setsubreg(r, R_SUBD);
             setsubreg(r, R_SUBD);
+          else
+            ;
         end;
         end;
         result:=regdwarf_table[findreg_by_number(r)];
         result:=regdwarf_table[findreg_by_number(r)];
       end;
       end;

+ 2 - 0
compiler/mips/cpuelf.pas

@@ -864,6 +864,8 @@ implementation
                 data.Write(zero,4);
                 data.Write(zero,4);
                 continue;
                 continue;
               end;
               end;
+            else
+              ;
           end;
           end;
 
 
           if (objreloc.flags and rf_raw)=0 then
           if (objreloc.flags and rf_raw)=0 then

+ 2 - 0
compiler/mips/cpupara.pas

@@ -167,6 +167,8 @@ implementation
             result:=false; {not tprocvardef(def).is_addressonly;}
             result:=false; {not tprocvardef(def).is_addressonly;}
           setdef :
           setdef :
             result:=not(is_smallset(def));
             result:=not(is_smallset(def));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 2 - 0
compiler/mips/hlcgcpu.pas

@@ -135,6 +135,8 @@ implementation
                 fromreg:=cg.getintregister(list,OS_INT);
                 fromreg:=cg.getintregister(list,OS_INT);
                 cg.a_load_const_reg(list,OS_INT,-1,fromreg);
                 cg.a_load_const_reg(list,OS_INT,-1,fromreg);
               end;
               end;
+            else
+              ;
           end;
           end;
           list.concat(taicpu.op_reg_reg_const_const(A_INS,sreg.subsetreg,fromreg,
           list.concat(taicpu.op_reg_reg_const_const(A_INS,sreg.subsetreg,fromreg,
             sreg.startbit,sreg.bitlen));
             sreg.startbit,sreg.bitlen));

+ 2 - 0
compiler/mips/itcpugas.pas

@@ -84,6 +84,8 @@ begin
       setsubreg(hr, R_SUBFS);
       setsubreg(hr, R_SUBFS);
     R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
     R_SUBL, R_SUBW, R_SUBD, R_SUBQ:
       setsubreg(hr, R_SUBD);
       setsubreg(hr, R_SUBD);
+    else
+      ;
   end;
   end;
   p := findreg_by_number(hr);
   p := findreg_by_number(hr);
   if p <> 0 then
   if p <> 0 then

+ 4 - 0
compiler/mips/ncpuadd.pas

@@ -186,6 +186,8 @@ begin
           cmp64_lt(left_reg, right_reg,unsigned);
           cmp64_lt(left_reg, right_reg,unsigned);
         gten:
         gten:
           cmp64_le(left_reg, right_reg,unsigned);
           cmp64_le(left_reg, right_reg,unsigned);
+        else
+          internalerror(2019051034);
       end
       end
     else
     else
       case NodeType of
       case NodeType of
@@ -197,6 +199,8 @@ begin
           cmp64_lt(right_reg, left_reg,unsigned);
           cmp64_lt(right_reg, left_reg,unsigned);
         gten:
         gten:
           cmp64_le(right_reg, left_reg,unsigned);
           cmp64_le(right_reg, left_reg,unsigned);
+        else
+          internalerror(2019051033);
       end;
       end;
   end;
   end;
 end;
 end;

+ 2 - 0
compiler/mips/ncpuld.pas

@@ -55,6 +55,8 @@ begin
     paravarsym :
     paravarsym :
       if([vo_is_dll_var,vo_is_external] * tabstractvarsym(symtableentry).varoptions <> []) then
       if([vo_is_dll_var,vo_is_external] * tabstractvarsym(symtableentry).varoptions <> []) then
         include(current_procinfo.flags,pi_needs_got);
         include(current_procinfo.flags,pi_needs_got);
+    else
+      ;
   end;
   end;
 end;
 end;
 
 

+ 4 - 1
compiler/msg/errore.msg

@@ -2365,7 +2365,7 @@ sym_e_type_must_be_rec_or_object=05098_E_Record or object type expected
 #
 #
 # Codegenerator
 # Codegenerator
 #
 #
-# 06049 is the last used one
+# 06060 is the last used one
 #
 #
 % \section{Code generator messages}
 % \section{Code generator messages}
 % This section lists all messages that can be displayed if the code
 % This section lists all messages that can be displayed if the code
@@ -2520,6 +2520,9 @@ cg_n_no_inline=06058_N_Call to subroutine "$1" marked as inline is not inlined
 % The directive inline is only a hint to the compiler. Sometimes the compiler ignores this hint, a subroutine
 % The directive inline is only a hint to the compiler. Sometimes the compiler ignores this hint, a subroutine
 % marked as inline is not inlined. In this case, this hint is given. Compiling with \var{-vd} might result in more information why
 % marked as inline is not inlined. In this case, this hint is given. Compiling with \var{-vd} might result in more information why
 % the directive inline is ignored.
 % the directive inline is ignored.
+cg_e_case_incomplete=06059_E_Case statement does not handle all possible cases
+cg_w_case_incomplete=06060_W_Case statement does not handle all possible cases
+% The case statement does not contain labels for all possible values of the operand, and no else statement is present.
 %
 %
 % \end{description}
 % \end{description}
 # EndOfTeX
 # EndOfTeX

+ 4 - 2
compiler/msgidx.inc

@@ -698,6 +698,8 @@ const
   cg_e_function_not_support_by_selected_instruction_set=06056;
   cg_e_function_not_support_by_selected_instruction_set=06056;
   cg_f_max_units_reached=06057;
   cg_f_max_units_reached=06057;
   cg_n_no_inline=06058;
   cg_n_no_inline=06058;
+  cg_e_case_incomplete=06059;
+  cg_w_case_incomplete=06060;
   asmr_d_start_reading=07000;
   asmr_d_start_reading=07000;
   asmr_d_finish_reading=07001;
   asmr_d_finish_reading=07001;
   asmr_e_none_label_contain_at=07002;
   asmr_e_none_label_contain_at=07002;
@@ -1108,9 +1110,9 @@ const
   option_info=11024;
   option_info=11024;
   option_help_pages=11025;
   option_help_pages=11025;
 
 
-  MsgTxtSize = 83258;
+  MsgTxtSize = 83374;
 
 
   MsgIdxMax : array[1..20] of longint=(
   MsgIdxMax : array[1..20] of longint=(
-    28,106,351,126,99,59,142,34,221,67,
+    28,106,351,126,99,61,142,34,221,67,
     62,20,30,1,1,1,1,1,1,1
     62,20,30,1,1,1,1,1,1,1
   );
   );

+ 444 - 440
compiler/msgtxt.inc

@@ -1,8 +1,8 @@
 const msgtxt_codepage=20127;
 const msgtxt_codepage=20127;
 {$ifdef Delphi}
 {$ifdef Delphi}
-const msgtxt : array[0..000346] of string[240]=(
+const msgtxt : array[0..000347] of string[240]=(
 {$else Delphi}
 {$else Delphi}
-const msgtxt : array[0..000346,1..240] of char=(
+const msgtxt : array[0..000347,1..240] of char=(
 {$endif Delphi}
 {$endif Delphi}
   '01000_T_Compiler: $1'#000+
   '01000_T_Compiler: $1'#000+
   '01001_D_Compiler OS: $1'#000+
   '01001_D_Compiler OS: $1'#000+
@@ -874,507 +874,513 @@ const msgtxt : array[0..000346,1..240] of char=(
   'on set: $1'#000+
   'on set: $1'#000+
   '06057_F_Maximum number of units ($1) reached for the current target'#000+
   '06057_F_Maximum number of units ($1) reached for the current target'#000+
   '06058_N_Call to subroutine "$1" marked as inline is not inlined'#000+
   '06058_N_Call to subroutine "$1" marked as inline is not inlined'#000+
+  '06059_E_Case statement does not handle all possible cases'#000+
+  '06060_W_Case statement does not handle ','all possible cases'#000+
   '07000_DL_Starting $1 styled assembler parsing'#000+
   '07000_DL_Starting $1 styled assembler parsing'#000+
   '07001_DL_Finished $1 styled assembler parsing'#000+
   '07001_DL_Finished $1 styled assembler parsing'#000+
-  '07002','_E_Non-label pattern contains @'#000+
+  '07002_E_Non-label pattern contains @'#000+
   '07004_E_Error building record offset'#000+
   '07004_E_Error building record offset'#000+
   '07005_E_OFFSET used without identifier'#000+
   '07005_E_OFFSET used without identifier'#000+
-  '07006_E_TYPE used without identifier'#000+
+  '07006_E_TYPE use','d without identifier'#000+
   '07007_E_Cannot use local variable or parameters here'#000+
   '07007_E_Cannot use local variable or parameters here'#000+
   '07008_E_Need to use OFFSET here'#000+
   '07008_E_Need to use OFFSET here'#000+
-  '07009_E_Ne','ed to use $ here'#000+
+  '07009_E_Need to use $ here'#000+
   '07010_E_Cannot use multiple relocatable symbols'#000+
   '07010_E_Cannot use multiple relocatable symbols'#000+
   '07011_E_Relocatable symbol can only be added'#000+
   '07011_E_Relocatable symbol can only be added'#000+
-  '07012_E_Invalid constant expression'#000+
+  '07012_E_Invali','d constant expression'#000+
   '07013_E_Relocatable symbol is not allowed'#000+
   '07013_E_Relocatable symbol is not allowed'#000+
   '07014_E_Invalid reference syntax'#000+
   '07014_E_Invalid reference syntax'#000+
-  '07015_E_You cannot ','reach $1 from that code'#000+
+  '07015_E_You cannot reach $1 from that code'#000+
   '07016_E_Local symbols/labels are not allowed as references'#000+
   '07016_E_Local symbols/labels are not allowed as references'#000+
-  '07017_E_Invalid base and index register usage'#000+
+  '07017_E_Invalid base and index register u','sage'#000+
   '07018_W_Possible error in object field handling'#000+
   '07018_W_Possible error in object field handling'#000+
   '07019_E_Wrong scale factor specified'#000+
   '07019_E_Wrong scale factor specified'#000+
-  '07020_E_Multiple index reg','ister usage'#000+
+  '07020_E_Multiple index register usage'#000+
   '07021_E_Invalid operand type'#000+
   '07021_E_Invalid operand type'#000+
   '07022_E_Invalid string as opcode operand: $1'#000+
   '07022_E_Invalid string as opcode operand: $1'#000+
-  '07023_W_@CODE and @DATA not supported'#000+
+  '07023_W_@CODE and @DATA not supported'#000,
   '07024_E_Null label references are not allowed'#000+
   '07024_E_Null label references are not allowed'#000+
   '07025_E_Divide by zero in asm evaluator'#000+
   '07025_E_Divide by zero in asm evaluator'#000+
   '07026_E_Illegal expression'#000+
   '07026_E_Illegal expression'#000+
-  '070','27_E_Escape sequence ignored: $1'#000+
+  '07027_E_Escape sequence ignored: $1'#000+
   '07028_E_Invalid symbol reference'#000+
   '07028_E_Invalid symbol reference'#000+
   '07029_W_Fwait can cause emulation problems with emu387'#000+
   '07029_W_Fwait can cause emulation problems with emu387'#000+
-  '07030_W_$1 without operand translated into $1P'#000+
+  '070','30_W_$1 without operand translated into $1P'#000+
   '07031_W_ENTER instruction is not supported by Linux kernel'#000+
   '07031_W_ENTER instruction is not supported by Linux kernel'#000+
-  '07032_W_Calli','ng an overload function in assembler'#000+
+  '07032_W_Calling an overload function in assembler'#000+
   '07033_E_Unsupported symbol type for operand'#000+
   '07033_E_Unsupported symbol type for operand'#000+
   '07034_E_Constant value out of bounds'#000+
   '07034_E_Constant value out of bounds'#000+
-  '07035_E_Error converting decimal $1'#000+
+  '07035_','E_Error converting decimal $1'#000+
   '07036_E_Error converting octal $1'#000+
   '07036_E_Error converting octal $1'#000+
   '07037_E_Error converting binary $1'#000+
   '07037_E_Error converting binary $1'#000+
-  '07038_E_Error con','verting hexadecimal $1'#000+
+  '07038_E_Error converting hexadecimal $1'#000+
   '07039_H_$1 translated to $2'#000+
   '07039_H_$1 translated to $2'#000+
   '07040_W_$1 is associated to an overloaded function'#000+
   '07040_W_$1 is associated to an overloaded function'#000+
-  '07041_E_Cannot use SELF outside a method'#000+
+  '07041_E_Cannot use SEL','F outside a method'#000+
   '07042_E_Cannot use OLDEBP outside a nested procedure'#000+
   '07042_E_Cannot use OLDEBP outside a nested procedure'#000+
-  '07043_W_Procedures cannot return any value i','n asm code'#000+
+  '07043_W_Procedures cannot return any value in asm code'#000+
   '07044_E_SEG not supported'#000+
   '07044_E_SEG not supported'#000+
   '07045_E_Size suffix and destination or source size do not match'#000+
   '07045_E_Size suffix and destination or source size do not match'#000+
-  '07046_W_Size suffix and destination or source size do not match'#000+
+  '07046_W_Size suffix and',' destination or source size do not match'#000+
   '07047_E_Assembler syntax error'#000+
   '07047_E_Assembler syntax error'#000+
-  '07048_E_Invalid combination of opcode and op','erands'#000+
+  '07048_E_Invalid combination of opcode and operands'#000+
   '07049_E_Assembler syntax error in operand'#000+
   '07049_E_Assembler syntax error in operand'#000+
   '07050_E_Assembler syntax error in constant'#000+
   '07050_E_Assembler syntax error in constant'#000+
-  '07051_E_Invalid String expression'#000+
+  '07051_E_Invalid String expressio','n'#000+
   '07052_W_Constant with symbol $1 for address which is not on a pointer'#000+
   '07052_W_Constant with symbol $1 for address which is not on a pointer'#000+
   '07053_E_Unrecognized opcode $1'#000+
   '07053_E_Unrecognized opcode $1'#000+
-  '07054_E_Inval','id or missing opcode'#000+
+  '07054_E_Invalid or missing opcode'#000+
   '07055_E_Invalid combination of prefix and opcode: $1'#000+
   '07055_E_Invalid combination of prefix and opcode: $1'#000+
-  '07056_E_Invalid combination of override and opcode: $1'#000+
+  '07056_E_Invalid combination of override and opcode',': $1'#000+
   '07057_E_Too many operands on line'#000+
   '07057_E_Too many operands on line'#000+
   '07058_W_NEAR ignored'#000+
   '07058_W_NEAR ignored'#000+
   '07059_W_FAR ignored'#000+
   '07059_W_FAR ignored'#000+
   '07060_E_Duplicate local symbol $1'#000+
   '07060_E_Duplicate local symbol $1'#000+
-  '07','061_E_Undefined local symbol $1'#000+
+  '07061_E_Undefined local symbol $1'#000+
   '07062_E_Unknown label identifier $1'#000+
   '07062_E_Unknown label identifier $1'#000+
   '07063_E_Invalid register name'#000+
   '07063_E_Invalid register name'#000+
-  '07064_E_Invalid floating point register name'#000+
+  '07064_E_Invalid floating p','oint register name'#000+
   '07066_W_Modulo not supported'#000+
   '07066_W_Modulo not supported'#000+
   '07067_E_Invalid floating point constant $1'#000+
   '07067_E_Invalid floating point constant $1'#000+
-  '07068_E_Invalid floating ','point expression'#000+
+  '07068_E_Invalid floating point expression'#000+
   '07069_E_Wrong symbol type'#000+
   '07069_E_Wrong symbol type'#000+
   '07070_E_Cannot index a local var or parameter with a register'#000+
   '07070_E_Cannot index a local var or parameter with a register'#000+
-  '07071_E_Invalid segment override expression'#000+
+  '07071_E_Invalid seg','ment override expression'#000+
   '07072_W_Identifier $1 supposed external'#000+
   '07072_W_Identifier $1 supposed external'#000+
   '07073_E_Strings not allowed as constants'#000+
   '07073_E_Strings not allowed as constants'#000+
-  '07074_E_No',' type of variable specified'#000+
+  '07074_E_No type of variable specified'#000+
   '07075_E_Assembler code not returned to text section'#000+
   '07075_E_Assembler code not returned to text section'#000+
   '07076_E_Not a directive or local symbol $1'#000+
   '07076_E_Not a directive or local symbol $1'#000+
-  '07077_E_Using a defined name as a local label'#000+
+  '0','7077_E_Using a defined name as a local label'#000+
   '07078_E_Dollar token is used without an identifier'#000+
   '07078_E_Dollar token is used without an identifier'#000+
-  '07079_W_32bit consta','nt created for address'#000+
+  '07079_W_32bit constant created for address'#000+
   '07080_N_.align is target specific, use .balign or .p2align'#000+
   '07080_N_.align is target specific, use .balign or .p2align'#000+
-  '07081_E_Cannot directly access fields of pointer-based parameters'#000+
+  '07081_E_Cannot directly access fields of p','ointer-based parameters'#000+
   '07082_E_Can'#039't access fields of objects/classes directly'#000+
   '07082_E_Can'#039't access fields of objects/classes directly'#000+
-  '07083_E_No size specified and unable',' to determine the size of the op'+
-  'erands'#000+
+  '07083_E_No size specified and unable to determine the size of the oper'+
+  'ands'#000+
   '07084_E_Cannot use RESULT in this function'#000+
   '07084_E_Cannot use RESULT in this function'#000+
-  '07086_W_"$1" without operand translated into "$1 %st,%st(1)"'#000+
+  '07086_W_"$1" without operand translated in','to "$1 %st,%st(1)"'#000+
   '07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"'#000+
   '07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"'#000+
-  '07088_W_"$1 %st(n)" translated into "$1 %st(n','),%st"'#000+
+  '07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"'#000+
   '07089_E_Char < not allowed here'#000+
   '07089_E_Char < not allowed here'#000+
   '07090_E_Char > not allowed here'#000+
   '07090_E_Char > not allowed here'#000+
   '07093_W_ALIGN not supported'#000+
   '07093_W_ALIGN not supported'#000+
-  '07094_E_Inc and Dec cannot be together'#000+
+  '07094_E_Inc and Dec canno','t be together'#000+
   '07095_E_Invalid register list for MOVEM or FMOVEM'#000+
   '07095_E_Invalid register list for MOVEM or FMOVEM'#000+
   '07096_E_Reglist invalid for opcode'#000+
   '07096_E_Reglist invalid for opcode'#000+
-  '07097_E_Higher cp','u mode required ($1)'#000+
+  '07097_E_Higher cpu mode required ($1)'#000+
   '07098_W_No size specified and unable to determine the size of the oper'+
   '07098_W_No size specified and unable to determine the size of the oper'+
   'ands, using DWORD as default'#000+
   'ands, using DWORD as default'#000+
-  '07099_E_Syntax error while trying to parse a shifter operand'#000+
-  '07100_E_Address of packed component is not at a byte bounda','ry'#000+
+  '0709','9_E_Syntax error while trying to parse a shifter operand'#000+
+  '07100_E_Address of packed component is not at a byte boundary'#000+
   '07101_W_No size specified and unable to determine the size of the oper'+
   '07101_W_No size specified and unable to determine the size of the oper'+
   'ands, using BYTE as default'#000+
   'ands, using BYTE as default'#000+
-  '07102_W_Use of +offset(%ebp) for parameters invalid here'#000+
+  '07102_W_Use of +offset(','%ebp) for parameters invalid here'#000+
   '07103_W_Use of +offset(%ebp) is not compatible with regcall convention'+
   '07103_W_Use of +offset(%ebp) is not compatible with regcall convention'+
   #000+
   #000+
-  '07104_W_Use',' of -offset(%ebp) is not recommended for local variable a'+
-  'ccess'#000+
-  '07105_W_Use of -offset(%esp), access may cause a crash or value may be'+
-  ' lost'#000+
+  '07104_W_Use of -offset(%ebp) is not recommended for local variable acc'+
+  'ess'#000+
+  '07105_W_Use of -offset(%esp), access may cause a crash or val','ue may '+
+  'be lost'#000+
   '07106_E_VMTOffset must be used in combination with a virtual method, a'+
   '07106_E_VMTOffset must be used in combination with a virtual method, a'+
   'nd "$1" is not virtual'#000+
   'nd "$1" is not virtual'#000+
-  '07107_E_','Generating PIC, but reference is not PIC-safe'#000+
+  '07107_E_Generating PIC, but reference is not PIC-safe'#000+
   '07108_E_All registers in a register set must be of the same kind and w'+
   '07108_E_All registers in a register set must be of the same kind and w'+
   'idth'#000+
   'idth'#000+
-  '07109_E_A register set cannot be empty'#000+
+  '071','09_E_A register set cannot be empty'#000+
   '07110_W_@GOTPCREL is useless and potentially dangerous for local symbo'+
   '07110_W_@GOTPCREL is useless and potentially dangerous for local symbo'+
   'ls'#000+
   'ls'#000+
-  '07111_W','_Constant with general purpose segment register'#000+
+  '07111_W_Constant with general purpose segment register'#000+
   '07112_E_Invalid offset value for $1'#000+
   '07112_E_Invalid offset value for $1'#000+
   '07113_E_Invalid register for $1'#000+
   '07113_E_Invalid register for $1'#000+
-  '07114_E_SEH directives are allowed only in pure assembler procedures'#000+
-  '07115_E_Directive "$1" is not supported for the current',' target'#000+
+  '07114_E_','SEH directives are allowed only in pure assembler procedures'+
+  #000+
+  '07115_E_Directive "$1" is not supported for the current target'#000+
   '07116_E_This function'#039's result location cannot be encoded directly'+
   '07116_E_This function'#039's result location cannot be encoded directly'+
   ' in a single operand when "nostackframe" is used'#000+
   ' in a single operand when "nostackframe" is used'#000+
-  '07117_E_GOTPCREL references in Intel assembler syntax cannot contain a'+
-  ' base or index register, and their offset must ','0.'#000+
+  '0','7117_E_GOTPCREL references in Intel assembler syntax cannot contain'+
+  ' a base or index register, and their offset must 0.'#000+
   '07118_E_The current target does not support GOTPCREL relocations'#000+
   '07118_E_The current target does not support GOTPCREL relocations'#000+
-  '07119_W_Exported/global symbols should be accessed via the GOT'#000+
+  '07119_W_Exported/global symbols should be accessed via t','he GOT'#000+
   '07120_W_Check size of memory operand "$1"'#000+
   '07120_W_Check size of memory operand "$1"'#000+
-  '07121_W_Check size of memory operand "$1: memory-operand-size is $2',' '+
-  'bits, but expected [$3 bits]"'#000+
+  '07121_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+
+  'ts, but expected [$3 bits]"'#000+
   '07122_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+
   '07122_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+
-  'ts, but expected [$3 bits + $4 byte offset]"'#000+
+  'ts, but expected [$3 bi','ts + $4 byte offset]"'#000+
   '07123_W_Check "$1: offset of memory operand is negative "$2 byte"'#000+
   '07123_W_Check "$1: offset of memory operand is negative "$2 byte"'#000+
-  '07124_W_Check "$1: size of m','emory operand is empty, but es exists di'+
-  'fferent definitions of the memory size =>> map to $2 (smallest option)'+
-  '"'#000+
-  '07125_E_Invalid register used in memory reference expression: "$1"'#000+
+  '07124_W_Check "$1: size of memory operand is empty, but es exists diff'+
+  'erent definitions of the memory size =>> map to $2 (smallest option)"'#000+
+  '07125_E_Inva','lid register used in memory reference expression: "$1"'#000+
   '07126_E_SEG used without identifier'#000+
   '07126_E_SEG used without identifier'#000+
-  '07127_E_@CODE and @DATA c','an only be used with the SEG operator'#000+
+  '07127_E_@CODE and @DATA can only be used with the SEG operator'#000+
   '07128_E_Not enough space (16 bits required) for the segment constant o'+
   '07128_E_Not enough space (16 bits required) for the segment constant o'+
   'f symbol $1'#000+
   'f symbol $1'#000+
-  '07129_E_Invalid value of .code directive constant'#000+
-  '07130_W_No size specified and unable to determine the size of the cons',
+  '0712','9_E_Invalid value of .code directive constant'#000+
+  '07130_W_No size specified and unable to determine the size of the cons'+
   'tant, using BYTE as default'#000+
   'tant, using BYTE as default'#000+
   '07131_W_No size specified and unable to determine the size of the cons'+
   '07131_W_No size specified and unable to determine the size of the cons'+
-  'tant, using WORD as default'#000+
+  'tant, using WORD as defaul','t'#000+
   '07132_E_Cannot override ES segment'#000+
   '07132_E_Cannot override ES segment'#000+
   '07133_W_Reference is not valid here (expected "$1")'#000+
   '07133_W_Reference is not valid here (expected "$1")'#000+
-  '07134_E_Address sizes do no','t match'#000+
+  '07134_E_Address sizes do not match'#000+
   '07135_E_Instruction "POP CS" is not valid for the current target'#000+
   '07135_E_Instruction "POP CS" is not valid for the current target'#000+
-  '07136_W_Instruction "POP CS" is not portable (it only works on 8086 an'+
-  'd 8088 CPUs)'#000+
+  '07136_W_Instruction "POP CS" is not portable (it on','ly works on 8086 '+
+  'and 8088 CPUs)'#000+
   '07137_E_Label $1 can only be declared public before it'#039's defined'#000+
   '07137_E_Label $1 can only be declared public before it'#039's defined'#000+
-  '07138_E_Local label',' $1 cannot be declared public'#000+
+  '07138_E_Local label $1 cannot be declared public'#000+
   '07139_E_Cannot use multiple segment overrides'#000+
   '07139_E_Cannot use multiple segment overrides'#000+
-  '07140_W_Multiple segment overrides (only the last one will take effect'+
-  ')'#000+
+  '07140_W_Multiple segment overrides (only the las','t one will take effe'+
+  'ct)'#000+
   '07141_W_Segment base $1 will be generated, but is ignored by the CPU i'+
   '07141_W_Segment base $1 will be generated, but is ignored by the CPU i'+
   'n 64-bit mode'#000+
   'n 64-bit mode'#000+
-  '08000_F_','Too many assembler files'#000+
+  '08000_F_Too many assembler files'#000+
   '08001_F_Selected assembler output not supported'#000+
   '08001_F_Selected assembler output not supported'#000+
   '08002_F_Comp not supported'#000+
   '08002_F_Comp not supported'#000+
-  '08003_F_Direct not support for binary writers'#000+
+  '08003_F_Direct not suppo','rt for binary writers'#000+
   '08004_E_Allocating of data is only allowed in bss section'#000+
   '08004_E_Allocating of data is only allowed in bss section'#000+
   '08005_F_No binary writer selected'#000+
   '08005_F_No binary writer selected'#000+
-  '08','006_E_Asm: Opcode $1 not in table'#000+
+  '08006_E_Asm: Opcode $1 not in table'#000+
   '08007_E_Asm: $1 invalid combination of opcode and operands'#000+
   '08007_E_Asm: $1 invalid combination of opcode and operands'#000+
-  '08008_E_Asm: 16 Bit references not supported'#000+
+  '08008_E_Asm: 16 Bit references ','not supported'#000+
   '08009_E_Asm: Invalid effective address'#000+
   '08009_E_Asm: Invalid effective address'#000+
   '08010_E_Asm: Immediate or reference expected'#000+
   '08010_E_Asm: Immediate or reference expected'#000+
-  '08011_E_Asm: $1 va','lue exceeds bounds $2'#000+
+  '08011_E_Asm: $1 value exceeds bounds $2'#000+
   '08012_E_Asm: Short jump is out of range $1'#000+
   '08012_E_Asm: Short jump is out of range $1'#000+
   '08013_E_Asm: Undefined label $1'#000+
   '08013_E_Asm: Undefined label $1'#000+
-  '08014_E_Asm: Comp type not supported for this target'#000+
+  '08014_E_Asm: Comp type not ','supported for this target'#000+
   '08015_E_Asm: Extended type not supported for this target'#000+
   '08015_E_Asm: Extended type not supported for this target'#000+
   '08016_E_Asm: Duplicate label $1'#000+
   '08016_E_Asm: Duplicate label $1'#000+
-  '0','8017_E_Asm: Redefined label $1'#000+
+  '08017_E_Asm: Redefined label $1'#000+
   '08018_E_Asm: First defined here'#000+
   '08018_E_Asm: First defined here'#000+
   '08019_E_Asm: Invalid register $1'#000+
   '08019_E_Asm: Invalid register $1'#000+
-  '08020_E_Asm: 16 or 32 Bit references not supported'#000+
+  '08020_E_Asm: 16 or 32 Bit re','ferences not supported'#000+
   '08021_E_Asm: 64 Bit operands not supported'#000+
   '08021_E_Asm: 64 Bit operands not supported'#000+
-  '08022_E_Asm: AH,BH,CH or DH cannot be used in an i','nstruction requiri'+
-  'ng REX prefix'#000+
+  '08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring'+
+  ' REX prefix'#000+
   '08023_E_Missing .seh_endprologue directive'#000+
   '08023_E_Missing .seh_endprologue directive'#000+
   '08024_E_Function prologue exceeds 255 bytes'#000+
   '08024_E_Function prologue exceeds 255 bytes'#000+
-  '08025_E_.seh_handlerdata directive without preceding .seh_handler'#000+
+  '08025','_E_.seh_handlerdata directive without preceding .seh_handler'#000+
   '08026_F_Relocation count for section $1 exceeds 65535'#000+
   '08026_F_Relocation count for section $1 exceeds 65535'#000+
-  '0','8027_N_Change of bind type of symbol $1 from $2 to $3 after use'#000+
-  '08028_H_Change of bind type of symbol $1 from $2 to $3 after use'#000+
+  '08027_N_Change of bind type of symbol $1 from $2 to $3 after use'#000+
+  '08028_H_Change of bind type of symbol $1 from $2 to $3 after',' use'#000+
   '08029_E_Asm: 32 Bit references not supported'#000+
   '08029_E_Asm: 32 Bit references not supported'#000+
   '08030_F_Code segment too large'#000+
   '08030_F_Code segment too large'#000+
   '08031_F_Data segment too large'#000+
   '08031_F_Data segment too large'#000+
-  '0803','2_E_Instruction not supported by the selected instruction set'#000+
+  '08032_E_Instruction not supported by the selected instruction set'#000+
   '08033_E_Asm: conditional branch destination is out of range'#000+
   '08033_E_Asm: conditional branch destination is out of range'#000+
-  '09000_W_Source operating system redefined'#000+
+  '09','000_W_Source operating system redefined'#000+
   '09001_I_Assembling (pipe) $1'#000+
   '09001_I_Assembling (pipe) $1'#000+
   '09002_E_Can'#039't create assembler file: $1'#000+
   '09002_E_Can'#039't create assembler file: $1'#000+
-  '09003_E','_Can'#039't create object file: $1 (error code: $2)'#000+
+  '09003_E_Can'#039't create object file: $1 (error code: $2)'#000+
   '09004_E_Can'#039't create archive file: $1'#000+
   '09004_E_Can'#039't create archive file: $1'#000+
-  '09005_E_Assembler $1 not found, switching to external assembling'#000+
+  '09005_E_Assembler $1 not found, switchi','ng to external assembling'#000+
   '09006_T_Using assembler: $1'#000+
   '09006_T_Using assembler: $1'#000+
   '09007_E_Error while assembling exitcode $1'#000+
   '09007_E_Error while assembling exitcode $1'#000+
-  '09008_E_Can'#039't call ','the assembler, error $1 switching to external'+
-  ' assembling'#000+
+  '09008_E_Can'#039't call the assembler, error $1 switching to external a'+
+  'ssembling'#000+
   '09009_I_Assembling $1'#000+
   '09009_I_Assembling $1'#000+
   '09010_I_Assembling with smartlinking $1'#000+
   '09010_I_Assembling with smartlinking $1'#000+
-  '09011_W_Object $1 not found, Linking may fail !'#000+
+  '09011','_W_Object $1 not found, Linking may fail !'#000+
   '09012_W_Library $1 not found, Linking may fail !'#000+
   '09012_W_Library $1 not found, Linking may fail !'#000+
-  '09013_E_Error while link','ing'#000+
+  '09013_E_Error while linking'#000+
   '09014_E_Can'#039't call the linker, switching to external linking'#000+
   '09014_E_Can'#039't call the linker, switching to external linking'#000+
   '09015_I_Linking $1'#000+
   '09015_I_Linking $1'#000+
-  '09016_E_Util $1 not found, switching to external linking'#000+
+  '09016_E_Util $1 not found, switching to ','external linking'#000+
   '09017_T_Using util $1'#000+
   '09017_T_Using util $1'#000+
   '09018_E_Creation of Executables not supported'#000+
   '09018_E_Creation of Executables not supported'#000+
-  '09019_E_Creation of Dynamic/Sha','red Libraries not supported'#000+
+  '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+
   '09035_E_Creation of Static Libraries not supported'#000+
   '09035_E_Creation of Static Libraries not supported'#000+
   '09020_I_Closing script $1'#000+
   '09020_I_Closing script $1'#000+
-  '09021_E_Resource compiler "$1" not found, switching to external mode'#000+
+  '09021_E_Resource co','mpiler "$1" not found, switching to external mode'+
+  #000+
   '09022_I_Compiling resource $1'#000+
   '09022_I_Compiling resource $1'#000+
-  '09023_T_Unit $1 cannot be statically',' linked, switching to smart link'+
-  'ing'#000+
+  '09023_T_Unit $1 cannot be statically linked, switching to smart linkin'+
+  'g'#000+
   '09024_T_Unit $1 cannot be smart linked, switching to static linking'#000+
   '09024_T_Unit $1 cannot be smart linked, switching to static linking'#000+
-  '09025_T_Unit $1 cannot be shared linked, switching to static linking'#000+
+  '09025_T_Unit $1 cann','ot be shared linked, switching to static linking'+
+  #000+
   '09026_E_Unit $1 cannot be smart or static linked'#000+
   '09026_E_Unit $1 cannot be smart or static linked'#000+
-  '09027_E_Unit $1 ca','nnot be shared or static linked'#000+
+  '09027_E_Unit $1 cannot be shared or static linked'#000+
   '09028_D_Calling resource compiler "$1" with "$2" as command line'#000+
   '09028_D_Calling resource compiler "$1" with "$2" as command line'#000+
-  '09029_E_Error while compiling resources'#000+
+  '09029_E_Error while compili','ng resources'#000+
   '09030_E_Can'#039't call the resource compiler "$1", switching to extern'+
   '09030_E_Can'#039't call the resource compiler "$1", switching to extern'+
   'al mode'#000+
   'al mode'#000+
-  '09031_E_Can'#039't open resource f','ile "$1"'#000+
+  '09031_E_Can'#039't open resource file "$1"'#000+
   '09032_E_Can'#039't write resource file "$1"'#000+
   '09032_E_Can'#039't write resource file "$1"'#000+
   '09033_N_File "$1" not found for backquoted cat command'#000+
   '09033_N_File "$1" not found for backquoted cat command'#000+
-  '09034_W_"$1" not found, this will probably cause a linking failure'#000+
+  '09034_W_"$1" not foun','d, this will probably cause a linking failure'#000+
   '09128_F_Can'#039't post process executable $1'#000+
   '09128_F_Can'#039't post process executable $1'#000+
-  '09129_F_Can'#039't open executable',' $1'#000+
+  '09129_F_Can'#039't open executable $1'#000+
   '09130_X_Size of Code: $1 bytes'#000+
   '09130_X_Size of Code: $1 bytes'#000+
   '09131_X_Size of initialized data: $1 bytes'#000+
   '09131_X_Size of initialized data: $1 bytes'#000+
   '09132_X_Size of uninitialized data: $1 bytes'#000+
   '09132_X_Size of uninitialized data: $1 bytes'#000+
-  '09133_X_Stack space reserved: $1 bytes'#000+
+  '0','9133_X_Stack space reserved: $1 bytes'#000+
   '09134_X_Stack space committed: $1 bytes'#000+
   '09134_X_Stack space committed: $1 bytes'#000+
-  '09200_F_Executable image size is too b','ig for $1 target.'#000+
+  '09200_F_Executable image size is too big for $1 target.'#000+
   '09201_W_Object file "$1" contains 32-bit absolute relocation to symbol'+
   '09201_W_Object file "$1" contains 32-bit absolute relocation to symbol'+
   ' "$2".'#000+
   ' "$2".'#000+
-  '09202_E_Program segment too large (exceeds 64k by $1 bytes)'#000+
+  '09202_E_Program segment too l','arge (exceeds 64k by $1 bytes)'#000+
   '09203_E_Code segment "$1" too large (exceeds 64k by $2 bytes)'#000+
   '09203_E_Code segment "$1" too large (exceeds 64k by $2 bytes)'#000+
-  '09204_E_Data segment "$','1" too large (exceeds 64k by $2 bytes)'#000+
+  '09204_E_Data segment "$1" too large (exceeds 64k by $2 bytes)'#000+
   '09205_E_Segment "$1" too large (exceeds 64k by $2 bytes)'#000+
   '09205_E_Segment "$1" too large (exceeds 64k by $2 bytes)'#000+
-  '09206_E_Group "$1" too large (exceeds 64k by $2 bytes)'#000+
+  '09206_E_Group "$1" too large',' (exceeds 64k by $2 bytes)'#000+
   '09207_E_Cannot create a .COM file, because the program contains segmen'+
   '09207_E_Cannot create a .COM file, because the program contains segmen'+
   't relocations'#000+
   't relocations'#000+
-  '09208','_W_Program "$1" uses experimental CheckPointer option'#000+
+  '09208_W_Program "$1" uses experimental CheckPointer option'#000+
   '09209_E_Multiple defined symbol "$1"'#000+
   '09209_E_Multiple defined symbol "$1"'#000+
-  '09210_E_COMDAT selection mode $1 not supported (section: "$1")'#000+
+  '09210_E_COMDAT selection mode $1 ','not supported (section: "$1")'#000+
   '09211_E_Associative section expected for COMDAT section "$1"'#000+
   '09211_E_Associative section expected for COMDAT section "$1"'#000+
-  '09212_E_COMDAT section se','lection mode doesn'#039't match for section '+
-  '"$1" and symbol "$2"'#000+
+  '09212_E_COMDAT section selection mode doesn'#039't match for section "$'+
+  '1" and symbol "$2"'#000+
   '09213_E_Associative COMDAT section for section "$1" not found'#000+
   '09213_E_Associative COMDAT section for section "$1" not found'#000+
-  '09214_D_Discarding duplicate symbol "$1" due to COMDAT selection mode'#000+
-  '09215_D_Discarding duplicate symbol "$1" with sa','me size due to COMDA'+
-  'T selection mode'#000+
+  '09','214_D_Discarding duplicate symbol "$1" due to COMDAT selection mod'+
+  'e'#000+
+  '09215_D_Discarding duplicate symbol "$1" with same size due to COMDAT '+
+  'selection mode'#000+
   '09216_D_Discarding duplicate symbol "$1" with same content due to COMD'+
   '09216_D_Discarding duplicate symbol "$1" with same content due to COMD'+
-  'AT selection mode'#000+
+  'AT selection mode',#000+
   '09217_D_Replacing duplicate symbol "$1" with smaller size due to COMDA'+
   '09217_D_Replacing duplicate symbol "$1" with smaller size due to COMDA'+
   'T selection mode'#000+
   'T selection mode'#000+
-  '09218_E_Size of duplicate CO','MDAT symbol "$1" differs'#000+
+  '09218_E_Size of duplicate COMDAT symbol "$1" differs'#000+
   '09219_E_Content of duplicate COMDAT symbol "$1" differs'#000+
   '09219_E_Content of duplicate COMDAT symbol "$1" differs'#000+
-  '09220_E_COMDAT selection mode for symbol "$1" differs'#000+
+  '09220_E_COMDAT selection mode for symbol "$','1" differs'#000+
   '10000_T_Unitsearch: $1'#000+
   '10000_T_Unitsearch: $1'#000+
   '10001_T_PPU Loading $1'#000+
   '10001_T_PPU Loading $1'#000+
   '10002_U_PPU Name: $1'#000+
   '10002_U_PPU Name: $1'#000+
   '10003_U_PPU Flags: $1'#000+
   '10003_U_PPU Flags: $1'#000+
-  '10004_U_PPU Crc:',' $1'#000+
+  '10004_U_PPU Crc: $1'#000+
   '10005_U_PPU Time: $1'#000+
   '10005_U_PPU Time: $1'#000+
   '10006_U_PPU File too short'#000+
   '10006_U_PPU File too short'#000+
   '10007_U_PPU Invalid Header (no PPU at the begin)'#000+
   '10007_U_PPU Invalid Header (no PPU at the begin)'#000+
-  '10008_U_PPU Invalid Version $1'#000+
+  '10008_U_PPU Invalid Ver','sion $1'#000+
   '10009_U_PPU is compiled for another processor'#000+
   '10009_U_PPU is compiled for another processor'#000+
   '10010_U_PPU is compiled for another target'#000+
   '10010_U_PPU is compiled for another target'#000+
-  '10011_U_PPU Source:',' $1'#000+
+  '10011_U_PPU Source: $1'#000+
   '10012_U_Writing $1'#000+
   '10012_U_Writing $1'#000+
   '10013_F_Can'#039't Write PPU-File'#000+
   '10013_F_Can'#039't Write PPU-File'#000+
   '10014_F_Error reading PPU-File'#000+
   '10014_F_Error reading PPU-File'#000+
   '10015_F_Unexpected end of PPU-File'#000+
   '10015_F_Unexpected end of PPU-File'#000+
-  '10016_F_Invalid PPU-File entry: $1'#000+
+  '10016_','F_Invalid PPU-File entry: $1'#000+
   '10017_F_PPU Dbx count problem'#000+
   '10017_F_PPU Dbx count problem'#000+
   '10018_E_Illegal unit name: $1 (expecting $2)'#000+
   '10018_E_Illegal unit name: $1 (expecting $2)'#000+
-  '10019_F_Too ','much units'#000+
+  '10019_F_Too much units'#000+
   '10020_F_Circular unit reference between $1 and $2'#000+
   '10020_F_Circular unit reference between $1 and $2'#000+
   '10021_F_Can'#039't compile unit $1, no sources available'#000+
   '10021_F_Can'#039't compile unit $1, no sources available'#000+
-  '10022_F_Can'#039't find unit $1 used by $2'#000+
+  '10022_F_Can',#039't find unit $1 used by $2'#000+
   '10023_W_Unit $1 was not found but $2 exists'#000+
   '10023_W_Unit $1 was not found but $2 exists'#000+
   '10024_F_Unit $1 searched but $2 found'#000+
   '10024_F_Unit $1 searched but $2 found'#000+
-  '10025_W','_Compiling the system unit requires the -Us switch'#000+
+  '10025_W_Compiling the system unit requires the -Us switch'#000+
   '10026_F_There were $1 errors compiling module, stopping'#000+
   '10026_F_There were $1 errors compiling module, stopping'#000+
-  '10027_U_Load from $1 ($2) unit $3'#000+
+  '10027_U_Load from',' $1 ($2) unit $3'#000+
   '10028_U_Recompiling $1, checksum changed for $2'#000+
   '10028_U_Recompiling $1, checksum changed for $2'#000+
   '10029_U_Recompiling $1, source found only'#000+
   '10029_U_Recompiling $1, source found only'#000+
-  '10030_U_R','ecompiling unit, static lib is older than ppufile'#000+
+  '10030_U_Recompiling unit, static lib is older than ppufile'#000+
   '10031_U_Recompiling unit, shared lib is older than ppufile'#000+
   '10031_U_Recompiling unit, shared lib is older than ppufile'#000+
-  '10032_U_Recompiling unit, obj and asm are older than ppufile'#000+
+  '10032_U_Recompi','ling unit, obj and asm are older than ppufile'#000+
   '10033_U_Recompiling unit, obj is older than asm'#000+
   '10033_U_Recompiling unit, obj is older than asm'#000+
-  '10034_U_Parsing interf','ace of $1'#000+
+  '10034_U_Parsing interface of $1'#000+
   '10035_U_Parsing implementation of $1'#000+
   '10035_U_Parsing implementation of $1'#000+
   '10036_U_Second load for unit $1'#000+
   '10036_U_Second load for unit $1'#000+
   '10037_U_PPU Check file $1 time $2'#000+
   '10037_U_PPU Check file $1 time $2'#000+
-  '10040_W_Can'#039't recompile unit $1, but found modified include files'#000+
-  '10041_U_File $1 is newer than the one used for creating PPU f','ile $2'#000+
+  '10040_W_Can',#039't recompile unit $1, but found modified include files'#000+
+  '10041_U_File $1 is newer than the one used for creating PPU file $2'#000+
   '10042_U_Trying to use a unit which was compiled with a different FPU m'+
   '10042_U_Trying to use a unit which was compiled with a different FPU m'+
   'ode'#000+
   'ode'#000+
   '10043_U_Loading interface units from $1'#000+
   '10043_U_Loading interface units from $1'#000+
-  '10044_U_Loading implementation units from $1'#000+
+  '100','44_U_Loading implementation units from $1'#000+
   '10045_U_Interface CRC changed for unit $1'#000+
   '10045_U_Interface CRC changed for unit $1'#000+
-  '10046_U_Implementation CRC chang','ed for unit $1'#000+
+  '10046_U_Implementation CRC changed for unit $1'#000+
   '10047_U_Finished compiling unit $1'#000+
   '10047_U_Finished compiling unit $1'#000+
   '10048_U_Adding dependency: $1 depends on $2'#000+
   '10048_U_Adding dependency: $1 depends on $2'#000+
-  '10049_U_No reload, is caller: $1'#000+
+  '10049_U_No reload, is caller: ','$1'#000+
   '10050_U_No reload, already in second compile: $1'#000+
   '10050_U_No reload, already in second compile: $1'#000+
   '10051_U_Flag for reload: $1'#000+
   '10051_U_Flag for reload: $1'#000+
   '10052_U_Forced reloading'#000+
   '10052_U_Forced reloading'#000+
-  '10053_U_Pre','vious state of $1: $2'#000+
+  '10053_U_Previous state of $1: $2'#000+
   '10054_U_Already compiling $1, setting second compile'#000+
   '10054_U_Already compiling $1, setting second compile'#000+
   '10055_U_Loading unit $1'#000+
   '10055_U_Loading unit $1'#000+
-  '10056_U_Finished loading unit $1'#000+
+  '10056_U_Finished loading ','unit $1'#000+
   '10057_U_Registering new unit $1'#000+
   '10057_U_Registering new unit $1'#000+
   '10058_U_Re-resolving unit $1'#000+
   '10058_U_Re-resolving unit $1'#000+
-  '10059_U_Skipping re-resolving unit $1, still lo','ading used units'#000+
+  '10059_U_Skipping re-resolving unit $1, still loading used units'#000+
   '10060_U_Unloading resource unit $1 (not needed)'#000+
   '10060_U_Unloading resource unit $1 (not needed)'#000+
-  '10061_E_Unit $1 was compiled using a different whole program optimizat'+
-  'ion feedback input ($2, $3); recompile it without wpo or use the same '+
-  'wpo feedback input file for this co','mpilation invocation'#000+
+  '10061_E_Unit $1 was compiled using a different whole progra','m optimiz'+
+  'ation feedback input ($2, $3); recompile it without wpo or use the sam'+
+  'e wpo feedback input file for this compilation invocation'#000+
   '10062_U_Indirect interface (objects/classes) CRC changed for unit $1'#000+
   '10062_U_Indirect interface (objects/classes) CRC changed for unit $1'#000+
-  '10063_U_PPU is compiled for another i8086 memory model'#000+
+  '10063_U_PPU is compiled for anothe','r i8086 memory model'#000+
   '10064_U_Loading unit $1 from package $2'#000+
   '10064_U_Loading unit $1 from package $2'#000+
-  '10065_F_Internal type "$1" was not found. Check if you ','use the corre'+
-  'ct run time library.'#000+
+  '10065_F_Internal type "$1" was not found. Check if you use the correct'+
+  ' run time library.'#000+
   '10066_F_Internal type "$1" does not look as expected. Check if you use'+
   '10066_F_Internal type "$1" does not look as expected. Check if you use'+
-  ' the correct run time library.'#000+
+  ' the correct run tim','e library.'#000+
   '11000_O_$1 [options] <inputfile> [options]'#000+
   '11000_O_$1 [options] <inputfile> [options]'#000+
-  '11001_W_Only one source file supported, changing source file t','o comp'+
-  'ile from "$1" into "$2"'#000+
+  '11001_W_Only one source file supported, changing source file to compil'+
+  'e from "$1" into "$2"'#000+
   '11002_W_DEF file can be created only for OS/2'#000+
   '11002_W_DEF file can be created only for OS/2'#000+
-  '11003_E_Nested response files are not supported'#000+
+  '11003_E_Nested response files are not supported'#000,
   '11004_F_No source file name in command line'#000+
   '11004_F_No source file name in command line'#000+
   '11005_N_No option inside $1 config file'#000+
   '11005_N_No option inside $1 config file'#000+
   '11006_E_Illegal parameter: $1'#000+
   '11006_E_Illegal parameter: $1'#000+
-  '11','007_H_-? writes help pages'#000+
+  '11007_H_-? writes help pages'#000+
   '11008_F_Too many config files nested'#000+
   '11008_F_Too many config files nested'#000+
   '11009_F_Unable to open file $1'#000+
   '11009_F_Unable to open file $1'#000+
-  '11010_D_Reading further options from $1'#000+
+  '11010_D_Reading further optio','ns from $1'#000+
   '11011_W_Target is already set to: $1'#000+
   '11011_W_Target is already set to: $1'#000+
-  '11012_W_Shared libs not supported on DOS platform, reverting to stat','i'+
-  'c'#000+
+  '11012_W_Shared libs not supported on DOS platform, reverting to static'+
+  #000+
   '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered'#000+
   '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered'#000+
-  '11014_F_In options file $1 at line $2 unexpected #ENDIFs encountered'#000+
+  '11014_F_In options file $1 at line $2 unexpected #E','NDIFs encountered'+
+  #000+
   '11015_F_Open conditional at the end of the options file'#000+
   '11015_F_Open conditional at the end of the options file'#000+
-  '11016_W_Debug information generation is no','t supported by this execut'+
-  'able'#000+
+  '11016_W_Debug information generation is not supported by this executab'+
+  'le'#000+
   '11017_H_Try recompiling with -dGDB'#000+
   '11017_H_Try recompiling with -dGDB'#000+
   '11018_W_You are using the obsolete switch $1'#000+
   '11018_W_You are using the obsolete switch $1'#000+
-  '11019_W_You are using the obsolete switch $1, please use $2'#000+
+  '11019_W_You a','re using the obsolete switch $1, please use $2'#000+
   '11020_N_Switching assembler to default source writing assembler'#000+
   '11020_N_Switching assembler to default source writing assembler'#000+
-  '11021','_W_Assembler output selected "$1" is not compatible with "$2"'#000+
+  '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+
   '11022_W_"$1" assembler use forced'#000+
   '11022_W_"$1" assembler use forced'#000+
-  '11026_T_Reading options from file $1'#000+
+  '11026_T_Reading options from',' file $1'#000+
   '11027_T_Reading options from environment $1'#000+
   '11027_T_Reading options from environment $1'#000+
   '11028_D_Handling option "$1"'#000+
   '11028_D_Handling option "$1"'#000+
   '11029_O_*** press enter ***'#000+
   '11029_O_*** press enter ***'#000+
-  '11030_','H_Start of reading config file $1'#000+
+  '11030_H_Start of reading config file $1'#000+
   '11031_H_End of reading config file $1'#000+
   '11031_H_End of reading config file $1'#000+
   '11032_D_Interpreting option "$1"'#000+
   '11032_D_Interpreting option "$1"'#000+
-  '11036_D_Interpreting firstpass option "$1"'#000+
+  '11036_D_Interpretin','g firstpass option "$1"'#000+
   '11033_D_Interpreting file option "$1"'#000+
   '11033_D_Interpreting file option "$1"'#000+
   '11034_D_Reading config file "$1"'#000+
   '11034_D_Reading config file "$1"'#000+
-  '11035_D_Found source ','file name "$1"'#000+
+  '11035_D_Found source file name "$1"'#000+
   '11039_E_Unknown codepage "$1"'#000+
   '11039_E_Unknown codepage "$1"'#000+
   '11040_F_Config file $1 is a directory'#000+
   '11040_F_Config file $1 is a directory'#000+
-  '11041_W_Assembler output selected "$1" cannot generate debug info, deb'+
-  'ugging disabled'#000+
+  '11041_W_Assembler output selected "$1" ca','nnot generate debug info, d'+
+  'ebugging disabled'#000+
   '11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead'#000+
   '11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead'#000+
-  '110','43_F_In options file $1 at line $2 #ELSE directive without #IF(N)'+
-  'DEF found'#000+
-  '11044_F_Option "$1" is not, or not yet, supported on the current targe'+
-  't platform'#000+
+  '11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DE'+
+  'F found'#000+
+  '11044_F_Option "$1" is not, or not yet, supported',' on the current tar'+
+  'get platform'#000+
   '11045_F_The feature "$1" is not, or not yet, supported on the selected'+
   '11045_F_The feature "$1" is not, or not yet, supported on the selected'+
-  ' target platfo','rm'#000+
+  ' target platform'#000+
   '11046_N_DWARF debug information cannot be used with smart linking on t'+
   '11046_N_DWARF debug information cannot be used with smart linking on t'+
   'his target, switching to static linking'#000+
   'his target, switching to static linking'#000+
-  '11047_W_Option "$1" is ignored for the current target platform.'#000+
-  '11048_W_Disabling external debug information because it is unsu','pport'+
-  'ed for the selected target/debug format combination.'#000+
-  '11049_N_DWARF debug information cannot be used with smart linking with'+
-  ' external assembler, disabling static library creation.'#000+
-  '11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET envir','onment varia'+
-  'ble: $1'#000+
+  '11047_W_Opt','ion "$1" is ignored for the current target platform.'#000+
+  '11048_W_Disabling external debug information because it is unsupported'+
+  ' for the selected target/debug format combination.'#000+
+  '11049_N_DWARF debug information cannot be used with smart linking ','wi'+
+  'th external assembler, disabling static library creation.'#000+
+  '11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variabl'+
+  'e: $1'#000+
   '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+
   '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+
   'ble: $1'#000+
   'ble: $1'#000+
-  '11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when usin'+
-  'g the EABIHF ABI target'#000+
-  '11053_W_The selected debug format is not support','ed on the current ta'+
-  'rget, not changing the current setting'#000+
+  '11052_E_You must use a FPU',' type of VFPV2, VFPV3 or VFPV3_D16 when us'+
+  'ing the EABIHF ABI target'#000+
+  '11053_W_The selected debug format is not supported on the current targ'+
+  'et, not changing the current setting'#000+
   '11054_E_Argument to "$1" is missing'#000+
   '11054_E_Argument to "$1" is missing'#000+
-  '11055_E_Malformed parameter: $1'#000+
+  '11055_E_Malformed parameter: ','$1'#000+
   '11056_W_Smart linking requires external linker'#000+
   '11056_W_Smart linking requires external linker'#000+
-  '11057_E_Creating .COM files is not supported in the current memory',' m'+
-  'odel. Only the tiny memory model supports making .COM files.'#000+
-  '11058_W_Experimental CheckPointer option not enabled because it is inc'+
-  'omptatible with -Ur option.'#000+
+  '11057_E_Creating .COM files is not supported in the current memory mod'+
+  'el. Only the tiny memory model supports making .COM files.'#000+
+  '11058_W_Experimental CheckPointer option not enabled because ','it is i'+
+  'ncomptatible with -Ur option.'#000+
   '11059_E_Unsupported target architecture -P$1, invoke the "fpc" compile'+
   '11059_E_Unsupported target architecture -P$1, invoke the "fpc" compile'+
-  'r driver ','instead.'#000+
+  'r driver instead.'#000+
   '11060_E_Feature switches are only supported while compiling the system'+
   '11060_E_Feature switches are only supported while compiling the system'+
   ' unit.'#000+
   ' unit.'#000+
-  '11061_N_The selected debug format is not supported by the internal lin'+
-  'ker, switching to external linking'#000+
-  '12000_F_Cannot open whole program optimization fe','edback file "$1"'#000+
+  '11061_N_The selected debug format is n','ot supported by the internal l'+
+  'inker, switching to external linking'#000+
+  '12000_F_Cannot open whole program optimization feedback file "$1"'#000+
   '12001_D_Processing whole program optimization information in wpo feedb'+
   '12001_D_Processing whole program optimization information in wpo feedb'+
   'ack file "$1"'#000+
   'ack file "$1"'#000+
-  '12002_D_Finished processing the whole program optimization information'+
-  ' in wpo feedback file "$1"'#000+
-  '12003_E_Expected section header, but got "','$2" at line $1 of wpo feed'+
-  'back file'#000+
+  '12002_D_Finished proces','sing the whole program optimization informati'+
+  'on in wpo feedback file "$1"'#000+
+  '12003_E_Expected section header, but got "$2" at line $1 of wpo feedba'+
+  'ck file'#000+
   '12004_W_No handler registered for whole program optimization section "'+
   '12004_W_No handler registered for whole program optimization section "'+
-  '$2" at line $1 of wpo feedback file, ignoring'#000+
+  '$2" at line $1 of ','wpo feedback file, ignoring'#000+
   '12005_D_Found whole program optimization section "$1" with information'+
   '12005_D_Found whole program optimization section "$1" with information'+
   ' about "$2"'#000+
   ' about "$2"'#000+
-  '12006_','F_The selected whole program optimizations require a previousl'+
-  'y generated feedback file (use -Fw to specify)'#000+
-  '12007_E_No collected information necessary to perform "$1" whole progr'+
-  'am optimization found'#000+
-  '12008_F_Specify a whole program optimiz','ation feedback file to store '+
-  'the generated info in (using -FW)'#000+
-  '12009_E_Not generating any whole program optimization information, yet'+
-  ' a feedback file was specified (using -FW)'#000+
-  '12010_E_Not performing any whole program optimizations, yet an i','nput'+
-  ' feedback file was specified (using -Fw)'#000+
+  '12006_F_The selected whole program optimizations require a previously '+
+  'generated feedback file (use -Fw to specify)'#000+
+  '12007_E_No coll','ected information necessary to perform "$1" whole pro'+
+  'gram optimization found'#000+
+  '12008_F_Specify a whole program optimization feedback file to store th'+
+  'e generated info in (using -FW)'#000+
+  '12009_E_Not generating any whole program optimization informa','tion, y'+
+  'et a feedback file was specified (using -FW)'#000+
+  '12010_E_Not performing any whole program optimizations, yet an input f'+
+  'eedback file was specified (using -Fw)'#000+
   '12011_D_Skipping whole program optimization section "$1", because not '+
   '12011_D_Skipping whole program optimization section "$1", because not '+
-  'needed by the requested optimizations'#000+
+  'needed by',' the requested optimizations'#000+
   '12012_W_Overriding previously read information for "$1" from feedback '+
   '12012_W_Overriding previously read information for "$1" from feedback '+
-  'input file using ','information in section "$2"'#000+
+  'input file using information in section "$2"'#000+
   '12013_E_Cannot extract symbol liveness information from program when s'+
   '12013_E_Cannot extract symbol liveness information from program when s'+
-  'tripping symbols, use -Xs-'#000+
+  'tripping symbols, use -Xs-',#000+
   '12014_E_Cannot extract symbol liveness information from program when w'+
   '12014_E_Cannot extract symbol liveness information from program when w'+
   'hen not linking'#000+
   'hen not linking'#000+
-  '12015_F_Cannot find "$1" or "','$2" to extract symbol liveness informat'+
-  'ion from linked program'#000+
-  '12016_E_Error during reading symbol liveness information produced by "'+
-  '$1"'#000+
+  '12015_F_Cannot find "$1" or "$2" to extract symbol liveness informatio'+
+  'n from linked program'#000+
+  '12016_E_Error during reading symbol liveness information prod','uced by'+
+  ' "$1"'#000+
   '12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+
   '12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+
   'ion from linked program'#000+
   'ion from linked program'#000+
-  '12018_E_C','ollection of symbol liveness information can only help when'+
-  ' using smart linking, use -CX -XX'#000+
-  '12019_E_Cannot create specified whole program optimisation feedback fi'+
-  'le "$1"'#000+
+  '12018_E_Collection of symbol liveness information can only help when u'+
+  'sing smart linking, use -CX -XX'#000+
+  '12019_E_Cannot create specified',' whole program optimisation feedback '+
+  'file "$1"'#000+
   '13001_F_Can'#039't find package $1'#000+
   '13001_F_Can'#039't find package $1'#000+
   '13002_U_PCP file for package $1 found'#000+
   '13002_U_PCP file for package $1 found'#000+
-  '1','3003_E_Duplicate package $1'#000+
+  '13003_E_Duplicate package $1'#000+
   '13004_E_Unit $1 can not be part of a package'#000+
   '13004_E_Unit $1 can not be part of a package'#000+
-  '13005_N_Unit $1 is implicitely imported into package $2'#000+
+  '13005_N_Unit $1 is implicitely imported into packag','e $2'#000+
   '13006_F_Failed to create PCP file $2 for package $1'#000+
   '13006_F_Failed to create PCP file $2 for package $1'#000+
   '13007_F_Failed to read PCP file for package $1'#000+
   '13007_F_Failed to read PCP file for package $1'#000+
-  '13008_T_PCP ','loading $1'#000+
+  '13008_T_PCP loading $1'#000+
   '13009_U_PCP Name: $1'#000+
   '13009_U_PCP Name: $1'#000+
   '13010_U_PCP Flags: $1'#000+
   '13010_U_PCP Flags: $1'#000+
   '13011_U_PCP Crc: $1'#000+
   '13011_U_PCP Crc: $1'#000+
   '13012_U_PCP Time: $1'#000+
   '13012_U_PCP Time: $1'#000+
   '13013_U_PCP File too short'#000+
   '13013_U_PCP File too short'#000+
-  '13014_U_PCP Invalid Header (no PCP at the begin)'#000+
+  '13','014_U_PCP Invalid Header (no PCP at the begin)'#000+
   '13015_U_PCP Invalid Version $1'#000+
   '13015_U_PCP Invalid Version $1'#000+
-  '13016_U_PCP is compiled for another pr','ocessor'#000+
+  '13016_U_PCP is compiled for another processor'#000+
   '13017_U_PCP is compiled for another target'#000+
   '13017_U_PCP is compiled for another target'#000+
   '13018_U_Writing $1'#000+
   '13018_U_Writing $1'#000+
   '13019_F_Can'#039't Write PCP-File'#000+
   '13019_F_Can'#039't Write PCP-File'#000+
-  '13020_F_Error reading PCP-File'#000+
+  '13020_F_Error reading PCP','-File'#000+
   '13021_F_Unexpected end of PCP-File'#000+
   '13021_F_Unexpected end of PCP-File'#000+
   '13022_F_Invalid PCP-File entry: $1'#000+
   '13022_F_Invalid PCP-File entry: $1'#000+
-  '13023_U_Trying to use a unit which was c','ompiled with a different FPU'+
-  ' mode'#000+
+  '13023_U_Trying to use a unit which was compiled with a different FPU m'+
+  'ode'#000+
   '13024_T_Packagesearch: $1'#000+
   '13024_T_Packagesearch: $1'#000+
   '13025_U_Required package $1'#000+
   '13025_U_Required package $1'#000+
   '13026_U_Contained unit $1'#000+
   '13026_U_Contained unit $1'#000+
-  '13027_E_Unit $1 is already contained in package $2'#000+
+  '13027_E_Un','it $1 is already contained in package $2'#000+
   '13028_W_Unit $1 is imported from indirectly required package $2'#000+
   '13028_W_Unit $1 is imported from indirectly required package $2'#000+
-  '13029_U_PPL',' filename $1'#000+
+  '13029_U_PPL filename $1'#000+
   '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+
   '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+
   'CPU'#010+
   'CPU'#010+
-  'Copyright (c) 1993-2018 by Florian Klaempfl and others'#000+
+  'Copyright (c) 1993-2018 by Florian Kl','aempfl and others'#000+
   '11024_Free Pascal Compiler version $FPCVERSION'#010+
   '11024_Free Pascal Compiler version $FPCVERSION'#010+
   #010+
   #010+
   'Compiler date      : $FPCDATE'#010+
   'Compiler date      : $FPCDATE'#010+
-  'Compiler CPU target:',' $FPCCPU'#010+
+  'Compiler CPU target: $FPCCPU'#010+
   #010+
   #010+
   'Supported targets (targets marked with '#039'{*}'#039' are under develop'+
   'Supported targets (targets marked with '#039'{*}'#039' are under develop'+
   'ment):'#010+
   'ment):'#010+
   '  $OSTARGETS'#010+
   '  $OSTARGETS'#010+
   #010+
   #010+
-  'Supported CPU instruction sets:'#010+
+  'Supported CPU instruction sets:',#010+
   '  $INSTRUCTIONSETS'#010+
   '  $INSTRUCTIONSETS'#010+
   #010+
   #010+
   'Supported FPU instruction sets:'#010+
   'Supported FPU instruction sets:'#010+
   '  $FPUINSTRUCTIONSETS'#010+
   '  $FPUINSTRUCTIONSETS'#010+
   #010+
   #010+
   'Supported inline assembler modes:'#010+
   'Supported inline assembler modes:'#010+
-  '  $ASM','MODES'#010+
+  '  $ASMMODES'#010+
   #010+
   #010+
   'Recognized compiler and RTL features:'#010+
   'Recognized compiler and RTL features:'#010+
   '  $FEATURELIST'#010+
   '  $FEATURELIST'#010+
@@ -1382,542 +1388,540 @@ const msgtxt : array[0..000346,1..240] of char=(
   'Supported ABI targets:'#010+
   'Supported ABI targets:'#010+
   '  $ABITARGETS'#010+
   '  $ABITARGETS'#010+
   #010+
   #010+
-  'Supported Optimizations:'#010+
+  'Supported Optimizations:'#010,
   '  $OPTIMIZATIONS'#010+
   '  $OPTIMIZATIONS'#010+
   #010+
   #010+
   'Supported Whole Program Optimizations:'#010+
   'Supported Whole Program Optimizations:'#010+
   '  All'#010+
   '  All'#010+
   '  $WPOPTIMIZATIONS'#010+
   '  $WPOPTIMIZATIONS'#010+
   #010+
   #010+
-  'Supported Microcontroller types:$','\n  $CONTROLLERTYPES$\n'#010+
+  'Supported Microcontroller types:$\n  $CONTROLLERTYPES$\n'#010+
   'This program comes under the GNU General Public Licence'#010+
   'This program comes under the GNU General Public Licence'#010+
   'For more information read COPYING.v2'#010+
   'For more information read COPYING.v2'#010+
   #010+
   #010+
-  'Please report bugs in our bug tracker on:'#010+
+  'Please',' report bugs in our bug tracker on:'#010+
   '                 http://bugs.freepascal.org'#010+
   '                 http://bugs.freepascal.org'#010+
   #010+
   #010+
-  'More information may be found on ou','r WWW pages (including directions'+
-  #010+
+  'More information may be found on our WWW pages (including directions'#010+
   'for mailing lists useful for asking questions or discussing potential'#010+
   'for mailing lists useful for asking questions or discussing potential'#010+
-  'new features, etc.):'#010+
+  'new features, etc.):',#010+
   '                 http://www.freepascal.org'#000+
   '                 http://www.freepascal.org'#000+
   '11025_F*0*_Only options valid for the default or selected platform are'+
   '11025_F*0*_Only options valid for the default or selected platform are'+
-  ' l','isted.'#010+
+  ' listed.'#010+
   '**0*_Put + after a boolean switch option to enable it, - to disable it'+
   '**0*_Put + after a boolean switch option to enable it, - to disable it'+
   '.'#010+
   '.'#010+
-  '**1@<x>_Read compiler options from <x> in addition to the default fpc.'+
-  'cfg'#010+
+  '**1@<x>_Read compiler options from <x> in add','ition to the default fp'+
+  'c.cfg'#010+
   '**1a_The compiler does not delete the generated assembler file'#010+
   '**1a_The compiler does not delete the generated assembler file'#010+
-  '**2a5_Don'#039't generate Big',' Obj COFF files for GNU Binutils older t'+
-  'han 2.25 (Windows, NativeNT)'#010+
+  '**2a5_Don'#039't generate Big Obj COFF files for GNU Binutils older tha'+
+  'n 2.25 (Windows, NativeNT)'#010+
   '**2al_List sourcecode lines in assembler file'#010+
   '**2al_List sourcecode lines in assembler file'#010+
-  '**2an_List node info in assembler file (-dEXTDEBUG compiler)'#010+
-  '**2ao_Add an extra option to external assembler call (ignored fo','r in'+
-  'ternal)'#010+
+  '**2an_Lis','t node info in assembler file (-dEXTDEBUG compiler)'#010+
+  '**2ao_Add an extra option to external assembler call (ignored for inte'+
+  'rnal)'#010+
   '*L2ap_Use pipes instead of creating temporary assembler files'#010+
   '*L2ap_Use pipes instead of creating temporary assembler files'#010+
-  '**2ar_List register allocation/release info in assembler file'#010+
+  '**2ar_List register allocation/release info in ass','embler file'#010+
   '**2at_List temp allocation/release info in assembler file'#010+
   '**2at_List temp allocation/release info in assembler file'#010+
   '**1A<x>_Output format:'#010+
   '**1A<x>_Output format:'#010+
-  '**2Adefault_Use default',' assembler'#010+
+  '**2Adefault_Use default assembler'#010+
   '3*2Aas_Assemble using GNU AS'#010+
   '3*2Aas_Assemble using GNU AS'#010+
   '3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+
   '3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+
-  '8*2Anasm_Assemble using Nasm'#010+
+  '8*2Anasm_Assemble usin','g Nasm'#010+
   '8*2Anasmobj_Assemble using Nasm'#010+
   '8*2Anasmobj_Assemble using Nasm'#010+
   '3*2Anasm_Assemble using Nasm'#010+
   '3*2Anasm_Assemble using Nasm'#010+
   '3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+
   '3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+
-  '3*2An','asmelf_ELF32 (Linux) file using Nasm'#010+
+  '3*2Anasmelf_ELF32 (Linux) file using Nasm'#010+
   '3*2Anasmwin32_Win32 object file using Nasm'#010+
   '3*2Anasmwin32_Win32 object file using Nasm'#010+
-  '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+
+  '3*2Anasmwdosx_Win32/WDOSX object file using ','Nasm'#010+
   '3*2Anasmdarwin_macho32 object file using Nasm (experimental)'#010+
   '3*2Anasmdarwin_macho32 object file using Nasm (experimental)'#010+
   '3*2Awasm_Obj file using Wasm (Watcom)'#010+
   '3*2Awasm_Obj file using Wasm (Watcom)'#010+
-  '3*2Anasmobj_','Obj file using Nasm'#010+
+  '3*2Anasmobj_Obj file using Nasm'#010+
   '3*2Amasm_Obj file using Masm (Microsoft)'#010+
   '3*2Amasm_Obj file using Masm (Microsoft)'#010+
   '3*2Atasm_Obj file using Tasm (Borland)'#010+
   '3*2Atasm_Obj file using Tasm (Borland)'#010+
-  '3*2Aelf_ELF (Linux) using internal writer'#010+
+  '3*2Aelf_ELF (Linux) usin','g internal writer'#010+
   '3*2Acoff_COFF (Go32v2) using internal writer'#010+
   '3*2Acoff_COFF (Go32v2) using internal writer'#010+
   '3*2Apecoff_PE-COFF (Win32) using internal writer'#010+
   '3*2Apecoff_PE-COFF (Win32) using internal writer'#010+
-  '3*2A','yasm_Assemble using Yasm (experimental)'#010+
+  '3*2Ayasm_Assemble using Yasm (experimental)'#010+
   '4*2Aas_Assemble using GNU AS'#010+
   '4*2Aas_Assemble using GNU AS'#010+
   '4*2Agas_Assemble using GNU GAS'#010+
   '4*2Agas_Assemble using GNU GAS'#010+
-  '4*2Agas-darwin_Assemble darwin Mach-O64 using GNU GAS'#010+
+  '4*2Agas-darwin_Assemble ','darwin Mach-O64 using GNU GAS'#010+
   '4*2Amasm_Win64 object file using ml64 (Microsoft)'#010+
   '4*2Amasm_Win64 object file using ml64 (Microsoft)'#010+
-  '4*2Apecoff_PE-COFF (Win64) using int','ernal writer'#010+
+  '4*2Apecoff_PE-COFF (Win64) using internal writer'#010+
   '4*2Aelf_ELF (Linux-64bit) using internal writer'#010+
   '4*2Aelf_ELF (Linux-64bit) using internal writer'#010+
   '4*2Ayasm_Assemble using Yasm (experimental)'#010+
   '4*2Ayasm_Assemble using Yasm (experimental)'#010+
-  '4*2Anasm_Assemble using Nasm (experimental)'#010+
+  '4*2Anasm_Assemble u','sing Nasm (experimental)'#010+
   '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+
   '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+
-  '4*2Anasmelf_Assemble Lin','ux-64bit object file using Nasm (experimenta'+
-  'l)'#010+
+  '4*2Anasmelf_Assemble Linux-64bit object file using Nasm (experimental)'+
+  #010+
   '4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+
   '4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+
-  'ental)'#010+
+  'ental)'#010,
   '6*2Aas_Unix o-file using GNU AS'#010+
   '6*2Aas_Unix o-file using GNU AS'#010+
   '6*2Agas_GNU Motorola assembler'#010+
   '6*2Agas_GNU Motorola assembler'#010+
   '6*2Amit_MIT Syntax (old GAS)'#010+
   '6*2Amit_MIT Syntax (old GAS)'#010+
-  '6*2Amot_Standard Motorol','a assembler'#010+
+  '6*2Amot_Standard Motorola assembler'#010+
   'A*2Aas_Assemble using GNU AS'#010+
   'A*2Aas_Assemble using GNU AS'#010+
   'P*2Aas_Assemble using GNU AS'#010+
   'P*2Aas_Assemble using GNU AS'#010+
   'S*2Aas_Assemble using GNU AS'#010+
   'S*2Aas_Assemble using GNU AS'#010+
-  '**1b_Generate browser info'#010+
+  '**1b_Generate browser inf','o'#010+
   '**2bl_Generate local symbol info'#010+
   '**2bl_Generate local symbol info'#010+
   '**1B_Build all modules'#010+
   '**1B_Build all modules'#010+
   '**1C<x>_Code generation options:'#010+
   '**1C<x>_Code generation options:'#010+
-  '**2C3_Turn on ieee error ','checking for constants'#010+
+  '**2C3_Turn on ieee error checking for constants'#010+
   '**2Ca<x>_Select ABI; see fpc -i or fpc -ia for possible values'#010+
   '**2Ca<x>_Select ABI; see fpc -i or fpc -ia for possible values'#010+
-  '**2Cb_Generate code for a big-endian variant of the target architectur'+
-  'e'#010+
+  '**2Cb_Generate code for a big-endian v','ariant of the target architect'+
+  'ure'#010+
   '**2Cc<x>_Set default calling convention to <x>'#010+
   '**2Cc<x>_Set default calling convention to <x>'#010+
-  '**2CD_Create also dynamic library (','not supported)'#010+
+  '**2CD_Create also dynamic library (not supported)'#010+
   '**2Ce_Compilation with emulated floating point opcodes'#010+
   '**2Ce_Compilation with emulated floating point opcodes'#010+
   '**2CE_Generate FPU code which can raise exceptions'#010+
   '**2CE_Generate FPU code which can raise exceptions'#010+
-  '**2Cf<x>_Select fpu instruction set to use; see fpc -i or fpc -if for '+
-  'possible values'#010+
-  '**2CF<x>_Minimal floating point c','onstant precision (default, 32, 64)'+
-  #010+
+  '**2','Cf<x>_Select fpu instruction set to use; see fpc -i or fpc -if fo'+
+  'r possible values'#010+
+  '**2CF<x>_Minimal floating point constant precision (default, 32, 64)'#010+
   '**2Cg_Generate PIC code'#010+
   '**2Cg_Generate PIC code'#010+
-  '**2Ch<n>[,m]_<n> bytes min heap size (between 1023 and 67107840) and o'+
-  'ptionally [m] max heap size'#010+
+  '**2Ch<n>[,m]_<n> bytes min heap size (between 1023 and 67107840)',' and'+
+  ' optionally [m] max heap size'#010+
   '**2Ci_IO-checking'#010+
   '**2Ci_IO-checking'#010+
   'A*2CI<x>_Select instruction set on ARM: ARM or THUMB'#010+
   'A*2CI<x>_Select instruction set on ARM: ARM or THUMB'#010+
-  'L*2CL<x>_LL','VM code generation options'#010+
+  'L*2CL<x>_LLVM code generation options'#010+
   'L*3CLflto_Enable Link-time optimisation (needed both when compiling un'+
   'L*3CLflto_Enable Link-time optimisation (needed both when compiling un'+
-  'its and programs/libraries)'#010+
+  'its and programs/libraries)',#010+
   'L*3CLfltonosystem_Disable LTO for the system unit (needed with at leas'+
   'L*3CLfltonosystem_Disable LTO for the system unit (needed with at leas'+
-  't Xcode 10.2 and earlier due to linker bugs)'#010,
+  't Xcode 10.2 and earlier due to linker bugs)'#010+
   'L*3CLv<x>_LLVM target version: 3.3, 3.4, .., Xcode-6.4, .., Xcode-10.1'+
   'L*3CLv<x>_LLVM target version: 3.3, 3.4, .., Xcode-6.4, .., Xcode-10.1'+
   ', 7.0, 8.0'#010+
   ', 7.0, 8.0'#010+
   '**2Cn_Omit linking stage'#010+
   '**2Cn_Omit linking stage'#010+
-  'P*2CN_Generate nil-pointer checks (AIX-only)'#010+
+  'P*2CN_Generate nil','-pointer checks (AIX-only)'#010+
   '**2Co_Check overflow of integer operations'#010+
   '**2Co_Check overflow of integer operations'#010+
-  '**2CO_Check for possible overflow of integer o','perations'#010+
+  '**2CO_Check for possible overflow of integer operations'#010+
   '**2Cp<x>_Select instruction set; see fpc -i or fpc -ic for possible va'+
   '**2Cp<x>_Select instruction set; see fpc -i or fpc -ic for possible va'+
   'lues'#010+
   'lues'#010+
   '**2CP<x>=<y>_ packing settings'#010+
   '**2CP<x>=<y>_ packing settings'#010+
-  '**3CPPACKSET=<y>_ <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 '+
-  'and 8'#010+
-  '**3CPPACKENUM=<y>_ <y> enum packing: 0, 1, 2 and',' 4 or DEFAULT or NOR'+
-  'MAL'#010+
+  '**3CPPAC','KSET=<y>_ <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, '+
+  '4 and 8'#010+
+  '**3CPPACKENUM=<y>_ <y> enum packing: 0, 1, 2 and 4 or DEFAULT or NORMA'+
+  'L'#010+
   '**3CPPACKRECORD=<y>_ <y> record packing: 0 or DEFAULT or NORMAL, 1, 2,'+
   '**3CPPACKRECORD=<y>_ <y> record packing: 0 or DEFAULT or NORMAL, 1, 2,'+
   ' 4, 8, 16 and 32'#010+
   ' 4, 8, 16 and 32'#010+
-  '**2Cr_Range checking'#010+
+  '**2Cr_Range c','hecking'#010+
   '**2CR_Verify object method call validity'#010+
   '**2CR_Verify object method call validity'#010+
   '**2Cs<n>_Set stack checking size to <n>'#010+
   '**2Cs<n>_Set stack checking size to <n>'#010+
-  '**2Ct_Stack checking (for t','esting only, see manual)'#010+
+  '**2Ct_Stack checking (for testing only, see manual)'#010+
   '8*2CT<x>_Target-specific code generation options'#010+
   '8*2CT<x>_Target-specific code generation options'#010+
   '3*2CT<x>_Target-specific code generation options'#010+
   '3*2CT<x>_Target-specific code generation options'#010+
-  '4*2CT<x>_Target-specific code generation options'#010+
+  '4','*2CT<x>_Target-specific code generation options'#010+
   'p*2CT<x>_Target-specific code generation options'#010+
   'p*2CT<x>_Target-specific code generation options'#010+
-  'P*2CT<x>_Target-spe','cific code generation options'#010+
+  'P*2CT<x>_Target-specific code generation options'#010+
   'J*2CT<x>_Target-specific code generation options'#010+
   'J*2CT<x>_Target-specific code generation options'#010+
-  'A*2CT<x>_Target-specific code generation options'#010+
+  'A*2CT<x>_Target-specific code generation opti','ons'#010+
   'p*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+
   'p*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+
   ' (AIX)'#010+
   ' (AIX)'#010+
-  'P*3CTsmalltoc_ Generate smaller TOC','s at the expense of execution spe'+
-  'ed (AIX)'#010+
+  'P*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+
+  ' (AIX)'#010+
   'J*3CTautogetterprefix=X_  Automatically create getters for properties '+
   'J*3CTautogetterprefix=X_  Automatically create getters for properties '+
-  'with prefix X (empty string disables)'#010+
+  'with prefix ','X (empty string disables)'#010+
   'J*3CTautosetterprefix=X_  Automatically create setters for properties '+
   'J*3CTautosetterprefix=X_  Automatically create setters for properties '+
-  'with prefix X (empty',' string disables)'#010+
+  'with prefix X (empty string disables)'#010+
   '8*3CTcld_                 Emit a CLD instruction before using the x86 '+
   '8*3CTcld_                 Emit a CLD instruction before using the x86 '+
   'string instructions'#010+
   'string instructions'#010+
-  '3*3CTcld_                 Emit a CLD instruction before using the x86 '+
-  'string instructions'#010+
-  '4*3CTcld_                 Emit a CLD instr','uction before using the x8'+
+  '3*3CTcld_       ','          Emit a CLD instruction before using the x8'+
   '6 string instructions'#010+
   '6 string instructions'#010+
+  '4*3CTcld_                 Emit a CLD instruction before using the x86 '+
+  'string instructions'#010+
   '8*3CTfarprocspushoddbp_       Increment BP before pushing it in the pr'+
   '8*3CTfarprocspushoddbp_       Increment BP before pushing it in the pr'+
-  'ologue of far functions'#010+
+  'ologue',' of far functions'#010+
   'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+
   'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+
-  'de for initializing integer ','array constants'#010+
+  'de for initializing integer array constants'#010+
   'J*3CTenumfieldinit_       Initialize enumeration fields in constructor'+
   'J*3CTenumfieldinit_       Initialize enumeration fields in constructor'+
-  's to enumtype(0), after calling inherited constructors'#010+
+  's to enumtype(0), after calling inheri','ted constructors'#010+
   'J*3CTinitlocals_          Initialize local variables that trigger a JV'+
   'J*3CTinitlocals_          Initialize local variables that trigger a JV'+
-  'M bytecode verification error',' if used uninitialized (slows down code'+
-  ')'#010+
+  'M bytecode verification error if used uninitialized (slows down code)'#010+
   'J*3CTlowercaseprocstart_  Lowercase the first character of procedure/f'+
   'J*3CTlowercaseprocstart_  Lowercase the first character of procedure/f'+
-  'unction/method names'#010+
+  'unction/metho','d names'#010+
   'A*3CTthumbinterworking_ Generate Thumb interworking-safe code if possi'+
   'A*3CTthumbinterworking_ Generate Thumb interworking-safe code if possi'+
   'ble'#010+
   'ble'#010+
-  'J*2Cv_Var/out parameter copy-out c','hecking'#010+
+  'J*2Cv_Var/out parameter copy-out checking'#010+
   '**2CX_Create also smartlinked library'#010+
   '**2CX_Create also smartlinked library'#010+
   '**1d<x>_Defines the symbol <x>'#010+
   '**1d<x>_Defines the symbol <x>'#010+
   '**1D_Generate a DEF file'#010+
   '**1D_Generate a DEF file'#010+
-  '**2Dd<x>_Set description to <x>'#010+
+  '**2Dd<x>_Set descripti','on to <x>'#010+
   '**2Dv<x>_Set DLL version to <x>'#010+
   '**2Dv<x>_Set DLL version to <x>'#010+
   '*O2Dw_PM application'#010+
   '*O2Dw_PM application'#010+
   '**1e<x>_Set path to executable'#010+
   '**1e<x>_Set path to executable'#010+
   '**1E_Same as -Cn'#010+
   '**1E_Same as -Cn'#010+
-  '**1fP','IC_Same as -Cg'#010+
+  '**1fPIC_Same as -Cg'#010+
   '**1F<x>_Set file names and paths:'#010+
   '**1F<x>_Set file names and paths:'#010+
   '**2Fa<x>[,y]_(for a program) load units <x> and [y] before uses is par'+
   '**2Fa<x>[,y]_(for a program) load units <x> and [y] before uses is par'+
   'sed'#010+
   'sed'#010+
-  '**2Fc<x>_Set input codepage to <x>'#010+
+  '*','*2Fc<x>_Set input codepage to <x>'#010+
   '**2FC<x>_Set RC compiler binary name to <x>'#010+
   '**2FC<x>_Set RC compiler binary name to <x>'#010+
-  '**2Fd_Disable the compiler'#039's internal ','directory cache'#010+
+  '**2Fd_Disable the compiler'#039's internal directory cache'#010+
   '**2FD<x>_Set the directory where to search for compiler utilities'#010+
   '**2FD<x>_Set the directory where to search for compiler utilities'#010+
   '**2Fe<x>_Redirect error output to <x>'#010+
   '**2Fe<x>_Redirect error output to <x>'#010+
-  '**2Ff<x>_Add <x> to framework path (Darwin only)'#010+
+  '**2F','f<x>_Add <x> to framework path (Darwin only)'#010+
   '**2FE<x>_Set exe/unit output path to <x>'#010+
   '**2FE<x>_Set exe/unit output path to <x>'#010+
-  '**2Fi<x>_Add <x> to include pa','th'#010+
+  '**2Fi<x>_Add <x> to include path'#010+
   '**2Fl<x>_Add <x> to library path'#010+
   '**2Fl<x>_Add <x> to library path'#010+
   '**2FL<x>_Use <x> as dynamic linker'#010+
   '**2FL<x>_Use <x> as dynamic linker'#010+
-  '**2Fm<x>_Load unicode conversion table from <x>.txt in the compiler di'+
-  'r'#010+
+  '**2Fm<x>_Load unicode conversion table from <x>.txt i','n the compiler '+
+  'dir'#010+
   '**2FM<x>_Set the directory where to search for unicode binary files'#010+
   '**2FM<x>_Set the directory where to search for unicode binary files'#010+
-  '**2FN<x>_Add <x> to list of d','efault unit scopes (namespaces)'#010+
+  '**2FN<x>_Add <x> to list of default unit scopes (namespaces)'#010+
   '**2Fo<x>_Add <x> to object path'#010+
   '**2Fo<x>_Add <x> to object path'#010+
   '**2Fr<x>_Load error message file <x>'#010+
   '**2Fr<x>_Load error message file <x>'#010+
-  '**2FR<x>_Set resource (.res) linker to <x>'#010+
+  '**2FR<x>_Set resource (','.res) linker to <x>'#010+
   '**2Fu<x>_Add <x> to unit path'#010+
   '**2Fu<x>_Add <x> to unit path'#010+
   '**2FU<x>_Set unit output path to <x>, overrides -FE'#010+
   '**2FU<x>_Set unit output path to <x>, overrides -FE'#010+
-  '**2FW<x>_Store',' generated whole-program optimization feedback in <x>'#010+
-  '**2Fw<x>_Load previously stored whole-program optimization feedback fr'+
+  '**2FW<x>_Store generated whole-program optimization feedback in <x>'#010+
+  '**2Fw<x>_Load previously stored whole-program optimization feedback fr',
   'om <x>'#010+
   'om <x>'#010+
   '*g1g_Generate debug information (default format for target)'#010+
   '*g1g_Generate debug information (default format for target)'#010+
-  '*g2gc_Generate checks for pointers (experimental,',' only available on '+
-  'some targets, might generate false positive)'#010+
-  '*g2gh_Use heaptrace unit (for memory leak/corruption debugging)'#010+
+  '*g2gc_Generate checks for pointers (experimental, only available on so'+
+  'me targets, might generate false positive)'#010+
+  '*g2gh_Use heaptrace unit (for memory leak/corruption debuggi','ng)'#010+
   '*g2gl_Use line info unit (show more info with backtraces)'#010+
   '*g2gl_Use line info unit (show more info with backtraces)'#010+
-  '*g2gm_Generate Microsoft CodeView debug information (e','xperimental)'#010+
+  '*g2gm_Generate Microsoft CodeView debug information (experimental)'#010+
   '*g2go<x>_Set debug information options'#010+
   '*g2go<x>_Set debug information options'#010+
   '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+
   '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+
-  'aks gdb < 6.5)'#010+
+  'aks gdb < ','6.5)'#010+
   '*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+
   '*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+
   #010+
   #010+
-  '*g3godwarfmethodclassprefix_ Prefix meth','od names in DWARF with class'+
-  ' name'#010+
+  '*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class n'+
+  'ame'#010+
   '*g3godwarfcpp_ Simulate C++ debug information in DWARF'#010+
   '*g3godwarfcpp_ Simulate C++ debug information in DWARF'#010+
-  '*g3godwarfomflinnum_ Generate line number information in OMF LINNUM re'+
-  'cords in MS LINK format in addition to the DWARF debug information (Op'+
-  'en Watcom D','ebugger/Linker compatibility)'#010+
+  '*g3godwarfomflinnum_ Generate line ','number information in OMF LINNUM '+
+  'records in MS LINK format in addition to the DWARF debug information ('+
+  'Open Watcom Debugger/Linker compatibility)'#010+
   '*g2gp_Preserve case in stabs symbol names'#010+
   '*g2gp_Preserve case in stabs symbol names'#010+
   '*g2gs_Generate Stabs debug information'#010+
   '*g2gs_Generate Stabs debug information'#010+
-  '*g2gt_Trash local variables (to detect uninitialized uses; multiple '#039+
-  't'#039' changes the trashing value)'#010+
-  '*g2gv_Generates programs trac','eable with Valgrind'#010+
+  '*g2gt_Trash l','ocal variables (to detect uninitialized uses; multiple '+
+  #039't'#039' changes the trashing value)'#010+
+  '*g2gv_Generates programs traceable with Valgrind'#010+
   '*g2gw_Generate DWARFv2 debug information (same as -gw2)'#010+
   '*g2gw_Generate DWARFv2 debug information (same as -gw2)'#010+
   '*g2gw2_Generate DWARFv2 debug information'#010+
   '*g2gw2_Generate DWARFv2 debug information'#010+
-  '*g2gw3_Generate DWARFv3 debug information'#010+
+  '*g2gw3','_Generate DWARFv3 debug information'#010+
   '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+
   '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+
   '**1i_Information'#010+
   '**1i_Information'#010+
-  '**2iD_','Return compiler date'#010+
+  '**2iD_Return compiler date'#010+
   '**2iSO_Return compiler OS'#010+
   '**2iSO_Return compiler OS'#010+
   '**2iSP_Return compiler host processor'#010+
   '**2iSP_Return compiler host processor'#010+
   '**2iTO_Return target OS'#010+
   '**2iTO_Return target OS'#010+
-  '**2iTP_Return target processor'#010+
+  '**2iTP_Return t','arget processor'#010+
   '**2iV_Return short compiler version'#010+
   '**2iV_Return short compiler version'#010+
   '**2iW_Return full compiler version'#010+
   '**2iW_Return full compiler version'#010+
-  '**2ia_Return list of supporte','d ABI targets'#010+
+  '**2ia_Return list of supported ABI targets'#010+
   '**2ic_Return list of supported CPU instruction sets'#010+
   '**2ic_Return list of supported CPU instruction sets'#010+
   '**2if_Return list of supported FPU instruction sets'#010+
   '**2if_Return list of supported FPU instruction sets'#010+
-  '**2ii_Return list of supported inline assembler modes'#010+
+  '**2ii_','Return list of supported inline assembler modes'#010+
   '**2io_Return list of supported optimizations'#010+
   '**2io_Return list of supported optimizations'#010+
-  '**2ir_Return list of re','cognized compiler and RTL features'#010+
+  '**2ir_Return list of recognized compiler and RTL features'#010+
   '**2it_Return list of supported targets'#010+
   '**2it_Return list of supported targets'#010+
-  '**2iu_Return list of supported microcontroller types'#010+
+  '**2iu_Return list of supported microcontroller typ','es'#010+
   '**2iw_Return list of supported whole program optimizations'#010+
   '**2iw_Return list of supported whole program optimizations'#010+
   '**1I<x>_Add <x> to include path'#010+
   '**1I<x>_Add <x> to include path'#010+
-  '**1k<x>_Pass <x> to th','e linker'#010+
+  '**1k<x>_Pass <x> to the linker'#010+
   '**1l_Write logo'#010+
   '**1l_Write logo'#010+
   '**1M<x>_Set language mode to <x>'#010+
   '**1M<x>_Set language mode to <x>'#010+
   '**2Mfpc_Free Pascal dialect (default)'#010+
   '**2Mfpc_Free Pascal dialect (default)'#010+
-  '**2Mobjfpc_FPC mode with Object Pascal support'#010+
+  '**2Mobjfpc_FPC mode with Obj','ect Pascal support'#010+
   '**2Mdelphi_Delphi 7 compatibility mode'#010+
   '**2Mdelphi_Delphi 7 compatibility mode'#010+
   '**2Mtp_TP/BP 7.0 compatibility mode'#010+
   '**2Mtp_TP/BP 7.0 compatibility mode'#010+
-  '**2Mmacpas_Macintosh P','ascal dialects compatibility mode'#010+
+  '**2Mmacpas_Macintosh Pascal dialects compatibility mode'#010+
   '**2Miso_ISO 7185 mode'#010+
   '**2Miso_ISO 7185 mode'#010+
   '**2Mextendedpascal_ISO 10206 mode'#010+
   '**2Mextendedpascal_ISO 10206 mode'#010+
-  '**2Mdelphiunicode_Delphi 2009 and later compatibility mode'#010+
+  '**2Mdelphiunicode_Delphi 2009 and ','later compatibility mode'#010+
   '**1n_Do not read the default config files'#010+
   '**1n_Do not read the default config files'#010+
-  '**1o<x>_Change the name of the executable produce','d to <x>'#010+
+  '**1o<x>_Change the name of the executable produced to <x>'#010+
   '**1O<x>_Optimizations:'#010+
   '**1O<x>_Optimizations:'#010+
   '**2O-_Disable optimizations'#010+
   '**2O-_Disable optimizations'#010+
   '**2O1_Level 1 optimizations (quick and debugger friendly)'#010+
   '**2O1_Level 1 optimizations (quick and debugger friendly)'#010+
-  '**2O2_Level 2 optimizations (-O1 + quick optimizations)'#010+
+  '**2O2_','Level 2 optimizations (-O1 + quick optimizations)'#010+
   '**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+
   '**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+
-  '**2O4_Level',' 4 optimizations (-O3 + optimizations which might have un'+
-  'expected side effects)'#010+
+  '**2O4_Level 4 optimizations (-O3 + optimizations which might have unex'+
+  'pected side effects)'#010+
   '**2Oa<x>=<y>_Set alignment'#010+
   '**2Oa<x>=<y>_Set alignment'#010+
-  '**2Oo[NO]<x>_Enable or disable optimizations; see fpc -i or fpc -io fo'+
-  'r possible values'#010+
-  '**2Op<x>_Set target cpu for optimizing; see f','pc -i or fpc -ic for po'+
-  'ssible values'#010+
+  '**2Oo[NO]<x>_Enab','le or disable optimizations; see fpc -i or fpc -io '+
+  'for possible values'#010+
+  '**2Op<x>_Set target cpu for optimizing; see fpc -i or fpc -ic for poss'+
+  'ible values'#010+
   '**2OW<x>_Generate whole-program optimization feedback for optimization'+
   '**2OW<x>_Generate whole-program optimization feedback for optimization'+
-  ' <x>; see fpc -i or fpc -iw for possible values'#010+
+  ' <x>; see fpc -i ','or fpc -iw for possible values'#010+
   '**2Ow<x>_Perform whole-program optimization <x>; see fpc -i or fpc -iw'+
   '**2Ow<x>_Perform whole-program optimization <x>; see fpc -i or fpc -iw'+
-  ' for possible v','alues'#010+
+  ' for possible values'#010+
   '**2Os_Optimize for size rather than speed'#010+
   '**2Os_Optimize for size rather than speed'#010+
   '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+
   '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+
-  'F*1P<x>_Target CPU / compiler related options:'#010+
+  'F*1P<x>_Target C','PU / compiler related options:'#010+
   'F*2PB_Show default compiler binary'#010+
   'F*2PB_Show default compiler binary'#010+
   'F*2PP_Show default target cpu'#010+
   'F*2PP_Show default target cpu'#010+
-  'F*2P<x>_Set target C','PU (aarch64,arm,avr,i386,i8086,jvm,m68k,mips,mip'+
-  'sel,powerpc,powerpc64,sparc,x86_64)'#010+
+  'F*2P<x>_Set target CPU (aarch64,arm,avr,i386,i8086,jvm,m68k,mips,mipse'+
+  'l,powerpc,powerpc64,sparc,x86_64)'#010+
   '**1R<x>_Assembler reading style:'#010+
   '**1R<x>_Assembler reading style:'#010+
-  '**2Rdefault_Use default assembler for target'#010+
+  '**2Rdef','ault_Use default assembler for target'#010+
   '3*2Ratt_Read AT&T style assembler'#010+
   '3*2Ratt_Read AT&T style assembler'#010+
   '3*2Rintel_Read Intel style assembler'#010+
   '3*2Rintel_Read Intel style assembler'#010+
-  '4*2Ratt','_Read AT&T style assembler'#010+
+  '4*2Ratt_Read AT&T style assembler'#010+
   '4*2Rintel_Read Intel style assembler'#010+
   '4*2Rintel_Read Intel style assembler'#010+
   '8*2Ratt_Read AT&T style assembler'#010+
   '8*2Ratt_Read AT&T style assembler'#010+
-  '8*2Rintel_Read Intel style assembler'#010+
+  '8*2Rintel_Read Intel style',' assembler'#010+
   '6*2RMOT_Read Motorola style assembler'#010+
   '6*2RMOT_Read Motorola style assembler'#010+
   '**1S<x>_Syntax options:'#010+
   '**1S<x>_Syntax options:'#010+
   '**2S2_Same as -Mobjfpc'#010+
   '**2S2_Same as -Mobjfpc'#010+
-  '**2Sc_Support operat','ors like C (*=,+=,/= and -=)'#010+
+  '**2Sc_Support operators like C (*=,+=,/= and -=)'#010+
   '**2Sa_Turn on assertions'#010+
   '**2Sa_Turn on assertions'#010+
   '**2Sd_Same as -Mdelphi'#010+
   '**2Sd_Same as -Mdelphi'#010+
-  '**2Se<x>_Error options. <x> is a combination of the following:'#010+
+  '**2Se<x>_Error options. <x> is a combination of',' the following:'#010+
   '**3*_<n> : Compiler halts after the <n> errors (default is 1)'#010+
   '**3*_<n> : Compiler halts after the <n> errors (default is 1)'#010+
-  '**3*_w : Compiler also halts after war','nings'#010+
+  '**3*_w : Compiler also halts after warnings'#010+
   '**3*_n : Compiler also halts after notes'#010+
   '**3*_n : Compiler also halts after notes'#010+
   '**3*_h : Compiler also halts after hints'#010+
   '**3*_h : Compiler also halts after hints'#010+
-  '**2Sf_Enable certain features in compiler and RTL; see fpc -i or fpc -'+
-  'ir for possible values)'#010+
-  '**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)',#010+
+  '**2Sf_Enable certain features in com','piler and RTL; see fpc -i or fpc'+
+  ' -ir for possible values)'#010+
+  '**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)'#010+
   '**2Sh_Use reference counted strings (ansistring by default) instead of'+
   '**2Sh_Use reference counted strings (ansistring by default) instead of'+
   ' shortstrings'#010+
   ' shortstrings'#010+
-  '**2Si_Turn on inlining of procedures/functions declared as "inline"'#010+
+  '**2Si_Turn on inlining of procedures/fu','nctions declared as "inline"'#010+
   '**2Sj_Allows typed constants to be writeable (default in all modes)'#010+
   '**2Sj_Allows typed constants to be writeable (default in all modes)'#010+
-  '**2Sk_Load fpcylix ','unit'#010+
+  '**2Sk_Load fpcylix unit'#010+
   '**2SI<x>_Set interface style to <x>'#010+
   '**2SI<x>_Set interface style to <x>'#010+
   '**3SIcom_COM compatible interface (default)'#010+
   '**3SIcom_COM compatible interface (default)'#010+
   '**3SIcorba_CORBA compatible interface'#010+
   '**3SIcorba_CORBA compatible interface'#010+
-  '**2Sm_Support macros like C (global)'#010+
+  '*','*2Sm_Support macros like C (global)'#010+
   '**2So_Same as -Mtp'#010+
   '**2So_Same as -Mtp'#010+
   '**2Sr_Transparent file names in ISO mode'#010+
   '**2Sr_Transparent file names in ISO mode'#010+
-  '**2Ss_Constructor na','me must be init (destructor must be done)'#010+
+  '**2Ss_Constructor name must be init (destructor must be done)'#010+
   '**2Sv_Support vector processing (use CPU vector extensions if availabl'+
   '**2Sv_Support vector processing (use CPU vector extensions if availabl'+
   'e)'#010+
   'e)'#010+
-  '**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes)'#010+
+  '**2Sx_Ena','ble exception keywords (default in Delphi/ObjFPC modes)'#010+
   '**2Sy_@<pointer> returns a typed pointer, same as $T+'#010+
   '**2Sy_@<pointer> returns a typed pointer, same as $T+'#010+
-  '**1s_D','o not call assembler and linker'#010+
+  '**1s_Do not call assembler and linker'#010+
   '**2sh_Generate script to link on host'#010+
   '**2sh_Generate script to link on host'#010+
   '**2st_Generate script to link on target'#010+
   '**2st_Generate script to link on target'#010+
-  '**2sr_Skip register allocation phase (use with -alr)'#010+
+  '**2sr_Skip reg','ister allocation phase (use with -alr)'#010+
   '**1T<x>_Target operating system:'#010+
   '**1T<x>_Target operating system:'#010+
   '3*2Tandroid_Android'#010+
   '3*2Tandroid_Android'#010+
   '3*2Taros_AROS'#010+
   '3*2Taros_AROS'#010+
-  '3*2Tbeos_B','eOS'#010+
+  '3*2Tbeos_BeOS'#010+
   '3*2Tdarwin_Darwin/Mac OS X'#010+
   '3*2Tdarwin_Darwin/Mac OS X'#010+
   '3*2Tembedded_Embedded'#010+
   '3*2Tembedded_Embedded'#010+
   '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+
   '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+
   '3*2Tfreebsd_FreeBSD'#010+
   '3*2Tfreebsd_FreeBSD'#010+
-  '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
+  '3','*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
   '3*2Thaiku_Haiku'#010+
   '3*2Thaiku_Haiku'#010+
-  '3*2Tiphonesim_iPhoneSimulator from iOS SDK 3.2+ (olde','r versions: -Td'+
-  'arwin)'#010+
+  '3*2Tiphonesim_iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tdar'+
+  'win)'#010+
   '3*2Tlinux_Linux'#010+
   '3*2Tlinux_Linux'#010+
   '3*2Tnativent_Native NT API (experimental)'#010+
   '3*2Tnativent_Native NT API (experimental)'#010+
   '3*2Tnetbsd_NetBSD'#010+
   '3*2Tnetbsd_NetBSD'#010+
-  '3*2Tnetware_Novell Netware Module (clib)'#010+
+  '3*2Tnetware_Novell Netware',' Module (clib)'#010+
   '3*2Tnetwlibc_Novell Netware Module (libc)'#010+
   '3*2Tnetwlibc_Novell Netware Module (libc)'#010+
   '3*2Topenbsd_OpenBSD'#010+
   '3*2Topenbsd_OpenBSD'#010+
   '3*2Tos2_OS/2 / eComStation'#010+
   '3*2Tos2_OS/2 / eComStation'#010+
-  '3*2Tsymbian_','Symbian OS'#010+
+  '3*2Tsymbian_Symbian OS'#010+
   '3*2Tsolaris_Solaris'#010+
   '3*2Tsolaris_Solaris'#010+
   '3*2Twatcom_Watcom compatible DOS extender'#010+
   '3*2Twatcom_Watcom compatible DOS extender'#010+
   '3*2Twdosx_WDOSX DOS extender'#010+
   '3*2Twdosx_WDOSX DOS extender'#010+
-  '3*2Twin32_Windows 32 Bit'#010+
+  '3*2Twin32_Windows 32 B','it'#010+
   '3*2Twince_Windows CE'#010+
   '3*2Twince_Windows CE'#010+
   '4*2Taros_AROS'#010+
   '4*2Taros_AROS'#010+
   '4*2Tdarwin_Darwin/Mac OS X'#010+
   '4*2Tdarwin_Darwin/Mac OS X'#010+
   '4*2Tdragonfly_DragonFly BSD'#010+
   '4*2Tdragonfly_DragonFly BSD'#010+
   '4*2Tembedded_Embedded'#010+
   '4*2Tembedded_Embedded'#010+
-  '4','*2Tfreebsd_FreeBSD'#010+
+  '4*2Tfreebsd_FreeBSD'#010+
   '4*2Tiphonesim_iPhoneSimulator'#010+
   '4*2Tiphonesim_iPhoneSimulator'#010+
   '4*2Tlinux_Linux'#010+
   '4*2Tlinux_Linux'#010+
   '4*2Tnetbsd_NetBSD'#010+
   '4*2Tnetbsd_NetBSD'#010+
   '4*2Topenbsd_OpenBSD'#010+
   '4*2Topenbsd_OpenBSD'#010+
   '4*2Tsolaris_Solaris'#010+
   '4*2Tsolaris_Solaris'#010+
-  '4*2Twin64_Win64 (64 bit Windows systems)'#010+
+  '4','*2Twin64_Win64 (64 bit Windows systems)'#010+
   '6*2Tamiga_Commodore Amiga'#010+
   '6*2Tamiga_Commodore Amiga'#010+
   '6*2Tatari_Atari ST/STe/TT'#010+
   '6*2Tatari_Atari ST/STe/TT'#010+
   '6*2Tembedded_Embedded'#010+
   '6*2Tembedded_Embedded'#010+
-  '6*','2Tlinux_Linux'#010+
+  '6*2Tlinux_Linux'#010+
   '6*2Tnetbsd_NetBSD'#010+
   '6*2Tnetbsd_NetBSD'#010+
   '6*2Tmacos_Mac OS'#010+
   '6*2Tmacos_Mac OS'#010+
   '6*2Tpalmos_PalmOS'#010+
   '6*2Tpalmos_PalmOS'#010+
   '8*2Tembedded_Embedded'#010+
   '8*2Tembedded_Embedded'#010+
   '8*2Tmsdos_MS-DOS (and compatible)'#010+
   '8*2Tmsdos_MS-DOS (and compatible)'#010+
-  '8*2Twin16_Windows 16 Bit'#010+
+  '8','*2Twin16_Windows 16 Bit'#010+
   'A*2Tandroid_Android'#010+
   'A*2Tandroid_Android'#010+
   'A*2Taros_AROS'#010+
   'A*2Taros_AROS'#010+
   'A*2Tdarwin_Darwin/iPhoneOS/iOS'#010+
   'A*2Tdarwin_Darwin/iPhoneOS/iOS'#010+
   'A*2Tembedded_Embedded'#010+
   'A*2Tembedded_Embedded'#010+
-  'A*2Tg','ba_Game Boy Advance'#010+
+  'A*2Tgba_Game Boy Advance'#010+
   'A*2Tlinux_Linux'#010+
   'A*2Tlinux_Linux'#010+
   'A*2Tnds_Nintendo DS'#010+
   'A*2Tnds_Nintendo DS'#010+
   'A*2Tnetbsd_NetBSD'#010+
   'A*2Tnetbsd_NetBSD'#010+
   'A*2Tpalmos_PalmOS'#010+
   'A*2Tpalmos_PalmOS'#010+
   'A*2Tsymbian_Symbian'#010+
   'A*2Tsymbian_Symbian'#010+
-  'A*2Twince_Windows CE'#010+
+  'A*2Twince_Wi','ndows CE'#010+
   'a*2Tdarwin_Darwin/iOS'#010+
   'a*2Tdarwin_Darwin/iOS'#010+
   'a*2Tlinux_Linux'#010+
   'a*2Tlinux_Linux'#010+
   'J*2Tandroid_Android'#010+
   'J*2Tandroid_Android'#010+
   'J*2Tjava_Java'#010+
   'J*2Tjava_Java'#010+
   'm*2Tandroid_Android'#010+
   'm*2Tandroid_Android'#010+
-  'm*2Tembedded_Em','bedded'#010+
+  'm*2Tembedded_Embedded'#010+
   'm*2Tlinux_Linux'#010+
   'm*2Tlinux_Linux'#010+
   'M*2Tembedded_Embedded'#010+
   'M*2Tembedded_Embedded'#010+
   'M*2Tlinux_Linux'#010+
   'M*2Tlinux_Linux'#010+
   'P*2Taix_AIX'#010+
   'P*2Taix_AIX'#010+
   'P*2Tamiga_AmigaOS'#010+
   'P*2Tamiga_AmigaOS'#010+
   'P*2Tdarwin_Darwin/Mac OS X'#010+
   'P*2Tdarwin_Darwin/Mac OS X'#010+
-  'P*2Tembedded_Embedded'#010+
+  'P*2Tem','bedded_Embedded'#010+
   'P*2Tlinux_Linux'#010+
   'P*2Tlinux_Linux'#010+
   'P*2Tmacos_Mac OS (classic)'#010+
   'P*2Tmacos_Mac OS (classic)'#010+
   'P*2Tmorphos_MorphOS'#010+
   'P*2Tmorphos_MorphOS'#010+
   'P*2Tnetbsd_NetBSD'#010+
   'P*2Tnetbsd_NetBSD'#010+
   'P*2Twii_Wii'#010+
   'P*2Twii_Wii'#010+
-  'p*2Taix','_AIX'#010+
+  'p*2Taix_AIX'#010+
   'p*2Tdarwin_Darwin/Mac OS X'#010+
   'p*2Tdarwin_Darwin/Mac OS X'#010+
   'p*2Tembedded_Embedded'#010+
   'p*2Tembedded_Embedded'#010+
   'p*2Tlinux_Linux'#010+
   'p*2Tlinux_Linux'#010+
   'R*2Tlinux_Linux'#010+
   'R*2Tlinux_Linux'#010+
   'R*2Tembedded_Embedded'#010+
   'R*2Tembedded_Embedded'#010+
-  'r*2Tlinux_Linux'#010+
+  'r*2Tlinux_Linux'#010,
   'r*2Tembedded_Embedded'#010+
   'r*2Tembedded_Embedded'#010+
   'S*2Tlinux_Linux'#010+
   'S*2Tlinux_Linux'#010+
   'S*2Tsolaris_Solaris'#010+
   'S*2Tsolaris_Solaris'#010+
   's*2Tlinux_Linux'#010+
   's*2Tlinux_Linux'#010+
   'V*2Tembedded_Embedded'#010+
   'V*2Tembedded_Embedded'#010+
-  '**1u<x>_Undefines th','e symbol <x>'#010+
+  '**1u<x>_Undefines the symbol <x>'#010+
   '**1U_Unit options:'#010+
   '**1U_Unit options:'#010+
   '**2Un_Do not check where the unit name matches the file name'#010+
   '**2Un_Do not check where the unit name matches the file name'#010+
-  '**2Ur_Generate release unit files (never automatically recompiled)'#010+
+  '**2Ur_Generate release unit fil','es (never automatically recompiled)'#010+
   '**2Us_Compile a system unit'#010+
   '**2Us_Compile a system unit'#010+
-  '**1v<x>_Be verbose. <x> is a combination of the foll','owing letters:'#010+
+  '**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
   '**2*_e : Show errors (default)       0 : Show nothing (except errors)'#010+
   '**2*_e : Show errors (default)       0 : Show nothing (except errors)'#010+
-  '**2*_w : Show warnings               u : Show unit info'#010+
+  '**2*_w : Show warnings               u ',': Show unit info'#010+
   '**2*_n : Show notes                  t : Show tried/used files'#010+
   '**2*_n : Show notes                  t : Show tried/used files'#010+
-  '**2*_h : Show hints                 ',' c : Show conditionals'#010+
+  '**2*_h : Show hints                  c : Show conditionals'#010+
   '**2*_i : Show general info           d : Show debug info'#010+
   '**2*_i : Show general info           d : Show debug info'#010+
-  '**2*_l : Show linenumbers            r : Rhide/GCC compatibility mode'#010+
+  '**2*_l : Show linenumbers            r : Rhi','de/GCC compatibility mod'+
+  'e'#010+
   '**2*_s : Show time stamps            q : Show message numbers'#010+
   '**2*_s : Show time stamps            q : Show message numbers'#010+
-  '**2*_a : Show everything    ','         x : Show info about invoked too'+
-  'ls'#010+
+  '**2*_a : Show everything             x : Show info about invoked tools'+
+  #010+
   '**2*_b : Write file names messages   p : Write tree.log with parse tre'+
   '**2*_b : Write file names messages   p : Write tree.log with parse tre'+
   'e'#010+
   'e'#010+
-  '**2*_    with full path              v : Write fpcdebug.txt with'#010+
-  '**2*_z : Write output to stderr          lots of debugging i','nfo'#010+
+  '**2*_    ','with full path              v : Write fpcdebug.txt with'#010+
+  '**2*_z : Write output to stderr          lots of debugging info'#010+
   '**2*_m<x>,<y> : Do not show messages numbered <x> and <y>'#010+
   '**2*_m<x>,<y> : Do not show messages numbered <x> and <y>'#010+
-  'F*1V<x>_Append '#039'-<x>'#039' to the used compiler binary name (e.g. f'+
+  'F*1V<x>_Append '#039'-<x>'#039' to the used compiler binary name (e.g. f',
   'or version)'#010+
   'or version)'#010+
   '**1W<x>_Target-specific options (targets)'#010+
   '**1W<x>_Target-specific options (targets)'#010+
   '3*2WA_Specify native type application (Windows)'#010+
   '3*2WA_Specify native type application (Windows)'#010+
-  '4*2WA_Specify ','native type application (Windows)'#010+
+  '4*2WA_Specify native type application (Windows)'#010+
   'A*2WA_Specify native type application (Windows)'#010+
   'A*2WA_Specify native type application (Windows)'#010+
-  '3*2Wb_Create a bundle instead of a library (Darwin)'#010+
+  '3*2Wb_Create a bundle instead of a library',' (Darwin)'#010+
   'P*2Wb_Create a bundle instead of a library (Darwin)'#010+
   'P*2Wb_Create a bundle instead of a library (Darwin)'#010+
   'p*2Wb_Create a bundle instead of a library (Darwin)'#010+
   'p*2Wb_Create a bundle instead of a library (Darwin)'#010+
-  'a*','2Wb_Create a bundle instead of a library (Darwin)'#010+
+  'a*2Wb_Create a bundle instead of a library (Darwin)'#010+
   'A*2Wb_Create a bundle instead of a library (Darwin)'#010+
   'A*2Wb_Create a bundle instead of a library (Darwin)'#010+
-  '4*2Wb_Create a bundle instead of a library (Darwin)'#010+
+  '4*2Wb_Create a bundle ','instead of a library (Darwin)'#010+
   '3*2WB_Create a relocatable image (Windows, Symbian)'#010+
   '3*2WB_Create a relocatable image (Windows, Symbian)'#010+
-  '3*2WB<x>_Set image base to <x> (Wi','ndows, Symbian)'#010+
+  '3*2WB<x>_Set image base to <x> (Windows, Symbian)'#010+
   '4*2WB_Create a relocatable image (Windows)'#010+
   '4*2WB_Create a relocatable image (Windows)'#010+
   '4*2WB<x>_Set image base to <x> (Windows)'#010+
   '4*2WB<x>_Set image base to <x> (Windows)'#010+
-  'A*2WB_Create a relocatable image (Windows, Symbian)'#010+
+  'A*2WB_Create a relocatab','le image (Windows, Symbian)'#010+
   'A*2WB<x>_Set image base to <x> (Windows, Symbian)'#010+
   'A*2WB<x>_Set image base to <x> (Windows, Symbian)'#010+
-  '3*2WC_Specify console type application',' (EMX, OS/2, Windows)'#010+
+  '3*2WC_Specify console type application (EMX, OS/2, Windows)'#010+
   '4*2WC_Specify console type application (Windows)'#010+
   '4*2WC_Specify console type application (Windows)'#010+
   'A*2WC_Specify console type application (Windows)'#010+
   'A*2WC_Specify console type application (Windows)'#010+
-  'P*2WC_Specify console type application (Classic Mac OS)'#010+
+  'P*2W','C_Specify console type application (Classic Mac OS)'#010+
   '3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
   '3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
-  '4*','2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
+  '4*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
   'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
   'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
-  '3*2We_Use external resources (Darwin)'#010+
+  '3*','2We_Use external resources (Darwin)'#010+
   '4*2We_Use external resources (Darwin)'#010+
   '4*2We_Use external resources (Darwin)'#010+
   'a*2We_Use external resources (Darwin)'#010+
   'a*2We_Use external resources (Darwin)'#010+
-  'A*2W','e_Use external resources (Darwin)'#010+
+  'A*2We_Use external resources (Darwin)'#010+
   'P*2We_Use external resources (Darwin)'#010+
   'P*2We_Use external resources (Darwin)'#010+
   'p*2We_Use external resources (Darwin)'#010+
   'p*2We_Use external resources (Darwin)'#010+
-  '3*2WF_Specify full-screen type application (EMX, OS/2)'#010+
+  '3*2WF_Specify ','full-screen type application (EMX, OS/2)'#010+
   '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+
   '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+
-  '4*2WG_Specify g','raphic type application (Windows)'#010+
+  '4*2WG_Specify graphic type application (Windows)'#010+
   'A*2WG_Specify graphic type application (Windows)'#010+
   'A*2WG_Specify graphic type application (Windows)'#010+
-  'P*2WG_Specify graphic type application (Classic Mac OS)'#010+
+  'P*2WG_Specify graphic type application (C','lassic Mac OS)'#010+
   '3*2Wi_Use internal resources (Darwin)'#010+
   '3*2Wi_Use internal resources (Darwin)'#010+
   '4*2Wi_Use internal resources (Darwin)'#010+
   '4*2Wi_Use internal resources (Darwin)'#010+
-  'a*2Wi_Use internal resour','ces (Darwin)'#010+
+  'a*2Wi_Use internal resources (Darwin)'#010+
   'A*2Wi_Use internal resources (Darwin)'#010+
   'A*2Wi_Use internal resources (Darwin)'#010+
   'P*2Wi_Use internal resources (Darwin)'#010+
   'P*2Wi_Use internal resources (Darwin)'#010+
-  'p*2Wi_Use internal resources (Darwin)'#010+
+  'p*2Wi_Use internal resources (Darwi','n)'#010+
   '3*2WI_Turn on/off the usage of import sections (Windows)'#010+
   '3*2WI_Turn on/off the usage of import sections (Windows)'#010+
-  '4*2WI_Turn on/off the usage of import sections (Windows)',#010+
+  '4*2WI_Turn on/off the usage of import sections (Windows)'#010+
   'A*2WI_Turn on/off the usage of import sections (Windows)'#010+
   'A*2WI_Turn on/off the usage of import sections (Windows)'#010+
-  '8*2Wh_Use huge code for units (ignored for models with CODE in a uniqu'+
-  'e segment)'#010+
+  '8*2Wh_Use huge code for units (ignored for models with CODE in a u','ni'+
+  'que segment)'#010+
   '8*2Wm<x>_Set memory model'#010+
   '8*2Wm<x>_Set memory model'#010+
   '8*3WmTiny_Tiny memory model'#010+
   '8*3WmTiny_Tiny memory model'#010+
   '8*3WmSmall_Small memory model (default)'#010+
   '8*3WmSmall_Small memory model (default)'#010+
-  '8*3WmMe','dium_Medium memory model'#010+
+  '8*3WmMedium_Medium memory model'#010+
   '8*3WmCompact_Compact memory model'#010+
   '8*3WmCompact_Compact memory model'#010+
   '8*3WmLarge_Large memory model'#010+
   '8*3WmLarge_Large memory model'#010+
   '8*3WmHuge_Huge memory model'#010+
   '8*3WmHuge_Huge memory model'#010+
-  '3*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
-  'n)'#010+
-  '4*2WM<x>_Minimum Mac OS X deployment version: 10.4',', 10.5.1, ... (Dar'+
+  '3*2WM<x','>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Dar'+
   'win)'#010+
   'win)'#010+
-  'p*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
+  '4*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
   'n)'#010+
   'n)'#010+
-  'P*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
+  'p*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
   'n)'#010+
   'n)'#010+
+  'P*2WM<x>_Minimum Mac OS X de','ployment version: 10.4, 10.5.1, ... (Dar'+
+  'win)'#010+
   '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
   '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
-  '4','*2WN_Do not generate relocation code, needed for debugging (Windows'+
+  '4*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
+  'A*2WN_Do not generate relocation code, needed for debug','ging (Windows'+
   ')'#010+
   ')'#010+
-  'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
   'A*2Wp<x>_Specify the controller type; see fpc -i or fpc -iu for possib'+
   'A*2Wp<x>_Specify the controller type; see fpc -i or fpc -iu for possib'+
   'le values'#010+
   'le values'#010+
-  'm*2Wp<x>_Specify the ','controller type; see fpc -i or fpc -iu for poss'+
-  'ible values'#010+
-  'V*2Wp<x>_Specify the controller type; see fpc -i or fpc -iu for possib'+
+  'm*2Wp<x>_Specify the controller type; see fpc -i or fpc -iu for possib'+
   'le values'#010+
   'le values'#010+
+  'V*2Wp<x>_Specify the controller type; see fpc -i or fpc -iu for p','oss'+
+  'ible values'#010+
   '3*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+
   '3*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+
-  '4*2WP<x>_Minimum iOS deployment ','version: 8.0, 8.0.2, ... (iphonesim)'+
-  #010+
+  '4*2WP<x>_Minimum iOS deployment version: 8.0, 8.0.2, ... (iphonesim)'#010+
   'a*2WP<x>_Minimum iOS deployment version: 7.0, 7.1.2, ... (Darwin)'#010+
   'a*2WP<x>_Minimum iOS deployment version: 7.0, 7.1.2, ... (Darwin)'#010+
-  'A*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)'#010+
+  'A*2WP<x>_Minimum iOS ','deployment version: 3.0, 5.0.1, ... (Darwin)'#010+
   '3*2WR_Generate relocation code (Windows)'#010+
   '3*2WR_Generate relocation code (Windows)'#010+
-  '4*2WR_Generate relocation code',' (Windows)'#010+
+  '4*2WR_Generate relocation code (Windows)'#010+
   'A*2WR_Generate relocation code (Windows)'#010+
   'A*2WR_Generate relocation code (Windows)'#010+
   '8*2Wt<x>_Set the target executable format'#010+
   '8*2Wt<x>_Set the target executable format'#010+
-  '8*3Wtexe_Create a DOS .EXE file (default)'#010+
+  '8*3Wtexe_Create a DOS .EXE fil','e (default)'#010+
   '8*3Wtcom_Create a DOS .COM file (requires tiny memory model)'#010+
   '8*3Wtcom_Create a DOS .COM file (requires tiny memory model)'#010+
-  'P*2WT_Specify MPW tool type application (Cl','assic Mac OS)'#010+
+  'P*2WT_Specify MPW tool type application (Classic Mac OS)'#010+
   '**2WX_Enable executable stack (Linux)'#010+
   '**2WX_Enable executable stack (Linux)'#010+
   '**1X_Executable options:'#010+
   '**1X_Executable options:'#010+
-  '**2X9_Generate linkerscript for GNU Binutils ld older than version 2.1'+
-  '9.1 (Linux)'#010+
+  '**2X9_Generate linkerscript for GNU Binutils ld',' older than version 2'+
+  '.19.1 (Linux)'#010+
   '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+
   '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+
   'ux)'#010+
   'ux)'#010+
-  '**2Xd_D','o not search default library path (sometimes required for cro'+
-  'ss-compiling when not using -XR)'#010+
+  '**2Xd_Do not search default library path (sometimes required for cross'+
+  '-compiling when not using -XR)'#010+
   '**2Xe_Use external linker'#010+
   '**2Xe_Use external linker'#010+
-  '**2Xf_Substitute pthread library name for linking (BSD)'#010+
-  '**2Xg_Create debuginfo in a separate file and add a debuglink se','ctio'+
-  'n to executable'#010+
+  '**2X','f_Substitute pthread library name for linking (BSD)'#010+
+  '**2Xg_Create debuginfo in a separate file and add a debuglink section '+
+  'to executable'#010+
   '**2XD_Try to link units dynamically      (defines FPC_LINK_DYNAMIC)'#010+
   '**2XD_Try to link units dynamically      (defines FPC_LINK_DYNAMIC)'#010+
   '**2Xi_Use internal linker'#010+
   '**2Xi_Use internal linker'#010+
-  '**2XLA_Define library substitutions for linking'#010+
+  '**2XLA_Def','ine library substitutions for linking'#010+
   '**2XLO_Define order of library linking'#010+
   '**2XLO_Define order of library linking'#010+
-  '**2XLD_Exclude default order of standar','d libraries'#010+
+  '**2XLD_Exclude default order of standard libraries'#010+
   '**2Xm_Generate link map'#010+
   '**2Xm_Generate link map'#010+
   '**2XM<x>_Set the name of the '#039'main'#039' program routine (default i'+
   '**2XM<x>_Set the name of the '#039'main'#039' program routine (default i'+
   's '#039'main'#039')'#010+
   's '#039'main'#039')'#010+
-  '**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)'+
-  #010+
-  'F*2Xp<x>_First search for the compiler binary in the director','y <x>'#010+
+  '**2Xn_Use target',' system native linker instead of GNU ld (Solaris, AI'+
+  'X)'#010+
+  'F*2Xp<x>_First search for the compiler binary in the directory <x>'#010+
   '**2XP<x>_Prepend the binutils names with the prefix <x>'#010+
   '**2XP<x>_Prepend the binutils names with the prefix <x>'#010+
-  '**2Xr<x>_Set the linker'#039's rlink-path to <x> (needed for cross comp'+
-  'ile, see the ld manual for more information) (BeOS, Linux)'#010+
-  '**2XR<x>_Prepend <x> to all linker search paths (BeOS',', Darwin, FreeB'+
-  'SD, Linux, Mac OS, Solaris)'#010+
+  '**2Xr<x>_Set the linker'#039's rlink-path to <x> (needed for cross ','co'+
+  'mpile, see the ld manual for more information) (BeOS, Linux)'#010+
+  '**2XR<x>_Prepend <x> to all linker search paths (BeOS, Darwin, FreeBSD'+
+  ', Linux, Mac OS, Solaris)'#010+
   '**2Xs_Strip all symbols from executable'#010+
   '**2Xs_Strip all symbols from executable'#010+
-  '**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)'#010+
+  '**2XS_Try to link units statically (defau','lt, defines FPC_LINK_STATIC'+
+  ')'#010+
   '**2Xt_Link with static libraries (-static is passed to linker)'#010+
   '**2Xt_Link with static libraries (-static is passed to linker)'#010+
-  '**2Xv_Generate table for',' Virtual Entry calls'#010+
+  '**2Xv_Generate table for Virtual Entry calls'#010+
   '**2XV_Use VLink as external linker       (default on Amiga, MorphOS)'#010+
   '**2XV_Use VLink as external linker       (default on Amiga, MorphOS)'#010+
-  '**2XX_Try to smartlink units             (defines FPC_LINK_SMART)'#010+
+  '**2XX_Try to smartlink units      ','       (defines FPC_LINK_SMART)'#010+
   '**1*_'#010+
   '**1*_'#010+
   '**1?_Show this help'#010+
   '**1?_Show this help'#010+
   '**1h_Shows this help without waiting'
   '**1h_Shows this help without waiting'

+ 51 - 19
compiler/nadd.pas

@@ -310,6 +310,8 @@ implementation
                         result:=true;
                         result:=true;
                         res:=true;
                         res:=true;
                       end;
                       end;
+                  else
+                    ;
                  end
                  end
              else
              else
                with torddef(realdef) do
                with torddef(realdef) do
@@ -370,6 +372,8 @@ implementation
                         result:=true;
                         result:=true;
                         res:=true;
                         res:=true;
                       end;
                       end;
+                  else
+                    ;
                  end;
                  end;
            end;
            end;
       end;
       end;
@@ -667,11 +671,15 @@ implementation
               begin
               begin
                 case nodetype of
                 case nodetype of
                   addn,subn,orn,xorn:
                   addn,subn,orn,xorn:
-                   result := left.getcopy;
+                    result := left.getcopy;
                   andn,muln:
                   andn,muln:
-                   if (cs_opt_level4 in current_settings.optimizerswitches) or
-                       not might_have_sideeffects(left) then
-                     result:=cordconstnode.create(0,resultdef,true);
+                    begin
+                      if (cs_opt_level4 in current_settings.optimizerswitches) or
+                         not might_have_sideeffects(left) then
+                        result:=cordconstnode.create(0,resultdef,true);
+                    end
+                  else
+                    ;
                 end;
                 end;
               end
               end
             else if tordconstnode(right).value = 1 then
             else if tordconstnode(right).value = 1 then
@@ -679,6 +687,8 @@ implementation
                 case nodetype of
                 case nodetype of
                   muln:
                   muln:
                    result := left.getcopy;
                    result := left.getcopy;
+                  else
+                    ;
                 end;
                 end;
               end
               end
             else if tordconstnode(right).value = -1 then
             else if tordconstnode(right).value = -1 then
@@ -686,6 +696,8 @@ implementation
                 case nodetype of
                 case nodetype of
                   muln:
                   muln:
                    result := cunaryminusnode.create(left.getcopy);
                    result := cunaryminusnode.create(left.getcopy);
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
             if assigned(result) then
             if assigned(result) then
@@ -701,9 +713,13 @@ implementation
                   subn:
                   subn:
                    result := cunaryminusnode.create(right.getcopy);
                    result := cunaryminusnode.create(right.getcopy);
                   andn,muln:
                   andn,muln:
-                   if (cs_opt_level4 in current_settings.optimizerswitches) or
-                       not might_have_sideeffects(right) then
-                     result:=cordconstnode.create(0,resultdef,true);
+                    begin
+                      if (cs_opt_level4 in current_settings.optimizerswitches) or
+                         not might_have_sideeffects(right) then
+                        result:=cordconstnode.create(0,resultdef,true);
+                    end;
+                  else
+                    ;
                 end;
                 end;
               end
               end
             else if tordconstnode(left).value = 1 then
             else if tordconstnode(left).value = 1 then
@@ -711,6 +727,8 @@ implementation
                 case nodetype of
                 case nodetype of
                   muln:
                   muln:
                    result := right.getcopy;
                    result := right.getcopy;
+                  else
+                    ;
                 end;
                 end;
               end
               end
 {$ifdef VER2_2}
 {$ifdef VER2_2}
@@ -722,6 +740,8 @@ implementation
                 case nodetype of
                 case nodetype of
                   muln:
                   muln:
                    result := cunaryminusnode.create(right.getcopy);
                    result := cunaryminusnode.create(right.getcopy);
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
             if assigned(result) then
             if assigned(result) then
@@ -818,6 +838,8 @@ implementation
                 trealconstnode(right).value_real:=1.0/trealconstnode(right).value_real;
                 trealconstnode(right).value_real:=1.0/trealconstnode(right).value_real;
                 exit;
                 exit;
               end;
               end;
+            else
+              ;
           end;
           end;
 {$endif FPC_FULLVERSION>20700}
 {$endif FPC_FULLVERSION>20700}
 
 
@@ -1095,6 +1117,8 @@ implementation
                           exit;
                           exit;
                         end;
                         end;
                       }
                       }
+                      else
+                        ;
                     end;
                     end;
                   end
                   end
                 { short to full boolean evalution possible and useful? }
                 { short to full boolean evalution possible and useful? }
@@ -1102,16 +1126,20 @@ implementation
                   begin
                   begin
                     case nodetype of
                     case nodetype of
                       andn,orn:
                       andn,orn:
-                        { full boolean evaluation is only useful if the nodes are not too complex and if no flags/jumps must be converted,
-                          further, we need to know the expectloc }
-                        if (node_complexity(right)<=2) and
-                          not(left.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) and not(right.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) then
-                          begin
-                            { we need to copy the whole tree to force another pass_1 }
-                            include(localswitches,cs_full_boolean_eval);
-                            result:=getcopy;
-                            exit;
-                          end;
+                        begin
+                          { full boolean evaluation is only useful if the nodes are not too complex and if no flags/jumps must be converted,
+                            further, we need to know the expectloc }
+                          if (node_complexity(right)<=2) and
+                            not(left.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) and not(right.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) then
+                            begin
+                              { we need to copy the whole tree to force another pass_1 }
+                              include(localswitches,cs_full_boolean_eval);
+                              result:=getcopy;
+                              exit;
+                            end;
+                        end;
+                      else
+                        ;
                     end;
                     end;
                   end
                   end
               end;
               end;
@@ -1144,6 +1172,8 @@ implementation
                           result:=cordconstnode.create(1,resultdef,true);
                           result:=cordconstnode.create(1,resultdef,true);
                           exit;
                           exit;
                         end;
                         end;
+                      else
+                        ;
                     end;
                     end;
                   end;
                   end;
               end;
               end;
@@ -2211,8 +2241,6 @@ implementation
                        if not(is_shortstring(rd) or is_char(rd)) then
                        if not(is_shortstring(rd) or is_char(rd)) then
                          inserttypeconv(right,cshortstringtype);
                          inserttypeconv(right,cshortstringtype);
                      end;
                      end;
-                   else
-                     internalerror(2005101);
                 end;
                 end;
               end
               end
             else
             else
@@ -2586,6 +2614,8 @@ implementation
 
 
                   result:=hp
                   result:=hp
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
 
 
@@ -2793,6 +2823,8 @@ implementation
               left := nil;
               left := nil;
               right := nil;
               right := nil;
             end;
             end;
+          else
+            internalerror(2019050520);
         end;
         end;
       end;
       end;
 
 

+ 2 - 0
compiler/nbas.pas

@@ -675,6 +675,8 @@ implementation
                   left:=nil;
                   left:=nil;
                   exit;
                   exit;
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

+ 10 - 0
compiler/ncal.pas

@@ -1342,6 +1342,8 @@ implementation
                                typecheckpass(left);
                                typecheckpass(left);
                              end;
                              end;
                          end;
                          end;
+                       else
+                         ;
                      end;
                      end;
                    end
                    end
                  else
                  else
@@ -1992,6 +1994,8 @@ implementation
               result:=(tabstractvarsym(tloadnode(hp).symtableentry).varregable in [vr_none,vr_addr]);
               result:=(tabstractvarsym(tloadnode(hp).symtableentry).varregable in [vr_none,vr_addr]);
             temprefn:
             temprefn:
               result:=not(ti_may_be_in_reg in ttemprefnode(hp).tempflags);
               result:=not(ti_may_be_in_reg in ttemprefnode(hp).tempflags);
+            else
+              ;
           end;
           end;
       end;
       end;
 
 
@@ -4094,6 +4098,8 @@ implementation
                         LOC_REGISTER,
                         LOC_REGISTER,
                         LOC_FPUREGISTER :
                         LOC_FPUREGISTER :
                           break;
                           break;
+                        else
+                          ;
                       end;
                       end;
                     end;
                     end;
                   LOC_MMREGISTER,
                   LOC_MMREGISTER,
@@ -4104,6 +4110,8 @@ implementation
                          (node_complexity(hpcurr)>node_complexity(hp)) then
                          (node_complexity(hpcurr)>node_complexity(hp)) then
                         break;
                         break;
                     end;
                     end;
+                  else
+                    ;
                 end;
                 end;
                 hpprev:=hp;
                 hpprev:=hp;
                 hp:=tcallparanode(hp.right);
                 hp:=tcallparanode(hp.right);
@@ -4550,6 +4558,8 @@ implementation
                   typecheckpass(n);
                   typecheckpass(n);
                   result := fen_true;
                   result := fen_true;
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

+ 12 - 0
compiler/ncgbas.pas

@@ -339,6 +339,8 @@ interface
                                      taicpu(hp2).segprefix:=ref^.segment;
                                      taicpu(hp2).segprefix:=ref^.segment;
 {$endif x86}
 {$endif x86}
                                  end;
                                  end;
+                               else
+                                 ;
                              end;
                              end;
                            end;
                            end;
                         end;
                         end;
@@ -348,6 +350,8 @@ interface
                         taicpu(hp2).CheckIfValid;
                         taicpu(hp2).CheckIfValid;
 {$endif x86}
 {$endif x86}
                      end;
                      end;
+                  else
+                    ;
                 end;
                 end;
                 current_asmdata.CurrAsmList.concat(hp2);
                 current_asmdata.CurrAsmList.concat(hp2);
                 hp:=tai(hp.next);
                 hp:=tai(hp.next);
@@ -381,6 +385,8 @@ interface
                                  top_ref :
                                  top_ref :
                                    if (ref^.segment<>NR_NO) and (ref^.segment<>get_default_segment_of_ref(ref^)) then
                                    if (ref^.segment<>NR_NO) and (ref^.segment<>get_default_segment_of_ref(ref^)) then
                                      taicpu(hp).segprefix:=ref^.segment;
                                      taicpu(hp).segprefix:=ref^.segment;
+                                 else
+                                   ;
                                end;
                                end;
                              end;
                              end;
 {$endif x86}
 {$endif x86}
@@ -391,6 +397,8 @@ interface
                       taicpu(hp).CheckIfValid;
                       taicpu(hp).CheckIfValid;
 {$endif x86}
 {$endif x86}
                      end;
                      end;
+                  else
+                    ;
                 end;
                 end;
                 hp:=tai(hp.next);
                 hp:=tai(hp.next);
               end;
               end;
@@ -529,6 +537,8 @@ interface
                   { in case reference contains CREGISTERS, that doesn't matter:
                   { in case reference contains CREGISTERS, that doesn't matter:
                     we want to write to the location indicated by the current
                     we want to write to the location indicated by the current
                     value of those registers, and we can save those values }
                     value of those registers, and we can save those values }
+                  else
+                    ;
                 end;
                 end;
                 hlcg.g_reference_loc(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.tempinitcode.location,tempinfo^.location);
                 hlcg.g_reference_loc(current_asmdata.CurrAsmList,tempinfo^.typedef,tempinfo^.tempinitcode.location,tempinfo^.location);
               end;
               end;
@@ -546,6 +556,8 @@ interface
           LOC_FPUREGISTER,
           LOC_FPUREGISTER,
           LOC_MMREGISTER :
           LOC_MMREGISTER :
             excludetempflag(ti_valid);
             excludetempflag(ti_valid);
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 6 - 0
compiler/ncgcal.pas

@@ -549,6 +549,8 @@ implementation
                  hlcg.g_finalize(current_asmdata.CurrAsmList,resultdef,location.reference);
                  hlcg.g_finalize(current_asmdata.CurrAsmList,resultdef,location.reference);
                tg.ungetiftemp(current_asmdata.CurrAsmList,location.reference);
                tg.ungetiftemp(current_asmdata.CurrAsmList,location.reference);
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -822,6 +824,10 @@ implementation
                              end;
                              end;
                            end;
                            end;
                          end;
                          end;
+                       LOC_VOID:
+                         ;
+                       else
+                         internalerror(2019050707);
                      end;
                      end;
                      dec(sizeleft,tcgsize2size[tmpparaloc^.size]);
                      dec(sizeleft,tcgsize2size[tmpparaloc^.size]);
                      callerparaloc:=callerparaloc^.next;
                      callerparaloc:=callerparaloc^.next;

+ 0 - 2
compiler/ncgcnv.pas

@@ -334,8 +334,6 @@ interface
                {!!!!!!!}
                {!!!!!!!}
                internalerror(8888);
                internalerror(8888);
              end;
              end;
-           else
-             internalerror(200808241);
          end;
          end;
       end;
       end;
 
 

+ 4 - 2
compiler/ncgcon.pas

@@ -173,8 +173,10 @@ implementation
                         message(parser_e_range_check_error)
                         message(parser_e_range_check_error)
                       else
                       else
                         current_asmdata.asmlists[al_typedconsts].concat(tai_realconst.create_s64compreal(round(value_real)));
                         current_asmdata.asmlists[al_typedconsts].concat(tai_realconst.create_s64compreal(round(value_real)));
-                  else
-                    internalerror(10120);
+{$ifndef cpufloat128}
+                    else
+                      internalerror(10120);
+{$endif not cpufloat128}
                   end;
                   end;
                end;
                end;
           end;
           end;

+ 12 - 0
compiler/ncgld.pas

@@ -161,6 +161,8 @@ implementation
           inn,
           inn,
           asn,isn:
           asn,isn:
             result := fen_norecurse_false;
             result := fen_norecurse_false;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -1167,6 +1169,10 @@ implementation
                     end;
                     end;
                 end;
                 end;
 {$endif cpuflags}
 {$endif cpuflags}
+              LOC_VOID:
+                ;
+              else
+                internalerror(2019050706);
             end;
             end;
          end;
          end;
 
 
@@ -1301,6 +1307,8 @@ implementation
                                   vtype:=vtQWord;
                                   vtype:=vtQWord;
                                   varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VQWORD'));
                                   varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VQWORD'));
                                 end;
                                 end;
+                              else
+                                ;
                             end;
                             end;
                             freetemp:=false;
                             freetemp:=false;
                             vaddr:=true;
                             vaddr:=true;
@@ -1331,6 +1339,8 @@ implementation
                                      vtype:=vtWideChar;
                                      vtype:=vtWideChar;
                                      varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
                                      varfield:=tfieldvarsym(search_struct_member_no_helper(trecorddef(eledef),'VINTEGER'));
                                    end;
                                    end;
+                                 else
+                                   ;
                                end;
                                end;
                              end;
                              end;
                      end;
                      end;
@@ -1425,6 +1435,8 @@ implementation
                            freetemp:=false;
                            freetemp:=false;
                          end;
                          end;
                      end;
                      end;
+                   else
+                     ;
                  end;
                  end;
                  if vtype=$ff then
                  if vtype=$ff then
                    internalerror(14357);
                    internalerror(14357);

+ 4 - 0
compiler/ncgmem.pas

@@ -945,6 +945,8 @@ implementation
                 LOC_REGISTER,
                 LOC_REGISTER,
                 LOC_MMREGISTER:
                 LOC_MMREGISTER:
                   hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
                   hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
+                else
+                  ;
               end;
               end;
              location_copy(location,left.location);
              location_copy(location,left.location);
            end;
            end;
@@ -978,6 +980,8 @@ implementation
                       rangecheck_array;
                       rangecheck_array;
                     stringdef :
                     stringdef :
                       rangecheck_string;
                       rangecheck_string;
+                    else
+                      ;
                   end;
                   end;
                 end;
                 end;
               if not(is_packed_array(left.resultdef)) or
               if not(is_packed_array(left.resultdef)) or

+ 4 - 0
compiler/ncgnstld.pas

@@ -134,6 +134,8 @@ implementation
                   typecheckpass(left);
                   typecheckpass(left);
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -182,6 +184,8 @@ implementation
                   include(flags,nf_internal);
                   include(flags,nf_internal);
                 end;
                 end;
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 12 - 0
compiler/ncgrtti.pas

@@ -146,6 +146,8 @@ implementation
               undefineddef:
               undefineddef:
                 { don't write any RTTI for these }
                 { don't write any RTTI for these }
                 continue;
                 continue;
+              else
+                ;
             end;
             end;
             { always generate persistent tables for types in the interface so
             { always generate persistent tables for types in the interface so
               they can be reused in other units and give always the same pointer
               they can be reused in other units and give always the same pointer
@@ -694,6 +696,8 @@ implementation
                     write_rtti(tpropertysym(sym).propdef,rt);
                     write_rtti(tpropertysym(sym).propdef,rt);
                   fieldvarsym:
                   fieldvarsym:
                     write_rtti(tfieldvarsym(sym).vardef,rt);
                     write_rtti(tfieldvarsym(sym).vardef,rt);
+                  else
+                    ;
                 end;
                 end;
               end;
               end;
           end;
           end;
@@ -806,6 +810,8 @@ implementation
                              internalerror(200706101);
                              internalerror(200706101);
                            inc(address,int64(def.size*hp^.value));
                            inc(address,int64(def.size*hp^.value));
                          end;
                          end;
+                       else
+                         internalerror(2019050523);
                      end;
                      end;
                      hp:=hp^.next;
                      hp:=hp^.next;
                   end;
                   end;
@@ -1662,6 +1668,8 @@ implementation
                    objectdef_rtti_interface_full(def);
                    objectdef_rtti_interface_full(def);
                  end;
                  end;
                end;
                end;
+             else
+               ;
            end;
            end;
            tcb.end_anonymous_record;
            tcb.end_anonymous_record;
         end;
         end;
@@ -1943,6 +1951,8 @@ implementation
             begin
             begin
               enumdef_rtti_extrasyms(Tenumdef(def));
               enumdef_rtti_extrasyms(Tenumdef(def));
             end;
             end;
+        else
+          ;
       end;
       end;
     end;
     end;
 
 
@@ -1999,6 +2009,8 @@ implementation
               write_rtti(tabstractpointerdef(def).pointeddef,rt);
               write_rtti(tabstractpointerdef(def).pointeddef,rt);
           procvardef:
           procvardef:
             params_write_rtti(tabstractprocdef(def),rt,false);
             params_write_rtti(tabstractprocdef(def),rt,false);
+          else
+            ;
         end;
         end;
       end;
       end;
 
 

+ 4 - 24
compiler/ncgset.pas

@@ -73,11 +73,6 @@ interface
           jumptable_no_range : boolean;
           jumptable_no_range : boolean;
           { has the implementation jumptable support }
           { has the implementation jumptable support }
           min_label : tconstexprint;
           min_label : tconstexprint;
-          { Number of labels }
-          labelcnt: TCgInt;
-          { Number of individual values checked, counting each value in a range
-            individually (e.g. 0..2 counts as 3). }
-          TrueCount: TCgInt;
 
 
           function GetBranchLabel(Block: TNode; out _Label: TAsmLabel): Boolean;
           function GetBranchLabel(Block: TNode; out _Label: TAsmLabel): Boolean;
 
 
@@ -594,6 +589,8 @@ implementation
                   Block := TStatementNode(Block).Left;
                   Block := TStatementNode(Block).Left;
                   Continue;
                   Continue;
                 end;
                 end;
+              else
+                ;
             end;
             end;
 
 
             Break;
             Break;
@@ -1136,7 +1133,7 @@ implementation
 
 
       begin
       begin
         labelarray:=nil;
         labelarray:=nil;
-        SetLength(labelarray,case_count_labels(root));
+        SetLength(labelarray,labelcnt);
         nextarrayentry:=0;
         nextarrayentry:=0;
         addarrayentry(root);
         addarrayentry(root);
         rebuild(0,high(labelarray),root);
         rebuild(0,high(labelarray),root);
@@ -1146,18 +1143,6 @@ implementation
       end;
       end;
 
 
     procedure tcgcasenode.pass_generate_code;
     procedure tcgcasenode.pass_generate_code;
-
-      { Combines "case_count_labels" and "case_true_count" }
-      procedure CountBoth(p : pcaselabel);
-        begin
-          Inc(labelcnt);
-          Inc(TrueCount, (p^._high.svalue - p^._low.svalue) + 1);
-          if assigned(p^.less) then
-            CountBoth(p^.less);
-          if assigned(p^.greater) then
-            CountBoth(p^.greater);
-        end;
-
       var
       var
          oldflowcontrol: tflowcontrol;
          oldflowcontrol: tflowcontrol;
          i : longint;
          i : longint;
@@ -1230,9 +1215,6 @@ implementation
          else
          else
 {$endif not cpu64bitalu and not cpuhighleveltarget}
 {$endif not cpu64bitalu and not cpuhighleveltarget}
            begin
            begin
-              labelcnt := 0;
-              TrueCount := 0;
-
               if cs_opt_level1 in current_settings.optimizerswitches then
               if cs_opt_level1 in current_settings.optimizerswitches then
                 begin
                 begin
                    { procedures are empirically passed on }
                    { procedures are empirically passed on }
@@ -1243,8 +1225,6 @@ implementation
                    { ximated as it is not known if rel8,  }
                    { ximated as it is not known if rel8,  }
                    { rel16 or rel32 jumps are used   }
                    { rel16 or rel32 jumps are used   }
 
 
-                   CountBoth(labels);
-
                    max_label := case_get_max(labels);
                    max_label := case_get_max(labels);
 
 
                    { can we omit the range check of the jump table ? }
                    { can we omit the range check of the jump table ? }
@@ -1278,7 +1258,7 @@ implementation
                      end
                      end
                    else
                    else
                      begin
                      begin
-                        max_dist:=4*TrueCount;
+                        max_dist:=4*labelcoverage;
 
 
                         { Don't allow jump tables to get too large }
                         { Don't allow jump tables to get too large }
                         if max_dist>4*labelcnt then
                         if max_dist>4*labelcnt then

+ 34 - 10
compiler/ncgutil.pas

@@ -390,8 +390,6 @@ implementation
       begin
       begin
         if (setbase<>0) then
         if (setbase<>0) then
           begin
           begin
-            if not(l.loc in [LOC_REGISTER,LOC_CREGISTER]) then
-              internalerror(2007091502);
             { subtract the setbase }
             { subtract the setbase }
             case l.loc of
             case l.loc of
               LOC_CREGISTER:
               LOC_CREGISTER:
@@ -405,6 +403,8 @@ implementation
                 begin
                 begin
                   hlcg.a_op_const_reg(list,OP_SUB,opdef,setbase,l.register);
                   hlcg.a_op_const_reg(list,OP_SUB,opdef,setbase,l.register);
                 end;
                 end;
+              else
+                internalerror(2007091502);
             end;
             end;
           end;
           end;
       end;
       end;
@@ -545,6 +545,8 @@ implementation
                  else
                  else
                    hlcg.g_initialize(list,tparavarsym(p).vardef,href);
                    hlcg.g_initialize(list,tparavarsym(p).vardef,href);
                end;
                end;
+             else
+               ;
            end;
            end;
          end;
          end;
       end;
       end;
@@ -583,6 +585,8 @@ implementation
             begin
             begin
              loc.register:=cg.getmmregister(list,loc.size);
              loc.register:=cg.getmmregister(list,loc.size);
             end;
             end;
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -951,6 +955,8 @@ implementation
                     end;
                     end;
                   hlcg.varsym_set_localloc(list,vs);
                   hlcg.varsym_set_localloc(list,vs);
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;
@@ -1025,6 +1031,8 @@ implementation
             rv.fpuregvars.addnodup(getsupreg(location.register));
             rv.fpuregvars.addnodup(getsupreg(location.register));
           LOC_CMMREGISTER:
           LOC_CMMREGISTER:
             rv.mmregvars.addnodup(getsupreg(location.register));
             rv.mmregvars.addnodup(getsupreg(location.register));
+          else
+            ;
         end;
         end;
       end;
       end;
 
 
@@ -1052,13 +1060,16 @@ implementation
             if (tloadnode(n).symtableentry.typ in [staticvarsym,localvarsym,paravarsym]) then
             if (tloadnode(n).symtableentry.typ in [staticvarsym,localvarsym,paravarsym]) then
               add_regvars(rv^,tabstractnormalvarsym(tloadnode(n).symtableentry).localloc);
               add_regvars(rv^,tabstractnormalvarsym(tloadnode(n).symtableentry).localloc);
           vecn:
           vecn:
-            { range checks sometimes need the high parameter }
-            if (cs_check_range in current_settings.localswitches) and
-               (is_open_array(tvecnode(n).left.resultdef) or
-                is_array_of_const(tvecnode(n).left.resultdef)) and
-               not(current_procinfo.procdef.proccalloption in cdecl_pocalls) then
-              add_regvars(rv^,tabstractnormalvarsym(get_high_value_sym(tparavarsym(tloadnode(tvecnode(n).left).symtableentry))).localloc)
-
+            begin
+              { range checks sometimes need the high parameter }
+              if (cs_check_range in current_settings.localswitches) and
+                 (is_open_array(tvecnode(n).left.resultdef) or
+                  is_array_of_const(tvecnode(n).left.resultdef)) and
+                 not(current_procinfo.procdef.proccalloption in cdecl_pocalls) then
+                add_regvars(rv^,tabstractnormalvarsym(get_high_value_sym(tparavarsym(tloadnode(tvecnode(n).left).symtableentry))).localloc)
+            end;
+          else
+            ;
         end;
         end;
         result := fen_true;
         result := fen_true;
       end;
       end;
@@ -1201,7 +1212,8 @@ implementation
 {$endif}
 {$endif}
                             cg.a_reg_sync(list,localloc.register);
                             cg.a_reg_sync(list,localloc.register);
                       LOC_CFPUREGISTER,
                       LOC_CFPUREGISTER,
-                      LOC_CMMREGISTER:
+                      LOC_CMMREGISTER,
+                      LOC_CMMXREGISTER:
                         if (pi_has_label in current_procinfo.flags) then
                         if (pi_has_label in current_procinfo.flags) then
                           cg.a_reg_sync(list,localloc.register);
                           cg.a_reg_sync(list,localloc.register);
                       LOC_REFERENCE :
                       LOC_REFERENCE :
@@ -1215,6 +1227,18 @@ implementation
                               not(vo_is_self in varoptions)) then
                               not(vo_is_self in varoptions)) then
                             tg.Ungetlocal(list,localloc.reference);
                             tg.Ungetlocal(list,localloc.reference);
                         end;
                         end;
+                      { function results in pure assembler routines }
+                      LOC_REGISTER,
+                      LOC_FPUREGISTER,
+                      LOC_MMREGISTER,
+                      { empty parameter }
+                      LOC_VOID,
+                      { global variables in memory and typed constants don't get a location assigned,
+                        and neither does an unused $result variable in pure assembler routines }
+                      LOC_INVALID:
+                        ;
+                      else
+                        internalerror(2019050538);
                     end;
                     end;
                   end;
                   end;
               end;
               end;

+ 2 - 2
compiler/ncgvmt.pas

@@ -792,8 +792,6 @@ implementation
               pd:=tprocdef(tpropertysym(AImplIntf.ImplementsGetter).propaccesslist[palt_read].procdef);
               pd:=tprocdef(tpropertysym(AImplIntf.ImplementsGetter).propaccesslist[palt_read].procdef);
               tcb.emit_tai(Tai_const.Create_sizeint(tobjectdef(pd.struct).vmtmethodoffset(pd.extnumber)),sizeuinttype);
               tcb.emit_tai(Tai_const.Create_sizeint(tobjectdef(pd.struct).vmtmethodoffset(pd.extnumber)),sizeuinttype);
             end;
             end;
-          else
-            internalerror(200802162);
         end;
         end;
 
 
         { IIDStr }
         { IIDStr }
@@ -1332,6 +1330,8 @@ implementation
                   if assigned(tprocdef(def).parast) then
                   if assigned(tprocdef(def).parast) then
                     do_write_vmts(tprocdef(def).parast,false);
                     do_write_vmts(tprocdef(def).parast,false);
                 end;
                 end;
+              else
+                ;
             end;
             end;
           end;
           end;
       end;
       end;

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio