* Support kylix hack of having enum+integer in a enum declaration.

This commit is contained in:
peter 2001-06-04 18:13:53 +00:00
parent 4f4f28606d
commit 9b6f1bdb64

View File

@ -126,6 +126,31 @@ implementation
exit; exit;
end; end;
{ Kylix allows enum+ordconstn in an enum declaration (blocktype
is bt_type), we need to do the conversion here before the
constant folding }
if (m_delphi in aktmodeswitches) and
(blocktype=bt_type) then
begin
if (left.resulttype.def.deftype=enumdef) and
(right.resulttype.def.deftype=orddef) then
begin
{ insert explicit typecast to s32bit }
left:=ctypeconvnode.create(left,s32bittype);
include(left.flags,nf_explizit);
resulttypepass(left);
end
else
if (left.resulttype.def.deftype=orddef) and
(right.resulttype.def.deftype=enumdef) then
begin
{ insert explicit typecast to s32bit }
right:=ctypeconvnode.create(right,s32bittype);
include(right.flags,nf_explizit);
resulttypepass(right);
end;
end;
{ is one a real float, then both need to be floats, this { is one a real float, then both need to be floats, this
need to be done before the constant folding so constant need to be done before the constant folding so constant
operation on a float and int are also handled } operation on a float and int are also handled }
@ -977,15 +1002,9 @@ implementation
CGMessage(type_e_mismatch); CGMessage(type_e_mismatch);
end end
{ generic conversion } { generic conversion is not allowed anymore }
else else
begin internalerror(200106042);
{$ifdef EXTDEBUG}
Comment(V_Warning,'Generic conversion to s32bit');
{$endif}
inserttypeconv(right,s32bittype);
inserttypeconv(left,s32bittype);
end;
{ set resulttype if not already done } { set resulttype if not already done }
if not assigned(resulttype.def) then if not assigned(resulttype.def) then
@ -1274,7 +1293,10 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.28 2001-05-27 14:30:55 florian Revision 1.29 2001-06-04 18:13:53 peter
* Support kylix hack of having enum+integer in a enum declaration.
Revision 1.28 2001/05/27 14:30:55 florian
+ some widestring stuff added + some widestring stuff added
Revision 1.27 2001/05/19 21:11:50 peter Revision 1.27 2001/05/19 21:11:50 peter