mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 04:29:29 +02:00
* pointer add/sub is now as expected and the same results as inc/dec
This commit is contained in:
parent
05f2be0455
commit
be49731850
@ -64,10 +64,10 @@ unit globals;
|
||||
m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal];
|
||||
fpcmodeswitches : tmodeswitches=
|
||||
[m_fpc,m_all,m_string_pchar,m_nested_comment,m_repeat_forward,
|
||||
m_cvar_support,m_initfinal];
|
||||
m_cvar_support,m_initfinal,m_add_pointer];
|
||||
objfpcmodeswitches : tmodeswitches=
|
||||
[m_fpc,m_all,m_class,m_objpas,m_result,m_string_pchar,m_nested_comment,
|
||||
m_repeat_forward,m_cvar_support,m_initfinal];
|
||||
m_repeat_forward,m_cvar_support,m_initfinal,m_add_pointer];
|
||||
tpmodeswitches : tmodeswitches=
|
||||
[m_tp,m_all,m_tp_procvar];
|
||||
gpcmodeswitches : tmodeswitches=
|
||||
@ -249,7 +249,7 @@ unit globals;
|
||||
|
||||
uses
|
||||
comphook;
|
||||
|
||||
|
||||
procedure strdispose(var p : pchar);
|
||||
|
||||
begin
|
||||
@ -1253,7 +1253,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.23 1999-09-07 15:11:00 pierre
|
||||
Revision 1.24 1999-09-08 16:05:31 peter
|
||||
* pointer add/sub is now as expected and the same results as inc/dec
|
||||
|
||||
Revision 1.23 1999/09/07 15:11:00 pierre
|
||||
* use do_internalerror insetead of runerror
|
||||
|
||||
Revision 1.22 1999/08/30 10:17:56 peter
|
||||
|
@ -125,7 +125,8 @@ interface
|
||||
m_pointer_2_procedure, { allows the assignement of pointers to
|
||||
procedure variables }
|
||||
m_autoderef, { does auto dereferencing of struct. vars }
|
||||
m_initfinal { initialization/finalization for units }
|
||||
m_initfinal, { initialization/finalization for units }
|
||||
m_add_pointer { allow pointer add/sub operations }
|
||||
);
|
||||
tmodeswitches = set of tmodeswitch;
|
||||
|
||||
@ -178,7 +179,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.17 1999-08-13 15:44:58 peter
|
||||
Revision 1.18 1999-09-08 16:05:32 peter
|
||||
* pointer add/sub is now as expected and the same results as inc/dec
|
||||
|
||||
Revision 1.17 1999/08/13 15:44:58 peter
|
||||
* first things to include lineinfo in the executable
|
||||
|
||||
Revision 1.16 1999/08/11 17:26:33 peter
|
||||
|
@ -958,8 +958,16 @@ implementation
|
||||
if p^.treetype=addn then
|
||||
begin
|
||||
if not(cs_extsyntax in aktmoduleswitches) or
|
||||
(not(is_pchar(ld)) and (m_tp in aktmodeswitches)) then
|
||||
(not(is_pchar(ld)) and not(m_add_pointer in aktmodeswitches)) then
|
||||
CGMessage(type_e_mismatch);
|
||||
{ Dirty hack, to support multiple firstpasses (PFV) }
|
||||
if (p^.resulttype=nil) and
|
||||
(rd^.deftype=pointerdef) and
|
||||
(ppointerdef(rd)^.definition^.size>1) then
|
||||
begin
|
||||
p^.left:=gennode(muln,p^.left,genordinalconstnode(ppointerdef(rd)^.definition^.size,s32bitdef));
|
||||
firstpass(p^.left);
|
||||
end;
|
||||
end
|
||||
else
|
||||
CGMessage(type_e_mismatch);
|
||||
@ -983,8 +991,17 @@ implementation
|
||||
case p^.treetype of
|
||||
addn,subn : begin
|
||||
if not(cs_extsyntax in aktmoduleswitches) or
|
||||
(not(is_pchar(ld)) and (m_tp in aktmodeswitches)) then
|
||||
(not(is_pchar(ld)) and not(m_add_pointer in aktmodeswitches)) then
|
||||
CGMessage(type_e_mismatch);
|
||||
{ Dirty hack, to support multiple firstpasses (PFV) }
|
||||
if (p^.resulttype=nil) and
|
||||
(ld^.deftype=pointerdef) and
|
||||
(ppointerdef(ld)^.definition^.size>1) then
|
||||
begin
|
||||
p^.right:=gennode(muln,p^.right,
|
||||
genordinalconstnode(ppointerdef(ld)^.definition^.size,s32bitdef));
|
||||
firstpass(p^.right);
|
||||
end;
|
||||
end;
|
||||
else
|
||||
CGMessage(type_e_mismatch);
|
||||
@ -1118,7 +1135,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.44 1999-09-07 07:52:19 peter
|
||||
Revision 1.45 1999-09-08 16:05:29 peter
|
||||
* pointer add/sub is now as expected and the same results as inc/dec
|
||||
|
||||
Revision 1.44 1999/09/07 07:52:19 peter
|
||||
* > < >= <= support for boolean
|
||||
* boolean constants are now calculated like integer constants
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user