mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-29 09:19:37 +02:00
* error handling of pass_1 and cgi386 fixed
* the following bugs fixed: 0117, 0118, 0119 and 0129, 0122 was already fixed, verified
This commit is contained in:
parent
7b97bfea3b
commit
de04288a2a
@ -99,12 +99,60 @@ implementation
|
||||
const
|
||||
bytes2Sxx:array[1..4] of Topsize=(S_B,S_W,S_NO,S_L);
|
||||
|
||||
procedure error(const t : tmsgconst);
|
||||
procedure message(const t : tmsgconst);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
verbose.Message(t);
|
||||
codegenerror:=true;
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message(t);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message1(const t : tmsgconst;const s : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message1(t,s);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message2(const t : tmsgconst;const s1,s2 : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message2(t,s1,s2);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message3(const t : tmsgconst;const s1,s2,s3 : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message3(t,s1,s2,s3);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
type
|
||||
@ -2093,6 +2141,10 @@ implementation
|
||||
getlabel(falselabel);
|
||||
{ calculate left sides }
|
||||
secondpass(p^.left);
|
||||
|
||||
if codegenerror then
|
||||
exit;
|
||||
|
||||
case p^.left^.location.loc of
|
||||
LOC_REFERENCE : begin
|
||||
{ in case left operator uses to register }
|
||||
@ -2150,6 +2202,10 @@ implementation
|
||||
end;
|
||||
end;
|
||||
secondpass(p^.right);
|
||||
|
||||
if codegenerror then
|
||||
exit;
|
||||
|
||||
{$ifdef test_dest_loc}
|
||||
dest_loc_known:=false;
|
||||
if in_dest_loc then
|
||||
@ -4596,7 +4652,7 @@ implementation
|
||||
cleartempgen;
|
||||
|
||||
getlabel(l3);
|
||||
aktcontinuelabel:=l1;
|
||||
aktcontinuelabel:=l2;
|
||||
aktbreaklabel:=l3;
|
||||
|
||||
if assigned(p^.right) then
|
||||
@ -5751,7 +5807,12 @@ do_jmp:
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.11 1998-04-13 08:42:51 florian
|
||||
Revision 1.12 1998-04-13 21:15:41 florian
|
||||
* error handling of pass_1 and cgi386 fixed
|
||||
* the following bugs fixed: 0117, 0118, 0119 and 0129, 0122 was already
|
||||
fixed, verified
|
||||
|
||||
Revision 1.11 1998/04/13 08:42:51 florian
|
||||
* call by reference and call by value open arrays fixed
|
||||
|
||||
Revision 1.10 1998/04/12 22:39:43 florian
|
||||
|
1300
compiler/msgtxt.inc
1300
compiler/msgtxt.inc
File diff suppressed because it is too large
Load Diff
@ -55,12 +55,60 @@ unit pass_1;
|
||||
const
|
||||
count_ref : boolean = true;
|
||||
|
||||
procedure error(const t : tmsgconst);
|
||||
procedure message(const t : tmsgconst);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
verbose.Message(t);
|
||||
codegenerror:=true;
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message(t);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message1(const t : tmsgconst;const s : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message1(t,s);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message2(const t : tmsgconst;const s1,s2 : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message2(t,s1,s2);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure message3(const t : tmsgconst;const s1,s2,s3 : string);
|
||||
|
||||
var
|
||||
olderrorcount : longint;
|
||||
|
||||
begin
|
||||
if not(codegenerror) then
|
||||
begin
|
||||
olderrorcount:=errorcount;
|
||||
verbose.Message3(t,s1,s2,s3);
|
||||
codegenerror:=olderrorcount<>errorcount;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure firstpass(var p : ptree);forward;
|
||||
@ -383,6 +431,13 @@ unit pass_1;
|
||||
doconv:=tc_equal;
|
||||
b:=true;
|
||||
end
|
||||
else
|
||||
{ nil is compatible with procvars }
|
||||
if (fromtreetype=niln) and (def_to^.deftype=procvardef) then
|
||||
begin
|
||||
doconv:=tc_equal;
|
||||
b:=true;
|
||||
end
|
||||
{ procedure variable can be assigned to an void pointer }
|
||||
{ Not anymore. Use the @ operator now.}
|
||||
else
|
||||
@ -4502,7 +4557,12 @@ unit pass_1;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.8 1998-04-13 08:42:52 florian
|
||||
Revision 1.9 1998-04-13 21:15:42 florian
|
||||
* error handling of pass_1 and cgi386 fixed
|
||||
* the following bugs fixed: 0117, 0118, 0119 and 0129, 0122 was already
|
||||
fixed, verified
|
||||
|
||||
Revision 1.8 1998/04/13 08:42:52 florian
|
||||
* call by reference and call by value open arrays fixed
|
||||
|
||||
Revision 1.7 1998/04/12 22:39:44 florian
|
||||
|
@ -187,7 +187,7 @@ begin
|
||||
else
|
||||
if (idx in [1..5]) then
|
||||
begin
|
||||
for i:=1to idx do
|
||||
for i:=1 to idx do
|
||||
begin
|
||||
case upcase(s[i]) of
|
||||
'F' : begin
|
||||
@ -290,7 +290,12 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 1998-03-28 23:09:57 florian
|
||||
Revision 1.3 1998-04-13 21:15:42 florian
|
||||
* error handling of pass_1 and cgi386 fixed
|
||||
* the following bugs fixed: 0117, 0118, 0119 and 0129, 0122 was already
|
||||
fixed, verified
|
||||
|
||||
Revision 1.2 1998/03/28 23:09:57 florian
|
||||
* secondin bugfix (m68k and i386)
|
||||
* overflow checking bugfix (m68k and i386) -- pretty useless in
|
||||
secondadd, since everything is done using 32-bit
|
||||
|
Loading…
Reference in New Issue
Block a user