This commit is contained in:
peter 1999-07-16 10:04:32 +00:00
parent 8b4062e37e
commit 45bf051885
6 changed files with 93 additions and 21 deletions

View File

@ -124,11 +124,15 @@ implementation
(not is_boolean(def_to))) then (not is_boolean(def_to))) then
b:=0; b:=0;
end; end;
{ enumdef : enumdef :
begin begin
doconv:=tc_int_2_int; { needed for char(enum) }
b:=1; if explicit then
end;} begin
doconv:=tc_int_2_int;
b:=1;
end;
end;
end; end;
end; end;
@ -662,9 +666,15 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.30 1999-06-28 16:02:30 peter Revision 1.31 1999-07-16 10:04:32 peter
* merged * merged
Revision 1.30 1999/06/28 16:02:30 peter
* merged
Revision 1.27.2.4 1999/07/16 09:52:18 peter
* allow char(enum)
Revision 1.27.2.3 1999/06/28 15:51:27 peter Revision 1.27.2.3 1999/06/28 15:51:27 peter
* tp7 fix * tp7 fix

View File

@ -2124,7 +2124,10 @@ unit pdecl;
end. end.
{ {
$Log$ $Log$
Revision 1.132 1999-07-11 21:24:31 michael Revision 1.133 1999-07-16 10:04:34 peter
* merged
Revision 1.132 1999/07/11 21:24:31 michael
+ Fixed integer message table + Fixed integer message table
Revision 1.131 1999/07/06 21:48:23 florian Revision 1.131 1999/07/06 21:48:23 florian
@ -2146,6 +2149,12 @@ end.
* use of is_ordinal checked: often a qword/int64 isn't allowed (case/for ...) * use of is_ordinal checked: often a qword/int64 isn't allowed (case/for ...)
* small qword problems fixed * small qword problems fixed
Revision 1.127.2.4 1999/07/11 21:48:01 michael
+ merged dispatch fix
Revision 1.127.2.3 1999/07/07 07:53:22 michael
+ Merged patches from florian
Revision 1.127.2.2 1999/07/05 20:03:27 peter Revision 1.127.2.2 1999/07/05 20:03:27 peter
* removed warning/notes * removed warning/notes

View File

@ -60,7 +60,9 @@ unit pexpr;
{$endif} {$endif}
; ;
const allow_type : boolean = true; const
allow_type : boolean = true;
got_addrn : boolean = false;
function parse_paras(_colon,in_prop_paras : boolean) : ptree; function parse_paras(_colon,in_prop_paras : boolean) : ptree;
@ -116,9 +118,9 @@ unit pexpr;
begin begin
if (m_tp_procvar in aktmodeswitches) and if (m_tp_procvar in aktmodeswitches) and
{ (not afterassignment) and } (not got_addrn) and
(not in_args) and (not in_args) and
(p^.treetype in [loadn]) then (p^.treetype=loadn) then
begin begin
{ support if procvar then for tp7 and many other expression like this } { support if procvar then for tp7 and many other expression like this }
Store_valid:=Must_be_valid; Store_valid:=Must_be_valid;
@ -1741,7 +1743,9 @@ unit pexpr;
end; end;
KLAMMERAFFE : begin KLAMMERAFFE : begin
consume(KLAMMERAFFE); consume(KLAMMERAFFE);
got_addrn:=true;
p1:=factor(true); p1:=factor(true);
got_addrn:=false;
p1:=gensinglenode(addrn,p1); p1:=gensinglenode(addrn,p1);
end; end;
LKLAMMER : begin LKLAMMER : begin
@ -2042,7 +2046,10 @@ unit pexpr;
end. end.
{ {
$Log$ $Log$
Revision 1.120 1999-07-06 22:38:11 florian Revision 1.121 1999-07-16 10:04:35 peter
* merged
Revision 1.120 1999/07/06 22:38:11 florian
* another fix for TP/Delphi styled procedure variables * another fix for TP/Delphi styled procedure variables
Revision 1.119 1999/07/05 20:13:16 peter Revision 1.119 1999/07/05 20:13:16 peter
@ -2061,6 +2068,12 @@ end.
Revision 1.116 1999/06/26 00:24:53 pierre Revision 1.116 1999/06/26 00:24:53 pierre
* mereg from fixes-0_99_12 branch * mereg from fixes-0_99_12 branch
Revision 1.112.2.8 1999/07/16 09:54:57 peter
* @procvar support in tp7 mode works again
Revision 1.112.2.7 1999/07/07 07:53:10 michael
+ Merged patches from florian
Revision 1.112.2.6 1999/07/01 21:31:59 peter Revision 1.112.2.6 1999/07/01 21:31:59 peter
* procvar fixes again * procvar fixes again

View File

@ -918,11 +918,9 @@ const
current_scanner^.readchar; current_scanner^.readchar;
current_scanner^.skipspace; current_scanner^.skipspace;
l:=current_scanner^.readval; l:=current_scanner^.readval;
if l>1024 then { Ignore this value, because the limit is set by the OS
maxheapsize:=l; info and shouldn't be changed by the user (PFV) }
end; end;
if heapsize>maxheapsize then
message(scan_w_illegal_switch);
end; end;
@ -1087,10 +1085,16 @@ const
{ {
$Log$ $Log$
Revision 1.54 1999-07-03 00:29:58 peter Revision 1.55 1999-07-16 10:04:36 peter
* merged
Revision 1.54 1999/07/03 00:29:58 peter
* new link writing to the ppu, one .ppu is needed for all link types, * new link writing to the ppu, one .ppu is needed for all link types,
static (.o) is now always created also when smartlinking is used static (.o) is now always created also when smartlinking is used
Revision 1.53.2.1 1999/07/16 09:53:06 peter
* ignore maxheapsize
Revision 1.53 1999/06/02 22:44:18 pierre Revision 1.53 1999/06/02 22:44:18 pierre
* previous wrong log corrected * previous wrong log corrected

View File

@ -926,6 +926,21 @@ implementation
end end
else else
{ support procvar=nil,procvar<>nil }
if ((ld^.deftype=procvardef) and (rt=niln)) or
((rd^.deftype=procvardef) and (lt=niln)) then
begin
calcregisters(p,1,0,0);
p^.location.loc:=LOC_REGISTER;
case p^.treetype of
equaln,unequaln : ;
else
CGMessage(type_e_mismatch);
end;
convdone:=true;
end
else
if (rd^.deftype=pointerdef) or if (rd^.deftype=pointerdef) or
is_zero_based_array(rd) then is_zero_based_array(rd) then
begin begin
@ -1102,9 +1117,15 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.36 1999-06-17 15:32:48 pierre Revision 1.37 1999-07-16 10:04:37 peter
* merged
Revision 1.36 1999/06/17 15:32:48 pierre
* merged from 0-99-12 branch * merged from 0-99-12 branch
Revision 1.34.2.3 1999/07/16 09:54:58 peter
* @procvar support in tp7 mode works again
Revision 1.34.2.2 1999/06/17 15:25:07 pierre Revision 1.34.2.2 1999/06/17 15:25:07 pierre
* for arrays of char operators can not be overloaded * for arrays of char operators can not be overloaded

View File

@ -179,9 +179,18 @@ implementation
{ proc/procvar 2 procvar ? } { proc/procvar 2 procvar ? }
if p^.left^.treetype=calln then if p^.left^.treetype=calln then
begin begin
{ it could also be a procvar, not only pprocsym ! } { is it a procvar, this is needed for @procvar in tp mode ! }
if p^.left^.symtableprocentry^.typ=varsym then if assigned(p^.left^.right) then
hp:=genloadnode(pvarsym(p^.left^.symtableentry),p^.left^.symtableproc) begin
{ just return the load of the procvar, remove the
addrn and calln nodes }
hp:=p^.left^.right;
putnode(p^.left);
putnode(p);
firstpass(hp);
p:=hp;
exit;
end
else else
begin begin
{ generate a methodcallnode or proccallnode } { generate a methodcallnode or proccallnode }
@ -268,7 +277,7 @@ implementation
if is_constnode(p^.left) then if is_constnode(p^.left) then
begin begin
aktfilepos:=p^.left^.fileinfo; aktfilepos:=p^.left^.fileinfo;
CGMessage(type_e_no_addr_of_constant); CGMessage(type_e_no_addr_of_constant);
end end
else else
begin begin
@ -582,12 +591,18 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.20 1999-07-05 20:25:41 peter Revision 1.21 1999-07-16 10:04:39 peter
* merged
Revision 1.20 1999/07/05 20:25:41 peter
* merged * merged
Revision 1.19 1999/07/05 16:24:17 peter Revision 1.19 1999/07/05 16:24:17 peter
* merged * merged
Revision 1.18.2.4 1999/07/16 09:54:59 peter
* @procvar support in tp7 mode works again
Revision 1.18.2.3 1999/07/05 20:06:47 peter Revision 1.18.2.3 1999/07/05 20:06:47 peter
* give error instead of warning for ln(0) and sqrt(0) * give error instead of warning for ln(0) and sqrt(0)