From b1f7fb4ba18b56be4ea098f93393306d14e013ce Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 6 Feb 2021 12:53:04 +0000 Subject: [PATCH 01/17] * test for already fixed issue #24434 git-svn-id: trunk@48516 - --- .gitattributes | 1 + tests/webtbf/tw24434.pp | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/webtbf/tw24434.pp diff --git a/.gitattributes b/.gitattributes index 6d104a96cc..a96d71c30a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16563,6 +16563,7 @@ tests/webtbf/tw2414.pp svneol=native#text/plain tests/webtbf/tw24184.pp svneol=native#text/plain tests/webtbf/tw24428.pp svneol=native#text/plain tests/webtbf/tw24428a.pp svneol=native#text/plain +tests/webtbf/tw24434.pp svneol=native#text/pascal tests/webtbf/tw24453.pp svneol=native#text/pascal tests/webtbf/tw24495.pp svneol=native#text/pascal tests/webtbf/tw24588.pp svneol=native#text/pascal diff --git a/tests/webtbf/tw24434.pp b/tests/webtbf/tw24434.pp new file mode 100644 index 0000000000..666655b0f8 --- /dev/null +++ b/tests/webtbf/tw24434.pp @@ -0,0 +1,13 @@ +{ %fail } +function f(s: string): string; +begin + f := '''' + s + ''''; +end; + +function f(s: string): integer; +begin + Val(s,f); +end; + +begin +end. From 539a578cce5f4e05bf46dc283a0fc96952f22bfa Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 6 Feb 2021 16:59:02 +0000 Subject: [PATCH 02/17] * create \index entries in the messages.inc for an index of message texts and numbers in the user manual git-svn-id: trunk@48517 - --- compiler/utils/msg2inc.pp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/utils/msg2inc.pp b/compiler/utils/msg2inc.pp index 0af3a52b16..38a7c7f700 100644 --- a/compiler/utils/msg2inc.pp +++ b/compiler/utils/msg2inc.pp @@ -730,6 +730,9 @@ begin end; if s[i+k]='_' then inc(i,k+1); + if number<>'' then + writeln(t,'\index[msgnr]{',number,'}'); + writeln(t,'\index[msgtxt]{',escapestring(Copy(s,i,255)),'}'); writeln(t,'\item ['+s1+escapestring(Copy(s,i,255))+'] \hfill \\'); end else From 91d877919e738ebfee6ef94973fae0eb715416f8 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 7 Feb 2021 14:40:14 +0000 Subject: [PATCH 03/17] * strip codesignature when comparing compiler binaries on Darwin o fixes non-converging "make cycle" on macOS/AArch64 with DEBUG=1 git-svn-id: trunk@48518 - --- compiler/Makefile | 22 +++++++++++++++++++++- compiler/Makefile.fpc | 23 ++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/compiler/Makefile b/compiler/Makefile index 3bf6972579..950d084474 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -4640,6 +4640,9 @@ ifdef CMP override DIFF:=$(CMP) -i218 endif endif +ifeq ($(OS_TARGET), darwin) +CODESIGN?=$(strip $(wildcard $(addsuffix /codesign,$(SEARCHPATH)))) +endif ifneq ($(CYCLELEVEL),1) ifndef ALLOW_WARNINGS override LOCALOPT+=-Sew @@ -4941,7 +4944,11 @@ ifdef OLDFPC ifneq ($(OS_TARGET),darwin) DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC)) else -DIFFRESULT:=$(shell cp $(OLDFPC) $(OLDFPC).tmp; cp $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; rm $(OLDFPC).tmp $(FPC).tmp) +ifneq ($(CODESIGN),) +DIFFRESULT:=$(shell $(COPY) $(OLDFPC) $(OLDFPC).tmp; $(COPY) $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(CODESIGN) --remove-signature $(OLDFPC).tmp; codesign --remove-signature $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; $(RMPROG) $(OLDFPC).tmp $(FPC).tmp) +else +DIFFRESULT:=$(shell $(COPY) $(OLDFPC) $(OLDFPC).tmp; $(COPY) $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; $(RMPROG) $(OLDFPC).tmp $(FPC).tmp) +endif endif else DIFFRESULT=Not equal @@ -4980,7 +4987,20 @@ endif $(MAKE) tempclean $(MAKE) $(TEMPNAME3) $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3PREFIX)$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next CYCLELEVEL=4 +ifneq ($(OS_TARGET), darwin) $(DIFF) $(TEMPNAME3) $(EXENAME) +else + $(COPY) $(TEMPNAME3) $(TEMPNAME3).tmp + $(COPY) $(EXENAME) $(EXENAME).tmp + strip -no_uuid $(TEMPNAME3).tmp + strip -no_uuid $(EXENAME).tmp +ifneq ($(CODESIGN),) + $(CODESIGN) --remove-signature $(TEMPNAME3).tmp + $(CODESIGN) --remove-signature $(EXENAME).tmp +endif + $(DIFF) $(TEMPNAME3).tmp $(EXENAME).tmp + rm $(TEMPNAME3).tmp $(EXENAME).tmp +endif $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAMEPREFIX)$(EXENAME)' $(MAKE) wpocycle $(MAKE) echotime diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc index a3852109dc..f1c6e501d2 100644 --- a/compiler/Makefile.fpc +++ b/compiler/Makefile.fpc @@ -438,6 +438,10 @@ override DIFF:=$(CMP) -i218 endif endif +ifeq ($(OS_TARGET), darwin) +CODESIGN?=$(strip $(wildcard $(addsuffix /codesign,$(SEARCHPATH)))) +endif + # Use -Sew option by default # Allow disabling by setting ALLOW_WARNINGS=1 ifneq ($(CYCLELEVEL),1) @@ -878,7 +882,11 @@ ifdef OLDFPC ifneq ($(OS_TARGET),darwin) DIFFRESULT:=$(shell $(DIFF) $(OLDFPC) $(FPC)) else -DIFFRESULT:=$(shell cp $(OLDFPC) $(OLDFPC).tmp; cp $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; rm $(OLDFPC).tmp $(FPC).tmp) +ifneq ($(CODESIGN),) +DIFFRESULT:=$(shell $(COPY) $(OLDFPC) $(OLDFPC).tmp; $(COPY) $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(CODESIGN) --remove-signature $(OLDFPC).tmp; codesign --remove-signature $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; $(RMPROG) $(OLDFPC).tmp $(FPC).tmp) +else +DIFFRESULT:=$(shell $(COPY) $(OLDFPC) $(OLDFPC).tmp; $(COPY) $(FPC) $(FPC).tmp; strip -no_uuid $(OLDFPC).tmp; strip -no_uuid $(FPC).tmp; $(DIFF) $(OLDFPC).tmp $(FPC).tmp; $(RMPROG) $(OLDFPC).tmp $(FPC).tmp) +endif endif else DIFFRESULT=Not equal @@ -922,7 +930,20 @@ endif $(MAKE) tempclean $(MAKE) $(TEMPNAME3) $(MAKE) 'FPC=$(BASEDIR)/$(TEMPNAME3PREFIX)$(TEMPNAME3)' 'OLDFPC=$(BASEDIR)/$(TEMPNAME2)' next CYCLELEVEL=4 +ifneq ($(OS_TARGET), darwin) $(DIFF) $(TEMPNAME3) $(EXENAME) +else + $(COPY) $(TEMPNAME3) $(TEMPNAME3).tmp + $(COPY) $(EXENAME) $(EXENAME).tmp + strip -no_uuid $(TEMPNAME3).tmp + strip -no_uuid $(EXENAME).tmp +ifneq ($(CODESIGN),) + $(CODESIGN) --remove-signature $(TEMPNAME3).tmp + $(CODESIGN) --remove-signature $(EXENAME).tmp +endif + $(DIFF) $(TEMPNAME3).tmp $(EXENAME).tmp + rm $(TEMPNAME3).tmp $(EXENAME).tmp +endif $(MAKE) $(addsuffix _all,$(TARGET_DIRS)) 'FPC=$(BASEDIR)/$(EXENAMEPREFIX)$(EXENAME)' $(MAKE) wpocycle $(MAKE) echotime From b08717fef665774b150453e3b2ed979dc851d098 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 7 Feb 2021 17:41:27 +0000 Subject: [PATCH 04/17] * make statx based Sysutils.FileAge working with relative pathes + test git-svn-id: trunk@48519 - --- rtl/unix/sysutils.pp | 2 +- tests/test/units/sysutils/tfileage.pp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rtl/unix/sysutils.pp b/rtl/unix/sysutils.pp index 922bac3437..2e9df9ee43 100644 --- a/rtl/unix/sysutils.pp +++ b/rtl/unix/sysutils.pp @@ -569,7 +569,7 @@ begin {$ifdef USE_STATX} { first try statx } - if (statx(0,pchar(SystemFileName),0,STATX_MTIME or STATX_MODE,Infox)>=0) and not(fpS_ISDIR(Infox.stx_mode)) then + if (statx(AT_FDCWD,pchar(SystemFileName),0,STATX_MTIME or STATX_MODE,Infox)>=0) and not(fpS_ISDIR(Infox.stx_mode)) then begin Result:=Infox.stx_mtime.tv_sec; exit; diff --git a/tests/test/units/sysutils/tfileage.pp b/tests/test/units/sysutils/tfileage.pp index 050f75a5d1..7710082ea6 100644 --- a/tests/test/units/sysutils/tfileage.pp +++ b/tests/test/units/sysutils/tfileage.pp @@ -7,4 +7,12 @@ begin writeln('Compilation time and run time differ too much, SysUtils.FileAge buggy?'); halt(1); end; + + { test with relative path } + if 3600*24*(now()-FileDateToDateTime(FileAge(ExtractRelativePath(GetCurrentDir+DirectorySeparator,paramstr(0)))))>7200 then + begin + writeln('FileAge returns: ',FileDateToDateTime(FileAge(paramstr(0)))); + writeln('Compilation time and run time differ too much, SysUtils.FileAge buggy?'); + halt(1); + end; end. From 3e453f92fcdc22caa1b76a695a096929b3bc1f8c Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 7 Feb 2021 17:59:28 +0000 Subject: [PATCH 05/17] * statx based Sysutils.FileGetDate with handle fixed + test git-svn-id: trunk@48520 - --- rtl/unix/sysutils.pp | 4 +++- tests/test/units/sysutils/tfile1.pp | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rtl/unix/sysutils.pp b/rtl/unix/sysutils.pp index 2e9df9ee43..c35d28be79 100644 --- a/rtl/unix/sysutils.pp +++ b/rtl/unix/sysutils.pp @@ -1082,10 +1082,12 @@ Var {$ifdef USE_STATX} Infox : TStatx; {$endif USE_STATX} + Char0 : char; begin Result:=-1; {$ifdef USE_STATX} - if statx(Handle,nil,0,STATX_MTIME,Infox)=0 then + Char0:=#0; + if statx(Handle,@Char0,AT_EMPTY_PATH,STATX_MTIME,Infox)=0 then Result:=Infox.stx_Mtime.tv_sec else if fpgeterrno=ESysENOSYS then {$endif USE_STATX} diff --git a/tests/test/units/sysutils/tfile1.pp b/tests/test/units/sysutils/tfile1.pp index 1b4976b386..ddca3956e6 100644 --- a/tests/test/units/sysutils/tfile1.pp +++ b/tests/test/units/sysutils/tfile1.pp @@ -39,6 +39,12 @@ BEGIN do_error(1003); Close(f); + Assign(f,'datetest.dat'); + Reset(f); + if FileGetDate(filerec(f).handle)<>DateTimeToFileDate(dateTime) then + do_error(1004); + Close(f); + if FileExists('datetest.dat') then begin Assign(f,'datetest.dat'); From 77fee8b4eb4fc62e11fe2a9de45df19f9b8cae81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Mon, 8 Feb 2021 04:07:04 +0000 Subject: [PATCH 06/17] m68k: do not use OS_NO for FPU locations, but properly promote location sizes into the CG git-svn-id: trunk@48522 - --- compiler/m68k/n68kadd.pas | 2 +- compiler/m68k/n68kinl.pas | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/m68k/n68kadd.pas b/compiler/m68k/n68kadd.pas index db5700a3e6..57e2cca80d 100644 --- a/compiler/m68k/n68kadd.pas +++ b/compiler/m68k/n68kadd.pas @@ -201,7 +201,7 @@ implementation hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true); location.register := cg.getfpuregister(current_asmdata.CurrAsmList,location.size); - cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register); + cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register); end; { emit the actual operation } diff --git a/compiler/m68k/n68kinl.pas b/compiler/m68k/n68kinl.pas index 67703bbbb9..ddaa42d430 100644 --- a/compiler/m68k/n68kinl.pas +++ b/compiler/m68k/n68kinl.pas @@ -253,7 +253,7 @@ implementation //current_asmdata.CurrAsmList.concat(tai_comment.create(strpnew('second_sqr_real called!: left was cfpuregister!'))); location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size); location.loc := LOC_FPUREGISTER; - cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register); + cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register); end; current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FMUL,fpuregopsize,left.location.register,location.register)); end; @@ -333,7 +333,7 @@ implementation begin hreg:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size); location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size); - cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,OS_NO,OS_NO,left.location.register,location.register); + cg.a_loadfpu_reg_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,left.location.register,location.register); current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,left.location.register,hreg)); current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register)); end; @@ -343,7 +343,7 @@ implementation location.register:=cg.getfpuregister(current_asmdata.CurrAsmList,location.size); href:=left.location.reference; tcg68k(cg).fixref(current_asmdata.CurrAsmList,href,current_settings.fputype = fpu_coldfire); - cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmlist,left.location.size,OS_NO,href,location.register); + cg.a_loadfpu_ref_reg(current_asmdata.CurrAsmlist,left.location.size,location.size,href,location.register); current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FINTRZ,fpuregopsize,location.register,hreg)); current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FSUB,fpuregopsize,hreg,location.register)); end; From d0178f7ae0d768aa7d7988418561380834cb9fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Mon, 8 Feb 2021 04:12:21 +0000 Subject: [PATCH 07/17] m68k: fix a_loadfpu_ref_reg to call a_loadfpu_reg_reg instead of a_load_reg_reg. made a_loadfpu_reg_reg internalerror on invalid target sizes when loading to a different reg size git-svn-id: trunk@48523 - --- compiler/m68k/cgcpu.pas | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/compiler/m68k/cgcpu.pas b/compiler/m68k/cgcpu.pas index be88900d21..c628d3b794 100644 --- a/compiler/m68k/cgcpu.pas +++ b/compiler/m68k/cgcpu.pas @@ -1068,15 +1068,17 @@ unit cgcpu; list.concat(taicpu.op_reg_reg(A_FMOVE, tcgsize2opsize[tosize], reg1, hreg)); list.concat(taicpu.op_reg_reg(A_FMOVE, tcgsize2opsize[tosize], hreg, reg2)); end; + OS_F64: + begin + //list.concat(tai_comment.create(strpnew('a_loadfpu_reg_reg rounding via stack'))); + reference_reset_base(href, NR_STACK_POINTER_REG, 0, ctempposinvalid, 0, []); + href.direction:=dir_dec; + list.concat(taicpu.op_reg_ref(A_FMOVE, tcgsize2opsize[tosize], reg1, href)); + href.direction:=dir_inc; + list.concat(taicpu.op_ref_reg(A_FMOVE, tcgsize2opsize[tosize], href, reg2)); + end; else - begin - //list.concat(tai_comment.create(strpnew('a_loadfpu_reg_reg rounding via stack'))); - reference_reset_base(href, NR_STACK_POINTER_REG, 0, ctempposinvalid, 0, []); - href.direction:=dir_dec; - list.concat(taicpu.op_reg_ref(A_FMOVE, tcgsize2opsize[tosize], reg1, href)); - href.direction:=dir_inc; - list.concat(taicpu.op_ref_reg(A_FMOVE, tcgsize2opsize[tosize], href, reg2)); - end; + internalerror(2021020802); end; end else @@ -1098,7 +1100,7 @@ unit cgcpu; fixref(list,href,current_settings.fputype = fpu_coldfire); list.concat(taicpu.op_ref_reg(A_FMOVE,opsize,href,reg)); if fromsize > tosize then - a_load_reg_reg(list,fromsize,tosize,reg,reg); + a_loadfpu_reg_reg(list,fromsize,tosize,reg,reg); end; procedure tcg68k.a_loadfpu_reg_ref(list: TAsmList; fromsize,tosize: tcgsize; reg: tregister; const ref: treference); From ada3d2050c965e570b51ff47f70a6cae2e80b70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Mon, 8 Feb 2021 05:01:45 +0000 Subject: [PATCH 08/17] m68k: write inline floating point immediates as hex consts, instead of scientific notation. the scientific notation format parsing depends on the libc the assembler was linked against, which can lead to varying results and compile errors git-svn-id: trunk@48524 - --- compiler/m68k/ag68kgas.pas | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/compiler/m68k/ag68kgas.pas b/compiler/m68k/ag68kgas.pas index 08bbe3b47f..49c4e08ec6 100644 --- a/compiler/m68k/ag68kgas.pas +++ b/compiler/m68k/ag68kgas.pas @@ -169,7 +169,7 @@ interface end; - function getopstr(var o:toper) : string; + function getopstr(size: topsize; var o:toper) : string; var i : tsuperregister; begin @@ -220,10 +220,14 @@ interface getopstr:='#'+tostr(longint(o.val)); top_realconst: begin - str(o.val_real,getopstr); - if getopstr[1]=' ' then - getopstr[1]:='+'; - getopstr:='#0d'+getopstr; + case size of + S_FS: + getopstr:='#0x'+hexstr(longint(single(o.val_real)),sizeof(single)*2); + S_FD: + getopstr:='#0x'+hexstr(BestRealRec(o.val_real).Data,sizeof(bestreal)*2); + else + internalerror(2021020801); + end; end; else internalerror(200405021); end; @@ -337,7 +341,7 @@ interface sep:=':' else sep:=','; - s:=s+sep+getopstr(taicpu(hp).oper[i]^); + s:=s+sep+getopstr(taicpu(hp).opsize,taicpu(hp).oper[i]^); end; end; end; From 59a16914f3015e85077f97598a28ec8cb5ce6658 Mon Sep 17 00:00:00 2001 From: marco Date: Mon, 8 Feb 2021 09:16:13 +0000 Subject: [PATCH 09/17] * sqrt is 4 characters long, noticed by Artlogic. git-svn-id: trunk@48525 - --- packages/symbolic/src/symbolic.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/symbolic/src/symbolic.pas b/packages/symbolic/src/symbolic.pas index b38a23af8a..2d9d286173 100644 --- a/packages/symbolic/src/symbolic.pas +++ b/packages/symbolic/src/symbolic.pas @@ -240,7 +240,7 @@ const InfixOperatorName : array[addo..powo] of char= ('+','-','*','/','^'); 'LOG10','LOG2','LNXP1','!','ARCTAN2', 'STEP','POWER','HYPOT','LOGN'); LenFunctionNames : array[cosx..lognx] of longint= - (3,3,3,3,3,3,2,3,1,5,6,6,6,4,4,4,7,7,7,5,4,5,1,7,4,5,5,4); + (3,3,3,3,4,3,2,3,1,5,6,6,6,4,4,4,7,7,7,5,4,5,1,7,4,5,5,4); {$I exprstrs.inc} From 3a0eb110ec513fad178844309b16d66347f7525d Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 8 Feb 2021 21:41:04 +0000 Subject: [PATCH 10/17] * FPC_VERSION => FPC_FULLVERSION git-svn-id: trunk@48547 - --- rtl/linux/arm/sighnd.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtl/linux/arm/sighnd.inc b/rtl/linux/arm/sighnd.inc index 4e549092b8..caab79a029 100644 --- a/rtl/linux/arm/sighnd.inc +++ b/rtl/linux/arm/sighnd.inc @@ -40,7 +40,7 @@ asm end; {$endif not CPUTHUMB} -{$if FPC_VERSION >= 30200} +{$if FPC_FULLVERSION >= 30200} Procedure SignalToHandleErrorAddrFrame_Thumb(Errno : longint;addr : CodePointer; frame : Pointer); nostackframe; assembler; asm .thumb_func @@ -98,7 +98,7 @@ begin ucontext^.uc_mcontext.arm_r0:=res; ucontext^.uc_mcontext.arm_r1:=uContext^.uc_mcontext.arm_pc; ucontext^.uc_mcontext.arm_r2:=uContext^.uc_mcontext.arm_fp; -{$if FPC_VERSION >= 30200} +{$if FPC_FULLVERSION >= 30200} {$ifndef CPUTHUMB} if (ucontext^.uc_mcontext.arm_cpsr and (1 shl 5))=0 then begin From ecce39a3b253b55250ffa0133d8d6bf3cdacb4cb Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 9 Feb 2021 20:48:27 +0000 Subject: [PATCH 11/17] + throw a warning in ISO mode if a constant string is assigned to a char and the sizes do not match, resolves #38439 git-svn-id: trunk@48563 - --- .gitattributes | 1 + compiler/msg/errore.msg | 3 + compiler/msgidx.inc | 5 +- compiler/msgtxt.inc | 1116 ++++++++++++++++++++------------------- compiler/ncnv.pas | 3 + tests/webtbf/tw38439.pp | 13 + 6 files changed, 585 insertions(+), 556 deletions(-) create mode 100644 tests/webtbf/tw38439.pp diff --git a/.gitattributes b/.gitattributes index a96d71c30a..d931d282ea 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16713,6 +16713,7 @@ tests/webtbf/tw3812.pp svneol=native#text/plain tests/webtbf/tw38287.pp svneol=native#text/pascal tests/webtbf/tw38289a.pp svneol=native#text/pascal tests/webtbf/tw38289b.pp svneol=native#text/pascal +tests/webtbf/tw38439.pp svneol=native#text/pascal tests/webtbf/tw3930a.pp svneol=native#text/plain tests/webtbf/tw3931b.pp svneol=native#text/plain tests/webtbf/tw3969.pp svneol=native#text/plain diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg index d869971a78..89a1ed6601 100644 --- a/compiler/msg/errore.msg +++ b/compiler/msg/errore.msg @@ -2079,6 +2079,9 @@ type_e_generic_const_type_not_allowed=04128_E_Type not allowed for generic const type_e_cant_read_write_type_in_iso_mode=04129_E_Can't read or write variables of this type in iso mode % You are trying to \var{read} or \var{write} a variable from or to a % file of type text, which doesn't support that variable's type in the selected language mode (iso mode). +type_w_array_size_does_not_match_size_of_constant_string=04130_W_The length of the constant string (length is $1) must be equal to the number of array elements ($2 elements) +% ISO Pascal requires that string constants have the same length as the array to which them they are assigned. +% % \end{description} # # Symtable diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc index fad60bdff9..65efa8defc 100644 --- a/compiler/msgidx.inc +++ b/compiler/msgidx.inc @@ -592,6 +592,7 @@ const type_e_forward_interface_type_does_not_match=04127; type_e_generic_const_type_not_allowed=04128; type_e_cant_read_write_type_in_iso_mode=04129; + type_w_array_size_does_not_match_size_of_constant_string=04130; sym_e_id_not_found=05000; sym_f_internal_error_in_symtablestack=05001; sym_e_duplicate_id=05002; @@ -1136,9 +1137,9 @@ const option_info=11024; option_help_pages=11025; - MsgTxtSize = 86977; + MsgTxtSize = 87094; MsgIdxMax : array[1..20] of longint=( - 28,107,361,130,99,63,145,36,223,68, + 28,107,361,131,99,63,145,36,223,68, 63,20,30,1,1,1,1,1,1,1 ); diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc index b5d23738b1..e155e00272 100644 --- a/compiler/msgtxt.inc +++ b/compiler/msgtxt.inc @@ -750,670 +750,676 @@ const msgtxt : array[0..000362,1..240] of char=( ' interface type do not match for interface $1'#000+ '04128_E_Type not all','owed for generic constant parameter: $1'#000+ '04129_E_Can'#039't read or write variables of this type in iso mode'#000+ - '05000_E_Identifier not found "$1"'#000+ + '04130_W_The length of the constant string (length is $1) must be equal'+ + ' to the number of array elements ($2 elements)'#000+ + '05000_E_Identifier n','ot found "$1"'#000+ '05001_F_Internal Error in SymTableStack()'#000+ '05002_E_Duplicate identifier "$1"'#000+ - '05003_H_Identifier already ','defined in $1 at line $2'#000+ + '05003_H_Identifier already defined in $1 at line $2'#000+ '05004_E_Unknown identifier "$1"'#000+ '05005_E_Forward declaration not solved "$1"'#000+ - '05007_E_Error in type definition'#000+ + '05007_E_Error in type ','definition'#000+ '05009_E_Forward type not resolved "$1"'#000+ - '05010_E_Only static variables can be used in static methods or outs','i'+ - 'de methods'#000+ + '05010_E_Only static variables can be used in static methods or outside'+ + ' methods'#000+ '05012_E_Record or object or class type expected'#000+ - '05013_E_Instances of classes or objects with an abstract method are no'+ - 't allowed'#000+ + '05013_E_Instances of classes or objects with an abstract method',' are '+ + 'not allowed'#000+ '05014_W_Label not defined "$1"'#000+ '05015_E_Label used but not defined "$1"'#000+ - '05016_E_Illegal label declara','tion'#000+ + '05016_E_Illegal label declaration'#000+ '05017_E_GOTO and LABEL are not supported (use switch -Sg)'#000+ '05018_E_Label not found'#000+ '05019_E_Identifier isn'#039't a label'#000+ - '05020_E_Label already defined'#000+ + '050','20_E_Label already defined'#000+ '05021_E_Illegal type declaration of set elements'#000+ - '05022_E_Forward class definition not reso','lved "$1"'#000+ + '05022_E_Forward class definition not resolved "$1"'#000+ '05023_H_Unit "$1" not used in $2'#000+ '05024_H_Parameter "$1" not used'#000+ '05025_N_Local variable "$1" not used'#000+ - '05026_H_Value parameter "$1" is assigned but never used'#000+ + '05026_H_Val','ue parameter "$1" is assigned but never used'#000+ '05027_N_Local variable "$1" is assigned but never used'#000+ - '05028_H_Local $1 ','"$2" is not used'#000+ + '05028_H_Local $1 "$2" is not used'#000+ '05029_N_Private field "$1.$2" is never used'#000+ '05030_N_Private field "$1.$2" is assigned but never used'#000+ - '05031_N_Private method "$1.$2" never used'#000+ + '05031','_N_Private method "$1.$2" never used'#000+ '05032_E_Set type expected'#000+ '05033_W_Function result does not seem to be set'#000+ - '05034_','W_Type "$1" is not aligned correctly in current record for C'#000+ + '05034_W_Type "$1" is not aligned correctly in current record for C'#000+ '05035_E_Unknown record field identifier "$1"'#000+ - '05036_W_Local variable "$1" does not seem to be initialized'#000+ + '05036_W_Local var','iable "$1" does not seem to be initialized'#000+ '05037_W_Variable "$1" does not seem to be initialized'#000+ - '05038_E_Identifier i','dents no member "$1"'#000+ + '05038_E_Identifier idents no member "$1"'#000+ '05039_H_Found declaration: $1'#000+ '05040_E_Data element too large'#000+ - '05042_E_No matching implementation for interface method "$1" found'#000+ + '05042_E_No matching implementation for in','terface method "$1" found'#000+ '05043_W_Symbol "$1" is deprecated'#000+ '05044_W_Symbol "$1" is not portable'#000+ - '05055_W_Symbol "$1" i','s not implemented'#000+ + '05055_W_Symbol "$1" is not implemented'#000+ '05056_E_Can'#039't create unique type from this type'#000+ - '05057_H_Local variable "$1" does not seem to be initialized'#000+ + '05057_H_Local variable "$1" does not seem to be initializ','ed'#000+ '05058_H_Variable "$1" does not seem to be initialized'#000+ - '05059_W_Function result variable does not seem to be initial','ized'#000+ + '05059_W_Function result variable does not seem to be initialized'#000+ '05060_H_Function result variable does not seem to be initialized'#000+ '05061_W_Variable "$1" read but nowhere assigned'#000+ - '05062_H_Found abstract method: $1'#000+ + '05062','_H_Found abstract method: $1'#000+ '05063_W_Symbol "$1" is experimental'#000+ - '05064_W_Forward declaration "$1" not resolved, assum','ed external'#000+ + '05064_W_Forward declaration "$1" not resolved, assumed external'#000+ '05065_W_Symbol "$1" is belongs to a library'#000+ '05066_W_Symbol "$1" is deprecated: "$2"'#000+ - '05067_E_Cannot find an enumerator for the type "$1"'#000+ + '05067_E_Cannot find an enum','erator for the type "$1"'#000+ '05068_E_Cannot find a "MoveNext" method in enumerator "$1"'#000+ - '05069_E_Cannot find a "Current" p','roperty in enumerator "$1"'#000+ + '05069_E_Cannot find a "Current" property in enumerator "$1"'#000+ '05070_E_Mismatch between number of declared parameters and number of c'+ 'olons in message string.'#000+ - '05071_N_Private type "$1.$2" never used'#000+ + '0','5071_N_Private type "$1.$2" never used'#000+ '05072_N_Private const "$1.$2" never used'#000+ - '05073_N_Private property "$1.$2" neve','r used'#000+ + '05073_N_Private property "$1.$2" never used'#000+ '05074_W_Unit "$1" is deprecated'#000+ '05075_W_Unit "$1" is deprecated: "$2"'#000+ '05076_W_Unit "$1" is not portable'#000+ - '05077_W_Unit "$1" is belongs to a library'#000+ + '05077_W_Unit',' "$1" is belongs to a library'#000+ '05078_W_Unit "$1" is not implemented'#000+ '05079_W_Unit "$1" is experimental'#000+ - '05080_E_No full ','definition of the formally declared class "$1" is in'+ - ' scope. Add the unit containing its full definition to the uses clause'+ - '.'#000+ + '05080_E_No full definition of the formally declared class "$1" is in s'+ + 'cope. Add the unit containing its full definition to the uses clause.', + #000+ '05081_E_Gotos into initialization or finalization blocks of units are '+ 'not allowed'#000+ - '05082_E_Invalid external name "$1"',' for formal class "$2"'#000+ + '05082_E_Invalid external name "$1" for formal class "$2"'#000+ '05083_E_Complete class definition with external name "$1" here'#000+ - '05084_W_Possible library conflict: symbol "$1" from library "$2" also '+ - 'found in library "$3"'#000+ - '05085_E_Cannot add implicit constructor '#039'Create'#039' because ident', + '05084_W_Possible library conflict: sy','mbol "$1" from library "$2" als'+ + 'o found in library "$3"'#000+ + '05085_E_Cannot add implicit constructor '#039'Create'#039' because ident'+ 'ifier already used by "$1"'#000+ '05086_E_Cannot generate default constructor for class, because parent '+ - 'has no parameterless constructor'#000+ + 'has no parameterless const','ructor'#000+ '05087_D_Adding helper for $1'#000+ '05088_E_Found declaration: $1'#000+ - '05089_W_Local variable "$1" of a managed type does ','not seem to be in'+ - 'itialized'#000+ + '05089_W_Local variable "$1" of a managed type does not seem to be init'+ + 'ialized'#000+ '05090_W_Variable "$1" of a managed type does not seem to be initialize'+ 'd'#000+ - '05091_H_Local variable "$1" of a managed type does not seem to be init'+ - 'ialized'#000+ - '05092_H_Variable "$1" of a managed type does not seem to be ini','tiali'+ - 'zed'#000+ + '05091_H_Local variable "','$1" of a managed type does not seem to be in'+ + 'itialized'#000+ + '05092_H_Variable "$1" of a managed type does not seem to be initialize'+ + 'd'#000+ '05093_W_Function result variable of a managed type does not seem to be'+ ' initialized'#000+ - '05094_H_Function result variable of a managed type does not seem to be'+ - ' initialized'#000+ + '05094_H_Function result variabl','e of a managed type does not seem to '+ + 'be initialized'#000+ '05095_W_Duplicate identifier "$1"'#000+ - '05096_E_Generic type parameter ','"$1" does not match with the one in t'+ - 'he declaration'#000+ + '05096_E_Generic type parameter "$1" does not match with the one in the'+ + ' declaration'#000+ '05097_E_Generic type parameter declared as "$1"'#000+ - '05098_E_Record or object type expected'#000+ + '05098_E_Record or objec','t type expected'#000+ '06009_E_Parameter list size exceeds 65535 bytes'#000+ '06012_E_File types must be var parameters'#000+ - '06013_E_The',' use of a far pointer isn'#039't allowed there'#000+ + '06013_E_The use of a far pointer isn'#039't allowed there'#000+ '06015_E_EXPORT declared functions cannot be called'#000+ - '06016_W_Possible illegal call of constructor or destructor'#000+ + '06016_W_Possible illegal call ','of constructor or destructor'#000+ '06017_N_Inefficient code'#000+ '06018_W_Unreachable code'#000+ - '06020_E_Abstract methods cannot be cal','led directly'#000+ + '06020_E_Abstract methods cannot be called directly'#000+ '06027_DL_Register $1 weight $2 $3'#000+ '06029_DL_Stack frame is omitted'#000+ - '06031_E_Object or class methods cannot be inline.'#000+ + '06031_E_Object or class methods cannot be in','line.'#000+ '06032_E_Procvar calls cannot be inline.'#000+ '06033_E_No code for inline procedure stored'#000+ - '06035_E_Element zero of an ','ansi/wide- or longstring cannot be access'+ - 'ed, use (set)length instead'#000+ - '06037_E_Constructors or destructors cannot be called inside a '#039'wit'+ - 'h'#039' clause'#000+ + '06035_E_Element zero of an ansi/wide- or longstring cannot be accessed'+ + ', use (set)length instead'#000+ + '06037_E_Constructors or destructors cannot be called i','nside a '#039'w'+ + 'ith'#039' clause'#000+ '06038_E_Cannot call message handler methods directly'#000+ - '06039_E_Jump in or outside of an exception',' block'#000+ + '06039_E_Jump in or outside of an exception block'#000+ '06040_E_Control flow statements are not allowed in a finally block'#000+ - '06041_W_Parameters size exceeds limit for certain cpu'#039's'#000+ + '06041_W_Parameters size exceeds limit for certain',' cpu'#039's'#000+ '06042_W_Local variable size exceed limit for certain cpu'#039's'#000+ - '06043_E_Local variables size exceeds supported limi','t'#000+ + '06043_E_Local variables size exceeds supported limit'#000+ '06044_E_BREAK not allowed'#000+ '06045_E_CONTINUE not allowed'#000+ - '06046_F_Unknown compilerproc "$1". Check if you use the correct run ti'+ - 'me library.'#000+ + '06046_F_Unknown compilerproc "$1". Check if you use the correct ru','n '+ + 'time library.'#000+ '06047_F_Cannot find system type "$1". Check if you use the correct run'+ ' time library.'#000+ - '06048_H_Inherite','d call to abstract method ignored'#000+ + '06048_H_Inherited call to abstract method ignored'#000+ '06049_E_Goto label "$1" not defined or optimized away'#000+ - '06050_F_Cannot find type "$1" in unit "$2". Check if you use the corre'+ - 'ct run time library.'#000+ - '06051_E_Interprocedural gotos are allowed only to outer subro','utines'#000+ + '06050_F_Cannot find type "$1" in un','it "$2". Check if you use the cor'+ + 'rect run time library.'#000+ + '06051_E_Interprocedural gotos are allowed only to outer subroutines'#000+ '06052_E_Label must be defined in the same scope as it is declared'#000+ - '06053_E_Leaving procedures containing explicit or implicit exceptions '+ - 'frames using goto is not allowed'#000+ - '06054_E_In ISO mode, the mod operator is defined only for positi','ve q'+ - 'uotient'#000+ + '06053_E_Leaving procedures containing explicit or ','implicit exception'+ + 's frames using goto is not allowed'#000+ + '06054_E_In ISO mode, the mod operator is defined only for positive quo'+ + 'tient'#000+ '06055_DL_Auto inlining: $1'#000+ '06056_E_The function used, is not supported by the selected instructio'+ 'n set: $1'#000+ - '06057_F_Maximum number of units ($1) reached for the current target'#000+ - '06058_N_Call to subroutine "$1" marked as inline is n','ot inlined'#000+ + '0605','7_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+ '06059_E_Case statement does not handle ordinal value "$1", and no else'+ '/otherwise statement is present.'#000+ - '06060_W_Case statement does not handle all possible cases'#000+ - '06061_W_The current subroutine "$1" cannot be compiled for the targe','t'+ - ' CPU, creating dummy'#000+ + '06060_W_C','ase statement does not handle all possible cases'#000+ + '06061_W_The current subroutine "$1" cannot be compiled for the target '+ + 'CPU, creating dummy'#000+ '06062_W_The target CPU does not support preserving the registers in su'+ 'broutine "$1"'#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+ '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+ '07006_E_TYPE used 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+ '07009_E_Need to use $ here'#000+ - '07010_E_Cannot use m','ultiple relocatable symbols'#000+ + '07010_E_Cannot use multiple relocatable symbols'#000+ '07011_E_Relocatable symbol can only be added'#000+ '07012_E_Invalid constant expression'#000+ - '07013_E_Relocatable symbol is not allowed'#000+ + '07013_E_Reloca','table symbol is not allowed'#000+ '07014_E_Invalid reference syntax'#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+ - '07018_W_Possible error in object field handling'#000+ + '07018_W_Possible error in objec','t field handling'#000+ '07019_E_Wrong scale factor specified'#000+ '07020_E_Multiple index register usage'#000+ - '07021_E_Invalid operand t','ype'#000+ + '07021_E_Invalid operand type'#000+ '07022_E_Invalid string as opcode operand: $1'#000+ '07023_W_@CODE and @DATA not supported'#000+ - '07024_E_Null label references are not allowed'#000+ + '07024_E_Null label references are no','t allowed'#000+ '07025_E_Divide by zero in asm evaluator'#000+ '07026_E_Illegal expression'#000+ '07027_E_Escape sequence ignored: $1'#000+ - '0702','8_E_Invalid symbol reference'#000+ + '07028_E_Invalid symbol reference'#000+ '07029_W_Fwait can cause emulation problems with emu387'#000+ - '07030_W_$1 without operand translated into $1P'#000+ + '07030_W_$1 without operand translated i','nto $1P'#000+ '07031_W_ENTER instruction is not supported by Linux kernel'#000+ - '07032_W_Calling an overload function in assembler'#000, + '07032_W_Calling an overload function in assembler'#000+ '07033_E_Unsupported symbol type for operand'#000+ '07034_E_Constant value out of bounds'#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+ '07038_E_Error converting hexadecimal $1'#000+ - '07039_H_$1 tra','nslated to $2'#000+ + '07039_H_$1 translated to $2'#000+ '07040_W_$1 is associated to an overloaded function'#000+ '07041_E_Cannot use SELF outside a method'#000+ - '07042_E_Cannot use OLDEBP outside a nested procedure'#000+ + '07042_E_Cannot us','e OLDEBP outside a nested procedure'#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+ - '07046_W_Size suffix and destination or source size do not match'#000+ + '07046_W_Size suffix and destination or source size do not m','atch'#000+ '07047_E_Assembler syntax error'#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+ '07051_E_Invalid String expression'#000+ - '07052_W_Constant with symbol $1 for address which is not on a pointer'#000+ + '07052_W_Constant with symbol $1 fo','r address which is not on a pointe'+ + 'r'#000+ '07053_E_Unrecognized opcode $1'#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+ - '07057_E_Too many operands on line'#000+ + '07057_E_Too many operands on li','ne'#000+ '07058_W_NEAR ignored'#000+ '07059_W_FAR ignored'#000+ '07060_E_Duplicate 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+ '07064_E_Invalid floating point register name'#000+ - '07066_W_Modulo not supported'#000+ + '07066_W_Modulo no','t supported'#000+ '07067_E_Invalid floating point constant $1'#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+ '07071_E_Invalid segment override expression'#000+ - '07072_W_Identifier $1 supposed external'#000+ + '07072_W_Ide','ntifier $1 supposed external'#000+ '07073_E_Strings not allowed as constants'#000+ '07074_E_No type of variable specified'#000+ - '07075_E_A','ssembler 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+ - '07077_E_Using a defined name as a local label'#000+ + '07077_E_Using a defined name as a loc','al label'#000+ '07078_E_Dollar token is used without an identifier'#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+ - '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 oper'+ - 'and','s'#000+ + 'ands'#000+ '07084_E_Cannot use RESULT in this function'#000+ '07086_W_"$1" without operand translated into "$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+ - '07089_E_Char < not allowed her','e'#000+ + '07089_E_Char < not allowed here'#000+ '07090_E_Char > not allowed here'#000+ '07093_W_ALIGN not supported'#000+ '07094_E_Inc and Dec cannot be together'#000+ - '07095_E_Invalid register list for MOVEM or FMOVEM'#000+ + '07095_E_Invalid regist','er list for MOVEM or FMOVEM'#000+ '07096_E_Reglist invalid for opcode'#000+ '07097_E_Higher cpu mode required ($1)'#000+ - '07098_W_No size ','specified and unable to determine the size of the op'+ - 'erands, using DWORD as default'#000+ - '07099_E_Syntax error while trying to parse a shifter operand'#000+ + '07098_W_No size specified and unable to determine the size of the oper'+ + 'ands, using DWORD as default'#000+ + '07099_E_Syntax error while trying to par','se a shifter operand'#000+ '07100_E_Address of packed component is not at a byte boundary'#000+ - '07101_W_No size specified and unab','le to determine the size of the op'+ - 'erands, using BYTE as default'#000+ + '07101_W_No size specified and unable to determine the size of the oper'+ + 'ands, using BYTE as default'#000+ '07102_W_Use of $1 for parameters invalid here'#000+ - '07103_W_Use of $1 is not compatible with regcall convention'#000+ + '07103_W_Use o','f $1 is not compatible with regcall convention'#000+ '07104_W_Use of $1 is not recommended for local variable access'#000+ - '07105_W','_Use of $1, access may cause a crash or value may be lost'#000+ - '07106_E_VMTOffset must be used in combination with a virtual method, a'+ - 'nd "$1" is not virtual'#000+ + '07105_W_Use of $1, access may cause a crash or value may be lost'#000+ + '07106_E_VMTOffset must be used in combination with a virtual meth','od,'+ + ' and "$1" is not virtual'#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'+ - ' width'#000+ + '07108_E_All registers in a register set must be of the same kind and w'+ + 'idth'#000+ '07109_E_A register set cannot be empty'#000+ - '07110_W_@GOTPCREL is useless and potentially dangerous for local symbo'+ - 'ls'#000+ + '07110_W_@GOTPCREL is useless and potentially',' dangerous for local sym'+ + 'bols'#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+ '07114_E_SEH directives are allowed only in pure assembler procedures'#000+ - '07115_E_Directive "$1" is not supported for the current target'#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'+ - ' in a s','ingle 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+ + ' base or in','dex register, and their offset must 0.'#000+ '07118_E_The current target does not support GOTPCREL relocations'#000+ - '07119_W_Expor','ted/global symbols should be accessed via the GOT'#000+ + '07119_W_Exported/global symbols should be accessed via the GOT'#000+ '07120_W_Check size of memory operand "$1"'#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-o','perand-size is $2 '+ - 'bits, but expected [$3 bits + $4 byte offset]"'#000+ - '07123_W_Check "$1: offset of memory operand is negative "$2 byte"'#000+ + '07121_W_Check size of memory op','erand "$1: memory-operand-size is $2 '+ + 'bits, but expected [$3 bits]"'#000+ + '07122_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+ + 'ts, but expected [$3 bits + $4 byte offset]"'#000+ + '07123_W_Check "$1: offset of memory operand is negative "$','2 byte"'#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+ + 'erent definitions of the memory size =>> map to $2 (smallest option)"'#000+ '07125_E_Invalid 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 can only be used with the SEG operator'#000+ - '07128_E_Not enough space (16 bits required)',' for the segment constant'+ - ' of symbol $1'#000+ + '07128_E_Not enough space (16 bits required) for the segment constant o'+ + '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'+ - 'tant, using BYTE as default'#000+ - '07131_W_No size specified and unable to determine the',' size of the co'+ - 'nstant, using WORD as default'#000+ + '07130_W_No size specified and unab','le to determine the size of the co'+ + 'nstant, using BYTE as default'#000+ + '07131_W_No size specified and unable to determine the size of the cons'+ + 'tant, using WORD as default'#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 (expect','ed "$1")'#000+ '07134_E_Address sizes do not match'#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 '+ - 'and 8088 CPUs)'#000+ - '07137_E_Label $1 can only be declared public before it'#039's defined'#000+ + '07136_W_Instruction "POP CS" is not portable (it only works on 8086 an'+ + 'd 8088 CPUs)'#000+ + '07137_E_Label $1 can only be declared public bef','ore it'#039's defined'+ + #000+ '07138_E_Local label $1 cannot be declared public'#000+ '07139_E_Cannot use multiple segment overrides'#000+ - '07140','_W_Multiple segment overrides (only the last one will take effe'+ - 'ct)'#000+ - '07141_W_Segment base $1 will be generated, but is ignored by the CPU i'+ - 'n 64-bit mode'#000+ + '07140_W_Multiple segment overrides (only the last one will take effect'+ + ')'#000+ + '07141_W_Segment base $1 will be generated, but is ignore','d by the CPU'+ + ' in 64-bit mode'#000+ '07142_E_Mismatch broadcasting elements (expected: {$1} found: {$2})'#000+ - '07143_E_Invalid arran','gement specifier "$1"'#000+ + '07143_E_Invalid arrangement specifier "$1"'#000+ '07144_E_Registers in a register set must be consecutive.'#000+ '08000_F_Too many assembler files'#000+ - '08001_F_Selected assembler output not supported'#000+ + '08001_F_Sel','ected assembler output not supported'#000+ '08002_F_Comp not supported'#000+ '08003_F_Direct not support 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+ '08006_E_Asm: Opcode $1 not in table'#000+ - '08007_E_Asm: $1 invalid combination of opcode and operands'#000+ + '08','007_E_Asm: $1 invalid combination of opcode and operands'#000+ '08008_E_Asm: 16 Bit references not supported'#000+ - '08009_E_Asm: In','valid effective address'#000+ + '08009_E_Asm: Invalid effective address'#000+ '08010_E_Asm: Immediate or reference expected'#000+ '08011_E_Asm: $1 value exceeds bounds $2'#000+ - '08012_E_Asm: Short jump is out of range $1'#000+ + '08012_E_Asm: S','hort jump is out of range $1'#000+ '08013_E_Asm: Undefined label $1'#000+ '08014_E_Asm: Comp type not supported for this target'#000+ - '080','15_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+ '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+ '08020_E_Asm: 16 or 32 Bit references 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 instruction requiring'+ ' REX prefix'#000+ - '08023_E_Missing .seh_endprologue directive'#000+ + '0802','3_E_Missing .seh_endprologue directive'#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+ - '08027_N_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 refe','rences not supported'#000+ + '08029_E_Asm: 32 Bit references not supported'#000+ '08030_F_Code segment too large'#000+ '08031_F_Data segment too large'#000+ - '08032_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+ - '08034_E_Asm: RIP cannot be used',' as index register or with another re'+ - 'gister in a reference'#000+ + '08034_E_Asm: RIP cannot be used as index register or with another regi'+ + 'ster in a reference'#000+ '08035_F_Illegal function size for SEH function'#000+ - '09000_W_Source operating system redefined'#000+ + '09000_W_Source op','erating system redefined'#000+ '09001_I_Assembling (pipe) $1'#000+ '09002_E_Can'#039't create assembler file: $1'#000+ - '09003_E_Can'#039't create ob','ject 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+ - '09005_E_Assembler $1 not found, switching to external assembling'#000+ + '09005_E_Assembler $1 not found, switching to external ','assembling'#000+ '09006_T_Using assembler: $1'#000+ '09007_E_Error while assembling exitcode $1'#000+ - '09008_E_Can'#039't call the assembler, e','rror $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+ '09010_I_Assembling with smartlinking $1'#000+ - '09011_W_Object $1 not found, Linking may fail !'#000+ + '09011_W_Object $1 no','t found, Linking may fail !'#000+ '09012_W_Library $1 not found, Linking may fail !'#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+ - '09016_E_Util $1 not found, switching to external linking'#000+ + '09016_E_Util $1 not found, switching to external linkin','g'#000+ '09017_T_Using util $1'#000+ '09018_E_Creation of Executables not supported'#000+ - '09019_E_Creation of Dynamic/Shared Libraries no','t supported'#000+ + '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+ '09035_E_Creation of Static Libraries not supported'#000+ '09020_I_Closing script $1'#000+ - '09021_E_Resource compiler "$1" not found, switching to external mode'#000+ + '09021_E_Resource compiler "$1" not',' found, switching to external mode'+ + #000+ '09022_I_Compiling resource $1'#000+ - '09023_T_Unit $1 cannot be statically linked, switchi','ng 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+ - '09025_T_Unit $1 cannot be shared linked, switching to static linking'#000+ + '09025_T_Unit $1 cannot be shared li','nked, switching to static linking'+ + #000+ '09026_E_Unit $1 cannot be smart or static linked'#000+ - '09027_E_Unit $1 cannot be shared o','r 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+ '09029_E_Error while compiling resources'#000+ - '09030_E_Can'#039't call the resource compiler "$1", switching to extern'+ - 'al mode'#000+ + '09','030_E_Can'#039't call the resource compiler "$1", switching to exte'+ + 'rnal mode'#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+ - '09034_W_"$1" not found, this will probably cause a linking failure'#000+ + '09034_W_"$1" not found, this will pr','obably cause a linking failure'#000+ '09128_F_Can'#039't post process 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+ '09132_X_Size of uninitialized data: $1 bytes'#000+ - '09133_X_Stack space reserved: $1 bytes'#000+ + '09133_X_Stack sp','ace reserved: $1 bytes'#000+ '09134_X_Stack space committed: $1 bytes'#000+ - '09200_F_Executable image size is too big 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'+ ' "$2".'#000+ - '09202_E_Program segment too large (exceeds 64k by $1 bytes)'#000+ + '09202_E_Program segment too large (exceeds 6','4k by $1 bytes)'#000+ '09203_E_Code segment "$1" too large (exceeds 64k by $2 bytes)'#000+ - '09204_E_Data segment "$1" too large (ex','ceeds 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+ - '09206_E_Group "$1" too large (exceeds 64k by $2 bytes)'#000+ + '09206_E_Group "$1" too large (exceeds 64k b','y $2 bytes)'#000+ '09207_E_Cannot create a .COM file, because the program contains segmen'+ '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+ - '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+ - '09212_E_COMDAT section selection mode doe','sn'#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+ - '09214_D_Discarding duplicate symbol "$1" due to COMDAT selection mode'#000+ - '09215_D_Discarding duplicate symbol "$1" with same size due to C','OMDA'+ - 'T selection mode'#000+ + '09214_D_Discardin','g 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'+ 'AT selection mode'#000+ - '09217_D_Replacing duplicate symbol "$1" with smaller size due to COMDA'+ - 'T selection mode'#000+ - '09218_E_Size of duplicate COMDAT symbol "$1"',' differs'#000+ + '09217_D_Replac','ing duplicate symbol "$1" with smaller size due to COM'+ + 'DAT selection mode'#000+ + '09218_E_Size 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+ - '09221_E_Undefined symbol: $1 (first seen in $2)'#000+ + '0922','1_E_Undefined symbol: $1 (first seen in $2)'#000+ '09222_E_Undefined symbol: $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+ '10003_U_PPU Flags: $1'#000+ '10004_U_PPU Crc: $1'#000+ '10005_U_PPU Time: $1'#000+ '10006_U_PPU File too short'#000+ - '10007_U_PPU Invalid Header (no PPU at the begin)'#000+ + '10007_U_PP','U Invalid Header (no PPU at the begin)'#000+ '10008_U_PPU Invalid Version $1'#000+ '10009_U_PPU is compiled for another processor'#000+ - '1','0010_U_PPU is compiled for another target'#000+ + '10010_U_PPU is compiled for another target'#000+ '10011_U_PPU Source: $1'#000+ '10012_U_Writing $1'#000+ '10013_F_Can'#039't Write PPU-File'#000+ - '10014_F_Error reading PPU-File'#000+ + '10014_F_Er','ror reading PPU-File'#000+ '10015_F_Unexpected end of PPU-File'#000+ '10016_F_Invalid PPU-File entry: $1'#000+ - '10017_F_PPU Dbx count prob','lem'#000+ + '10017_F_PPU Dbx count problem'#000+ '10018_E_Illegal unit name: $1 (expecting $2)'#000+ '10019_F_Too much units'#000+ '10020_F_Circular unit reference between $1 and $2'#000+ - '10021_F_Can'#039't compile unit $1, no sources available'#000+ + '1','0021_F_Can'#039't compile unit $1, no sources available'#000+ '10022_F_Can'#039't find unit $1 used by $2'#000+ - '10023_W_Unit $1 was not foun','d but $2 exists'#000+ + '10023_W_Unit $1 was not found but $2 exists'#000+ '10024_F_Unit $1 searched but $2 found'#000+ '10025_W_Compiling the system unit requires the -Us switch'#000+ - '10026_F_There were $1 errors compiling module, stopping'#000+ + '10026_F_The','re were $1 errors compiling module, stopping'#000+ '10027_U_Load from $1 ($2) unit $3'#000+ - '10028_U_Recompiling $1, checksum chang','ed for $2'#000+ + '10028_U_Recompiling $1, checksum changed for $2'#000+ '10029_U_Recompiling $1, source found only'#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_Reco','mpiling unit, shared lib is older than ppufile'#000+ '10032_U_Recompiling unit, obj and asm are older than ppufile'#000+ - '10033_U_R','ecompiling unit, obj is older than asm'#000+ + '10033_U_Recompiling unit, obj is older than asm'#000+ '10034_U_Parsing interface 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+ - '10040_W_Can'#039't recompile unit $1, but found modified include files'#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'+ - 'ode'#000+ + '10042_U_Trying to use a unit which was compiled with a ','different FPU'+ + ' mode'#000+ '10043_U_Loading interface units from $1'#000+ '10044_U_Loading implementation units from $1'#000+ - '10045_U_Inter','face CRC changed for unit $1'#000+ + '10045_U_Interface CRC changed for unit $1'#000+ '10046_U_Implementation CRC changed for unit $1'#000+ '10047_U_Finished compiling unit $1'#000+ - '10048_U_Adding dependency: $1 depends on $2'#000+ + '10048_U_Addi','ng dependency: $1 depends on $2'#000+ '10049_U_No reload, is caller: $1'#000+ '10050_U_No reload, already in second compile: $1'#000+ - '100','51_U_Flag for reload: $1'#000+ + '10051_U_Flag for reload: $1'#000+ '10052_U_Forced reloading'#000+ '10053_U_Previous state of $1: $2'#000+ - '10054_U_Already compiling $1, setting second compile'#000+ + '10054_U_Already compiling $1, setting se','cond compile'#000+ '10055_U_Loading unit $1'#000+ '10056_U_Finished loading unit $1'#000+ '10057_U_Registering new unit $1'#000+ - '10058_U_Re-reso','lving unit $1'#000+ + '10058_U_Re-resolving unit $1'#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 neede','d)'#000+ '10061_E_Unit $1 was compiled using a different whole program optimizat'+ - 'ion feedback input ($2, $3); recompile it wi','thout 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+ + 'ion feedback input ($2, $3); recompile it without wpo or use the same '+ + 'wpo feedback input file for this compilation invocation'#000+ + '10062_U_Indirect interface (objects/class','es) CRC changed for unit $1'+ + #000+ '10063_U_PPU is compiled for another i8086 memory model'#000+ - '10064_U_Loading unit $1 from packa','ge $2'#000+ + '10064_U_Loading unit $1 from package $2'#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'+ - ' the correct run time library.'#000+ - '10067_U_Skipping unit, PPU and compiler have',' to be both compiled wit'+ - 'h or without LLVM support'#000+ + '10066_F_Internal type "$1" d','oes not look as expected. Check if you u'+ + 'se the correct run time library.'#000+ + '10067_U_Skipping unit, PPU and compiler have to be both compiled with '+ + 'or without LLVM support'#000+ '11000_O_$1 [options] [options]'#000+ - '11001_W_Only one source file supported, changing source file to compil'+ - 'e from "$1" into "$2"'#000+ + '11001_W_Only one source file s','upported, changing source file to comp'+ + 'ile from "$1" into "$2"'#000+ '11002_W_DEF file can be created only for OS/2'#000+ - '11003_E_N','ested 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+ - '11005_N_No option inside $1 config file'#000+ + '11005_N_No option inside $1 config file'#000, '11006_E_Illegal parameter: $1'#000+ '11007_H_-? writes help pages'#000+ '11008_F_Too many config files nested'#000+ - '11009_F_Unable to ope','n file $1'#000+ + '11009_F_Unable to open file $1'#000+ '11010_D_Reading further options from $1'#000+ '11011_W_Target is already set to: $1'#000+ - '11012_W_Shared libs not supported on DOS platform, reverting to static'+ - #000+ + '11012_W_Shared libs not supported on',' DOS platform, reverting to stat'+ + 'ic'#000+ '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered'#000+ - '11014_F_In o','ptions file $1 at line $2 unexpected #ENDIFs encountered'+ - #000+ + '11014_F_In options file $1 at line $2 unexpected #ENDIFs encountered'#000+ '11015_F_Open conditional at the end of the options file'#000+ - '11016_W_Debug information generation is not supported by this executab'+ - 'le'#000+ + '11016_W_De','bug information generation is not supported by this execut'+ + 'able'#000+ '11017_H_Try recompiling with -dGDB'#000+ - '11018_W_You are usi','ng 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+ - '11020_N_Switching assembler to default source writing assembler'#000+ + '11020_N_Switching assembler to defaul','t source writing assembler'#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+ '11027_T_Reading options from environment $1'#000+ '11028_D_Handling option "$1"'#000+ - '11029_O_*** press enter ***'#000+ + '11','029_O_*** press enter ***'#000+ '11030_H_Start of reading config file $1'#000+ '11031_H_End of reading config file $1'#000+ - '11032_D_Inter','preting option "$1"'#000+ + '11032_D_Interpreting option "$1"'#000+ '11036_D_Interpreting firstpass 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+ '11039_E_Unknown codepage "$1"'#000+ '11040_F_Config file $1 is a directory'#000+ - '11','041_W_Assembler output selected "$1" cannot generate debug info, d'+ - 'ebugging disabled'#000+ - '11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead'#000+ + '11041_W_Assembler output selected "$1" cannot generate debug info, deb'+ + 'ugging disabled'#000+ + '11042_W_Use of ppc386.cfg is deprecated',', please use fpc.cfg instead'#000+ '11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DE'+ 'F found'#000+ - '11044_F_Op','tion "$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'+ - ' target platform'#000+ + '11044_F_Option "$1" is not, or not yet, supported on the current targe'+ + 't platform'#000+ + '11045_F_The feature "$1" is not, or not yet, support','ed on the select'+ + 'ed target platform'#000+ '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 unsupported'+ - ' for the selected target/debug format combination.'#000+ - '11049_N_DWARF debug informa','tion 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 ','var'+ - 'iable: $1'#000+ + '11048_W_Disabling external debu','g information because it is unsupport'+ + '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 fo','r MACOSX_DEPLOYMENT_TARGET environment varia'+ + 'ble: $1'#000+ + '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+ + 'ble: $1'#000+ '11052_E_You must use one of the VFP FPU types when using the EABIHF AB'+ 'I target'#000+ - '11053_W_The selected debug format is not supported on the current targ'+ - 'et, not changing the current setting'#000+ + '11053_W_The selected debug form','at is not supported on the current ta'+ + 'rget, not changing the current setting'#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+ - '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 opt','ion not enabled because it is i'+ - 'ncomptatible with -Ur option.'#000+ - '11059_E_Unsupported target architecture -P$1, invoke the "fpc" compile'+ - 'r driver instead.'#000+ + '11057_E_Creating .COM files is not supported in t','he 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+ + '11059_E_Unsupported target architecture -P$1, invoke the "fpc"',' compi'+ + 'ler driver instead.'#000+ '11060_E_Feature switches are only supported while compiling the system'+ ' unit.'#000+ - '11061_N_The se','lected debug format is not supported by the internal l'+ - 'inker, switching to external linking'#000+ - '11062_E_You can not use both options ($1) ($2) at same time.'#000+ + '11061_N_The selected debug format is not supported by the internal lin'+ + 'ker, switching to external linking'#000+ + '11062_E_You can not use both opt','ions ($1) ($2) at same time.'#000+ '12000_F_Cannot open whole program optimization feedback file "$1"'#000+ - '12001_D_Processing who','le program optimization information in wpo fee'+ - 'dback file "$1"'#000+ - '12002_D_Finished processing the whole program optimization information'+ - ' in wpo feedback file "$1"'#000+ + '12001_D_Processing whole program optimization information in wpo feedb'+ + 'ack file "$1"'#000+ + '12002_D_Finished processing the whole program optimization in','formati'+ + 'on in wpo feedback file "$1"'#000+ '12003_E_Expected section header, but got "$2" at line $1 of wpo feedba'+ 'ck file'#000+ - '120','04_W_No handler registered for whole program optimization section'+ - ' "$2" at line $1 of wpo feedback file, ignoring'#000+ - '12005_D_Found whole program optimization section "$1" with information'+ - ' about "$2"'#000+ - '12006_F_The selected whole program optimizati','ons 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+ + '12004_W_No handler registered for whole program optimization section "'+ + '$2" at line $1 of wpo feedback file, ignoring'#000+ + '12005_D_Fo','und whole program optimization section "$1" with informati'+ + 'on about "$2"'#000+ + '12006_F_The selected whole program optimizations require a previously '+ + 'generated feedback file (use -Fw to specify)'#000+ + '12007_E_No collected information necessary to perform',' "$1" whole pro'+ + 'gram optimization found'#000+ '12008_F_Specify a whole program optimization feedback file to store th'+ - 'e genera','ted info in (using -FW)'#000+ + 'e generated info in (using -FW)'#000+ '12009_E_Not generating any whole program optimization information, yet'+ - ' a feedback file was specified (using -FW)'#000+ + ' a feedback file was specifie','d (using -FW)'#000+ '12010_E_Not performing any whole program optimizations, yet an input f'+ - 'eedback file was specified (using',' -Fw)'#000+ + 'eedback file was specified (using -Fw)'#000+ '12011_D_Skipping whole program optimization section "$1", because not '+ 'needed by the requested optimizations'#000+ - '12012_W_Overriding previously read information for "$1" from feedback '+ - 'input file using information in section "$2"'#000+ - '12013_E_Can','not extract symbol liveness information from program when'+ - ' stripping symbols, use -Xs-'#000+ - '12014_E_Cannot extract symbol liveness information from program when w'+ - 'hen not linking'#000+ - '12015_F_Cannot find "$1" or "$2" to extract symbol liveness informat','i'+ - 'on from linked program'#000+ + '12012_W_O','verriding previously read information for "$1" from feedbac'+ + 'k input file using information in section "$2"'#000+ + '12013_E_Cannot extract symbol liveness information from program when s'+ + 'tripping symbols, use -Xs-'#000+ + '12014_E_Cannot extract symbol livenes','s information from program when'+ + ' when not linking'#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 produced by "'+ '$1"'#000+ - '12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+ - 'ion from linked program'#000+ - '12018_E_Collection of symbol liveness informatio','n can only help when'+ - ' using smart linking, use -CX -XX'#000+ - '12019_E_Cannot create specified whole program optimisation feedback fi'+ - 'le "$1"'#000+ + '12017_F_Error executing "','$1" (exitcode: $2) to extract symbol inform'+ + 'ation from linked program'#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 f', + 'ile "$1"'#000+ '13001_F_Can'#039't find package $1'#000+ '13002_U_PCP file for package $1 found'#000+ '13003_E_Duplicate package $1'#000+ - '13004_E_Uni','t $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+ - '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+ '13008_T_PCP loading $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+ '13012_U_PCP Time: $1'#000+ '13013_U_PCP File too short'#000+ - '13014_U_PCP Invalid Header (no PCP at the begin)'#000+ + '13014_U_PCP Invalid Header (no PCP at th','e begin)'#000+ '13015_U_PCP Invalid Version $1'#000+ '13016_U_PCP is compiled for another processor'#000+ - '13017_U_PCP is compiled for ano','ther target'#000+ + '13017_U_PCP is compiled for another target'#000+ '13018_U_Writing $1'#000+ '13019_F_Can'#039't Write PCP-File'#000+ '13020_F_Error reading PCP-File'#000+ - '13021_F_Unexpected end of PCP-File'#000+ + '13021_F_Unexpected end of PCP-Fi','le'#000+ '13022_F_Invalid PCP-File entry: $1'#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+ '13026_U_Contained unit $1'#000+ - '13027_E_Unit $1 is already contained in package $2'#000+ + '13027_E_Unit $1 is already contained in package ','$2'#000+ '13028_W_Unit $1 is imported from indirectly required package $2'#000+ '13029_U_PPL filename $1'#000+ - '11023_Free Pascal Compiler',' version $FPCFULLVERSION [$FPCDATE] for $F'+ - 'PCCPU'#010+ + '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+ + 'CPU'#010+ 'Copyright (c) 1993-2021 by Florian Klaempfl and others'#000+ - '11024_Free Pascal Compiler version $FPCVERSION'#010+ + '11024_Free Pascal Co','mpiler version $FPCVERSION'#010+ #010+ 'Compiler date : $FPCDATE'#010+ 'Compiler CPU target: $FPCCPU'#010+ #010+ - 'Supported targets (targets ma','rked with '#039'{*}'#039' are under devel'+ - 'opment):'#010+ + 'Supported targets (targets marked with '#039'{*}'#039' are under develop'+ + 'ment):'#010+ ' $OSTARGETS'#010+ #010+ 'Supported CPU instruction sets:'#010+ ' $INSTRUCTIONSETS'#010+ #010+ - 'Supported FPU instruction sets:'#010+ + 'Supported FPU ins','truction sets:'#010+ ' $FPUINSTRUCTIONSETS'#010+ #010+ 'Supported inline assembler modes:'#010+ ' $ASMMODES'#010+ #010+ - 'Recognized compiler and RTL feat','ures:'#010+ + 'Recognized compiler and RTL features:'#010+ ' $FEATURELIST'#010+ #010+ 'Recognized modeswitches:'#010+ @@ -1422,7 +1428,7 @@ const msgtxt : array[0..000362,1..240] of char=( 'Supported ABI targets:'#010+ ' $ABITARGETS'#010+ #010+ - 'Supported Optimizations:'#010+ + 'Supported Optimizatio','ns:'#010+ ' $OPTIMIZATIONS'#010+ #010+ 'Supported Whole Program Optimizations:'#010+ @@ -1430,580 +1436,582 @@ const msgtxt : array[0..000362,1..240] of char=( ' $WPOPTIMIZATIONS'#010+ #010+ 'Code Generation Backend'#010+ - ' $COD','EGENERATIONBACKEND'#010+ + ' $CODEGENERATIONBACKEND'#010+ #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 Publi','c Licence'#010+ 'For more information read COPYING.v2'#010+ #010+ 'Please report bugs in our bug tracker on:'#010+ - ' https://bu','gs.freepascal.org'#010+ + ' https://bugs.freepascal.org'#010+ #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 potentia'+ + 'l'#010+ 'new features, etc.):'#010+ ' https://www.freepascal.org'#000+ - '11025_F*0*_Only o','ptions valid for the default or selected platform a'+ - 're listed.'#010+ - '**0*_Put + after a boolean switch option to enable it, - to disable it'+ - '.'#010+ + '11025_F*0*_Only options valid for the default or selected platform are'+ + ' listed.'#010+ + '**0*_Put + after a boolean switch option to enable it, - to d','isable '+ + 'it.'#010+ '**1@_Read compiler options from in addition to the default fpc.'+ 'cfg'#010+ - '**1a_The compiler does not delet','e 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 tha'+ - 'n 2.25 (Windows, NativeNT)'#010+ + 'n 2.25 (Windows, NativeNT)',#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 for in'+ - 'ternal)'#010+ - '*L2ap_Use pipes instead of creating temporary assembler files'#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+ '**2ar_List register allocation/release info in assembler file'#010+ - '**2at_List temp allocation/release info in assemb','ler file'#010+ + '**2at_List temp allocation/release info in assembler file'#010+ '**1A_Output format:'#010+ '**2Adefault_Use default assembler'#010+ '3*2Aas_Assemble using GNU AS'#010+ - '3*2Aas-darwin_Assemble Darwin Mach-O using GNU GAS'#010+ + '3*2Aas-darwin_Assemble Darwi','n Mach-O using GNU GAS'#010+ '3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+ '8*2Anasm_Assemble using Nasm'#010+ - '8*2','Anasmobj_Assemble using Nasm'#010+ + '8*2Anasmobj_Assemble using Nasm'#010+ '3*2Anasm_Assemble using Nasm'#010+ '3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+ - '3*2Anasmelf_ELF32 (Linux) file using Nasm'#010+ + '3*2Anasmelf_ELF32 (Lin','ux) file using Nasm'#010+ '3*2Anasmwin32_Win32 object file using Nasm'#010+ '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+ - '3*2An','asmdarwin_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*2Anasmobj_Obj file using Nasm'#010+ + '3*2Anasmobj_Obj file using Na','sm'#010+ '3*2Amasm_Obj file using Masm (Microsoft)'#010+ '3*2Atasm_Obj file using Tasm (Borland)'#010+ - '3*2Aelf_ELF (Linux) using internal',' writer'#010+ + '3*2Aelf_ELF (Linux) using internal writer'#010+ '3*2Acoff_COFF (Go32v2) using internal writer'#010+ '3*2Apecoff_PE-COFF (Win32) using internal writer'#010+ - '3*2Ayasm_Assemble using Yasm (experimental)'#010+ + '3*2Ayasm_Assemble usi','ng Yasm (experimental)'#010+ '4*2Aas_Assemble using GNU AS'#010+ '4*2Agas_Assemble using GNU GAS'#010+ - '4*2Aas-darwin_Assemble Darwin Mach','-O using GNU GAS'#010+ + '4*2Aas-darwin_Assemble Darwin Mach-O using GNU GAS'#010+ '4*2Amasm_Win64 object file using ml64 (Microsoft)'#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*2Anasm_Assemble using Nasm (ex','perimental)'#010+ + '4*2Anasm_Assemble using Nasm (experimental)'#010+ '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+ - '4*2Anasmelf_Assemble Linux-64bit object file using Nasm (experimental)'+ - #010+ + '4*2Anasmelf_Assemble Linux-64bit object file',' using Nasm (experimenta'+ + 'l)'#010+ '4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+ '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*2Amit_MIT Syntax (old GAS)'#010+ '6*2Amot_Standard Motorola assembler'#010+ - '6*2Avasm_Use vasm to assemble'#010+ + '6*2Avasm','_Use vasm to assemble'#010+ 'A*2Aas_Assemble using GNU AS'#010+ 'P*2Aas_Assemble using GNU AS'#010+ 'S*2Aas_Assemble using GNU AS'#010+ - 'Z*2Asdcc','-sdasz80_Assemble using SDCC-SDASZ80'#010+ + 'Z*2Asdcc-sdasz80_Assemble using SDCC-SDASZ80'#010+ 'Z*2Az80asm_Assemble using z80asm'#010+ '**1b_Generate browser info'#010+ - '**2bl_Generate local symbol info'#010+ + '**2bl_Generate local symbo','l info'#010+ '**1B_Build all modules'#010+ '**1C_Code generation options:'#010+ '**2C3_Turn on ieee error checking for constants'#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+ + '**2Ca_Select ABI; see fpc -i or fpc -ia for possible values'#010+ + '**2Cb_Generate code for a big-endian variant of the target archite','ct'+ + 'ure'#010+ '**2Cc_Set default calling convention to '#010+ '**2CD_Create also dynamic library (not supported)'#010+ - '**2Ce_Compilat','ion with emulated floating point opcodes'#010+ + '**2Ce_Compilation with emulated floating point opcodes'#010+ '**2CE_Generate FPU code which can raise exceptions'#010+ - '**2Cf_Select fpu instruction set to use; see fpc -i or fpc -if for '+ - 'possible values'#010+ - '**2CF_Minimal floating point constant precision (default, 3','2, 64)'+ - #010+ + '**2Cf_Select fpu instruction',' set to use; see fpc -i or fpc -if fo'+ + 'r possible values'#010+ + '**2CF_Minimal floating point constant precision (default, 32, 64)'#010+ '**2Cg_Generate PIC code'#010+ '**2Ch[,m]_ bytes min heap size (between 1023 and 67107840) and o'+ - 'ptionally [m] max heap size'#010+ + 'ptionally [m] max heap',' size'#010+ '**2Ci_IO-checking'#010+ 'A*2CI_Select instruction set on ARM: ARM or THUMB'#010+ 'L*2Cl_LLVM code generation options'#010+ - 'L*','3Clflto_Enable Link-time optimisation (needed both when compiling '+ - 'units and programs/libraries)'#010+ - 'L*3Clfltonosystem_Disable LTO for the system unit (needed with at leas'+ - 't Xcode 10.2 and earlier due to linker bugs)'#010+ - 'L*3Clv_LLVM target version',': Xcode-10.1, 7.0, 8.0, .., 10.0'#010+ + 'L*3Clflto_Enable Link-time optimisation (needed both when compiling un'+ + 'its and programs/libraries)'#010+ + 'L*3Clfltonosystem_Disable L','TO for the system unit (needed with at le'+ + 'ast Xcode 10.2 and earlier due to linker bugs)'#010+ + 'L*3Clv_LLVM target version: Xcode-10.1, 7.0, 8.0, .., 10.0'#010+ '**2Cn_Omit linking stage'#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 operations'#010+ - '**2Cp_Select instruction set; see f','pc -i or fpc -ic for possible '+ - 'values'#010+ + '**2Cp_Select instruction set; see fpc -i or fpc -ic for possible va'+ + 'lues'#010+ '**2CP=_ packing settings'#010+ - '**3CPPACKSET=_ set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 '+ - 'and 8'#010+ + '**3CPPACKSET=_ set allocation: 0, 1 or DEFAULT o','r NORMAL, 2, '+ + '4 and 8'#010+ '**3CPPACKENUM=_ enum packing: 0, 1, 2 and 4 or DEFAULT or NORMA'+ 'L'#010+ - '**3CPPACKRECORD=_ ',' record packing: 0 or DEFAULT or NORMAL, 1, '+ - '2, 4, 8, 16 and 32'#010+ + '**3CPPACKRECORD=_ record packing: 0 or DEFAULT or NORMAL, 1, 2,'+ + ' 4, 8, 16 and 32'#010+ '**2Cr_Range checking'#010+ - '**2CR_Verify object method call validity'#010+ + '**2CR_Verify object method call validit','y'#010+ '**2Cs_Set stack checking size to '#010+ '**2Ct_Stack checking (for testing only, see manual)'#010+ - '8*2CT_Target-specifi','c code generation options'#010+ + '8*2CT_Target-specific code generation options'#010+ '3*2CT_Target-specific code generation options'#010+ - '4*2CT_Target-specific code generation options'#010+ + '4*2CT_Target-specific code generation options',#010+ 'p*2CT_Target-specific code generation options'#010+ 'P*2CT_Target-specific code generation options'#010+ - 'J*2CT_Target-sp','ecific code generation options'#010+ + 'J*2CT_Target-specific code generation options'#010+ 'A*2CT_Target-specific code generation options'#010+ - 'p*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+ - ' (AIX)'#010+ + 'p*3CTsmalltoc_ Generate smaller TOCs at the',' expense of execution spe'+ + 'ed (AIX)'#010+ 'P*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+ ' (AIX)'#010+ - 'J*3CTa','utogetterprefix=X_ Automatically create getters for propertie'+ - 's with prefix X (empty string disables)'#010+ - 'J*3CTautosetterprefix=X_ Automatically create setters for properties '+ + 'J*3CTautogetterprefix=X_ Automatically create getters for properties '+ 'with prefix X (empty string disables)'#010+ - '8*3CTcld_ Emit',' a CLD instruction before using the x8'+ - '6 string instructions'#010+ - '3*3CTcld_ Emit a CLD instruction before using the x86 '+ + 'J*3CTautosetterprefix','=X_ Automatically create setters for propertie'+ + 's with prefix X (empty string disables)'#010+ + '8*3CTcld_ Emit a CLD instruction before using the x86 '+ 'string instructions'#010+ + '3*3CTcld_ Emit a CLD instruction before using t','he x8'+ + '6 string instructions'#010+ '4*3CTcld_ Emit a CLD instruction before using the x86 '+ - 'string instructions'#010, + 'string instructions'#010+ '8*3CTfarprocspushoddbp_ Increment BP before pushing it in the pr'+ 'ologue of far functions'#010+ - 'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+ - 'de for initializing integer array constants'#010+ - 'J*3CTenumfieldinit_ Initia','lize enumeration fields in construct'+ - 'ors to enumtype(0), after calling inherited constructors'#010+ - 'J*3CTinitlocals_ Initialize local variables that trigger a JV'+ - 'M bytecode verification error if used uninitialized (slows down code)'#010+ - 'J*3CTlo','wercaseprocstart_ Lowercase the first character of procedure'+ - '/function/method names'#010+ - 'A*3CTthumbinterworking_ Generate Thumb interworking-safe code if possi'+ - 'ble'#010+ + 'J*3CTcompactintarrayinit_ Gen','erate smaller (but potentially slower) '+ + 'code for initializing integer array constants'#010+ + 'J*3CTenumfieldinit_ Initialize enumeration fields in constructor'+ + 's to enumtype(0), after calling inherited constructors'#010+ + 'J*3CTinitlocals_ Init','ialize local variables that trigger a '+ + 'JVM bytecode verification error if used uninitialized (slows down code'+ + ')'#010+ + 'J*3CTlowercaseprocstart_ Lowercase the first character of procedure/f'+ + 'unction/method names'#010+ + 'A*3CTthumbinterworking_ Generate Thumb ','interworking-safe code if pos'+ + 'sible'#010+ 'J*2Cv_Var/out parameter copy-out checking'#010+ - 'A*2CV_Set section threadvar model to ',''#010+ + 'A*2CV_Set section threadvar model to '#010+ '**2CX_Create also smartlinked library'#010+ '**1d_Defines the symbol '#010+ '**1D_Generate a DEF file'#010+ - '**2DD_Set the date string returned by %DATE% to x, it is not checke'+ - 'd for being a valid date string'#010+ + '**2DD_Set the date str','ing returned by %DATE% to x, it is not chec'+ + 'ked for being a valid date string'#010+ '**2Dd_Set description to '#010+ - '**2DT','_Set the time string returned by %TIME% to x, it is not chec'+ - 'ked for being a valid time string'#010+ - '**2Dv_Set DLL version to '#010+ + '**2DT_Set the time string returned by %TIME% to x, it is not checke'+ + 'd for being a valid time string'#010+ + '**2Dv_Set DLL version to <','x>'#010+ '*O2Dw_PM application'#010+ '**1e_Set path to executable'#010+ '**1E_Same as -Cn'#010+ '**1fPIC_Same as -Cg'#010+ - '**1F_Set file names an','d paths:'#010+ + '**1F_Set file names and paths:'#010+ '**2Fa[,y]_(for a program) load units and [y] before uses is par'+ 'sed'#010+ '**2Fc_Set input codepage to '#010+ - '**2FC_Set RC compiler binary name to '#010+ + '**2FC','_Set RC compiler binary name to '#010+ '**2Fd_Disable the compiler'#039's internal directory cache'#010+ - '**2FD_Set the directo','ry where to search for compiler utilities'#010+ + '**2FD_Set the directory where to search for compiler utilities'#010+ '**2Fe_Redirect error output to '#010+ '**2FE_Set exe/unit output path to '#010+ - '**2Ff_Add to framework path (Darwin only), or set IDF path to <'+ - 'x> (Xtensa-FreeRTOS)'#010+ - '**2FF_Use fpcres as RC to RE','S compiler instead of windres or gorc'#010+ + '**','2Ff_Add to framework path (Darwin only), or set IDF path to'+ + ' (Xtensa-FreeRTOS)'#010+ + '**2FF_Use fpcres as RC to RES compiler instead of windres or gorc'#010+ '**2Fi_Add to include path'#010+ '**2Fl_Add to library path'#010+ - '**2FL_Use as dynamic linker'#010+ + '**2FL_Use as',' dynamic linker'#010+ '**2Fm_Load unicode conversion table from .txt in the compiler di'+ 'r'#010+ - '**2FM_Set the directory wh','ere to search for unicode binary files'#010+ + '**2FM_Set the directory where to search for unicode binary files'#010+ '**2FN_Add to list of default unit scopes (namespaces)'#010+ - '**2Fo_Add to object path'#010+ + '**2Fo_Add to obj','ect path'#010+ '**2Fr_Load error message file '#010+ '**2FR_Set resource (.res) linker to '#010+ - '**2Fu_Add to unit pat','h'#010+ + '**2Fu_Add to unit path'#010+ '**2FU_Set unit output path to , overrides -FE'#010+ '**2FW_Store generated whole-program optimization feedback in '#010+ - '**2Fw_Load previously stored whole-program optimization feedback fr'+ - 'om '#010+ - '*g1g_Generate debug information (default ','format for target)'#010+ + '*','*2Fw_Load previously stored whole-program optimization feedback '+ + 'from '#010+ + '*g1g_Generate debug information (default format for target)'#010+ '*g2gc_Generate checks for pointers (experimental, only available on so'+ - 'me targets, might generate false positive)'#010+ + 'me targets, might generate false p','ositive)'#010+ '*g2gh_Use heaptrace unit (for memory leak/corruption debugging)'#010+ - '*g2gl_Use line info unit (show more info wit','h backtraces)'#010+ + '*g2gl_Use line info unit (show more info with backtraces)'#010+ '*g2gm_Generate Microsoft CodeView debug information (experimental)'#010+ '*g2go_Set debug information options'#010+ - '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+ - 'aks gdb < 6.5)'#010+ - '*g3gostabsabsincludes_ Store absolute/full ','include file paths in Sta'+ - 'bs'#010+ + '*g3','godwarfsets_ Enable DWARF '#039'set'#039' type debug information (b'+ + 'reaks gdb < 6.5)'#010+ + '*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+ + #010+ '*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class n'+ 'ame'#010+ - '*g3godwarfcpp_ Simulate C++ debug information in DWARF'#010+ + '*g3godwarfcpp_ Simula','te C++ debug information in DWARF'#010+ '*g3godwarfomflinnum_ Generate line number information in OMF LINNUM re'+ - 'cords in MS L','INK format in addition to the DWARF debug information ('+ - 'Open Watcom Debugger/Linker compatibility)'#010+ - '*g2gp_Preserve case in stabs symbol names'#010+ + 'cords in MS LINK format in addition to the DWARF debug information (Op'+ + 'en Watcom Debugger/Linker compatibility)'#010+ + '*g2gp_Preserve case in st','abs symbol names'#010+ '*g2gs_Generate Stabs debug information'#010+ - '*g2gt_Trash local variables (to detect uninitialized uses; mu','ltiple '+ - #039't'#039' changes the trashing value)'#010+ + '*g2gt_Trash local 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 inform','ation (same as -gw2)'#010+ '*g2gw2_Generate DWARFv2 debug information'#010+ '*g2gw3_Generate DWARFv3 debug information'#010+ - '*g2gw4_Gener','ate DWARFv4 debug information (experimental)'#010+ + '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+ '**1i_Information'#010+ '**2iD_Return compiler date'#010+ '**2iSO_Return compiler OS'#010+ - '**2iSP_Return compiler host processor'#010+ + '**2iSP_R','eturn compiler host processor'#010+ '**2iTO_Return target OS'#010+ '**2iTP_Return target processor'#010+ - '**2iV_Return short compiler vers','ion'#010+ + '**2iV_Return short compiler version'#010+ '**2iW_Return full compiler version'#010+ '**2ia_Return list of supported ABI targets'#010+ - '**2ib_Return the used code generation backend type'#010+ + '**2ib_Return the used code generation bac','kend type'#010+ '**2ic_Return list of supported CPU instruction sets'#010+ '**2if_Return list of supported FPU instruction sets'#010+ - '**2','ii_Return list of supported inline assembler modes'#010+ + '**2ii_Return list of supported inline assembler modes'#010+ '**2im_Return list of supported modeswitches'#010+ - '**2io_Return list of supported optimizations'#010+ + '**2io_Return list of support','ed optimizations'#010+ '**2ir_Return list of recognized compiler and RTL features'#010+ '**2it_Return list of supported targets'#010+ - '**2','iu_Return list of supported microcontroller types'#010+ + '**2iu_Return list of supported microcontroller types'#010+ '**2iw_Return list of supported whole program optimizations'#010+ - '**1I_Add to include path'#010+ + '**1I_Add to include path'#010+ '**1k_Pass to the linker'#010+ '**1l_Write logo'#010+ - '**1M_Set language mode to / enable modeswitch',' (see option'+ - ' -im)'#010+ + '**1M_Set language mode to / enable modeswitch (see option -'+ + 'im)'#010+ '**2Mfpc_Free Pascal dialect (default)'#010+ '**2Mobjfpc_FPC mode with Object Pascal support'#010+ - '**2Mdelphi_Delphi 7 compatibility mode'#010+ + '**2Mdelphi_Delph','i 7 compatibility mode'#010+ '**2Mtp_TP/BP 7.0 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+ '**2Mdelphiunicode_Delphi 2009 and later compatibility mode'#010+ - '**2*_Each mode (as listed above) enables its default set of modeswitch'+ - 'es.'#010+ - '**2*_Other modeswitches are disabled and need to be e','nabled one by a'+ - 'nother.'#010+ + '**2*_Each ','mode (as listed above) enables its default set of modeswit'+ + 'ches.'#010+ + '**2*_Other modeswitches are disabled and need to be enabled one by ano'+ + 'ther.'#010+ '**1M-_Disable modeswitch (see option -im)'#010+ '**1n_Do not read the default config files'#010+ - '**1o_Change the name of the executable produced to '#010+ + '**1o_C','hange the name of the executable produced to '#010+ '**1O_Optimizations:'#010+ '**2O-_Disable optimizations'#010+ - '**2O1_Level 1 opt','imizations (quick and debugger friendly)'#010+ + '**2O1_Level 1 optimizations (quick and debugger friendly)'#010+ '**2O2_Level 2 optimizations (-O1 + quick optimizations)'#010+ - '**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+ + '**2O3_Level 3 optimization','s (-O2 + slow optimizations)'#010+ '**2O4_Level 4 optimizations (-O3 + optimizations which might have unex'+ - 'pected side effect','s)'#010+ + 'pected side effects)'#010+ '**2Oa=_Set alignment'#010+ '**2Oo[NO]_Enable or disable optimizations; see fpc -i or fpc -io fo'+ 'r possible values'#010+ - '**2Op_Set target cpu for optimizing; see fpc -i or fpc -ic for poss'+ - 'ible values'#010+ - '**2OW_Generate whole-program optimiza','tion feedback for optimizati'+ - 'on ; see fpc -i or fpc -iw for possible values'#010+ - '**2Ow_Perform whole-program optimization ; see fpc -i or fpc -iw'+ - ' for possible values'#010+ + '**2Op','_Set target cpu for optimizing; see fpc -i or fpc -ic for po'+ + 'ssible values'#010+ + '**2OW_Generate whole-program optimization feedback for optimization'+ + ' ; see fpc -i or fpc -iw for possible values'#010+ + '**2Ow_Perform whole-program optimization <','x>; see fpc -i or fpc -'+ + 'iw for possible values'#010+ '**2Os_Optimize for size rather than speed'#010+ - '**1pg_Generate profile code f','or gprof (defines FPC_PROFILE)'#010+ + '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+ 'F*1P_Target CPU / compiler related options:'#010+ 'F*2PB_Show default compiler binary'#010+ - 'F*2PP_Show default target cpu'#010+ + 'F*2PP_Show',' default target cpu'#010+ 'F*2P_Set target CPU (aarch64,arm,avr,i386,i8086,jvm,m68k,mips,mipse'+ - 'l,powerpc,powerpc64,sparc,x','86_64)'#010+ + 'l,powerpc,powerpc64,sparc,x86_64)'#010+ '**1R_Assembler reading style:'#010+ '**2Rdefault_Use default assembler for target'#010+ '3*2Ratt_Read AT&T style assembler'#010+ - '3*2Rintel_Read Intel style assembler'#010+ + '3*2R','intel_Read Intel style assembler'#010+ '4*2Ratt_Read AT&T 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+ '6*2RMOT_Read Motorola style assembler'#010+ '**1S_Syntax options:'#010+ - '**2S2_Same as -Mobjfpc'#010+ + '**2','S2_Same as -Mobjfpc'#010+ '**2Sc_Support operators like C (*=,+=,/= and -=)'#010+ '**2Sa_Turn on assertions'#010+ - '**2Sd_Same as -Mdelphi'#010, + '**2Sd_Same as -Mdelphi'#010+ '**2Se_Error options. is a combination of the following:'#010+ - '**3*_ : Compiler halts after the errors (default is 1)'#010+ + '**3*_ : Compiler halts after the errors (default is 1',')'#010+ '**3*_w : Compiler also halts after warnings'#010+ '**3*_n : Compiler also halts after notes'#010+ - '**3*_h : Compiler also halts a','fter 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+ + '**2Sg_Enable LABEL',' and GOTO (default in -Mtp and -Mdelphi)'#010+ '**2Sh_Use reference counted strings (ansistring by default) instead of'+ - ' short','strings'#010+ + ' shortstrings'#010+ '**2Si_Turn on inlining of procedures/functions declared as "inline"'#010+ - '**2Sj_Allows typed constants to be writeable (default in all modes)'#010+ + '**2Sj_Allows typed constants to be writeable (d','efault in all modes)'#010+ '**2Sk_Load fpcylix unit'#010+ '**2SI_Set interface style to '#010+ - '**3SIcom_COM compatible interface (d','efault)'#010+ + '**3SIcom_COM compatible interface (default)'#010+ '**3SIcorba_CORBA compatible interface'#010+ '**2sT_Generate script only to link on target'#010+ - '**2Sm_Support macros like C (global)'#010+ + '**2Sm_Support macros like C (glo','bal)'#010+ '**2So_Same as -Mtp'#010+ '**2Sr_Transparent file names in ISO mode'#010+ - '**2Ss_Constructor name 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'+ 'e)'#010+ - '**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes)'#010+ + '**2Sx_Enable exception keywords (default',' in Delphi/ObjFPC modes)'#010+ '**2Sy_@ returns a typed pointer, same as $T+'#010+ - '**1s_Do not call assembler and linker'#010, + '**1s_Do not call assembler and linker'#010+ '**2sh_Generate script to link on host'#010+ '**2st_Generate script to assemble and link on target'#010+ - '**2sr_Skip register allocation phase (use with -alr)'#010+ + '**2sr_Skip register allocation p','hase (use with -alr)'#010+ '**1T_Target operating system:'#010+ '3*2Tandroid_Android'#010+ '3*2Taros_AROS'#010+ '3*2Tbeos_BeOS'#010+ - '3*2Tdarwin_Darw','in/Mac OS X'#010+ + '3*2Tdarwin_Darwin/Mac OS X'#010+ '3*2Tembedded_Embedded'#010+ '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#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*2Tiphonesim_iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tdar'+ - 'wi','n)'#010+ + 'win)'#010+ '3*2Tlinux_Linux'#010+ '3*2Tnativent_Native NT API (experimental)'#010+ '3*2Tnetbsd_NetBSD'#010+ '3*2Tnetware_Novell Netware Module (clib)'#010+ - '3*2Tnetwlibc_Novell Netware Module (libc)'#010+ + '3*2','Tnetwlibc_Novell Netware Module (libc)'#010+ '3*2Topenbsd_OpenBSD'#010+ '3*2Tos2_OS/2 / eComStation'#010+ '3*2Tsymbian_Symbian OS'#010+ - '3*2Tsola','ris_Solaris'#010+ + '3*2Tsolaris_Solaris'#010+ '3*2Twatcom_Watcom compatible DOS extender'#010+ '3*2Twdosx_WDOSX DOS extender'#010+ '3*2Twin32_Windows 32 Bit'#010+ - '3*2Twince_Windows CE'#010+ + '3*2Twince_Windo','ws CE'#010+ '4*2Tandroid_Android'#010+ '4*2Taros_AROS'#010+ '4*2Tdarwin_Darwin/Mac OS X'#010+ '4*2Tdragonfly_DragonFly BSD'#010+ - '4*2Tembedded_Embedded'#010, + '4*2Tembedded_Embedded'#010+ '4*2Tfreebsd_FreeBSD'#010+ '4*2Thaiku_Haiku'#010+ '4*2Tiphonesim_iPhoneSimulator'#010+ '4*2Tlinux_Linux'#010+ '4*2Tnetbsd_NetBSD'#010+ '4*2Topenbsd_OpenBSD'#010+ - '4*2Tsolaris_Solaris'#010+ + '4*2','Tsolaris_Solaris'#010+ '4*2Twin64_Win64 (64 bit Windows systems)'#010+ '6*2Tamiga_Commodore Amiga'#010+ '6*2Tatari_Atari ST/STe/TT'#010+ - '6*2Temb','edded_Embedded'#010+ + '6*2Tembedded_Embedded'#010+ '6*2Tlinux_Linux'#010+ '6*2Tnetbsd_NetBSD'#010+ '6*2Tmacosclassic_Classic Mac OS'#010+ '6*2Tpalmos_PalmOS'#010+ - '6*2Tsinclairql_Sinclair QL'#010+ + '6*2Tsinclairql_Sinclair ','QL'#010+ '8*2Tembedded_Embedded'#010+ '8*2Tmsdos_MS-DOS (and compatible)'#010+ '8*2Twin16_Windows 16 Bit'#010+ 'A*2Tandroid_Android'#010+ - 'A*2Taros_AROS',#010+ + 'A*2Taros_AROS'#010+ 'A*2Tembedded_Embedded'#010+ 'A*2Tfreertos_FreeRTOS'#010+ 'A*2Tgba_Game Boy Advance'#010+ 'A*2Tios_iOS'#010+ 'A*2Tlinux_Linux'#010+ 'A*2Tnds_Nintendo DS'#010+ - 'A*2Tnetbsd_NetBSD'#010+ + 'A*2Tn','etbsd_NetBSD'#010+ 'A*2Tpalmos_PalmOS'#010+ 'A*2Tsymbian_Symbian'#010+ 'A*2Twince_Windows CE'#010+ 'a*2Tandroid_Android'#010+ - 'a*2Tdarwin_Darwin/Mac OS ','X'#010+ + 'a*2Tdarwin_Darwin/Mac OS X'#010+ 'a*2Tios_iOS'#010+ 'a*2Tlinux_Linux'#010+ 'a*2Twin64_Windows 64'#010+ 'J*2Tandroid_Android'#010+ 'J*2Tjava_Java'#010+ 'm*2Tandroid_Android'#010+ - 'm*2Tembedded_Embedded'#010+ + 'm*2Tembedded_Embed','ded'#010+ 'm*2Tlinux_Linux'#010+ 'M*2Tembedded_Embedded'#010+ 'M*2Tlinux_Linux'#010+ 'P*2Taix_AIX'#010+ 'P*2Tamiga_AmigaOS'#010+ 'P*2Tdarwin_Darwin/Mac OS X'#010+ - 'P*','2Tembedded_Embedded'#010+ + 'P*2Tembedded_Embedded'#010+ 'P*2Tlinux_Linux'#010+ 'P*2Tmacosclassic_Classic Mac OS'#010+ 'P*2Tmorphos_MorphOS'#010+ 'P*2Tnetbsd_NetBSD'#010+ 'P*2Twii_Wii'#010+ - 'p*2Taix_AIX'#010+ + 'p*2Ta','ix_AIX'#010+ 'p*2Tdarwin_Darwin/Mac OS X'#010+ 'p*2Tembedded_Embedded'#010+ 'p*2Tlinux_Linux'#010+ 'R*2Tlinux_Linux'#010+ 'R*2Tembedded_Embedded'#010+ - 'r*2Tlin','ux_Linux'#010+ + 'r*2Tlinux_Linux'#010+ 'r*2Tembedded_Embedded'#010+ 'S*2Tlinux_Linux'#010+ 'S*2Tsolaris_Solaris'#010+ 's*2Tlinux_Linux'#010+ 'V*2Tembedded_Embedded'#010+ - 'x*2Tembedded_Embedded'#010+ + 'x*2Tembedded_Embed','ded'#010+ 'x*2Tfreertos_FreeRTOS'#010+ 'x*2Tlinux_Linux'#010+ 'Z*2Tembedded_Embedded'#010+ 'Z*2Tzxspectrum_ZX Spectrum'#010+ 'Z*2Tmsxdos_MSX-DOS'#010+ - '**1u','_Undefines the symbol '#010+ + '**1u_Undefines the symbol '#010+ '**1U_Unit options:'#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 re','lease unit files (never automatically recompiled)'#010+ '**2Us_Compile a system unit'#010+ - '**1v_Be verbose. is a combinatio','n of the following letters:'#010+ + '**1v_Be verbose. is a combination of the following letters:'#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*_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*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+ - '**2*_s : Show time stamps q : Show message numbers'#010+ - '**2*_a : Show e','verything x : Show info about invoked too'+ - 'ls'#010+ - '**2*_b : Write file names messages p : Write tree.log with parse tre'+ + '**2*_l : Show linenumbers ',' r : Rhide/GCC compatibility mod'+ 'e'#010+ + '**2*_s : Show time stamps q : Show message numbers'#010+ + '**2*_a : Show everything x : Show info about invoked tools'+ + #010+ + '**2*_b : Write file names messages p : Write tree.log with parse ','t'+ + 'ree'#010+ '**2*_ with full path v : Write fpcdebug.txt with'#010+ - '**2*_z : Write output to stderr lots o','f debugging info'#010+ + '**2*_z : Write output to stderr lots of debugging info'#010+ '**2*_m, : Do not show messages numbered and '#010+ - 'F*1V_Append '#039'-'#039' to the used compiler binary name (e.g. f'+ - 'or version)'#010+ + 'F*1V_Append '#039'-'#039' to the used compiler binar','y name (e.g.'+ + ' for version)'#010+ '**1W_Target-specific options (targets)'#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+ - '3*2Wb_Create a bundle instead of a library (Darwin)'#010+ + '3*2Wb_Create a bundle instea','d of a library (Darwin)'#010+ 'P*2Wb_Create a bundle instead of a library (Darwin)'#010+ - 'p*2Wb_Create a bundle instead of a librar','y (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+ - '4*2Wb_Create a bundle instead of a library (Darwin)'#010+ + '4*2Wb_Cr','eate a bundle instead of a library (Darwin)'#010+ '3*2WB_Create a relocatable image (Windows, Symbian)'#010+ - '3*2WB_Set image ba','se to (Windows, Symbian)'#010+ + '3*2WB_Set image base to (Windows, Symbian)'#010+ '4*2WB_Create a relocatable image (Windows)'#010+ '4*2WB_Set image base to (Windows)'#010+ - 'A*2WB_Create a relocatable image (Windows, Symbian)'#010+ + 'A*2WB_Crea','te a relocatable image (Windows, Symbian)'#010+ 'A*2WB_Set image base to (Windows, Symbian)'#010+ - 'Z*2WB_Set image base t','o (ZX Spectrum)'#010+ + 'Z*2WB_Set image base to (ZX Spectrum)'#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 (Win','dows)'#010+ 'A*2WC_Specify console type application (Windows)'#010+ 'P*2WC_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+ - '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+ - '4*2We_Use external res','ources (Darwin)'#010+ + '4*2We_Use external resources (Darwin)'#010+ 'a*2We_Use external resources (Darwin)'#010+ 'A*2We_Use external resources (Darwin)'#010+ - 'P*2We_Use external resources (Darwin)'#010+ + 'P*2We_Use external resources (D','arwin)'#010+ 'p*2We_Use external resources (Darwin)'#010+ '3*2WF_Specify full-screen type application (EMX, OS/2)'#010+ - '3*2WG_Specify gra','phic type application (EMX, OS/2, Windows)'#010+ + '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+ '4*2WG_Specify graphic type application (Windows)'#010+ - 'A*2WG_Specify graphic type application (Windows)'#010+ + 'A*2WG_Specify graphic type appl','ication (Windows)'#010+ 'P*2WG_Specify graphic type application (Classic Mac OS)'#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 resources (Darwin)'#010+ 'A*2Wi_Use internal resources (Darwin)'#010+ - 'P*2Wi_Use internal resources (Darwin)'#010+ + 'P*2Wi_Use inte','rnal resources (Darwin)'#010+ 'p*2Wi_Use internal resources (Darwin)'#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+ '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_U','se huge code for units (ignored for models with CODE in a uni'+ + 'que segment)'#010+ '8*2Wm_Set memory model'#010+ - '8*3WmTiny_Tiny me','mory model'#010+ + '8*3WmTiny_Tiny memory model'#010+ '8*3WmSmall_Small memory model (default)'#010+ '8*3WmMedium_Medium memory model'#010+ '8*3WmCompact_Compact memory model'#010+ - '8*3WmLarge_Large memory model'#010+ + '8*3WmL','arge_Large memory model'#010+ '8*3WmHuge_Huge memory model'#010+ - '3*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (','Dar'+ - 'win)'#010+ + '3*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ + 'n)'#010+ '4*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ - 'p*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ - 'n)'#010+ + 'p*2WM_Minimum Mac OS X deployment versi','on: 10.4, 10.5.1, ... (Dar'+ + 'win)'#010+ 'P*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ - '3*2WN_Do not ','generate relocation code, needed for debugging (Windows'+ + '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ + '4*2WN_Do not generate relocation code, needed for debugging (Windo','ws'+ ')'#010+ - '4*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ 'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ - 'A*2Wp_Specify the controller type; see f','pc -i or fpc -iu for poss'+ - 'ible values'#010+ + 'A*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ + 'le values'#010+ 'm*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ 'le values'#010+ - 'R*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ - 'le values'#010+ - 'V*2Wp_Specify the controller type; see f','pc -i or fpc -iu for poss'+ + 'R*2Wp<','x>_Specify the controller type; see fpc -i or fpc -iu for poss'+ 'ible values'#010+ + 'V*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ + 'le values'#010+ 'x*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ 'le values'#010+ - '3*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+ - '4*2WP_Minimum iOS deployment version: 8.0, 8.0.2, .','.. (iphonesim)'+ + '3*2WP<','x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'+ #010+ + '4*2WP_Minimum iOS deployment version: 8.0, 8.0.2, ... (iphonesim)'#010+ 'a*2WP_Minimum iOS deployment version: 7.0, 7.1.2, ... (Darwin)'#010+ - 'A*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)'#010+ + 'A*2WP_Minimum iOS deployment version: 3','.0, 5.0.1, ... (Darwin)'#010+ '3*2WR_Generate relocation code (Windows)'#010+ '4*2WR_Generate relocation code (Windows)'#010+ - 'A*2WR_Gener','ate relocation code (Windows)'#010+ + 'A*2WR_Generate relocation code (Windows)'#010+ '8*2Wt_Set the target executable format'#010+ '8*3Wtexe_Create a DOS .EXE file (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 (Classic Mac OS)'#010+ - '6*2WQ','_Set executable metadata format (Sinclair QL)'#010+ + '6*2WQ_Set executable metadata format (Sinclair QL)'#010+ '6*3WQqhdr_Set metadata to QDOS File Header style (default)'#010+ - '6*3WQxtcc_Set metadata to XTcc style'#010+ + '6*3WQxtcc_Set meta','data to XTcc style'#010+ '**2WX_Enable executable stack (Linux)'#010+ '**1X_Executable options:'#010+ - '**2X9_Generate linkerscript for GNU',' Binutils ld older than version 2'+ - '.19.1 (Linux)'#010+ + '**2X9_Generate linkerscript for GNU Binutils ld older than version 2.1'+ + '9.1 (Linux)'#010+ '**2Xa_Generate code which allows to use more than 2 GB static data on '+ - '64 Bit targets (Linux)'#010+ + '64 Bit',' targets (Linux)'#010+ '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+ 'ux)'#010+ - '**2Xd_Do not search defaul','t 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+ - '**2Xf_Substitute pthread library name for linking (BSD)'#010+ + '**2Xf_Substitute pthre','ad library name for linking (BSD)'#010+ '**2Xg_Create debuginfo in a separate file and add a debuglink section '+ - 'to executable',#010+ + 'to executable'#010+ '**2XD_Try to link units dynamically (defines FPC_LINK_DYNAMIC)'#010+ '**2Xi_Use internal linker'#010+ - 'L*2XlS_LLVM utilties suffix (e.g. -7 in case clang is called clang-'+ - '7)'#010+ + 'L*2XlS_LLVM utilties suff','ix (e.g. -7 in case clang is called clan'+ + 'g-7)'#010+ '**2XLA_Define library substitutions for linking'#010+ - '**2XLO_Define order of l','ibrary linking'#010+ + '**2XLO_Define order of library linking'#010+ '**2XLD_Exclude default order of standard libraries'#010+ '**2Xm_Generate link map'#010+ - '**2XM_Set the name of the '#039'main'#039' program routine (default i'+ - 's '#039'main'#039')'#010+ + '**2XM_Set the name of the '#039'mai','n'#039' program routine (default'+ + ' is '#039'main'#039')'#010+ '**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)'+ #010+ - 'F*2Xp_First search for the compiler binary in the directory '#010+ + 'F*2Xp_First search for the compiler binary in the directory '#010+ '**2XP_Prepend the binutils names with the prefix '#010+ - '**2Xr_Set the linker'#039's rlink-path to (needed for cross comp'+ - 'ile, see the ld manual for more information) (BeOS, Linux)',#010+ + '**2Xr_Set the linker'#039's rlink-path to (needed for cross co'+ + 'mpile, see the ld manual for more information) (BeOS, Linux)'#010+ '**2XR_Prepend to all linker search paths (BeOS, Darwin, FreeBSD'+ ', Linux, Mac OS, Solaris)'#010+ - '**2Xs_Strip all symbols from executable'#010+ + '**2Xs_Strip all symbols fr','om executable'#010+ '**2XS_Try to link units statically (default, 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+ '**2Xu_Generate executable in UF2 format (embedded targets only)'#010+ - '**2Xv_Generate table for Virtual Entry calls'#010+ + '**2Xv_Generate table for Vir','tual Entry calls'#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?_Show this help'#010+ '**1h_Shows this help without waiting' diff --git a/compiler/ncnv.pas b/compiler/ncnv.pas index 4a58772252..5fa5ce714b 100644 --- a/compiler/ncnv.pas +++ b/compiler/ncnv.pas @@ -1190,6 +1190,9 @@ implementation if (left.nodetype = stringconstn) and (tstringconstnode(left).cst_type=cst_conststring) then begin + if (m_iso in current_settings.modeswitches) and (arrsize<>tstringconstnode(left).len) and + is_char(tarraydef(resultdef).elementdef) then + Message2(type_w_array_size_does_not_match_size_of_constant_string,tostr(tstringconstnode(left).len),tostr(arrsize)); { if the array of char is large enough we can use the string constant directly. This is handled in ncgcnv } if (arrsize>=tstringconstnode(left).len) and diff --git a/tests/webtbf/tw38439.pp b/tests/webtbf/tw38439.pp new file mode 100644 index 0000000000..4fde5ebca9 --- /dev/null +++ b/tests/webtbf/tw38439.pp @@ -0,0 +1,13 @@ +{ %fail } +{ %opt=-Sew } +{$mode iso} +program string1(input, output); + var + c: packed array [1..5] of char; + inline: packed array [1..10] of char; +begin + c := '1234567890'; + writeln(c); + inline := '12345'; + writeln(inline); +end. From 47be45830c4547fa4e3844bde338a8d35c0ec2ba Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 10 Feb 2021 11:00:22 +0000 Subject: [PATCH 12/17] * Fix issue ID #38462 git-svn-id: trunk@48580 - --- .gitattributes | 1 + packages/rtl-objpas/src/inc/dateutil.inc | 93 ++++++++------- rtl/objpas/sysconst.pp | 1 + .../units/dateutil/test_scandatetime_ampm.pas | 106 ++++++++++++++++++ 4 files changed, 163 insertions(+), 38 deletions(-) create mode 100644 tests/test/units/dateutil/test_scandatetime_ampm.pas diff --git a/.gitattributes b/.gitattributes index d931d282ea..6bcd8d2fc7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16042,6 +16042,7 @@ tests/test/units/cocoaall/tw36362.pp svneol=native#text/plain tests/test/units/cpu/tcpu1.pp svneol=native#text/pascal tests/test/units/crt/tcrt.pp svneol=native#text/plain tests/test/units/crt/tctrlc.pp svneol=native#text/plain +tests/test/units/dateutil/test_scandatetime_ampm.pas svneol=native#text/plain tests/test/units/dateutil/testscandatetime.pas svneol=native#text/plain tests/test/units/dateutil/tunitdt1.pp svneol=native#text/pascal tests/test/units/dos/hello.pp svneol=native#text/plain diff --git a/packages/rtl-objpas/src/inc/dateutil.inc b/packages/rtl-objpas/src/inc/dateutil.inc index 1269f3a040..5ea6b1a51f 100644 --- a/packages/rtl-objpas/src/inc/dateutil.inc +++ b/packages/rtl-objpas/src/inc/dateutil.inc @@ -2379,6 +2379,8 @@ begin end; function scandatetime(const pattern:string;const s:string;const fmt:TFormatSettings;startpos:integer=1) : tdatetime; +const + EPS = 1E-15; var len ,ind : integer; yy,mm,dd : integer; @@ -2558,44 +2560,59 @@ begin end; end; 'A' : begin - i:=findimatch(AMPMformatting,@ptrn[pind]); - case i of - 0: begin - i:=findimatch(['AM','PM'],@s[ind]); - case i of - 0: ; - 1: timeval:=timeval+12*hrfactor; - else - arraymatcherror - end; - inc(pind,length(AMPMformatting[0])); - inc(ind,2); - end; - 1: begin - case upcase(s[ind]) of - 'A' : ; - 'P' : timeval:=timeval+12*hrfactor; - else - arraymatcherror - end; - inc(pind,length(AMPMformatting[1])); - inc(ind); - end; - 2: begin - i:=findimatch([fmt.timeamstring,fmt.timepmstring],@s[ind]); - case i of - 0: inc(ind,length(fmt.timeamstring)); - 1: begin - timeval:=timeval+12*hrfactor; - inc(ind,length(fmt.timepmstring)); - end; - else - arraymatcherror - end; - inc(pind,length(AMPMformatting[2])); - end; - else // no AM/PM match. Assume 'a' is simply a char - matchchar(ptrn[pind]); + i:=findimatch(AMPMformatting,@ptrn[pind]); + case i of + 0: begin + if timeval >= 13*hrfactor - EPS then + raiseexception(SAMPMError); + i:=findimatch(['AM','PM'],@s[ind]); + case i of + 0: if timeval >= 12*hrfactor then + timeval := timeval - 12*hrfactor; + 1: if (timeval + EPS >= hrfactor) and (timeval + EPS <= 12*hrfactor) then + timeval:=timeval+12*hrfactor; + else + arraymatcherror + end; + inc(pind,length(AMPMformatting[0])); + inc(ind,2); + end; + 1: begin + if timeval >= 13*hrfactor - EPS then + raiseexception(SAMPMError); + case upcase(s[ind]) of + 'A' : if timeval >= 12*hrfactor then + timeval := timeval - 12*hrfactor; + 'P' : if (timeval + EPS >= hrfactor) and (timeval + EPS <= 12*hrfactor) then + timeval := timeval + 12*hrfactor; + else + arraymatcherror + end; + inc(pind,length(AMPMformatting[1])); + inc(ind); + end; + 2: begin + if timeval >= 13*hrfactor - EPS then + raiseexception(SAMPMError); + i:=findimatch([fmt.timeamstring,fmt.timepmstring],@s[ind]); + case i of + 0: begin + if timeval >= 12*hrfactor then + timeval := timeval - 12*hrfactor; + inc(ind,length(fmt.timeamstring)); + end; + 1: begin + if (timeval + EPS >= hrfactor) and (timeval + EPS <= 12*hrfactor) then + timeval:=timeval + 12*hrfactor; + inc(ind,length(fmt.timepmstring)); + end; + else + arraymatcherror + end; + inc(pind,length(AMPMformatting[2])); + end; + else // no AM/PM match. Assume 'a' is simply a char + matchchar(ptrn[pind]); end; end; '/' : matchchar(fmt.dateSeparator); diff --git a/rtl/objpas/sysconst.pp b/rtl/objpas/sysconst.pp index cefd14f79c..6aafbe4a68 100644 --- a/rtl/objpas/sysconst.pp +++ b/rtl/objpas/sysconst.pp @@ -145,6 +145,7 @@ const SHHMMError = 'mm in a sequence hh:mm is interpreted as minutes. No longer versions allowed! (Position : %d).' ; SFullpattern = 'Couldn''t match entire pattern string. Input too short at pattern position %d.'; SPatternCharMismatch = 'Pattern mismatch char "%s" at position %d.'; + SAMPMError = 'Hour >= 13 not allowed in AM/PM mode.'; SShortMonthNameJan = 'Jan'; SShortMonthNameFeb = 'Feb'; diff --git a/tests/test/units/dateutil/test_scandatetime_ampm.pas b/tests/test/units/dateutil/test_scandatetime_ampm.pas new file mode 100644 index 0000000000..efd7389e80 --- /dev/null +++ b/tests/test/units/dateutil/test_scandatetime_ampm.pas @@ -0,0 +1,106 @@ +program test_scandatetime_ampm; +{$mode objfpc} +{$h+} +uses + SysUtils, DateUtils, StrUtils; + +Var + ErrCount : Integer; + +function SameDateTime(dt1, dt2: TDateTime): Boolean; +const + EPS = 1/(24*60*60*100*10); // 0.1 ms +begin + Result := abs(dt1 - dt2) < EPS; +end; + +procedure Test(AExpected: TDateTime; AFormatStr, ADateTimeStr: String; NeedError : Boolean = False); +var + dt: TDateTime; +begin + Write(PadRight(ADateTimeStr, 36), ' ---> '); + Write(PadRight(FormatDateTime('yyyy-mm-dd hh:nn:ss.zzz', dt), 25)); + try + dt := ScanDateTime(AFormatStr, ADateTimeStr); + if dt = AExpected then WriteLn('OK') else + begin + Inc(ErrCount); + WriteLn('ERROR'); + end; + except on E:Exception do + begin + if not NeedError then + inc(errcount); + WriteLn('ERROR: ', E.Message); + end; + end; +end; + +begin + errCount:=0; + WriteLn('Using current format settings...'); + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 12:00 am'); + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 12:00 AM'); + Test(EncodeDateTime(2014, 4, 2, 0, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 12:01 am'); + Test(EncodeDateTime(2014, 4, 2, 1, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 01:00 am'); + Test(EncodeDateTime(2014, 4, 2,11, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 11:00 am'); + Test(EncodeDateTime(2014, 4, 2,11,59, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 11:59 am'); + Test(EncodeDateTime(2014, 4, 2,11,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz am/pm', 'April 2nd, 2014, 11:59:59.999 am'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 12:00 pm'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 1), 'mmmm dd??, yyyy, hh:nn:ss.zzz am/pm', 'April 2nd, 2014, 12:00:00.001 pm'); + Test(EncodeDateTime(2014, 4, 2,13, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 01:00 pm'); + Test(EncodeDateTime(2014, 4, 2,13, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 01:01 pm'); + Test(EncodeDateTime(2014, 4, 2,23, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 11:00 pm'); + Test(EncodeDateTime(2014, 4, 2,23,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz am/pm', 'April 2nd, 2014, 11:59:59.999 pm'); + + WriteLn; + + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 12:00 a'); + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 12:00 A'); + Test(EncodeDateTime(2014, 4, 2, 0, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 12:01 a'); + Test(EncodeDateTime(2014, 4, 2, 1, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 01:00 a'); + Test(EncodeDateTime(2014, 4, 2,11, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 11:00 a'); + Test(EncodeDateTime(2014, 4, 2,11,59, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 11:59 a'); + Test(EncodeDateTime(2014, 4, 2,11,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz a/p', 'April 2nd, 2014, 11:59:59.999 a'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 12:00 p'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 1), 'mmmm dd??, yyyy, hh:nn:ss.zzz a/p', 'April 2nd, 2014, 12:00:00.001 p'); + Test(EncodeDateTime(2014, 4, 2,13, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 01:00 p'); + Test(EncodeDateTime(2014, 4, 2,13, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 01:01 p'); + Test(EncodeDateTime(2014, 4, 2,23, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn a/p', 'April 2nd, 2014, 11:00 p'); + Test(EncodeDateTime(2014, 4, 2,23,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz a/p', 'April 2nd, 2014, 11:59:59.999 p'); + + WriteLn; + + FormatSettings.TimeAMString := 'vorm'; + FormatSettings.TimePMString := 'nachm'; + WriteLn('Using modified format settings with ampm=', FormatSettings.TimeAMString, '/', FormatSettings.TimePMString); + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 12:00 vorm'); + Test(EncodeDateTime(2014, 4, 2, 0, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 12:00 VORM'); + Test(EncodeDateTime(2014, 4, 2, 0, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 12:01 vorm'); + Test(EncodeDateTime(2014, 4, 2, 1, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 01:00 vorm'); + Test(EncodeDateTime(2014, 4, 2,11, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 11:00 vorm'); + Test(EncodeDateTime(2014, 4, 2,11,59, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 11:59 vorm'); + Test(EncodeDateTime(2014, 4, 2,11,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz ampm', 'April 2nd, 2014, 11:59:59.999 vorm'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 12:00 nachm'); + Test(EncodeDateTime(2014, 4, 2,12, 0, 0, 1), 'mmmm dd??, yyyy, hh:nn:ss.zzz ampm', 'April 2nd, 2014, 12:00:00.001 nachm'); + Test(EncodeDateTime(2014, 4, 2,13, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 01:00 nachm'); + Test(EncodeDateTime(2014, 4, 2,13, 1, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 01:01 nachm'); + Test(EncodeDateTime(2014, 4, 2,23, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 2nd, 2014, 11:00 nachm'); + Test(EncodeDateTime(2014, 4, 2,23,59,59,999), 'mmmm dd??, yyyy, hh:nn:ss.zzz ampm', 'April 2nd, 2014, 11:59:59.999 nachm'); + Test(EncodeDateTime(2014, 4, 3,12, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn ampm', 'April 3rd, 2014, 12:00 nachm'); + WriteLn('The next test should raise an exception.'); + + try + Test(EncodeDateTime(2014, 4, 2,13, 0, 0, 0), 'mmmm dd??, yyyy, hh:nn am/pm', 'April 2nd, 2014, 13:00 pm',True); + + except on E:Exception do + begin + WriteLn('OK, exception received: ', E.Message); + end; + end; + + WriteLn; + WriteLn('Test complete. Press RETURN to exit.'); + Halt(Ord(errcount>0)); +// ReadLn; +end. From 3b49e95415b79b02d6d74ee7786ddf1c1177c1a3 Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 10 Feb 2021 19:52:52 +0000 Subject: [PATCH 13/17] * do not initialize unncessary register allocators git-svn-id: trunk@48628 - --- compiler/arm/cgcpu.pas | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/compiler/arm/cgcpu.pas b/compiler/arm/cgcpu.pas index b6a94a8cb6..31ab0237a4 100644 --- a/compiler/arm/cgcpu.pas +++ b/compiler/arm/cgcpu.pas @@ -294,7 +294,8 @@ unit cgcpu; rg[R_INTREGISTER]:=trgintcpu.create(R_INTREGISTER,R_SUBWHOLE, [RS_R0,RS_R1,RS_R2,RS_R3,RS_R9,RS_R12,RS_R4,RS_R5,RS_R6,RS_R8, RS_R10,RS_R11,RS_R14],first_int_imreg,[]); - rg[R_FPUREGISTER]:=trgcpu.create(R_FPUREGISTER,R_SUBNONE, + if FPUARM_HAS_FPA in fpu_capabilities[current_settings.fputype] then + rg[R_FPUREGISTER]:=trgcpu.create(R_FPUREGISTER,R_SUBNONE, [RS_F0,RS_F1,RS_F2,RS_F3,RS_F4,RS_F5,RS_F6,RS_F7],first_fpu_imreg,[]); { The register allocator currently cannot deal with multiple non-overlapping subregs per register, so we can only use @@ -306,7 +307,7 @@ unit cgcpu; RS_D16,RS_D17,RS_D18,RS_D19,RS_D20,RS_D21,RS_D22,RS_D23,RS_D24,RS_D25,RS_D26,RS_D27,RS_D28,RS_D29,RS_D30,RS_D31, RS_D8,RS_D9,RS_D10,RS_D11,RS_D12,RS_D13,RS_D14,RS_D15 ],first_mm_imreg,[]) - else + else if FPUARM_HAS_VFP_EXTENSION in fpu_capabilities[current_settings.fputype] then rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBFD, [RS_D0,RS_D1,RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7,RS_D8,RS_D9,RS_D10,RS_D11,RS_D12,RS_D13,RS_D14,RS_D15],first_mm_imreg,[]); end; @@ -4329,7 +4330,8 @@ unit cgcpu; rg[R_INTREGISTER]:=trgintcputhumb2.create(R_INTREGISTER,R_SUBWHOLE, [RS_R0,RS_R1,RS_R2,RS_R3,RS_R4,RS_R5,RS_R6,RS_R7,RS_R8, RS_R10,RS_R12,RS_R14],first_int_imreg,[]); - rg[R_FPUREGISTER]:=trgcpu.create(R_FPUREGISTER,R_SUBNONE, + if FPUARM_HAS_FPA in fpu_capabilities[current_settings.fputype] then + rg[R_FPUREGISTER]:=trgcpu.create(R_FPUREGISTER,R_SUBNONE, [RS_F0,RS_F1,RS_F2,RS_F3,RS_F4,RS_F5,RS_F6,RS_F7],first_fpu_imreg,[]); if (FPUARM_HAS_32REGS in fpu_capabilities[current_settings.fputype]) and @@ -4349,10 +4351,7 @@ unit cgcpu; rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBFD, [RS_D0,RS_D1,RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7, RS_D8,RS_D9,RS_D10,RS_D11,RS_D12,RS_D13,RS_D14,RS_D15 - ],first_mm_imreg,[]) - else - rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBNONE, - [RS_S0,RS_S1,RS_R2,RS_R3,RS_R4,RS_S31],first_mm_imreg,[]); + ],first_mm_imreg,[]); end; From 71c314d7d498c6c346f11f5f703272a2307bac1e Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 10 Feb 2021 20:46:15 +0000 Subject: [PATCH 14/17] * another FPC_VERSION => FPC_FULLVERSIOn fix * switch back to 32 Bit mode if no thumb code is generated git-svn-id: trunk@48630 - --- rtl/linux/arm/sighnd.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtl/linux/arm/sighnd.inc b/rtl/linux/arm/sighnd.inc index caab79a029..5a5fd3fd15 100644 --- a/rtl/linux/arm/sighnd.inc +++ b/rtl/linux/arm/sighnd.inc @@ -23,7 +23,7 @@ end; {$ifndef CPUTHUMB} Procedure SignalToHandleErrorAddrFrame_ARM(Errno : longint;addr : CodePointer; frame : Pointer); nostackframe; assembler; asm -{$if FPC_VERSION >= 30200} +{$if FPC_FULLVERSION >= 30200} .code 32 {$endif} // the address is of the faulting instruction, and sigreturn will @@ -57,6 +57,9 @@ asm mov lr, r0 pop {r0,r1,r2,pc} .text +{$ifndef CPUTHUMB} +.code 32 +{$endif CPUTHUMB} end; {$endif} From 4245b20a32206201500e7d9c646b003b93f4c6e9 Mon Sep 17 00:00:00 2001 From: yury Date: Thu, 11 Feb 2021 10:39:41 +0000 Subject: [PATCH 15/17] * Fixed expectloc of local variables passed as a formal parameter. This issue is caught by cycling the compiler with -dEXTDEBUG. Yet the compiler can't cycle with EXTDEBUG due to other issues with wrong expectloc. git-svn-id: trunk@48650 - --- compiler/ncal.pas | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/compiler/ncal.pas b/compiler/ncal.pas index 4bf6208858..25e2aa209c 100644 --- a/compiler/ncal.pas +++ b/compiler/ncal.pas @@ -1392,6 +1392,16 @@ implementation else make_not_regable(left,[ra_addr_regable]) end; + vs_const: + if parasym.vardef.typ=formaldef then + begin + { compilerprocs never capture the address of their + parameters } + if not(po_compilerproc in aktcallnode.procdefinition.procoptions) then + make_not_regable(left,[ra_addr_regable,ra_addr_taken]) + else + make_not_regable(left,[ra_addr_regable]) + end; else set_varstate(left,vs_read,[vsf_must_be_valid]); end; From 1c99c2655e3996df83e847a442e52eec3ae171e5 Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 11 Feb 2021 20:51:53 +0000 Subject: [PATCH 16/17] * more helpful message if an unknown field is accessed in the assembler reader, resolves #38475 git-svn-id: trunk@48651 - --- compiler/msg/errore.msg | 4 +- compiler/msgidx.inc | 5 +- compiler/msgtxt.inc | 614 ++++++++++++++++++++-------------------- compiler/rautils.pas | 1 + 4 files changed, 313 insertions(+), 311 deletions(-) diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg index 89a1ed6601..1f0ceac0ed 100644 --- a/compiler/msg/errore.msg +++ b/compiler/msg/errore.msg @@ -2582,7 +2582,7 @@ cg_w_interrupt_does_not_save_registers=06062_W_The target CPU does not support p # # Assembler reader # -# 07144 is the last used one +# 07145 is the last used one # asmr_d_start_reading=07000_DL_Starting $1 styled assembler parsing % This informs you that an assembler block is being parsed @@ -2924,6 +2924,8 @@ asmr_w_segment_override_ignored_in_64bit_mode=07141_W_Segment base $1 will be ge asmr_e_mismatch_broadcasting_elements=07142_E_Mismatch broadcasting elements (expected: {$1} found: {$2}) asmr_e_invalid_arrangement=07143_E_Invalid arrangement specifier "$1" asmr_e_a64_invalid_regset=07144_E_Registers in a register set must be consecutive. +asmr_e_unknown_field=07145_E_Unknown field identifier +% The internal assembler read cannot find the passed field identifier. # # Assembler/binary writers # diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc index 65efa8defc..8345bf0427 100644 --- a/compiler/msgidx.inc +++ b/compiler/msgidx.inc @@ -858,6 +858,7 @@ const asmr_e_mismatch_broadcasting_elements=07142; asmr_e_invalid_arrangement=07143; asmr_e_a64_invalid_regset=07144; + asmr_e_unknown_field=07145; asmw_f_too_many_asm_files=08000; asmw_f_assembler_output_not_supported=08001; asmw_f_comp_not_supported=08002; @@ -1137,9 +1138,9 @@ const option_info=11024; option_help_pages=11025; - MsgTxtSize = 87094; + MsgTxtSize = 87127; MsgIdxMax : array[1..20] of longint=( - 28,107,361,131,99,63,145,36,223,68, + 28,107,361,131,99,63,146,36,223,68, 63,20,30,1,1,1,1,1,1,1 ); diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc index e155e00272..d853439dac 100644 --- a/compiler/msgtxt.inc +++ b/compiler/msgtxt.inc @@ -1,8 +1,8 @@ const msgtxt_codepage=20127; {$ifdef Delphi} -const msgtxt : array[0..000362] of string[240]=( +const msgtxt : array[0..000363] of string[240]=( {$else Delphi} -const msgtxt : array[0..000362,1..240] of char=( +const msgtxt : array[0..000363,1..240] of char=( {$endif Delphi} '01000_T_Compiler: $1'#000+ '01001_D_Compiler OS: $1'#000+ @@ -1063,121 +1063,121 @@ const msgtxt : array[0..000362,1..240] of char=( '07142_E_Mismatch broadcasting elements (expected: {$1} found: {$2})'#000+ '07143_E_Invalid arrangement specifier "$1"'#000+ '07144_E_Registers in a register set must be consecutive.'#000+ - '08000_F_Too many assembler files'#000+ - '08001_F_Sel','ected assembler output not supported'#000+ + '07145_E_Unknown field identifier'#000+ + '08000_F_Too',' many assembler files'#000+ + '08001_F_Selected assembler output not supported'#000+ '08002_F_Comp not supported'#000+ '08003_F_Direct not support for binary writers'#000+ '08004_E_Allocating of data is only allowed in bss section'#000+ '08005_F_No binary writer selected'#000+ - '08006_E_Asm: Opcode $1 not in table'#000+ - '08','007_E_Asm: $1 invalid combination of opcode and operands'#000+ + '08006','_E_Asm: Opcode $1 not in table'#000+ + '08007_E_Asm: $1 invalid combination of opcode and operands'#000+ '08008_E_Asm: 16 Bit references not supported'#000+ '08009_E_Asm: Invalid effective address'#000+ '08010_E_Asm: Immediate or reference expected'#000+ - '08011_E_Asm: $1 value exceeds bounds $2'#000+ - '08012_E_Asm: S','hort jump is out of range $1'#000+ + '08011_E_Asm: $1 value',' exceeds bounds $2'#000+ + '08012_E_Asm: Short jump is out of range $1'#000+ '08013_E_Asm: Undefined label $1'#000+ '08014_E_Asm: Comp 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+ - '08017_E_Asm: Redefined label $1'#000+ - '08018','_E_Asm: First defined here'#000+ + '0801','7_E_Asm: Redefined label $1'#000+ + '08018_E_Asm: First defined here'#000+ '08019_E_Asm: Invalid register $1'#000+ '08020_E_Asm: 16 or 32 Bit references 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 instruction requiring'+ - ' REX prefix'#000+ - '0802','3_E_Missing .seh_endprologue directive'#000+ + '08022_E_Asm: AH,BH,CH or DH cannot be used in an inst','ruction requiri'+ + 'ng REX prefix'#000+ + '08023_E_Missing .seh_endprologue directive'#000+ '08024_E_Function prologue exceeds 255 bytes'#000+ '08025_E_.seh_handlerdata directive without preceding .seh_handler'#000+ '08026_F_Relocation count for section $1 exceeds 65535'#000+ - '08027_N_Change of bind type of symbol',' $1 from $2 to $3 after use'#000+ + '0802','7_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+ '08030_F_Code segment too large'#000+ '08031_F_Data segment too large'#000+ - '08032_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+ '08034_E_Asm: RIP cannot be used as index register or with another regi'+ 'ster in a reference'#000+ - '08035_F_Illegal function size for SEH function'#000+ - '09000_W_Source op','erating system redefined'#000+ + '08035_F_Illegal function size f','or SEH function'#000+ + '09000_W_Source operating system redefined'#000+ '09001_I_Assembling (pipe) $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+ '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, switching to external assembling'#000+ '09006_T_Using assembler: $1'#000+ '09007_E_Error while assembling exitcode $1'#000+ '09008_E_Can'#039't call the assembler, error $1 switching to external a'+ 'ssembling'#000+ '09009_I_Assembling $1'#000+ - '09010_I_Assembling with smartlinking $1'#000+ - '09011_W_Object $1 no','t found, Linking may fail !'#000+ + '09010_I_Assembling with sma','rtlinking $1'#000+ + '09011_W_Object $1 not found, Linking may fail !'#000+ '09012_W_Library $1 not found, Linking may fail !'#000+ '09013_E_Error while linking'#000+ '09014_E_Can'#039't call the linker, switching to external linking'#000+ '09015_I_Linking $1'#000+ - '09016_E_Util $1 not found, switching to external linkin','g'#000+ + '09016_E_Util $1 not fo','und, switching to external linking'#000+ '09017_T_Using util $1'#000+ '09018_E_Creation of Executables not supported'#000+ '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+ '09035_E_Creation of Static Libraries not supported'#000+ '09020_I_Closing script $1'#000+ - '09021_E_Resource compiler "$1" not',' found, switching to external mode'+ + '0','9021_E_Resource compiler "$1" not found, switching to external mode'+ #000+ '09022_I_Compiling resource $1'#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+ - '09025_T_Unit $1 cannot be shared li','nked, switching to static linking'+ + '09','025_T_Unit $1 cannot be shared linked, switching to static linking'+ #000+ '09026_E_Unit $1 cannot be smart 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+ - '09029_E_Error while compiling resources'#000+ - '09','030_E_Can'#039't call the resource compiler "$1", switching to exte'+ - 'rnal mode'#000+ + '09029_E_E','rror while compiling resources'#000+ + '09030_E_Can'#039't call the resource compiler "$1", switching to extern'+ + 'al mode'#000+ '09031_E_Can'#039't open 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+ - '09034_W_"$1" not found, this will pr','obably cause a linking failure'#000+ + '090','34_W_"$1" not found, this will probably cause a linking failure'#000+ '09128_F_Can'#039't post process executable $1'#000+ '09129_F_Can'#039't open executable $1'#000+ '09130_X_Size of Code: $1 bytes'#000+ '09131_X_Size of initialized data: $1 bytes'#000+ - '09132_X_Size of uninitialized data: $1 bytes'#000+ - '09133_X_Stack sp','ace reserved: $1 bytes'#000+ + '09132_X_Size of uninitialize','d data: $1 bytes'#000+ + '09133_X_Stack space reserved: $1 bytes'#000+ '09134_X_Stack space committed: $1 bytes'#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'+ ' "$2".'#000+ - '09202_E_Program segment too large (exceeds 6','4k by $1 bytes)'#000+ + '09202_E_Pro','gram segment too large (exceeds 64k by $1 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+ '09205_E_Segment "$1" too large (exceeds 64k by $2 bytes)'#000+ - '09206_E_Group "$1" too large (exceeds 64k b','y $2 bytes)'#000+ + '09206_E_Gr','oup "$1" too large (exceeds 64k by $2 bytes)'#000+ '09207_E_Cannot create a .COM file, because the program contains segmen'+ 't relocations'#000+ '09208_W_Program "$1" uses experimental CheckPointer option'#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+ '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+ - '09214_D_Discardin','g duplicate symbol "$1" due to COMDAT selection mod'+ - 'e'#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 same size due to COMDAT '+ 'selection mode'#000+ - '09216_D_Discarding duplicate symbol "$1" with same content due to COMD'+ - 'AT selection mode'#000+ - '09217_D_Replac','ing duplicate symbol "$1" with smaller size due to COM'+ + '09216_D_Discarding duplicate symbol "$1" with same content due to COM', 'DAT selection mode'#000+ + '09217_D_Replacing duplicate symbol "$1" with smaller size due to COMDA'+ + 'T selection mode'#000+ '09218_E_Size 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+ - '0922','1_E_Undefined symbol: $1 (first seen in $2)'#000+ + '09220_E_COMDAT selection ','mode for symbol "$1" differs'#000+ + '09221_E_Undefined symbol: $1 (first seen in $2)'#000+ '09222_E_Undefined symbol: $1'#000+ '10000_T_Unitsearch: $1'#000+ '10001_T_PPU Loading $1'#000+ @@ -1185,195 +1185,195 @@ const msgtxt : array[0..000362,1..240] of char=( '10003_U_PPU Flags: $1'#000+ '10004_U_PPU Crc: $1'#000+ '10005_U_PPU Time: $1'#000+ - '10006_U_PPU File too short'#000+ - '10007_U_PP','U Invalid Header (no PPU at the begin)'#000+ + '1000','6_U_PPU File too short'#000+ + '10007_U_PPU Invalid Header (no PPU at the begin)'#000+ '10008_U_PPU Invalid Version $1'#000+ '10009_U_PPU is compiled for another processor'#000+ '10010_U_PPU is compiled for another target'#000+ '10011_U_PPU Source: $1'#000+ '10012_U_Writing $1'#000+ - '10013_F_Can'#039't Write PPU-File'#000+ - '10014_F_Er','ror reading PPU-File'#000+ + '10013_','F_Can'#039't Write PPU-File'#000+ + '10014_F_Error reading PPU-File'#000+ '10015_F_Unexpected end of PPU-File'#000+ '10016_F_Invalid PPU-File entry: $1'#000+ '10017_F_PPU Dbx count problem'#000+ '10018_E_Illegal unit name: $1 (expecting $2)'#000+ '10019_F_Too much units'#000+ - '10020_F_Circular unit reference between $1 and $2'#000+ - '1','0021_F_Can'#039't compile unit $1, no sources available'#000+ + '10020_F_Circular u','nit reference between $1 and $2'#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+ '10023_W_Unit $1 was not found but $2 exists'#000+ '10024_F_Unit $1 searched but $2 found'#000+ - '10025_W_Compiling the system unit requires the -Us switch'#000+ - '10026_F_The','re were $1 errors compiling module, stopping'#000+ + '10025_W_Compiling the system unit re','quires the -Us switch'#000+ + '10026_F_There were $1 errors compiling module, stopping'#000+ '10027_U_Load from $1 ($2) unit $3'#000+ '10028_U_Recompiling $1, checksum changed for $2'#000+ '10029_U_Recompiling $1, source found only'#000+ - '10030_U_Recompiling unit, static lib is older than ppufile'#000+ - '10031_U_Reco','mpiling unit, shared lib is older than ppufile'#000+ + '10030_U_Recompiling unit, static lib i','s 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+ '10033_U_Recompiling unit, obj is older than asm'#000+ '10034_U_Parsing interface of $1'#000+ - '10035_U_Parsing implementation of $1'#000+ - '10036_U_Second ','load for unit $1'#000+ + '10035_U_Parsing imp','lementation of $1'#000+ + '10036_U_Second load for unit $1'#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 file $2'#000+ - '10042_U_Trying to use a unit which was compiled with a ','different FPU'+ + '10042_U_Trying to use ','a unit which was compiled with a different FPU'+ ' mode'#000+ '10043_U_Loading interface units from $1'#000+ '10044_U_Loading implementation units from $1'#000+ '10045_U_Interface CRC changed for unit $1'#000+ '10046_U_Implementation CRC changed for unit $1'#000+ - '10047_U_Finished compiling unit $1'#000+ - '10048_U_Addi','ng dependency: $1 depends on $2'#000+ + '10047_U_Finish','ed compiling unit $1'#000+ + '10048_U_Adding dependency: $1 depends on $2'#000+ '10049_U_No reload, is caller: $1'#000+ '10050_U_No reload, already in second compile: $1'#000+ '10051_U_Flag for reload: $1'#000+ '10052_U_Forced reloading'#000+ '10053_U_Previous state of $1: $2'#000+ - '10054_U_Already compiling $1, setting se','cond compile'#000+ + '10054_U','_Already compiling $1, setting second compile'#000+ '10055_U_Loading unit $1'#000+ '10056_U_Finished loading unit $1'#000+ '10057_U_Registering new unit $1'#000+ '10058_U_Re-resolving unit $1'#000+ '10059_U_Skipping re-resolving unit $1, still loading used units'#000+ - '10060_U_Unloading resource unit $1 (not neede','d)'#000+ + '10060_U_Unlo','ading 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 compilation invocation'#000+ - '10062_U_Indirect interface (objects/class','es) CRC changed for unit $1'+ + '10062_U_','Indirect interface (objects/classes) CRC changed for unit $1'+ #000+ '10063_U_PPU is compiled for another i8086 memory model'#000+ '10064_U_Loading unit $1 from package $2'#000+ '10065_F_Internal type "$1" was not found. Check if you use the correct'+ - ' run time library.'#000+ - '10066_F_Internal type "$1" d','oes not look as expected. Check if you u'+ - 'se the correct run time library.'#000+ + ' run time libr','ary.'#000+ + '10066_F_Internal type "$1" does not look as expected. Check if you use'+ + ' the correct run time library.'#000+ '10067_U_Skipping unit, PPU and compiler have to be both compiled with '+ 'or without LLVM support'#000+ - '11000_O_$1 [options] [options]'#000+ - '11001_W_Only one source file s','upported, changing source file to comp'+ - 'ile from "$1" into "$2"'#000+ + '11000_O_$1 [options] [option','s]'#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+ '11003_E_Nested response files are not supported'#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+ '11007_H_-? writes help pages'#000+ '11008_F_Too many config files nested'#000+ '11009_F_Unable to open file $1'#000+ '11010_D_Reading further options from $1'#000+ '11011_W_Target is already set to: $1'#000+ - '11012_W_Shared libs not supported on',' DOS platform, reverting to stat'+ + '110','12_W_Shared libs not supported on DOS platform, reverting to stat'+ 'ic'#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+ - '11015_F_Open conditional at the end of the options file'#000+ - '11016_W_De','bug information generation is not supported by this execut'+ - 'able'#000+ + '11015_F_Open conditional at the e','nd of the options file'#000+ + '11016_W_Debug information generation is not supported by this executab'+ + 'le'#000+ '11017_H_Try recompiling with -dGDB'#000+ '11018_W_You are using the obsolete switch $1'#000+ '11019_W_You are using the obsolete switch $1, please use $2'#000+ - '11020_N_Switching assembler to defaul','t source writing assembler'#000+ + '1102','0_N_Switching assembler to default source writing assembler'#000+ '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+ '11022_W_"$1" assembler use forced'#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+ - '11','029_O_*** press enter ***'#000+ + '11029_O_*** press enter ***'#000+ '11030_H_Start of reading config file $1'#000+ '11031_H_End of reading config file $1'#000+ '11032_D_Interpreting option "$1"'#000+ '11036_D_Interpreting firstpass option "$1"'#000+ - '11033_D_Interpreting file option "$1"'#000+ - '11034_D_Reading config',' file "$1"'#000+ + '11033_D_Interpreting file o','ption "$1"'#000+ + '11034_D_Reading config file "$1"'#000+ '11035_D_Found source file name "$1"'#000+ '11039_E_Unknown codepage "$1"'#000+ '11040_F_Config file $1 is a directory'#000+ '11041_W_Assembler output selected "$1" cannot generate debug info, deb'+ 'ugging 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+ '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 targe'+ 't platform'#000+ - '11045_F_The feature "$1" is not, or not yet, support','ed on the select'+ + '11045_F_The feature',' "$1" is not, or not yet, supported on the select'+ 'ed target platform'#000+ '11046_N_DWARF debug information cannot be used with smart linking on t'+ 'his target, switching to static linking'#000+ - '11047_W_Option "$1" is ignored for the current target platform.'#000+ - '11048_W_Disabling external debu','g information because it is unsupport'+ - 'ed for the selected target/debug format combination.'#000+ + '11047_W_Option "$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 with'+ - ' external assembler, disabling static library creation.'#000+ - '11050_E_Invalid value fo','r MACOSX_DEPLOYMENT_TARGET environment varia'+ - 'ble: $1'#000+ + ' external assembler, disabling static library c','reation.'#000+ + '11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variabl'+ + 'e: $1'#000+ '11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+ 'ble: $1'#000+ '11052_E_You must use one of the VFP FPU types when using the EABIHF AB'+ - 'I target'#000+ - '11053_W_The selected debug form','at is not supported on the current ta'+ - 'rget, not changing the current setting'#000+ + 'I targe','t'#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+ '11055_E_Malformed parameter: $1'#000+ '11056_W_Smart linking requires external linker'#000+ - '11057_E_Creating .COM files is not supported in t','he current memory m'+ + '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+ - '11059_E_Unsupported target architecture -P$1, invoke the "fpc"',' compi'+ + '11059_E_Unsupported target ar','chitecture -P$1, invoke the "fpc" compi'+ 'ler driver instead.'#000+ '11060_E_Feature switches are only supported while compiling the system'+ ' unit.'#000+ '11061_N_The selected debug format is not supported by the internal lin'+ - 'ker, switching to external linking'#000+ - '11062_E_You can not use both opt','ions ($1) ($2) at same time.'#000+ + 'ker, switching to external linking',#000+ + '11062_E_You can not use both options ($1) ($2) at same time.'#000+ '12000_F_Cannot open whole program optimization feedback file "$1"'#000+ '12001_D_Processing whole program optimization information in wpo feedb'+ 'ack file "$1"'#000+ - '12002_D_Finished processing the whole program optimization in','formati'+ + '12002_D_Finished processing ','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 "'+ - '$2" at line $1 of wpo feedback file, ignoring'#000+ - '12005_D_Fo','und whole program optimization section "$1" with informati'+ - 'on about "$2"'#000+ + '$2" at line $1 of wpo f','eedback file, ignoring'#000+ + '12005_D_Found whole program optimization section "$1" with information'+ + ' about "$2"'#000+ '12006_F_The selected whole program optimizations require a previously '+ 'generated feedback file (use -Fw to specify)'#000+ - '12007_E_No collected information necessary to perform',' "$1" whole pro'+ + '12007_E_No collected',' 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 information, yet'+ - ' a feedback file was specifie','d (using -FW)'#000+ + '12009_E_Not generating any whole program optimization information,',' 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 '+ - 'needed by the requested optimizations'#000+ - '12012_W_O','verriding previously read information for "$1" from feedbac'+ - 'k input file using information in section "$2"'#000+ + 'needed by the ','requested optimizations'#000+ + '12012_W_Overriding previously read information for "$1" from feedback '+ + 'input file using information in section "$2"'#000+ '12013_E_Cannot extract symbol liveness information from program when s'+ 'tripping symbols, use -Xs-'#000+ - '12014_E_Cannot extract symbol livenes','s information from program when'+ + '1201','4_E_Cannot extract symbol liveness information from program when'+ ' when not linking'#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 produced by "'+ - '$1"'#000+ - '12017_F_Error executing "','$1" (exitcode: $2) to extract symbol inform'+ - 'ation from linked program'#000+ + '12016_E_Error during reading symbol liveness information produced ','by'+ + ' "$1"'#000+ + '12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+ + 'ion from linked program'#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 f', - 'ile "$1"'#000+ + '12019_E_Cannot create specified whol','e program optimisation feedback '+ + 'file "$1"'#000+ '13001_F_Can'#039't find package $1'#000+ '13002_U_PCP file for package $1 found'#000+ '13003_E_Duplicate package $1'#000+ '13004_E_Unit $1 can not be part of a package'#000+ - '13005_N_Unit $1 is implicitely imported into package $2'#000+ - '13006_F_Failed to create PCP file',' $2 for package $1'#000+ + '13005_N_Unit $1 is implicitely imported into package $2'#000, + '13006_F_Failed to create PCP file $2 for package $1'#000+ '13007_F_Failed to read PCP file for package $1'#000+ '13008_T_PCP loading $1'#000+ '13009_U_PCP Name: $1'#000+ @@ -1381,27 +1381,27 @@ const msgtxt : array[0..000362,1..240] of char=( '13011_U_PCP Crc: $1'#000+ '13012_U_PCP Time: $1'#000+ '13013_U_PCP File too short'#000+ - '13014_U_PCP Invalid Header (no PCP at th','e begin)'#000+ + '13014_U','_PCP Invalid Header (no PCP at the begin)'#000+ '13015_U_PCP Invalid Version $1'#000+ '13016_U_PCP is compiled for another processor'#000+ '13017_U_PCP is compiled for another target'#000+ '13018_U_Writing $1'#000+ '13019_F_Can'#039't Write PCP-File'#000+ - '13020_F_Error reading PCP-File'#000+ - '13021_F_Unexpected end of PCP-Fi','le'#000+ + '13020_F_Error reading PCP-File',#000+ + '13021_F_Unexpected end of PCP-File'#000+ '13022_F_Invalid PCP-File entry: $1'#000+ '13023_U_Trying to use a unit which was compiled with a different FPU m'+ 'ode'#000+ '13024_T_Packagesearch: $1'#000+ '13025_U_Required package $1'#000+ '13026_U_Contained unit $1'#000+ - '13027_E_Unit $1 is already contained in package ','$2'#000+ + '13027_E_Unit $1',' is already contained in package $2'#000+ '13028_W_Unit $1 is imported from indirectly required package $2'#000+ '13029_U_PPL filename $1'#000+ '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+ 'CPU'#010+ - 'Copyright (c) 1993-2021 by Florian Klaempfl and others'#000+ - '11024_Free Pascal Co','mpiler version $FPCVERSION'#010+ + 'Copyright (c) 1993-2021 by Florian Klaempf','l and others'#000+ + '11024_Free Pascal Compiler version $FPCVERSION'#010+ #010+ 'Compiler date : $FPCDATE'#010+ 'Compiler CPU target: $FPCCPU'#010+ @@ -1411,9 +1411,9 @@ const msgtxt : array[0..000362,1..240] of char=( ' $OSTARGETS'#010+ #010+ 'Supported CPU instruction sets:'#010+ - ' $INSTRUCTIONSETS'#010+ + ' $I','NSTRUCTIONSETS'#010+ #010+ - 'Supported FPU ins','truction sets:'#010+ + 'Supported FPU instruction sets:'#010+ ' $FPUINSTRUCTIONSETS'#010+ #010+ 'Supported inline assembler modes:'#010+ @@ -1426,9 +1426,9 @@ const msgtxt : array[0..000362,1..240] of char=( ' $MODESWITCHES'#010+ #010+ 'Supported ABI targets:'#010+ - ' $ABITARGETS'#010+ + ' $','ABITARGETS'#010+ #010+ - 'Supported Optimizatio','ns:'#010+ + 'Supported Optimizations:'#010+ ' $OPTIMIZATIONS'#010+ #010+ 'Supported Whole Program Optimizations:'#010+ @@ -1439,165 +1439,164 @@ const msgtxt : array[0..000362,1..240] of char=( ' $CODEGENERATIONBACKEND'#010+ #010+ 'Supported Microcontroller types:$\n $CONTROLLERTYPES$\n'#010+ - 'This program comes under the GNU General Publi','c Licence'#010+ + 'This program ','comes under the GNU General Public Licence'#010+ 'For more information read COPYING.v2'#010+ #010+ 'Please report bugs in our bug tracker on:'#010+ ' https://bugs.freepascal.org'#010+ #010+ 'More information may be found on our WWW pages (including directions'#010+ - 'for mailing lists useful for asking',' questions or discussing potentia'+ + 'fo','r mailing lists useful for asking questions or discussing potentia'+ 'l'#010+ 'new features, etc.):'#010+ ' https://www.freepascal.org'#000+ '11025_F*0*_Only options valid for the default or selected platform are'+ ' listed.'#010+ - '**0*_Put + after a boolean switch option to enable it, - to d','isable '+ + '**0*_Put + after a boolean s','witch option to enable it, - to disable '+ 'it.'#010+ '**1@_Read compiler options from in addition to the default fpc.'+ 'cfg'#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 tha'+ - 'n 2.25 (Windows, NativeNT)',#010+ + '**2a5_Don'#039't generate Big Obj COFF files for GNU Binutils ol','der t'+ + 'han 2.25 (Windows, NativeNT)'#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 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+ '**2at_List temp allocation/release info in assembler file'#010+ '**1A_Output format:'#010+ '**2Adefault_Use default assembler'#010+ - '3*2Aas_Assemble using GNU AS'#010+ - '3*2Aas-darwin_Assemble Darwi','n Mach-O using GNU GAS'#010+ + '3*2Aas_Assemble using GN','U AS'#010+ + '3*2Aas-darwin_Assemble Darwin Mach-O using GNU GAS'#010+ '3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+ '8*2Anasm_Assemble using Nasm'#010+ '8*2Anasmobj_Assemble using Nasm'#010+ '3*2Anasm_Assemble using Nasm'#010+ - '3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+ - '3*2Anasmelf_ELF32 (Lin','ux) file using Nasm'#010+ + '3*2Anasmcoff_COFF (Go32v2) file ','using Nasm'#010+ + '3*2Anasmelf_ELF32 (Linux) file using Nasm'#010+ '3*2Anasmwin32_Win32 object file using Nasm'#010+ '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+ '3*2Anasmdarwin_macho32 object file using Nasm (experimental)'#010+ - '3*2Awasm_Obj file using Wasm (Watcom)'#010+ - '3*2Anasmobj_Obj file using Na','sm'#010+ + '3*2Awasm_Obj file using Wasm (Watc','om)'#010+ + '3*2Anasmobj_Obj file using Nasm'#010+ '3*2Amasm_Obj file using Masm (Microsoft)'#010+ '3*2Atasm_Obj file using Tasm (Borland)'#010+ '3*2Aelf_ELF (Linux) using internal writer'#010+ '3*2Acoff_COFF (Go32v2) using internal writer'#010+ - '3*2Apecoff_PE-COFF (Win32) using internal writer'#010+ - '3*2Ayasm_Assemble usi','ng Yasm (experimental)'#010+ + '3*2Apecoff_PE-COFF (Win32) using inte','rnal writer'#010+ + '3*2Ayasm_Assemble using Yasm (experimental)'#010+ '4*2Aas_Assemble using GNU AS'#010+ '4*2Agas_Assemble using GNU GAS'#010+ '4*2Aas-darwin_Assemble Darwin Mach-O using GNU GAS'#010+ '4*2Amasm_Win64 object file using ml64 (Microsoft)'#010+ - '4*2Apecoff_PE-COFF (Win64) using internal writer'#010+ - '4*2Aelf','_ELF (Linux-64bit) using internal writer'#010+ + '4*2Apecoff_PE-COFF (Win','64) using internal writer'#010+ + '4*2Aelf_ELF (Linux-64bit) using internal writer'#010+ '4*2Ayasm_Assemble using Yasm (experimental)'#010+ '4*2Anasm_Assemble using Nasm (experimental)'#010+ '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+ - '4*2Anasmelf_Assemble Linux-64bit object file',' using Nasm (experimenta'+ + '4*2Anasmelf','_Assemble Linux-64bit object file using Nasm (experimenta'+ 'l)'#010+ '4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+ 'ental)'#010+ '6*2Aas_Unix o-file using GNU AS'#010+ '6*2Agas_GNU Motorola assembler'#010+ '6*2Amit_MIT Syntax (old GAS)'#010+ - '6*2Amot_Standard Motorola assembler'#010+ - '6*2Avasm','_Use vasm to assemble'#010+ + '6*2Amot_Sta','ndard Motorola assembler'#010+ + '6*2Avasm_Use vasm to assemble'#010+ 'A*2Aas_Assemble using GNU AS'#010+ 'P*2Aas_Assemble using GNU AS'#010+ 'S*2Aas_Assemble using GNU AS'#010+ 'Z*2Asdcc-sdasz80_Assemble using SDCC-SDASZ80'#010+ 'Z*2Az80asm_Assemble using z80asm'#010+ - '**1b_Generate browser info'#010+ - '**2bl_Generate local symbo','l info'#010+ + '**1b_Generate browse','r info'#010+ + '**2bl_Generate local symbol info'#010+ '**1B_Build all modules'#010+ '**1C_Code generation options:'#010+ '**2C3_Turn on ieee error checking for constants'#010+ '**2Ca_Select ABI; see fpc -i or fpc -ia for possible values'#010+ - '**2Cb_Generate code for a big-endian variant of the target archite','ct'+ + '**2Cb_Generate code for a big-end','ian variant of the target architect'+ 'ure'#010+ '**2Cc_Set default calling convention to '#010+ '**2CD_Create also dynamic library (not supported)'#010+ '**2Ce_Compilation with emulated floating point opcodes'#010+ - '**2CE_Generate FPU code which can raise exceptions'#010+ - '**2Cf_Select fpu instruction',' set to use; see fpc -i or fpc -if fo'+ - 'r possible values'#010+ + '**2CE_Generate FPU code which can raise exception','s'#010+ + '**2Cf_Select fpu instruction set to use; see fpc -i or fpc -if for '+ + 'possible values'#010+ '**2CF_Minimal floating point constant precision (default, 32, 64)'#010+ '**2Cg_Generate PIC code'#010+ - '**2Ch[,m]_ bytes min heap size (between 1023 and 67107840) and o'+ - 'ptionally [m] max heap',' size'#010+ + '**2Ch[,m]_ bytes min heap size (between 1023 and 6710','7840) and'+ + ' optionally [m] max heap size'#010+ '**2Ci_IO-checking'#010+ 'A*2CI_Select instruction set on ARM: ARM or THUMB'#010+ 'L*2Cl_LLVM code generation options'#010+ 'L*3Clflto_Enable Link-time optimisation (needed both when compiling un'+ - 'its and programs/libraries)'#010+ - 'L*3Clfltonosystem_Disable L','TO for the system unit (needed with at le'+ - 'ast Xcode 10.2 and earlier due to linker bugs)'#010+ + 'its and programs/libra','ries)'#010+ + 'L*3Clfltonosystem_Disable LTO for the system unit (needed with at leas'+ + 't Xcode 10.2 and earlier due to linker bugs)'#010+ 'L*3Clv_LLVM target version: Xcode-10.1, 7.0, 8.0, .., 10.0'#010+ '**2Cn_Omit linking stage'#010+ - 'P*2CN_Generate nil-pointer checks (AIX-only)'#010+ - '**2Co_Check overflow',' of integer operations'#010+ + 'P*2CN_Generate nil-pointer check','s (AIX-only)'#010+ + '**2Co_Check overflow of integer operations'#010+ '**2CO_Check for possible overflow of integer operations'#010+ '**2Cp_Select instruction set; see fpc -i or fpc -ic for possible va'+ 'lues'#010+ '**2CP=_ packing settings'#010+ - '**3CPPACKSET=_ set allocation: 0, 1 or DEFAULT o','r NORMAL, 2, '+ + '**3CPPACKSET=_ ','set allocation: 0, 1 or DEFAULT or NORMAL, 2, '+ '4 and 8'#010+ '**3CPPACKENUM=_ enum packing: 0, 1, 2 and 4 or DEFAULT or NORMA'+ 'L'#010+ '**3CPPACKRECORD=_ record packing: 0 or DEFAULT or NORMAL, 1, 2,'+ ' 4, 8, 16 and 32'#010+ '**2Cr_Range checking'#010+ - '**2CR_Verify object method call validit','y'#010+ + '**2CR_','Verify object method call validity'#010+ '**2Cs_Set stack checking size to '#010+ '**2Ct_Stack checking (for testing only, see manual)'#010+ '8*2CT_Target-specific code generation options'#010+ '3*2CT_Target-specific code generation options'#010+ - '4*2CT_Target-specific code generation options',#010+ + '4*2CT_Target','-specific code generation options'#010+ 'p*2CT_Target-specific code generation options'#010+ 'P*2CT_Target-specific code generation options'#010+ 'J*2CT_Target-specific code generation options'#010+ 'A*2CT_Target-specific code generation options'#010+ - 'p*3CTsmalltoc_ Generate smaller TOCs at the',' expense of execution spe'+ + 'p*3CTsmall','toc_ Generate smaller TOCs 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 '+ + 'with prefix X (empty strin','g disables)'#010+ + 'J*3CTautosetterprefix=X_ Automatically create setters for properties '+ 'with prefix X (empty string disables)'#010+ - 'J*3CTautosetterprefix','=X_ Automatically create setters for propertie'+ - 's with prefix X (empty string disables)'#010+ '8*3CTcld_ Emit a CLD instruction before using the x86 '+ 'string instructions'#010+ - '3*3CTcld_ Emit a CLD instruction before using t','he x8'+ + '3*3CTcld_ Emit',' a CLD instruction before using the x8'+ '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'+ - 'ologue of far functions'#010+ - 'J*3CTcompactintarrayinit_ Gen','erate smaller (but potentially slower) '+ - 'code for initializing integer array constants'#010+ + 'ologue of far functi','ons'#010+ + 'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+ + 'de for initializing integer array constants'#010+ 'J*3CTenumfieldinit_ Initialize enumeration fields in constructor'+ - 's to enumtype(0), after calling inherited constructors'#010+ - 'J*3CTinitlocals_ Init','ialize local variables that trigger a '+ - 'JVM bytecode verification error if used uninitialized (slows down code'+ - ')'#010+ + 's to enumtype(0), after calling inherited constructo','rs'#010+ + 'J*3CTinitlocals_ Initialize local variables that trigger a JV'+ + 'M bytecode verification error if used uninitialized (slows down code)'#010+ 'J*3CTlowercaseprocstart_ Lowercase the first character of procedure/f'+ 'unction/method names'#010+ - 'A*3CTthumbinterworking_ Generate Thumb ','interworking-safe code if pos'+ + 'A*3CTt','humbinterworking_ Generate Thumb interworking-safe code if pos'+ 'sible'#010+ 'J*2Cv_Var/out parameter copy-out checking'#010+ 'A*2CV_Set section threadvar model to '#010+ '**2CX_Create also smartlinked library'#010+ '**1d_Defines the symbol '#010+ - '**1D_Generate a DEF file'#010+ - '**2DD_Set the date str','ing returned by %DATE% to x, it is not chec'+ - 'ked for being a valid date string'#010+ + '**1D_Generate a D','EF file'#010+ + '**2DD_Set the date string returned by %DATE% to x, it is not checke'+ + 'd for being a valid date string'#010+ '**2Dd_Set description to '#010+ '**2DT_Set the time string returned by %TIME% to x, it is not checke'+ - 'd for being a valid time string'#010+ - '**2Dv_Set DLL version to <','x>'#010+ + 'd for being a valid time str','ing'#010+ + '**2Dv_Set DLL version to '#010+ '*O2Dw_PM application'#010+ '**1e_Set path to executable'#010+ '**1E_Same as -Cn'#010+ @@ -1605,161 +1604,161 @@ const msgtxt : array[0..000362,1..240] of char=( '**1F_Set file names and paths:'#010+ '**2Fa[,y]_(for a program) load units and [y] before uses is par'+ 'sed'#010+ - '**2Fc_Set input codepage to '#010+ - '**2FC','_Set RC compiler binary name to '#010+ + '**2Fc_Set input codepage to '#010+ + '**2FC_Set RC compiler binary name to '#010+ '**2Fd_Disable the compiler'#039's internal directory cache'#010+ '**2FD_Set the directory where to search for compiler utilities'#010+ '**2Fe_Redirect error output to '#010+ - '**2FE_Set exe/unit output path to '#010+ - '**','2Ff_Add to framework path (Darwin only), or set IDF path to'+ - ' (Xtensa-FreeRTOS)'#010+ + '**2FE_S','et exe/unit output path to '#010+ + '**2Ff_Add to framework path (Darwin only), or set IDF path to <'+ + 'x> (Xtensa-FreeRTOS)'#010+ '**2FF_Use fpcres as RC to RES compiler instead of windres or gorc'#010+ '**2Fi_Add to include path'#010+ - '**2Fl_Add to library path'#010+ - '**2FL_Use as',' dynamic linker'#010+ + '**2Fl_Add to',' library path'#010+ + '**2FL_Use as dynamic linker'#010+ '**2Fm_Load unicode conversion table from .txt in the compiler di'+ 'r'#010+ '**2FM_Set the directory where to search for unicode binary files'#010+ - '**2FN_Add to list of default unit scopes (namespaces)'#010+ - '**2Fo_Add to obj','ect path'#010+ + '**2FN_Add to list of default unit scopes (na','mespaces)'#010+ + '**2Fo_Add to object path'#010+ '**2Fr_Load error message file '#010+ '**2FR_Set resource (.res) linker to '#010+ '**2Fu_Add to unit path'#010+ '**2FU_Set unit output path to , overrides -FE'#010+ - '**2FW_Store generated whole-program optimization feedback in '#010+ - '*','*2Fw_Load previously stored whole-program optimization feedback '+ - 'from '#010+ + '**2FW_Store generated whole-progr','am optimization feedback in '#010+ + '**2Fw_Load previously stored whole-program optimization feedback fr'+ + 'om '#010+ '*g1g_Generate debug information (default format for target)'#010+ '*g2gc_Generate checks for pointers (experimental, only available on so'+ - 'me targets, might generate false p','ositive)'#010+ + 'm','e targets, might generate false positive)'#010+ '*g2gh_Use heaptrace unit (for memory leak/corruption debugging)'#010+ '*g2gl_Use line info unit (show more info with backtraces)'#010+ '*g2gm_Generate Microsoft CodeView debug information (experimental)'#010+ - '*g2go_Set debug information options'#010+ - '*g3','godwarfsets_ Enable DWARF '#039'set'#039' type debug information (b'+ - 'reaks gdb < 6.5)'#010+ + '*g2go_','Set debug information options'#010+ + '*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+ + 'aks gdb < 6.5)'#010+ '*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+ #010+ - '*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class n'+ - 'ame'#010+ - '*g3godwarfcpp_ Simula','te C++ debug information in DWARF'#010+ + '*g3godwarfmethodclassprefix_ Prefix method names in DWARF with',' class'+ + ' name'#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 Debugger/Linker compatibility)'#010+ - '*g2gp_Preserve case in st','abs symbol names'#010+ + 'en Watcom Debugger/Linker compati','bility)'#010+ + '*g2gp_Preserve case in stabs symbol names'#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 traceable with Valgrind'#010+ - '*g2gw_Generate DWARFv2 debug inform','ation (same as -gw2)'#010+ + '*g','2gw_Generate DWARFv2 debug information (same as -gw2)'#010+ '*g2gw2_Generate DWARFv2 debug information'#010+ '*g2gw3_Generate DWARFv3 debug information'#010+ '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+ '**1i_Information'#010+ '**2iD_Return compiler date'#010+ - '**2iSO_Return compiler OS'#010+ - '**2iSP_R','eturn compiler host processor'#010+ + '*','*2iSO_Return compiler OS'#010+ + '**2iSP_Return compiler host processor'#010+ '**2iTO_Return target OS'#010+ '**2iTP_Return target processor'#010+ '**2iV_Return short compiler version'#010+ '**2iW_Return full compiler version'#010+ '**2ia_Return list of supported ABI targets'#010+ - '**2ib_Return the used code generation bac','kend type'#010+ + '**2ib_Re','turn the used code generation backend type'#010+ '**2ic_Return list of supported CPU instruction sets'#010+ '**2if_Return list of supported FPU instruction sets'#010+ '**2ii_Return list of supported inline assembler modes'#010+ - '**2im_Return list of supported modeswitches'#010+ - '**2io_Return list of support','ed optimizations'#010+ + '**2im_Return list of supported modeswit','ches'#010+ + '**2io_Return list of supported optimizations'#010+ '**2ir_Return list of recognized compiler and RTL features'#010+ '**2it_Return list of supported targets'#010+ '**2iu_Return list of supported microcontroller types'#010+ - '**2iw_Return list of supported whole program optimizations'#010+ - '**1I_Add to include path'#010+ + '**2iw_Return list of supported whole pro','gram optimizations'#010+ + '**1I_Add to include path'#010+ '**1k_Pass to the linker'#010+ '**1l_Write logo'#010+ '**1M_Set language mode to / enable modeswitch (see option -'+ 'im)'#010+ '**2Mfpc_Free Pascal dialect (default)'#010+ - '**2Mobjfpc_FPC mode with Object Pascal support'#010+ - '**2Mdelphi_Delph','i 7 compatibility mode'#010+ + '**2Mobjfpc_FPC mode with Objec','t Pascal support'#010+ + '**2Mdelphi_Delphi 7 compatibility mode'#010+ '**2Mtp_TP/BP 7.0 compatibility mode'#010+ '**2Mmacpas_Macintosh Pascal dialects compatibility mode'#010+ '**2Miso_ISO 7185 mode'#010+ '**2Mextendedpascal_ISO 10206 mode'#010+ - '**2Mdelphiunicode_Delphi 2009 and later compatibility mode'#010+ - '**2*_Each ','mode (as listed above) enables its default set of modeswit'+ - 'ches.'#010+ + '**2Mdelphiunicode_Delphi 2009 and la','ter compatibility mode'#010+ + '**2*_Each mode (as listed above) enables its default set of modeswitch'+ + 'es.'#010+ '**2*_Other modeswitches are disabled and need to be enabled one by ano'+ 'ther.'#010+ '**1M-_Disable modeswitch (see option -im)'#010+ - '**1n_Do not read the default config files'#010+ - '**1o_C','hange the name of the executable produced to '#010+ + '**1n_Do not read t','he default config files'#010+ + '**1o_Change the name of the executable produced to '#010+ '**1O_Optimizations:'#010+ '**2O-_Disable optimizations'#010+ '**2O1_Level 1 optimizations (quick and debugger friendly)'#010+ - '**2O2_Level 2 optimizations (-O1 + quick optimizations)'#010+ - '**2O3_Level 3 optimization','s (-O2 + slow optimizations)'#010+ + '**2O2_Level 2 optimizations (-O1 + quick optimiza','tions)'#010+ + '**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+ '**2O4_Level 4 optimizations (-O3 + optimizations which might have unex'+ 'pected side effects)'#010+ '**2Oa=_Set alignment'#010+ - '**2Oo[NO]_Enable or disable optimizations; see fpc -i or fpc -io fo'+ - 'r possible values'#010+ - '**2Op','_Set target cpu for optimizing; see fpc -i or fpc -ic for po'+ - 'ssible values'#010+ + '**2Oo[NO]_Enable or disable optimizations; see fpc -i or ','fpc -io '+ + 'for possible values'#010+ + '**2Op_Set target cpu for optimizing; see fpc -i or fpc -ic for poss'+ + 'ible values'#010+ '**2OW_Generate whole-program optimization feedback for optimization'+ ' ; see fpc -i or fpc -iw for possible values'#010+ - '**2Ow_Perform whole-program optimization <','x>; see fpc -i or fpc -'+ + '**2Ow_Per','form whole-program optimization ; see fpc -i or fpc -'+ 'iw for possible values'#010+ '**2Os_Optimize for size rather than speed'#010+ '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+ 'F*1P_Target CPU / compiler related options:'#010+ - 'F*2PB_Show default compiler binary'#010+ - 'F*2PP_Show',' default target cpu'#010+ + 'F*2PB_Show d','efault compiler binary'#010+ + 'F*2PP_Show default target cpu'#010+ 'F*2P_Set target CPU (aarch64,arm,avr,i386,i8086,jvm,m68k,mips,mipse'+ 'l,powerpc,powerpc64,sparc,x86_64)'#010+ '**1R_Assembler reading style:'#010+ '**2Rdefault_Use default assembler for target'#010+ - '3*2Ratt_Read AT&T style assembler'#010+ - '3*2R','intel_Read Intel style assembler'#010+ + '3*2Ra','tt_Read AT&T style assembler'#010+ + '3*2Rintel_Read Intel style assembler'#010+ '4*2Ratt_Read AT&T style assembler'#010+ '4*2Rintel_Read Intel style assembler'#010+ '8*2Ratt_Read AT&T style assembler'#010+ '8*2Rintel_Read Intel style assembler'#010+ - '6*2RMOT_Read Motorola style assembler'#010+ + '6*2RMOT_Read Motorola style asse','mbler'#010+ '**1S_Syntax options:'#010+ - '**2','S2_Same as -Mobjfpc'#010+ + '**2S2_Same as -Mobjfpc'#010+ '**2Sc_Support operators like C (*=,+=,/= and -=)'#010+ '**2Sa_Turn on assertions'#010+ '**2Sd_Same as -Mdelphi'#010+ '**2Se_Error options. is a combination of the following:'#010+ - '**3*_ : Compiler halts after the errors (default is 1',')'#010+ + '**3*_ : Compiler halts a','fter the errors (default is 1)'#010+ '**3*_w : Compiler also halts after warnings'#010+ '**3*_n : Compiler also halts after notes'#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+ + 'ir for po','ssible values)'#010+ + '**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)'#010+ '**2Sh_Use reference counted strings (ansistring by default) instead of'+ ' shortstrings'#010+ '**2Si_Turn on inlining of procedures/functions declared as "inline"'#010+ - '**2Sj_Allows typed constants to be writeable (d','efault in all modes)'#010+ + '**2Sj_Allows t','yped constants to be writeable (default in all modes)'#010+ '**2Sk_Load fpcylix unit'#010+ '**2SI_Set interface style to '#010+ '**3SIcom_COM compatible interface (default)'#010+ '**3SIcorba_CORBA compatible interface'#010+ - '**2sT_Generate script only to link on target'#010+ - '**2Sm_Support macros like C (glo','bal)'#010+ + '**2sT_Generate script only to link on target',#010+ + '**2Sm_Support macros like C (global)'#010+ '**2So_Same as -Mtp'#010+ '**2Sr_Transparent file names in ISO mode'#010+ '**2Ss_Constructor name must be init (destructor must be done)'#010+ '**2Sv_Support vector processing (use CPU vector extensions if availabl'+ 'e)'#010+ - '**2Sx_Enable exception keywords (default',' in Delphi/ObjFPC modes)'#010+ + '**2Sx_E','nable exception keywords (default in Delphi/ObjFPC modes)'#010+ '**2Sy_@ returns a typed pointer, same as $T+'#010+ '**1s_Do not call assembler and linker'#010+ '**2sh_Generate script to link on host'#010+ - '**2st_Generate script to assemble and link on target'#010+ - '**2sr_Skip register allocation p','hase (use with -alr)'#010+ + '**2st_Generate script to assemble and link on target',#010+ + '**2sr_Skip register allocation phase (use with -alr)'#010+ '**1T_Target operating system:'#010+ '3*2Tandroid_Android'#010+ '3*2Taros_AROS'#010+ @@ -1767,24 +1766,24 @@ const msgtxt : array[0..000362,1..240] of char=( '3*2Tdarwin_Darwin/Mac OS X'#010+ '3*2Tembedded_Embedded'#010+ '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+ - '3*2Tfreebsd_FreeBSD'#010+ - '3*2Tgo32v2_Version ','2 of DJ Delorie DOS extender'#010+ + '3*2Tfr','eebsd_FreeBSD'#010+ + '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+ '3*2Thaiku_Haiku'#010+ '3*2Tiphonesim_iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tdar'+ 'win)'#010+ '3*2Tlinux_Linux'#010+ '3*2Tnativent_Native NT API (experimental)'#010+ '3*2Tnetbsd_NetBSD'#010+ - '3*2Tnetware_Novell Netware Module (clib)'#010+ - '3*2','Tnetwlibc_Novell Netware Module (libc)'#010+ + '3*2Tnetware','_Novell Netware Module (clib)'#010+ + '3*2Tnetwlibc_Novell Netware Module (libc)'#010+ '3*2Topenbsd_OpenBSD'#010+ '3*2Tos2_OS/2 / eComStation'#010+ '3*2Tsymbian_Symbian OS'#010+ '3*2Tsolaris_Solaris'#010+ '3*2Twatcom_Watcom compatible DOS extender'#010+ '3*2Twdosx_WDOSX DOS extender'#010+ - '3*2Twin32_Windows 32 Bit'#010+ - '3*2Twince_Windo','ws CE'#010+ + '3*2Twin','32_Windows 32 Bit'#010+ + '3*2Twince_Windows CE'#010+ '4*2Tandroid_Android'#010+ '4*2Taros_AROS'#010+ '4*2Tdarwin_Darwin/Mac OS X'#010+ @@ -1794,9 +1793,9 @@ const msgtxt : array[0..000362,1..240] of char=( '4*2Thaiku_Haiku'#010+ '4*2Tiphonesim_iPhoneSimulator'#010+ '4*2Tlinux_Linux'#010+ - '4*2Tnetbsd_NetBSD'#010+ + '4*2Tnetb','sd_NetBSD'#010+ '4*2Topenbsd_OpenBSD'#010+ - '4*2','Tsolaris_Solaris'#010+ + '4*2Tsolaris_Solaris'#010+ '4*2Twin64_Win64 (64 bit Windows systems)'#010+ '6*2Tamiga_Commodore Amiga'#010+ '6*2Tatari_Atari ST/STe/TT'#010+ @@ -1804,8 +1803,8 @@ const msgtxt : array[0..000362,1..240] of char=( '6*2Tlinux_Linux'#010+ '6*2Tnetbsd_NetBSD'#010+ '6*2Tmacosclassic_Classic Mac OS'#010+ - '6*2Tpalmos_PalmOS'#010+ - '6*2Tsinclairql_Sinclair ','QL'#010+ + '6*2Tpalmo','s_PalmOS'#010+ + '6*2Tsinclairql_Sinclair QL'#010+ '8*2Tembedded_Embedded'#010+ '8*2Tmsdos_MS-DOS (and compatible)'#010+ '8*2Twin16_Windows 16 Bit'#010+ @@ -1815,9 +1814,9 @@ const msgtxt : array[0..000362,1..240] of char=( 'A*2Tfreertos_FreeRTOS'#010+ 'A*2Tgba_Game Boy Advance'#010+ 'A*2Tios_iOS'#010+ - 'A*2Tlinux_Linux'#010+ + 'A*2Tlinu','x_Linux'#010+ 'A*2Tnds_Nintendo DS'#010+ - 'A*2Tn','etbsd_NetBSD'#010+ + 'A*2Tnetbsd_NetBSD'#010+ 'A*2Tpalmos_PalmOS'#010+ 'A*2Tsymbian_Symbian'#010+ 'A*2Twince_Windows CE'#010+ @@ -1828,8 +1827,8 @@ const msgtxt : array[0..000362,1..240] of char=( 'a*2Twin64_Windows 64'#010+ 'J*2Tandroid_Android'#010+ 'J*2Tjava_Java'#010+ - 'm*2Tandroid_Android'#010+ - 'm*2Tembedded_Embed','ded'#010+ + 'm*2Ta','ndroid_Android'#010+ + 'm*2Tembedded_Embedded'#010+ 'm*2Tlinux_Linux'#010+ 'M*2Tembedded_Embedded'#010+ 'M*2Tlinux_Linux'#010+ @@ -1840,9 +1839,9 @@ const msgtxt : array[0..000362,1..240] of char=( 'P*2Tlinux_Linux'#010+ 'P*2Tmacosclassic_Classic Mac OS'#010+ 'P*2Tmorphos_MorphOS'#010+ - 'P*2Tnetbsd_NetBSD'#010+ + 'P*','2Tnetbsd_NetBSD'#010+ 'P*2Twii_Wii'#010+ - 'p*2Ta','ix_AIX'#010+ + 'p*2Taix_AIX'#010+ 'p*2Tdarwin_Darwin/Mac OS X'#010+ 'p*2Tembedded_Embedded'#010+ 'p*2Tlinux_Linux'#010+ @@ -1853,8 +1852,8 @@ const msgtxt : array[0..000362,1..240] of char=( 'S*2Tlinux_Linux'#010+ 'S*2Tsolaris_Solaris'#010+ 's*2Tlinux_Linux'#010+ - 'V*2Tembedded_Embedded'#010+ - 'x*2Tembedded_Embed','ded'#010+ + 'V*2Temb','edded_Embedded'#010+ + 'x*2Tembedded_Embedded'#010+ 'x*2Tfreertos_FreeRTOS'#010+ 'x*2Tlinux_Linux'#010+ 'Z*2Tembedded_Embedded'#010+ @@ -1862,157 +1861,156 @@ const msgtxt : array[0..000362,1..240] of char=( 'Z*2Tmsxdos_MSX-DOS'#010+ '**1u_Undefines the symbol '#010+ '**1U_Unit options:'#010+ - '**2Un_Do not check where the unit name matches the file name'#010+ - '**2Ur_Generate re','lease unit files (never automatically recompiled)'#010+ + '**2Un_Do not check where the unit name matche','s the file name'#010+ + '**2Ur_Generate release unit files (never automatically recompiled)'#010+ '**2Us_Compile a system unit'#010+ '**1v_Be verbose. is a combination of the following letters:'#010+ - '**2*_e : Show errors (default) 0 : Show nothing (except errors)'#010+ - '**2*_w : Show warnings ',' u : Show unit info'#010+ + '**2*_e : Show errors (default) 0 : Show nothing (except ','errors'+ + ')'#010+ + '**2*_w : Show warnings u : Show unit info'#010+ '**2*_n : Show notes t : Show tried/used files'#010+ '**2*_h : Show hints c : Show conditionals'#010+ - '**2*_i : Show general info d : Show debug info'#010+ - '**2*_l : Show linenumbers ',' r : Rhide/GCC compatibility mod'+ - 'e'#010+ + '**2*_i : Show general info d : Show debug in','fo'#010+ + '**2*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+ '**2*_s : Show time stamps q : Show message numbers'#010+ '**2*_a : Show everything x : Show info about invoked tools'+ #010+ - '**2*_b : Write file names messages p : Write tree.log with parse ','t'+ + '**2*_b : Write file names messages',' p : Write tree.log with parse t'+ 'ree'#010+ '**2*_ with full path v : Write fpcdebug.txt with'#010+ '**2*_z : Write output to stderr lots of debugging info'#010+ '**2*_m, : Do not show messages numbered and '#010+ - 'F*1V_Append '#039'-'#039' to the used compiler binar','y name (e.g.'+ - ' for version)'#010+ + 'F*1V_Append ',#039'-'#039' to the used compiler binary name (e.g. f'+ + 'or version)'#010+ '**1W_Target-specific options (targets)'#010+ '3*2WA_Specify native type application (Windows)'#010+ '4*2WA_Specify native type application (Windows)'#010+ - 'A*2WA_Specify native type application (Windows)'#010+ - '3*2Wb_Create a bundle instea','d of a library (Darwin)'#010+ + 'A*2WA_Specify native type application (Wind','ows)'#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+ 'a*2Wb_Create a bundle instead of a library (Darwin)'#010+ - 'A*2Wb_Create a bundle instead of a library (Darwin)'#010+ - '4*2Wb_Cr','eate a bundle instead of a library (Darwin)'#010+ + 'A*2Wb_Create a bundle inste','ad 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_Set image base to (Windows, Symbian)'#010+ '4*2WB_Create a relocatable image (Windows)'#010+ - '4*2WB_Set image base to (Windows)'#010+ - 'A*2WB_Crea','te a relocatable image (Windows, Symbian)'#010+ + '4*2WB_Set image',' base to (Windows)'#010+ + 'A*2WB_Create a relocatable image (Windows, Symbian)'#010+ 'A*2WB_Set image base to (Windows, Symbian)'#010+ 'Z*2WB_Set image base to (ZX Spectrum)'#010+ '3*2WC_Specify console type application (EMX, OS/2, Windows)'#010+ - '4*2WC_Specify console type application (Win','dows)'#010+ + '4*2WC_Spec','ify console type application (Windows)'#010+ 'A*2WC_Specify console type application (Windows)'#010+ 'P*2WC_Specify console type application (Classic Mac OS)'#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+ - 'A*2WD','_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+ + '4*2WD_Use DEFFILE to export functi','ons 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+ '4*2We_Use external resources (Darwin)'#010+ 'a*2We_Use external resources (Darwin)'#010+ - 'A*2We_Use external resources (Darwin)'#010+ - 'P*2We_Use external resources (D','arwin)'#010+ + 'A*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*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+ - '4*2WG_Specify graphic type application (Windows)'#010+ - 'A*2WG_Specify graphic type appl','ication (Windows)'#010+ + '4*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+ '3*2Wi_Use internal resources (Darwin)'#010+ '4*2Wi_Use internal resources (Darwin)'#010+ 'a*2Wi_Use internal resources (Darwin)'#010+ - 'A*2Wi_Use internal resources (Darwin)'#010+ - 'P*2Wi_Use inte','rnal resources (Darwin)'#010+ + 'A*2Wi_Use internal ','resources (Darwin)'#010+ + 'P*2Wi_Use internal resources (Darwin)'#010+ 'p*2Wi_Use internal resources (Darwin)'#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+ - 'A*2WI_Turn on/off the usage of import sections (Windows)'#010+ - '8*2Wh_U','se huge code for units (ignored for models with CODE in a uni'+ - 'que segment)'#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*2Wm_Set memory model'#010+ '8*3WmTiny_Tiny memory model'#010+ '8*3WmSmall_Small memory model (default)'#010+ '8*3WmMedium_Medium memory model'#010+ - '8*3WmCompact_Compact memory model'#010+ - '8*3WmL','arge_Large memory model'#010+ + '8*3WmCo','mpact_Compact memory model'#010+ + '8*3WmLarge_Large memory model'#010+ '8*3WmHuge_Huge memory model'#010+ '3*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ '4*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ - 'p*2WM_Minimum Mac OS X deployment versi','on: 10.4, 10.5.1, ... (Dar'+ + 'p*2WM_','Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Dar'+ 'win)'#010+ 'P*2WM_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+ 'n)'#010+ '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ - '4*2WN_Do not generate relocation code, needed for debugging (Windo','ws'+ + '4*2WN_Do not generate relocation ','code, needed for debugging (Windows'+ ')'#010+ 'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+ 'A*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ 'le values'#010+ - 'm*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ - 'le values'#010+ - 'R*2Wp<','x>_Specify the controller type; see fpc -i or fpc -iu for poss'+ + 'm*2Wp_Specify the controller type; see fpc -i or f','pc -iu for poss'+ 'ible values'#010+ + 'R*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ + 'le values'#010+ 'V*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ 'le values'#010+ - 'x*2Wp_Specify the controller type; see fpc -i or fpc -iu for possib'+ - 'le values'#010+ - '3*2WP<','x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'+ - #010+ + 'x*2Wp_Specify the controller type; see fpc -i or f','pc -iu for poss'+ + 'ible values'#010+ + '3*2WP_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+ '4*2WP_Minimum iOS deployment version: 8.0, 8.0.2, ... (iphonesim)'#010+ 'a*2WP_Minimum iOS deployment version: 7.0, 7.1.2, ... (Darwin)'#010+ - 'A*2WP_Minimum iOS deployment version: 3','.0, 5.0.1, ... (Darwin)'#010+ + 'A*2WP_','Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)'#010+ '3*2WR_Generate relocation code (Windows)'#010+ '4*2WR_Generate relocation code (Windows)'#010+ 'A*2WR_Generate relocation code (Windows)'#010+ '8*2Wt_Set the target executable format'#010+ - '8*3Wtexe_Create a DOS .EXE file (default)'#010+ - '8*3Wtcom_','Create a DOS .COM file (requires tiny memory model)'#010+ + '8*3Wtexe_Create a ','DOS .EXE file (default)'#010+ + '8*3Wtcom_Create a DOS .COM file (requires tiny memory model)'#010+ 'P*2WT_Specify MPW tool type application (Classic Mac OS)'#010+ '6*2WQ_Set executable metadata format (Sinclair QL)'#010+ - '6*3WQqhdr_Set metadata to QDOS File Header style (default)'#010+ - '6*3WQxtcc_Set meta','data to XTcc style'#010+ + '6*3WQqhdr_Set metadata to QDOS File Header s','tyle (default)'#010+ + '6*3WQxtcc_Set metadata to XTcc style'#010+ '**2WX_Enable executable stack (Linux)'#010+ '**1X_Executable options:'#010+ '**2X9_Generate linkerscript for GNU Binutils ld older than version 2.1'+ '9.1 (Linux)'#010+ - '**2Xa_Generate code which allows to use more than 2 GB static data on '+ - '64 Bit',' targets (Linux)'#010+ + '**2Xa_Generate code which allows to use mor','e than 2 GB static data o'+ + 'n 64 Bit targets (Linux)'#010+ '**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+ 'ux)'#010+ '**2Xd_Do not search default library path (sometimes required for cross'+ '-compiling when not using -XR)'#010+ - '**2Xe_Use external linker'#010+ - '**2Xf_Substitute pthre','ad library name for linking (BSD)'#010+ + '**2Xe_Use exter','nal linker'#010+ + '**2Xf_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+ - '**2Xi_Use internal linker'#010+ - 'L*2XlS_LLVM utilties suff','ix (e.g. -7 in case clang is called clan'+ - 'g-7)'#010+ + '**2Xi_Use internal li','nker'#010+ + 'L*2XlS_LLVM utilties suffix (e.g. -7 in case clang is called clang-'+ + '7)'#010+ '**2XLA_Define library substitutions for linking'#010+ '**2XLO_Define order of library linking'#010+ '**2XLD_Exclude default order of standard libraries'#010+ - '**2Xm_Generate link map'#010+ - '**2XM_Set the name of the '#039'mai','n'#039' program routine (default'+ - ' is '#039'main'#039')'#010+ + '**2Xm_Generate link map'#010, + '**2XM_Set the name of the '#039'main'#039' program routine (default i'+ + 's '#039'main'#039')'#010+ '**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)'+ #010+ 'F*2Xp_First search for the compiler binary in the directory '#010+ - '**2XP_Prepend the binutils names with the prefix '#010+ - '**2Xr_Set the linker'#039's rlink-path to (needed for cross co'+ - 'mpile, see the ld manual for more information) (BeOS, Linux)'#010+ + '**2XP_Prepend the binutils ','names with the prefix '#010+ + '**2Xr_Set the linker'#039's rlink-path to (needed for cross comp'+ + 'ile, see the ld manual for more information) (BeOS, Linux)'#010+ '**2XR_Prepend to all linker search paths (BeOS, Darwin, FreeBSD'+ - ', Linux, Mac OS, Solaris)'#010+ - '**2Xs_Strip all symbols fr','om executable'#010+ + ', Linux, Mac OS, So','laris)'#010+ + '**2Xs_Strip all symbols from executable'#010+ '**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)'#010+ '**2Xt_Link with static libraries (-static is passed to linker)'#010+ - '**2Xu_Generate executable in UF2 format (embedded targets only)'#010+ - '**2Xv_Generate table for Vir','tual Entry calls'#010+ + '**2Xu_Generate executable in UF2 format (embedded targets o','nly)'#010+ + '**2Xv_Generate table for Virtual Entry calls'#010+ '**2XV_Use VLink as external linker (default on Amiga, MorphOS)'#010+ '**2XX_Try to smartlink units (defines FPC_LINK_SMART)'#010+ '**1*_'#010+ '**1?_Show this help'#010+ - '**1h_Shows this help without waiting' + '**1h_Shows this help without ','waiting' ); diff --git a/compiler/rautils.pas b/compiler/rautils.pas index 05acec8a12..bbb9794bc3 100644 --- a/compiler/rautils.pas +++ b/compiler/rautils.pas @@ -1645,6 +1645,7 @@ Begin sym:=search_struct_member(tabstractrecorddef(st.defowner),base); if not assigned(sym) then begin + Message(asmr_e_unknown_field); GetRecordOffsetSize:=false; exit; end; From 7f1aac8bd71488208af65d46e2bd3783d8efe725 Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 11 Feb 2021 21:27:12 +0000 Subject: [PATCH 17/17] - armv5 never existed (without extension), removed git-svn-id: trunk@48652 - --- compiler/arm/aasmcpu.pas | 1 - compiler/arm/agarmgas.pas | 1 - compiler/arm/cpuinfo.pas | 28 +++++++++++++--------------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas index 8026fe4558..94caeb4744 100644 --- a/compiler/arm/aasmcpu.pas +++ b/compiler/arm/aasmcpu.pas @@ -2204,7 +2204,6 @@ implementation IF_ARMv4, IF_ARMv4, IF_ARMv4T or IF_ARMv4, - IF_ARMv4T or IF_ARMv4 or IF_ARMv5, IF_ARMv4T or IF_ARMv4 or IF_ARMv5 or IF_ARMv5T, IF_ARMv4T or IF_ARMv4 or IF_ARMv5 or IF_ARMv5T or IF_ARMv5TE, IF_ARMv4T or IF_ARMv4 or IF_ARMv5 or IF_ARMv5T or IF_ARMv5TE or IF_ARMv5TEJ, diff --git a/compiler/arm/agarmgas.pas b/compiler/arm/agarmgas.pas index c531f7a899..8f2f89cded 100644 --- a/compiler/arm/agarmgas.pas +++ b/compiler/arm/agarmgas.pas @@ -64,7 +64,6 @@ unit agarmgas; 'armv3', 'armv4', 'armv4t', - 'armv5', 'armv5t', 'armv5te', 'armv5tej', diff --git a/compiler/arm/cpuinfo.pas b/compiler/arm/cpuinfo.pas index 3dee47ea97..61e97db698 100644 --- a/compiler/arm/cpuinfo.pas +++ b/compiler/arm/cpuinfo.pas @@ -40,7 +40,6 @@ Type cpu_armv3, cpu_armv4, cpu_armv4t, - cpu_armv5, cpu_armv5t, cpu_armv5te, cpu_armv5tej, @@ -556,7 +555,6 @@ Const 'ARMV3', 'ARMV4', 'ARMV4T', - 'ARMV5', 'ARMV5T', 'ARMV5TE', 'ARMV5TEJ', @@ -1058,7 +1056,8 @@ Const type tcpuflags = - (CPUARM_HAS_ALL_MEM, { CPU supports LDRSB/LDRSH/LDRH/STRH instructions } + (CPUARM_HAS_THUMB, { CPU supports THUMB } + CPUARM_HAS_ALL_MEM, { CPU supports LDRSB/LDRSH/LDRH/STRH instructions } CPUARM_HAS_BX, { CPU supports the BX instruction } CPUARM_HAS_BLX, { CPU supports the BLX rX instruction } CPUARM_HAS_BLX_LABEL, { CPU supports the BLX