[fpc-devel] Typed addresses by default
Micha Nelissen
micha at neli.hopto.org
Tue Oct 3 00:09:31 CEST 2006
Hi,
Attached patch modifies compiler to enable typed addresses ({$T+}) for
fpc and objfpc modes by default. It fixes the rtl and compiler to
compile again. Most of these fixes are simple pointer to array vs.
pointer to element of array changes, but some reveal ugly code IMHO ;-).
Anyway, any opinions on whether it is useful to enforce typed addresses
by default ?
Micha
-------------- next part --------------
Index: rtl/unix/unix.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/unix/unix.pp (revision 4765)
+++ rtl/unix/unix.pp (working copy)
@@ -858,7 +858,7 @@
end;
textrec(f).bufptr:=3D op textrec(f).buffer;
{Save the process ID - needed when closing }
- pl:=3D@(textrec(f).userdata[2]);
+ pl:=3Dpcint(@(textrec(f).userdata[2]));
pl^:=3Dpid;
textrec(f).closefunc:=3D op PCloseText;
end;
@@ -971,7 +971,7 @@
f:=3Dpipi;
end;
{Save the process ID - needed when closing }
- pl:=3D@(filerec(f).userdata[2]);
+ pl:=3Dpcint(@(filerec(f).userdata[2]));
pl^:=3Dpid;
end;
POpen:=3D0;
@@ -1034,11 +1034,11 @@
close(pipo);
close(pipi);
{Save the process ID - needed when closing }
- pl:=3D@(textrec(StreamIn).userdata[2]);
+ pl:=3Dpcint(@(textrec(StreamIn).userdata[2]));
pl^:=3Dpid;
textrec(StreamIn).closefunc:=3D op PCloseText;
{Save the process ID - needed when closing }
- pl:=3D@(textrec(StreamOut).userdata[2]);
+ pl:=3Dpcint(@(textrec(StreamOut).userdata[2]));
pl^:=3Dpid;
textrec(StreamOut).closefunc:=3D op PCloseText;
AssignStream:=3DPid;
@@ -1124,15 +1124,15 @@
Close(PipeOut);
Close(PipeIn);
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamIn).userdata[2]);
+ pl :=3D pcint(@(TextRec(StreamIn).userdata[2]));
pl^ :=3D pid;
TextRec(StreamIn).closefunc :=3D @PCloseText;
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamOut).userdata[2]);
+ pl :=3D pcint(@(TextRec(StreamOut).userdata[2]));
pl^ :=3D pid;
TextRec(StreamOut).closefunc :=3D @PCloseText;
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamErr).userdata[2]);
+ pl :=3D pcint(@(TextRec(StreamErr).userdata[2]));
pl^ :=3D pid;
TextRec(StreamErr).closefunc :=3D @PCloseText;
AssignStream :=3D pid;
Index: rtl/unix/cthreads.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/unix/cthreads.pp (revision 4765)
+++ rtl/unix/cthreads.pp (working copy)
@@ -223,7 +223,7 @@
// don't create detached, we need to be able to join (waitfor) on
// the newly created thread!
//pthread_attr_setdetachstate(@thread_attr, PTHREAD_CREATE_DETACHED);
- if pthread_create(@threadid, @thread_attr, @ThreadMain,ti) <> 0 then=
begin
+ if pthread_create(ppthread_t(@threadid), @thread_attr, @ThreadMain,t=
i) <> 0 then begin
threadid :=3D TThreadID(0);
end;
CBeginThread:=3Dthreadid;
Index: rtl/unix/cwstring.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/unix/cwstring.pp (revision 4765)
+++ rtl/unix/cwstring.pp (working copy)
@@ -153,7 +153,7 @@
destpos:=3Dpchar(dest);
outleft:=3Doutlength;
lockiconv(lock_wide2ansi);
- while iconv(iconv_wide2ansi, op srcpos, op srclen, op destpos, op outleft)=3Dsize_=
t(-1) do
+ while iconv(iconv_wide2ansi,ppchar(@srcpos), op srclen, op destpos, op outleft)=
=3Dsize_t(-1) do
begin
case fpgetCerrno of
ESysEILSEQ:
@@ -210,7 +210,7 @@
destpos:=3Dpchar(dest);
outleft:=3Doutlength*2;
lockiconv(lock_ansi2wide);
- while iconv(iconv_ansi2wide, op srcpos, op len, op destpos, op outleft)=3Dsize_t(-=
1) do
+ while iconv(iconv_ansi2wide, op srcpos,psize(@len), op destpos, op outleft)=3Ds=
ize_t(-1) do
begin
case fpgetCerrno of
ESysEILSEQ:
@@ -286,7 +286,7 @@
destpos:=3Dpchar(dest);
outleft:=3Doutlength*4;
lockiconv(lock_ansi2ucs4);
- while iconv(iconv_ansi2ucs4, op srcpos, op len, op destpos, op outleft)=3Dsize_t(-=
1) do
+ while iconv(iconv_ansi2ucs4, op srcpos,psize(@len), op destpos, op outleft)=3Ds=
ize_t(-1) do
begin
case fpgetCerrno of
ESysE2BIG:
Index: rtl/unix/sysdir.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/unix/sysdir.inc (revision 4765)
+++ rtl/unix/sysdir.inc (working copy)
@@ -32,7 +32,7 @@
exit;
Move(s[1], Buffer, Length(s));
Buffer[Length(s)] :=3D #0;
- If Fpmkdir(@buffer, MODE_MKDIR)<0 Then
+ If Fpmkdir(@buffer[0], MODE_MKDIR)<0 Then
Errno2Inoutres
Else
InOutRes:=3D0;
@@ -49,7 +49,7 @@
exit;
Move(s[1], Buffer, Length(s));
Buffer[Length(s)] :=3D #0;
- If Fprmdir(@buffer)<0 Then
+ If Fprmdir(@buffer[0])<0 Then
Errno2Inoutres
Else
InOutRes:=3D0;
@@ -64,7 +64,7 @@
exit;
Move(s[1], Buffer, Length(s));
Buffer[Length(s)] :=3D #0;
- If Fpchdir(@buffer)<0 Then
+ If Fpchdir(@buffer[0])<0 Then
Errno2Inoutres
Else
InOutRes:=3D0;
@@ -93,7 +93,7 @@
begin
dir:=3D'';
{$ifdef usegetcwd}
- if Fpgetcwd(@buf,sizeof(buf))<>nil then
+ if Fpgetcwd(@buf[0],sizeof(buf))<>nil then
dir:=3Dstrpas(buf);
{$else}
thedir:=3D'';
Index: rtl/unix/dos.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/unix/dos.pp (revision 4765)
+++ rtl/unix/dos.pp (working copy)
@@ -648,7 +648,7 @@
Move(f.SearchSpec[1], DirName[0], f.NamePos);
DirName[f.NamePos] :=3D #0;
End;
- f.DirPtr :=3D fpopendir(@(DirName));
+ f.DirPtr :=3D fpopendir(@DirName[0]);
If f.DirPtr <> nil Then
begin
ArrayPos:=3DFindLastUsed;
@@ -673,7 +673,7 @@
if p=3Dnil then
FName:=3D''
else
- FName:=3DStrpas(@p^.d_name);
+ FName:=3DStrpas(@p^.d_name[0]);
If FName=3D'' Then
Finished:=3DTrue
Else
@@ -767,7 +767,7 @@
LinAttr : longint;
Begin
DosError:=3D0;
- if FPStat(@textrec(f).name,info)<0 then
+ if FPStat(@textrec(f).name[0],info)<0 then
begin
Attr:=3D0;
DosError:=3D3;
@@ -779,7 +779,7 @@
Attr:=3D$10
else
Attr:=3D$0;
- if fpAccess(@textrec(f).name,W_OK)<0 then
+ if fpAccess(@textrec(f).name[0],W_OK)<0 then
Attr:=3DAttr or $1;
if filerec(f).name[0]=3D'.' then
Attr:=3DAttr or $2;
@@ -816,7 +816,7 @@
UnPackTime(Time,DT);
modtime:=3DDTToUnixDate(DT);
end;
- if fputime(@filerec(f).name, op utim)<0 then
+ if fputime(@filerec(f).name[0], op utim)<0 then
begin
Time:=3D0;
doserror:=3D3;
Index: rtl/linux/gpm.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/linux/gpm.pp (revision 4765)
+++ rtl/linux/gpm.pp (working copy)
@@ -534,7 +534,7 @@
strcopy(addr.path, GPM_NODE_CTL);
i:=3Dsizeof(addr.family)+length(GPM_NODE_CTL);
=
- if fpconnect(gpm_fd, op addr,i)<0 then
+ if fpconnect(gpm_fd,psockaddr(@addr),i)<0 then
begin
{ gpm_report(GPM_PR_INFO,GPM_MESS_DOUBLE_S,GPM_NODE_CTL,strerror(e=
rrno));}
{Well, try to open a chr device called /dev/gpmctl. This should
Index: rtl/linux/unxfunc.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/linux/unxfunc.inc (revision 4765)
+++ rtl/linux/unxfunc.inc (working copy)
@@ -33,13 +33,13 @@
=
Function PClose(Var F:text) :cint;
var
- pl : ^cint;
+ pl : pcint;
res : cint;
pid : cint;
begin
fpclose(Textrec(F).Handle);
{ closed our side, Now wait for the other - this appears to be needed ?? }
- pl:=3D@(textrec(f).userdata[2]);
+ pl:=3Dpcint(@(textrec(f).userdata[2]));
{ avoid alignment error on sparc }
move(pl^,pid,sizeof(pid));
fpwaitpid(pid, op res,0);
@@ -54,7 +54,7 @@
begin
fpclose(filerec(F).Handle);
{ closed our side, Now wait for the other - this appears to be needed ?? }
- pl:=3D@(filerec(f).userdata[2]);
+ pl:=3Dpcint(@(filerec(f).userdata[2]));
{ avoid alignment error on sparc }
move(pl^,pid,sizeof(pid));
fpwaitpid(pid, op res,0);
Index: rtl/linux/oldlinux.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/linux/oldlinux.pp (revision 4765)
+++ rtl/linux/oldlinux.pp (working copy)
@@ -2792,7 +2792,7 @@
sr.reg2:=3DTextrec(F).Handle;
SysCall (syscall_nr_close,sr);
{ closed our side, Now wait for the other - this appears to be needed ?? }
- pl:=3D@(textrec(f).userdata[2]);
+ pl:=3Dplongint(@(textrec(f).userdata[2]));
waitpid(pl^, op res,0);
pclose:=3Dres shr 8;
end;
@@ -2807,7 +2807,7 @@
sr.reg2:=3DFileRec(F).Handle;
SysCall (Syscall_nr_close,sr);
{ closed our side, Now wait for the other - this appears to be needed ?? }
- pl:=3D@(filerec(f).userdata[2]);
+ pl:=3Dplongint(@(filerec(f).userdata[2]));
waitpid(pl^, op res,0);
pclose:=3Dres shr 8;
end;
@@ -4516,7 +4516,7 @@
textrec(f).bufptr:=3D op textrec(f).buffer;
end;
{Save the process ID - needed when closing }
- pl:=3D@(textrec(f).userdata[2]);
+ pl:=3Dplongint(@(textrec(f).userdata[2]));
pl^:=3Dpid;
textrec(f).closefunc:=3D op PCloseText;
end;
@@ -4602,7 +4602,7 @@
f:=3Dpipi;
end;
{Save the process ID - needed when closing }
- pl:=3D@(filerec(f).userdata[2]);
+ pl:=3Dplongint(@(filerec(f).userdata[2]));
pl^:=3Dpid;
end;
end;
@@ -4666,11 +4666,11 @@
close(pipo);
close(pipi);
{Save the process ID - needed when closing }
- pl:=3D@(textrec(StreamIn).userdata[2]);
+ pl:=3Dplongint(@(textrec(StreamIn).userdata[2]));
pl^:=3Dpid;
textrec(StreamIn).closefunc:=3D op PCloseText;
{Save the process ID - needed when closing }
- pl:=3D@(textrec(StreamOut).userdata[2]);
+ pl:=3Dplongint(@(textrec(StreamOut).userdata[2]));
pl^:=3Dpid;
textrec(StreamOut).closefunc:=3D op PCloseText;
AssignStream:=3DPid;
@@ -4757,15 +4757,15 @@
Close(PipeOut);
Close(PipeIn);
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamIn).userdata[2]);
+ pl :=3D plongint(@(TextRec(StreamIn).userdata[2]));
pl^ :=3D pid;
TextRec(StreamIn).closefunc :=3D @PCloseText;
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamOut).userdata[2]);
+ pl :=3D plongint(@(TextRec(StreamOut).userdata[2]));
pl^ :=3D pid;
TextRec(StreamOut).closefunc :=3D @PCloseText;
// Save the process ID - needed when closing
- pl :=3D @(TextRec(StreamErr).userdata[2]);
+ pl :=3D plongint(@(TextRec(StreamErr).userdata[2]));
pl^ :=3D pid;
TextRec(StreamErr).closefunc :=3D @PCloseText;
AssignStream :=3D pid;
@@ -5059,15 +5059,15 @@
d:=3DReaddir(dirstream);
while (d<>nil) do
begin
- name:=3Dn+'/'+strpas(@(d^.name));
+ name:=3Dn+'/'+strpas(@(d^.name[0]));
fstat(name,st);
if linuxerror=3D0 then
begin
if ((st.mode and $E000)=3D$4000) and { if it is a directory }
- (strpas(@(d^.name))<>'.') and { but not ., .. and fd subdi=
rs }
- (strpas(@(d^.name))<>'..') and
- (strpas(@(d^.name))<>'') and
- (strpas(@(d^.name))<>'fd') then
+ (strpas(@(d^.name[0]))<>'.') and { but not ., .. and fd su=
bdirs }
+ (strpas(@(d^.name[0]))<>'..') and
+ (strpas(@(d^.name[0]))<>'') and
+ (strpas(@(d^.name[0]))<>'fd') then
begin {we found a directory, search inside=
it}
if mysearch(name) then
begin {the device is here}
Index: rtl/inc/mouse.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/mouse.inc (revision 4765)
+++ rtl/inc/mouse.inc (working copy)
@@ -25,8 +25,8 @@
Procedure ClearMouseEventQueue;
=
begin
- PendingMouseHead:=3D op PendingMouseEvent;
- PendingMouseTail:=3D op PendingMouseEvent;
+ PendingMouseHead:=3D op PendingMouseEvent[0];
+ PendingMouseTail:=3D op PendingMouseEvent[0];
PendingMouseEvents:=3D0;
FillChar(LastMouseEvent,sizeof(TMouseEvent),0);
end;
@@ -119,7 +119,7 @@
MouseEvent:=3DPendingMouseHead^;
inc(PendingMouseHead);
if PtrInt(PendingMouseHead)=3DPtrint(@PendingMouseEvent)+sizeof(PendingM=
ouseEvent) then
- PendingMouseHead:=3D op PendingMouseEvent;
+ PendingMouseHead:=3D op PendingMouseEvent[0];
dec(PendingMouseEvents);
if (LastMouseEvent.x<>MouseEvent.x) or
(LastMouseEvent.y<>MouseEvent.y) then
@@ -162,7 +162,7 @@
PendingMouseTail^:=3DMouseEvent;
inc(PendingMouseTail);
if PtrInt(PendingMouseTail)=3DPtrint(@PendingMouseEvent)+sizeof(Pendin=
gMouseEvent) then
- PendingMouseTail:=3D op PendingMouseEvent;
+ PendingMouseTail:=3D op PendingMouseEvent[0];
inc(PendingMouseEvents);
end
else
Index: rtl/inc/variants.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/variants.pp (revision 4765)
+++ rtl/inc/variants.pp (working copy)
@@ -3481,7 +3481,7 @@
=
function FindVarData(const V: Variant): PVarData;
begin
- result:=3D op V;
+ result:=3Dpvardata(@V);
while result^.vtype=3DvarVariant or VarByRef do
result:=3DPVarData(result^.VPointer);
end;
Index: rtl/inc/text.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/text.inc (revision 4765)
+++ rtl/inc/text.inc (working copy)
@@ -939,7 +939,7 @@
inc(p);}
while p<maxp do
begin
- q:=3D op stop_chars;
+ q:=3D op stop_chars[0];
while (q^<>#0) and (p^<>q^) do
inc(q);
if p^=3Dq^ then =
Index: rtl/inc/objects.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/objects.pp (revision 4765)
+++ rtl/inc/objects.pp (working copy)
@@ -981,13 +981,14 @@
FUNCTION TObject.Is_Object(P:Pointer):Boolean;
TYPE
PVMT=3D^VMT;
+ PPVMT=3D^PVMT;
VMT=3DRECORD
Size,NegSize:Longint;
ParentLink:PVMT;
END;
-VAR SP:^PVMT; Q:PVMT;
+VAR SP:PPVMT; Q:PVMT;
BEGIN
- SP:=3D op SELF;
+ SP:=3DPPVMT(@SELF);
Q:=3DSP^;
Is_Object:=3DFalse;
While Q<>Nil Do Begin
Index: rtl/inc/objpas.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/objpas.inc (revision 4765)
+++ rtl/inc/objpas.inc (working copy)
@@ -303,7 +303,7 @@
FieldTable :=3D PFieldTable((Pointer(CurClassType) + vmtFie=
ldTable)^);
if FieldTable <> nil then
begin
- FieldInfo :=3D @FieldTable^.Fields;
+ FieldInfo :=3D @FieldTable^.Fields[0];
for i :=3D 0 to FieldTable^.FieldCount - 1 do
begin
if UpCase(FieldInfo^.Name) =3D UName then
@@ -311,7 +311,7 @@
fieldaddress :=3D Pointer(Self) + FieldInfo^.FieldOff=
set;
exit;
end;
- FieldInfo :=3D @FieldInfo^.Name + 1 + Length(FieldInfo^=
.Name);
+ FieldInfo :=3D PFieldInfo(PByte(@FieldInfo^.Name) + 1 +=
Length(FieldInfo^.Name));
{$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
{ align to largest field of TFieldInfo }
FieldInfo :=3D Align(FieldInfo, SizeOf(PtrUInt));
Index: rtl/inc/sockovl.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/sockovl.inc (revision 4765)
+++ rtl/inc/sockovl.inc (working copy)
@@ -42,7 +42,7 @@
Function RecvFrom(Sock : Longint; Var Buf; Buflen,Flags : Longint; Var Add=
r ; var AddrLen :longint) : longint;
=
begin
- RecvFrom:=3Dfprecvfrom(Sock, op buf,buflen,flags, op Addr, op AddrLen);
+ RecvFrom:=3Dfprecvfrom(Sock, op buf,buflen,flags, op Addr,psocklen(@AddrLen));
end;
=
Function Bind(Sock:Longint;Const Addr;AddrLen:Longint):Boolean;
@@ -57,7 +57,7 @@
=
Function Accept(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
begin
- Accept:=3Dfpaccept(sock, op addr, op addrlen);
+ Accept:=3Dfpaccept(sock, op addr,psocklen(@addrlen));
end;
=
Function Connect(Sock:Longint;Const Addr;Addrlen:Longint): boolean;
@@ -73,12 +73,12 @@
=
Function GetSocketName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
begin
- GetSocketName:=3Dfpgetsockname(sock, op addr, op addrlen);
+ GetSocketName:=3Dfpgetsockname(sock, op addr,psocklen(@addrlen));
end;
=
Function GetPeerName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
begin
- GetPeerName:=3DfpgetPeerName(sock, op addr, op addrlen);
+ GetPeerName:=3DfpgetPeerName(sock, op addr,psocklen(@addrlen));
end;
=
Function SetSocketOptions(Sock,Level,OptName:Longint;const OptVal;optlen:l=
ongint):Longint;
@@ -88,12 +88,12 @@
=
Function GetSocketOptions(Sock,Level,OptName:Longint;Var OptVal;Var optlen=
:longint):Longint;
begin
- GetSocketOptions:=3Dfpgetsockopt(Sock,Level,OptName, op OptVal, op OptLen);
+ GetSocketOptions:=3Dfpgetsockopt(Sock,Level,OptName, op OptVal,psocklen(@Op=
tLen));
end;
=
Function SocketPair(Domain,SocketType,Protocol:Longint;var Pair:TSockArray=
):Longint;
begin
- SocketPair:=3Dfpsocketpair(domain,sockettype,protocol, op pair);
+ SocketPair:=3Dfpsocketpair(domain,sockettype,protocol, op pair[1]);
end;
=
{*************************************************************************=
*****
Index: rtl/inc/dynarr.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/inc/dynarr.inc (revision 4765)
+++ rtl/inc/dynarr.inc (working copy)
@@ -340,18 +340,18 @@
=
procedure DynArraySetLength(var a: Pointer; typeInfo: Pointer; dimCnt: Siz=
eInt; lengthVec: PSizeInt);
var
- preallocated : array[0..10] of PSizeInt;
+ preallocated : array[0..10] of SizeInt;
i : SizeInt;
p : PSizeInt;
begin
if dimCnt<=3Dlength(preallocated) then
- p:=3D op preallocated
+ p:=3D op preallocated[0]
else
getmem(p,sizeof(SizeInt)*dimCnt);
for i:=3D0 to dimCnt-1 do
p[i]:=3DlengthVec[dimCnt-1-i];
int_dynarray_setlength(a,typeInfo,dimCnt,p);
- if p<>@preallocated then
+ if p<>@preallocated[0] then
freemem(p);
end;
=
Index: rtl/objpas/sysutils/sysstr.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/objpas/sysutils/sysstr.inc (revision 4765)
+++ rtl/objpas/sysutils/sysstr.inc (working copy)
@@ -1921,7 +1921,7 @@
=
Begin
Buf[FloatToTextFmt(@Buf[0],Value,Pchar(Format))]:=3D#0;
- Result:=3DStrPas(@Buf);
+ Result:=3DStrPas(@Buf[0]);
End;
=
function FormatCurr(const Format: string; Value: Currency): string;
Index: rtl/objpas/sysutils/dati.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/objpas/sysutils/dati.inc (revision 4765)
+++ rtl/objpas/sysutils/dati.inc (working copy)
@@ -708,10 +708,10 @@
DecodeDateFully(DateTime, Year, Month, Day, DayOfWeek);
DecodeTime(DateTime, Hour, Minute, Second, MilliSecond);
ResultLen :=3D 0;
- ResultCurrent :=3D @ResultBuffer;
+ ResultCurrent :=3D @ResultBuffer[0];
StoreFormat(FormatStr);
ResultBuffer[ResultLen] :=3D #0;
- result :=3D StrPas(@ResultBuffer);
+ result :=3D StrPas(@ResultBuffer[0]);
end ;
=
{ DateTimeToString formats DateTime to the given format in FormatStr }
Index: rtl/objpas/sysutils/sysuintf.inc
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/objpas/sysutils/sysuintf.inc (revision 4765)
+++ rtl/objpas/sysutils/sysuintf.inc (working copy)
@@ -73,19 +73,20 @@
end;
end;
=
- function HexByte(p: PChar): Char;
+ function HexByte(p: PChar): Byte;
begin
- Result:=3DChar((HexChar(p[0]) shl 4) + HexChar(p[1]));
+ Result:=3D(HexChar(p[0]) shl 4) + HexChar(p[1]);
end;
=
var
i: integer;
- src, dest: PChar;
+ src: PChar;
+ dest: PByte;
begin
if ((Length(S)<>38) or
(s[1]<>'{')) then
raise EConvertError.CreateFmt(SInvalidGUID, [s]);
- dest:=3D op Result;
+ dest:=3D op Result.D4[0];
src:=3DPChar(s);
inc(src);
for i:=3D0 to 3 do
Index: rtl/objpas/typinfo.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- rtl/objpas/typinfo.pp (revision 4765)
+++ rtl/objpas/typinfo.pp (working copy)
@@ -500,7 +500,7 @@
hp:=3DGetTypeData(Typeinfo);
// the class info rtti the property rtti follows immediatly
pd:=3Daligntoptr(pointer(pointer(@hp^.UnitName)+Length(hp^.UnitName)=
+1));
- Result:=3D op pd^.PropList;
+ Result:=3DPPropInfo(@pd^.PropList);
for i:=3D1 to pd^.PropCount do
begin
// found a property of that name ?
Index: compiler/cutils.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/cutils.pas (revision 4765)
+++ compiler/cutils.pas (working copy)
@@ -842,7 +842,7 @@
i:=3D1;
len:=3D0;
varcounter:=3D0;
- varptr:=3D op varvaluedata;
+ varptr:=3D op varvaluedata[0];
while i<=3Dlength(s) do
begin
if (s[i]=3D'$') and (i<length(s)) then
@@ -863,7 +863,7 @@
inc(i);
until s[i]=3D'}';
varvalues[varcounter]:=3DPstring(varptr);
- if varptr>@varvaluedata+maxdata then
+ if varptr>@varvaluedata[0]+maxdata then
internalerrorproc(200411152);
Pstring(varptr)^:=3Dget_var_value(varname);
inc(len,length(Pstring(varptr)^));
Index: compiler/cp8859_1.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/cp8859_1.pas (revision 4765)
+++ compiler/cp8859_1.pas (working copy)
@@ -270,7 +270,7 @@
=
unicodemap : tunicodemap =3D (
cpname : '8859-1';
- map : @map;
+ map : @map[0];
lastchar : 255;
next : nil;
internalmap : true
Index: compiler/cp850.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/cp850.pas (revision 4765)
+++ compiler/cp850.pas (working copy)
@@ -270,7 +270,7 @@
=
unicodemap : tunicodemap =3D (
cpname : 'cp850';
- map : @map;
+ map : @map[0];
lastchar : 255;
next : nil;
internalmap : true
Index: compiler/globals.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/globals.pas (revision 4765)
+++ compiler/globals.pas (working copy)
@@ -1816,7 +1816,7 @@
var
p: pbyte;
begin
- p :=3D @r;
+ p :=3D pbyte(@r);
{$ifdef CPU_ARM}
inc(p,4);
{$else} =
Index: compiler/ncal.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/ncal.pas (revision 4765)
+++ compiler/ncal.pas (working copy)
@@ -1411,12 +1411,14 @@
result:=3Dvmttree;
end;
=
+ type
+ pcallparanode =3D ^tcallparanode;
=
procedure tcallnode.bind_parasym;
var
i : integer;
pt : tcallparanode;
- oldppt : ^tcallparanode;
+ oldppt : pcallparanode;
varargspara,
currpara : tparavarsym;
used_by_callnode : boolean;
@@ -1425,14 +1427,14 @@
temp : ttempcreatenode;
begin
pt:=3Dtcallparanode(left);
- oldppt:=3D op left;
+ oldppt:=3Dpcallparanode(@left);
=
{ flag all callparanodes that belong to the varargs }
i:=3Dparalength;
while (i>procdefinition.maxparacount) do
begin
include(pt.callparaflags,cpf_varargs_para);
- oldppt:=3D op pt.right;
+ oldppt:=3Dpcallparanode(@pt.right);
pt:=3Dtcallparanode(pt.right);
dec(i);
end;
@@ -1518,7 +1520,7 @@
if not assigned(pt) then
internalerror(200310052);
pt.parasym:=3Dcurrpara;
- oldppt:=3D op pt.right;
+ oldppt:=3Dpcallparanode(@pt.right);
pt:=3Dtcallparanode(pt.right);
end;
=
Index: compiler/cp437.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/cp437.pas (revision 4765)
+++ compiler/cp437.pas (working copy)
@@ -270,7 +270,7 @@
=
unicodemap : tunicodemap =3D (
cpname : 'cp437';
- map : @map;
+ map : @map[0];
lastchar : 255;
next : nil;
internalmap : true
Index: compiler/scanner.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/scanner.pas (revision 4765)
+++ compiler/scanner.pas (working copy)
@@ -269,12 +269,14 @@
if s=3D'TP' then
aktmodeswitches:=3Dtpmodeswitches
else
- if s=3D'FPC' then
- aktmodeswitches:=3Dfpcmodeswitches
- else
- if s=3D'OBJFPC' then
- aktmodeswitches:=3Dobjfpcmodeswitches
- else
+ if s=3D'FPC' then begin
+ aktmodeswitches:=3Dfpcmodeswitches;
+ include(aktlocalswitches, cs_typed_addresses);
+ end else
+ if s=3D'OBJFPC' then begin
+ aktmodeswitches:=3Dobjfpcmodeswitches;
+ include(aktlocalswitches, cs_typed_addresses);
+ end else
if s=3D'GPC' then
aktmodeswitches:=3Dgpcmodeswitches
else
Index: compiler/systems/t_emx.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/systems/t_emx.pas (revision 4765)
+++ compiler/systems/t_emx.pas (working copy)
@@ -115,7 +115,7 @@
end;
=
var aout_str_size:longint;
- aout_str_tab:array[0..2047] of byte;
+ aout_str_tab:array[0..2047] of char;
aout_sym_count:longint;
aout_sym_tab:array[0..5] of nlist;
=
@@ -258,7 +258,7 @@
blockwrite(out_file,aout_text,aout_text_size);
blockwrite(out_file,aout_treloc_tab,sizeof(reloc)*aout_treloc_count);
blockwrite(out_file,aout_sym_tab,sizeof(aout_sym_tab[0])*aout_sym_coun=
t);
- longint((@aout_str_tab)^):=3Daout_str_size;
+ plongint(@aout_str_tab)^:=3Daout_str_size;
blockwrite(out_file,aout_str_tab,aout_str_size);
end;
=
Index: compiler/systems/t_os2.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/systems/t_os2.pas (revision 4765)
+++ compiler/systems/t_os2.pas (working copy)
@@ -115,7 +115,7 @@
end;
=
var aout_str_size:longint;
- aout_str_tab:array[0..2047] of byte;
+ aout_str_tab:array[0..2047] of char;
aout_sym_count:longint;
aout_sym_tab:array[0..5] of nlist;
=
@@ -258,7 +258,7 @@
blockwrite(out_file,aout_text,aout_text_size);
blockwrite(out_file,aout_treloc_tab,sizeof(reloc)*aout_treloc_count);
blockwrite(out_file,aout_sym_tab,sizeof(aout_sym_tab[0])*aout_sym_coun=
t);
- longint((@aout_str_tab)^):=3Daout_str_size;
+ plongint(@aout_str_tab)^:=3Daout_str_size;
blockwrite(out_file,aout_str_tab,aout_str_size);
end;
=
Index: compiler/x86/aasmcpu.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/x86/aasmcpu.pas (revision 4765)
+++ compiler/x86/aasmcpu.pas (working copy)
@@ -1550,7 +1550,7 @@
ea_data : ea;
begin
len:=3D0;
- codes:=3D op p^.code;
+ codes:=3D op p^.code[0];
repeat
c:=3Dord(codes^);
inc(codes);
@@ -1707,7 +1707,7 @@
$0, $A, $A, $B, $8, $4);
var
c : byte;
- pb,
+ pb : pbyte;
codes : pchar;
bytes : array[0..3] of byte;
rfield,
@@ -1936,16 +1936,16 @@
if not process_ea(oper[opidx]^,ea_data,rfield) then
Message(asmw_e_invalid_effective_address);
=
- pb:=3D op bytes;
- pb^:=3Dchr(ea_data.modrm);
+ pb:=3D op bytes[0];
+ pb^:=3Dea_data.modrm;
inc(pb);
if ea_data.sib_present then
begin
- pb^:=3Dchr(ea_data.sib);
+ pb^:=3Dea_data.sib;
inc(pb);
end;
=
- s:=3Dpb-pchar(@bytes);
+ s:=3Dpb- op bytes[0];
objdata.writebytes(bytes,s);
=
case ea_data.bytes of
Index: compiler/nadd.pas
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/nadd.pas (revision 4765)
+++ compiler/nadd.pas (working copy)
@@ -606,8 +606,8 @@
c2[0]:=3Dchar(byte(tordconstnode(right).value));
c2[1]:=3D#0;
l2:=3D1;
- s1:=3D op c1;
- s2:=3D op c2;
+ s1:=3D op c1[0];
+ s2:=3D op c2[0];
concatstrings:=3Dtrue;
end
else if (lt=3Dstringconstn) and (rt=3Dordconstn) and is_char(rd) =
then
@@ -616,7 +616,7 @@
l1:=3Dtstringconstnode(left).len;
c2[0]:=3Dchar(byte(tordconstnode(right).value));
c2[1]:=3D#0;
- s2:=3D op c2;
+ s2:=3D op c2[0];
l2:=3D1;
concatstrings:=3Dtrue;
end
@@ -625,7 +625,7 @@
c1[0]:=3Dchar(byte(tordconstnode(left).value));
c1[1]:=3D#0;
l1:=3D1;
- s1:=3D op c1;
+ s1:=3D op c1[0];
s2:=3Dtstringconstnode(right).value_str;
l2:=3Dtstringconstnode(right).len;
concatstrings:=3Dtrue;
Index: compiler/utils/fpcmkcfg.pp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- compiler/utils/fpcmkcfg.pp (revision 4765)
+++ compiler/utils/fpcmkcfg.pp (working copy)
@@ -82,7 +82,7 @@
AddToList(List,'BUILDDATE',DateToStr(Date));
AddToList(List,'BUILDTIME',TimeToStr(Time));
Cfg:=3DTStringList.Create;
- Cfg.Text:=3DStrPas(Addr(DefaultConfig));
+ Cfg.Text:=3DStrPas(Addr(DefaultConfig[0][1]));
end;
=
Procedure Done;
@@ -190,9 +190,9 @@
begin
case IDEBuildin of
1:
- Cfg.Text:=3DStrPas(Addr(fpcfg));
+ Cfg.Text:=3DStrPas(Addr(fpcfg[0][1]));
2:
- Cfg.Text:=3DStrPas(Addr(fpini));
+ Cfg.Text:=3DStrPas(Addr(fpini[0][1]));
end;
=
AddToList(List,'TEMPLATEFILE','builtin');
More information about the fpc-devel
mailing list