Browse Source

* allow real_2_real conversion for realconstn, fixes 2971

peter 21 years ago
parent
commit
da60da7f06
1 changed files with 13 additions and 9 deletions
  1. 13 9
      compiler/defcmp.pas

+ 13 - 9
compiler/defcmp.pas

@@ -38,10 +38,10 @@ interface
        tcompare_paras_type = ( cp_none, cp_value_equal_const, cp_all,cp_procvar);
        tcompare_paras_option = (cpo_allowdefaults,cpo_ignorehidden,cpo_allowconvert,cpo_comparedefaultvalue);
        tcompare_paras_options = set of tcompare_paras_option;
-       
+
        tcompare_defs_option = (cdo_explicit,cdo_check_operator,cdo_allow_variant);
        tcompare_defs_options = set of tcompare_defs_option;
-        
+
        tconverttype = (
           tc_equal,
           tc_not_possible,
@@ -399,8 +399,9 @@ implementation
                        eq:=te_equal
                      else
                        begin
-                         if not(cdo_explicit in cdoptions) or
-                            not(m_delphi in aktmodeswitches) then
+                         if (fromtreetype=realconstn) or
+                            not((cdo_explicit in cdoptions) and
+                                (m_delphi in aktmodeswitches)) then
                            begin
                              doconv:=tc_real_2_real;
                              { do we loose precision? }
@@ -618,7 +619,7 @@ implementation
                 end;
              end;
            variantdef :
-             begin 
+             begin
                if (cdo_allow_variant in cdoptions) then
                  begin
                    case def_from.deftype of
@@ -636,7 +637,7 @@ implementation
                             end;
                        end;
                    end;
-                 end;  
+                 end;
              end;
 
            pointerdef :
@@ -1019,12 +1020,12 @@ implementation
           then we search also the := operator }
         if (eq=te_incompatible) and
            (
-            { Check for variants? } 
+            { Check for variants? }
             (
              (cdo_allow_variant in cdoptions) and
              ((def_from.deftype=variantdef) or (def_to.deftype=variantdef))
             ) or
-            { Check for operators? } 
+            { Check for operators? }
             (
              (cdo_check_operator in cdoptions) and
              ((def_from.deftype in [objectdef,recorddef,arraydef,stringdef,variantdef]) or
@@ -1266,7 +1267,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.45  2004-02-13 15:42:21  peter
+  Revision 1.46  2004-02-15 12:18:22  peter
+    * allow real_2_real conversion for realconstn, fixes 2971
+
+  Revision 1.45  2004/02/13 15:42:21  peter
     * compare_defs_ext has now a options argument
     * fixes for variants