diff --git a/rtl/i386/i386.inc b/rtl/i386/i386.inc index 7798a972ee..8acaad74ac 100644 --- a/rtl/i386/i386.inc +++ b/rtl/i386/i386.inc @@ -942,14 +942,14 @@ function fpc_pchar_length(p:pchar):longint;assembler;[public,alias:'FPC_PCHAR_LE {$define FPC_SYSTEM_HAS_GET_FRAME} -function get_frame:longint;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_frame:pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} asm movl %ebp,%eax end ['EAX']; {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR} -function get_caller_addr(framebp:longint):longint;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_caller_addr(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} asm movl framebp,%eax orl %eax,%eax @@ -960,7 +960,7 @@ end ['EAX']; {$define FPC_SYSTEM_HAS_GET_CALLER_FRAME} -function get_caller_frame(framebp:longint):longint;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_caller_frame(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif} asm movl framebp,%eax orl %eax,%eax @@ -1174,7 +1174,11 @@ end; { $Log$ - Revision 1.39 2003-02-18 17:56:06 jonas + Revision 1.40 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.39 2003/02/18 17:56:06 jonas - removed buggy i386-specific FPC_CHARARRAY_TO_SHORTSTR * fixed generic FPC_CHARARRAY_TO_SHORTSTR (web bug 2382) * fixed some potential range errors in indexchar/word/dword diff --git a/rtl/inc/compproc.inc b/rtl/inc/compproc.inc index ee07aa4495..a73d2d6d0e 100644 --- a/rtl/inc/compproc.inc +++ b/rtl/inc/compproc.inc @@ -265,12 +265,12 @@ procedure fpc_InitializeUnits; compilerproc; { Procedure fpc_do_exit; compilerproc; Procedure fpc_lib_exit; compilerproc; -Procedure fpc_HandleErrorAddrFrame (Errno : longint;addr,frame : longint); compilerproc; +Procedure fpc_HandleErrorAddrFrame (Errno : longint;addr,frame : pointer); compilerproc; Procedure fpc_HandleError (Errno : longint); compilerproc; } procedure fpc_AbstractErrorIntern;compilerproc; -procedure fpc_assert(Const Msg,FName:Shortstring;LineNo,ErrorAddr:Longint); compilerproc; +procedure fpc_assert(Const Msg,FName:Shortstring;LineNo:Longint;ErrorAddr:Pointer); compilerproc; Procedure fpc_reset_typed(var f : TypedFile;Size : Longint); compilerproc; Procedure fpc_rewrite_typed(var f : TypedFile;Size : Longint); compilerproc; @@ -286,7 +286,11 @@ function fpc_qword_to_double(q: qword): double; compilerproc; { $Log$ - Revision 1.35 2003-01-11 00:17:29 florian + Revision 1.36 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.35 2003/01/11 00:17:29 florian * uncommented the variant<->dyn. array stuff Revision 1.34 2003/01/09 20:14:20 florian diff --git a/rtl/inc/heaptrc.pp b/rtl/inc/heaptrc.pp index 696b9ab40a..7c42de916b 100644 --- a/rtl/inc/heaptrc.pp +++ b/rtl/inc/heaptrc.pp @@ -118,7 +118,7 @@ type release_sig : longword; prev_valid : pheap_mem_info; {$endif EXTRA} - calls : array [1..tracesize] of longint; + calls : array [1..tracesize] of pointer; exact_info_size : word; extra_info_size : word; extra_info : pheap_extra_info; @@ -235,7 +235,7 @@ var begin writeln(ptext,'Call trace for block 0x',hexstr(longint(pointer(pp)+sizeof(theap_mem_info)),8),' size ',pp^.size); for i:=1 to tracesize do - if pp^.calls[i]<>0 then + if pp^.calls[i]<>nil then writeln(ptext,BackTraceStrFunc(pp^.calls[i])); { the check is done to be sure that the procvar is not overwritten } if assigned(pp^.extra_info) and @@ -251,11 +251,11 @@ var begin writeln(ptext,'Call trace for block at 0x',hexstr(longint(pointer(pp)+sizeof(theap_mem_info)),8),' size ',pp^.size); for i:=1 to tracesize div 2 do - if pp^.calls[i]<>0 then + if pp^.calls[i]<>nil then writeln(ptext,BackTraceStrFunc(pp^.calls[i])); writeln(ptext,' was released at '); for i:=(tracesize div 2)+1 to tracesize do - if pp^.calls[i]<>0 then + if pp^.calls[i]<>nil then writeln(ptext,BackTraceStrFunc(pp^.calls[i])); { the check is done to be sure that the procvar is not overwritten } if assigned(pp^.extra_info) and @@ -343,9 +343,10 @@ end; Function TraceGetMem(size:longint):pointer; var - allocsize,i,bp : longint; + allocsize,i : longint; + bp : pointer; pl : pdword; - p : pointer; + p : pointer; pp : pheap_mem_info; begin inc(getmem_size,size); @@ -426,7 +427,8 @@ end; function TraceFreeMemSize(p:pointer;size:longint):longint; var - i,bp, ppsize : longint; + i,ppsize : longint; + bp : pointer; pp : pheap_mem_info; {$ifdef EXTRA} pp2 : pheap_mem_info; @@ -582,7 +584,8 @@ var newP: pointer; oldsize, allocsize, - i,bp : longint; + i : longint; + bp : pointer; pl : pdword; pp : pheap_mem_info; oldextrasize, @@ -1149,7 +1152,11 @@ finalization end. { $Log$ - Revision 1.22 2002-12-26 10:46:54 peter + Revision 1.23 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.22 2002/12/26 10:46:54 peter * set p to nil when 0 is passed to reallocmem Revision 1.21 2002/11/30 23:34:43 carl diff --git a/rtl/inc/lineinfo.pp b/rtl/inc/lineinfo.pp index 7d695e1449..87754cb538 100644 --- a/rtl/inc/lineinfo.pp +++ b/rtl/inc/lineinfo.pp @@ -739,7 +739,7 @@ begin end; -function StabBackTraceStr(addr:longint):shortstring; +function StabBackTraceStr(addr:Pointer):shortstring; var func, source : string; @@ -752,7 +752,7 @@ begin BackTraceStrFunc:=@SysBackTraceStr; GetLineInfo(dword(addr),func,source,line); { create string } - StabBackTraceStr:=' 0x'+HexStr(addr,8); + StabBackTraceStr:=' 0x'+HexStr(Longint(addr),8); if func<>'' then StabBackTraceStr:=StabBackTraceStr+' '+func; if source<>'' then @@ -781,7 +781,11 @@ finalization end. { $Log$ - Revision 1.15 2003-02-07 20:55:06 marco + Revision 1.16 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.15 2003/02/07 20:55:06 marco * fix from oco Revision 1.14 2003/02/01 22:31:34 marco diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index 23eae1d8c5..8f39137189 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -27,7 +27,7 @@ {$i textrec.inc} Procedure HandleError (Errno : Longint); forward; -Procedure HandleErrorFrame (Errno : longint;frame : longint); forward; +Procedure HandleErrorFrame (Errno : longint;frame : Pointer); forward; type FileFunc = Procedure(var t : TextRec); @@ -42,7 +42,7 @@ const Seed3 : Cardinal = 0; { For Error Handling.} - ErrorBase : Longint = 0; + ErrorBase : Pointer = nil; { Used by the ansistrings and maybe also other things in the future } var @@ -558,7 +558,7 @@ Begin Begin Writeln(stdout,'Runtime error ',Errorcode,' at 0x',hexstr(Longint(Erroraddr),8)); { to get a nice symify } - Writeln(stdout,BackTraceStrFunc(Longint(Erroraddr))); + Writeln(stdout,BackTraceStrFunc(Erroraddr)); dump_stack(stdout,ErrorBase); Writeln(stdout,''); End; @@ -585,24 +585,24 @@ Begin end; -function SysBackTraceStr (Addr: longint): ShortString; +function SysBackTraceStr (Addr: Pointer): ShortString; begin - SysBackTraceStr:=' 0x'+HexStr(addr,8); + SysBackTraceStr:=' 0x'+HexStr(Longint(addr),8); end; -Procedure HandleErrorAddrFrame (Errno : longint;addr,frame : longint);[public,alias:'FPC_BREAK_ERROR']; +Procedure HandleErrorAddrFrame (Errno : longint;addr,frame : Pointer);[public,alias:'FPC_BREAK_ERROR']; begin If pointer(ErrorProc)<>Nil then - ErrorProc(Errno,pointer(addr),pointer(frame)); + ErrorProc(Errno,addr,frame); errorcode:=word(Errno); exitcode:=word(Errno); - erroraddr:=pointer(addr); + erroraddr:=addr; errorbase:=frame; halt(errorcode); end; -Procedure HandleErrorFrame (Errno : longint;frame : longint); +Procedure HandleErrorFrame (Errno : longint;frame : Pointer); { Procedure to handle internal errors, i.e. not user-invoked errors Internal function should ALWAYS call HandleError instead of RunError. @@ -627,7 +627,7 @@ procedure runerror(w : word);[alias: 'FPC_RUNERROR']; begin errorcode:=w; exitcode:=w; - erroraddr:=pointer(get_caller_addr(get_frame)); + erroraddr:=get_caller_addr(get_frame); errorbase:=get_caller_frame(get_frame); halt(errorcode); end; @@ -647,11 +647,12 @@ End; function do_isdevice(handle:longint):boolean;forward; -Procedure dump_stack(var f : text;bp : Longint); +Procedure dump_stack(var f : text;bp : Pointer); var - i, prevbp : Longint; + i : Longint; + prevbp : Pointer; is_dev : boolean; - caller_addr : longint; + caller_addr : Pointer; Begin prevbp:=bp-1; i:=0; @@ -659,7 +660,7 @@ Begin while bp > prevbp Do Begin caller_addr := get_caller_addr(bp); - if caller_addr <> 0 then + if caller_addr <> nil then Writeln(f,BackTraceStrFunc(caller_addr)); Inc(i); If ((i>max_frame_dump) and is_dev) or (i>256) Then @@ -723,7 +724,7 @@ end; procedure fpc_AbstractErrorIntern; compilerproc; external name 'FPC_ABSTRACTERROR'; {$endif hascompilerproc} -Procedure fpc_assert(Const Msg,FName:Shortstring;LineNo,ErrorAddr:Longint); [SaveRegisters,Public,Alias : 'FPC_ASSERT']; {$ifdef hascompilerproc} compilerproc; {$endif} +Procedure fpc_assert(Const Msg,FName:Shortstring;LineNo:Longint;ErrorAddr:Pointer); [SaveRegisters,Public,Alias : 'FPC_ASSERT']; {$ifdef hascompilerproc} compilerproc; {$endif} begin if pointer(AssertErrorProc)<>nil then AssertErrorProc(Msg,FName,LineNo,ErrorAddr) @@ -732,7 +733,7 @@ begin end; -Procedure SysAssert(Const Msg,FName:Shortstring;LineNo,ErrorAddr:Longint); +Procedure SysAssert(Const Msg,FName:Shortstring;LineNo:Longint;ErrorAddr:Pointer); begin If msg='' then write(stderr,'Assertion failed') @@ -765,7 +766,11 @@ end; { $Log$ - Revision 1.39 2003-02-05 21:48:34 mazen + Revision 1.40 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.39 2003/02/05 21:48:34 mazen * fixing run time errors related to unimplemented abstract methods in CG + giving empty emplementations for some RTL functions diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index f0cbfcb8f7..76a1ca4708 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -237,7 +237,7 @@ Type { procedure type } TProcedure = Procedure; - + const { Maximum value of the biggest signed and unsigned integer type available} MaxSIntValue = High(ValSInt); @@ -248,13 +248,13 @@ const maxSmallint = 32767; maxint = maxsmallint; - -type + +type IntegerArray = array[0..$effffff] of Integer; PIntegerArray = ^IntegerArray; PointerArray = array [0..512*1024*1024 - 2] of Pointer; PPointerArray = ^PointerArray; - + {$ifndef VER1_0} TBoundArray = array of Integer; {$endif VER1_0} @@ -584,9 +584,9 @@ Procedure getdir(drivenr:byte;Var dir:ansistring); *****************************************************************************} { os independent calls to allow backtraces } -function get_frame:longint;{$ifdef SYSTEMINLINE}inline;{$endif} -function get_caller_addr(framebp:longint):longint;{$ifdef SYSTEMINLINE}inline;{$endif} -function get_caller_frame(framebp:longint):longint;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_frame:pointer;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_caller_addr(framebp:pointer):pointer;{$ifdef SYSTEMINLINE}inline;{$endif} +function get_caller_frame(framebp:pointer):pointer;{$ifdef SYSTEMINLINE}inline;{$endif} Function IOResult:Word;{$ifdef SYSTEMINLINE}inline;{$endif} Function Sptr:Longint;{$ifdef SYSTEMINLINE}inline;{$endif} @@ -598,7 +598,7 @@ Function Sptr:Longint;{$ifdef SYSTEMINLINE}inline;{$endif} Function Paramcount:Longint; Function ParamStr(l:Longint):string; -Procedure Dump_Stack(var f : text;bp:Longint); +Procedure Dump_Stack(var f : text;bp:pointer); Procedure RunError(w:Word); Procedure RunError;{$ifdef SYSTEMINLINE}inline;{$endif} Procedure halt(errnum:byte); @@ -615,15 +615,15 @@ Procedure SysResetFPU; *****************************************************************************} procedure AbstractError; -Function SysBackTraceStr(Addr: Longint): ShortString; -Procedure SysAssert(Const Msg,FName:ShortString;LineNo,ErrorAddr:Longint); +Function SysBackTraceStr(Addr:Pointer): ShortString; +Procedure SysAssert(Const Msg,FName:ShortString;LineNo:Longint;ErrorAddr:Pointer); { Error handlers } Type - TBackTraceStrFunc = Function (Addr: Longint): ShortString; + TBackTraceStrFunc = Function (Addr: Pointer): ShortString; TErrorProc = Procedure (ErrNo : Longint; Address,Frame : Pointer); TAbstractErrorProc = Procedure; - TAssertErrorProc = Procedure(const msg,fname:ShortString;lineno,erroraddr:longint); + TAssertErrorProc = Procedure(const msg,fname:ShortString;lineno:longint;erroraddr:pointer); @@ -665,7 +665,11 @@ const { $Log$ - Revision 1.63 2003-01-13 14:37:11 florian + Revision 1.64 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.63 2003/01/13 14:37:11 florian * cpu defines fixed * ... = type ...; stuff reactived, should work now with 1.1 diff --git a/rtl/powerpc/powerpc.inc b/rtl/powerpc/powerpc.inc index 0e6335c341..8101735f9d 100644 --- a/rtl/powerpc/powerpc.inc +++ b/rtl/powerpc/powerpc.inc @@ -852,7 +852,7 @@ function fpc_pchar_length(p:pchar):longint;assembler;[public,alias:'FPC_PCHAR_LE {$define FPC_SYSTEM_HAS_GET_FRAME} -function get_frame:longint;assembler; +function get_frame:pointer;assembler; asm { all abi's I know use r1 as stack pointer } mr r3, r1 @@ -860,7 +860,7 @@ end ['R3']; {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR} -function get_caller_addr(framebp:longint):longint;assembler; +function get_caller_addr(framebp:pointer):pointer;assembler; asm {$warning FIX ME!} // !!!!!!! depends on ABI !!!!!!!! @@ -868,7 +868,7 @@ end ['R3']; {$define FPC_SYSTEM_HAS_GET_CALLER_FRAME} -function get_caller_frame(framebp:longint):longint;assembler; +function get_caller_frame(framebp:pointer):pointer;assembler; asm {$warning FIX ME!} // !!!!!!! depends on ABI !!!!!!!! @@ -948,7 +948,11 @@ end ['R3','R10']; { $Log$ - Revision 1.30 2003-03-12 19:21:29 jonas + Revision 1.31 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.30 2003/03/12 19:21:29 jonas + implemented get_frame() * fixed bug in IndexDWord() diff --git a/rtl/sparc/sparc.inc b/rtl/sparc/sparc.inc index ac30cfced9..fad090175d 100644 --- a/rtl/sparc/sparc.inc +++ b/rtl/sparc/sparc.inc @@ -1,17 +1,17 @@ {$define FPC_SYSTEM_HAS_GET_FRAME} -function get_frame:longint;{assembler;} +function get_frame:pointer;{assembler;} begin{asm} {$warning FIX ME!} // !!!!!!! depends on ABI !!!!!!!! end; {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR} -function get_caller_addr(framebp:longint):longint;{assembler;} +function get_caller_addr(framebp:pointer):pointer;{assembler;} begin{asm} {$warning FIX ME!} // !!!!!!! depends on ABI !!!!!!!! end; {$define FPC_SYSTEM_HAS_GET_CALLER_FRAME} -function get_caller_frame(framebp:longint):longint;{assembler;} +function get_caller_frame(framebp:pointer):pointer;{assembler;} begin{asm} {$warning FIX ME!} // !!!!!!! depends on ABI !!!!!!!! @@ -31,7 +31,11 @@ begin{asm} end; { $Log$ - Revision 1.2 2003-02-05 21:48:34 mazen + Revision 1.3 2003-03-17 14:30:11 peter + * changed address parameter/return values to pointer instead + of longint + + Revision 1.2 2003/02/05 21:48:34 mazen * fixing run time errors related to unimplemented abstract methods in CG + giving empty emplementations for some RTL functions