* fixed check for overloaded operator with array and chararray check

This commit is contained in:
peter 2000-05-11 16:47:37 +00:00
parent a80d41f95f
commit 1d47da018e

View File

@ -60,11 +60,19 @@ implementation
ld:=p^.left^.resulttype; ld:=p^.left^.resulttype;
if (p^.treetype=starstarn) or if (p^.treetype=starstarn) or
(ld^.deftype=recorddef) or (ld^.deftype=recorddef) or
(rd^.deftype=recorddef) or
{ array def, but not mmx or chararray+char }
((ld^.deftype=arraydef) and ((ld^.deftype=arraydef) and
not((cs_mmx in aktlocalswitches) and not((cs_mmx in aktlocalswitches) and
is_mmx_able_array(ld)) and is_mmx_able_array(ld)) and
(not (rd^.deftype in [orddef])) and not(is_char(rd) and
(not is_chararray(ld)) is_chararray(ld))
) or
((rd^.deftype=arraydef) and
not((cs_mmx in aktlocalswitches) and
is_mmx_able_array(rd)) and
not(is_char(ld) and
is_chararray(rd))
) or ) or
{ <> and = are defined for classes } { <> and = are defined for classes }
((ld^.deftype=objectdef) and ((ld^.deftype=objectdef) and
@ -72,14 +80,6 @@ implementation
not(p^.treetype in [equaln,unequaln]) not(p^.treetype in [equaln,unequaln])
) )
) or ) or
(rd^.deftype=recorddef) or
((rd^.deftype=arraydef) and
not((cs_mmx in aktlocalswitches) and
is_mmx_able_array(rd)) and
(not (ld^.deftype in [orddef])) and
(not is_chararray(rd))
) or
{ <> and = are defined for classes }
((rd^.deftype=objectdef) and ((rd^.deftype=objectdef) and
(not(pobjectdef(rd)^.is_class) or (not(pobjectdef(rd)^.is_class) or
not(p^.treetype in [equaln,unequaln]) not(p^.treetype in [equaln,unequaln])
@ -1301,7 +1301,10 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.75 2000-04-25 14:43:36 jonas Revision 1.76 2000-05-11 16:47:37 peter
* fixed check for overloaded operator with array and chararray check
Revision 1.75 2000/04/25 14:43:36 jonas
- disabled "string_var := string_var + ... " and "string_var + char_var" - disabled "string_var := string_var + ... " and "string_var + char_var"
optimizations (were only active with -dnewoptimizations) because of optimizations (were only active with -dnewoptimizations) because of
several internal issues several internal issues