Bläddra i källkod

* take care of nf_internal when doing range checking and inserting type conversions in tassignmentnode.pass_typecheck

git-svn-id: trunk@31473 -
florian 10 år sedan
förälder
incheckning
63f828d54e
1 ändrade filer med 6 tillägg och 2 borttagningar
  1. 6 2
      compiler/nld.pas

+ 6 - 2
compiler/nld.pas

@@ -697,12 +697,14 @@ implementation
 {$endif}
         then
           begin
-            check_ranges(fileinfo,right,left.resultdef);
+            if not(nf_internal in flags) then
+              check_ranges(fileinfo,right,left.resultdef);
           end
         else
           begin
             { check if the assignment may cause a range check error }
-            check_ranges(fileinfo,right,left.resultdef);
+            if not(nf_internal in flags) then
+              check_ranges(fileinfo,right,left.resultdef);
 
             { beginners might be confused about an error message like
               Incompatible types: got "untyped" expected "LongInt"
@@ -711,6 +713,8 @@ implementation
             if (left.resultdef.typ<>procvardef) and
               (right.nodetype=calln) and is_void(right.resultdef) then
               CGMessage(type_e_procedures_return_no_value)
+            else if nf_internal in flags then
+              inserttypeconv_internal(right,left.resultdef)
             else
               inserttypeconv(right,left.resultdef);
           end;