Parcourir la source

Check that Ausable does not contain the same register twice

Pierre Muller il y a 3 semaines
Parent
commit
9ed80546cf
1 fichiers modifiés avec 7 ajouts et 2 suppressions
  1. 7 2
      compiler/rgobj.pas

+ 7 - 2
compiler/rgobj.pas

@@ -469,9 +469,14 @@ unit rgobj;
          for i:=low(Ausable) to high(Ausable) do
            begin
              usable_registers[i]:=Ausable[i];
-             include(usable_register_set,Ausable[i]);
+	     if (Ausable[i] in usable_register_set) then
+               internalerror(2025112601)
+             else
+               begin
+                 include(usable_register_set,Ausable[i]);
+                 inc(usable_registers_cnt);
+               end;
            end;
-         usable_registers_cnt:=high(Ausable)+1;
          { Initialize Worklists }
          spillednodes.init;
          simplifyworklist.init;