Sfoglia il codice sorgente

* added missing typecheckpasses for new left/right nodes created in
taddnode.typecheckpass()

git-svn-id: trunk@5089 -

Jonas Maebe 19 anni fa
parent
commit
d5b069a935
1 ha cambiato i file con 7 aggiunte e 0 eliminazioni
  1. 7 0
      compiler/nadd.pas

+ 7 - 0
compiler/nadd.pas

@@ -1361,6 +1361,7 @@ implementation
                 right:=csubscriptnode.create(
                            hsym,
                            ctypeconvnode.create_internal(right,methodpointertype));
+                typecheckpass(right);
                end;
             if (ld.deftype=procvardef) and
                (not tprocvardef(ld).is_addressonly) then
@@ -1368,6 +1369,7 @@ implementation
                 left:=csubscriptnode.create(
                           hsym,
                           ctypeconvnode.create_internal(left,methodpointertype));
+                typecheckpass(left);
               end;
           end
 
@@ -1436,6 +1438,7 @@ implementation
                    begin
                      left:=caddnode.create(muln,left,
                        cordconstnode.create(tpointerdef(rd).pointeddef.size,sinttype,true));
+                     typecheckpass(left);
                    end;
               end
             else
@@ -1467,6 +1470,7 @@ implementation
                    begin
                      right:=caddnode.create(muln,right,
                        cordconstnode.create(tpointerdef(ld).pointeddef.size,sinttype,true));
+                     typecheckpass(right);
                    end
                  end else
                    if is_zero_based_array(ld) and
@@ -1474,6 +1478,7 @@ implementation
                      begin
                        right:=caddnode.create(muln,right,
                          cordconstnode.create(tarraydef(ld).elementdef.size,sinttype,true));
+                       typecheckpass(right);
                      end;
                end
              else
@@ -1501,9 +1506,11 @@ implementation
                     right:=csubscriptnode.create(
                                  hsym,
                                  ctypeconvnode.create_internal(right,methodpointertype));
+                    typecheckpass(right);
                     left:=csubscriptnode.create(
                                  hsym,
                                  ctypeconvnode.create_internal(left,methodpointertype));
+                     typecheckpass(left);
                   end;
               end
             else