View Issue Details

IDProjectCategoryView StatusLast Update
0037471FPCCompilerpublic2020-08-04 22:52
ReporterJ. Gareth Moreton Assigned ToFlorian  
PrioritylowSeveritytextReproducibilityN/A
Status resolvedResolutionfixed 
PlatformCross-platformOSMicrosoft Windows 
Product Version3.3.1 
Fixed in Version3.3.1 
Summary0037471: [Patch] Internal Error number clash
DescriptionA few internal error numbers of the form 20180307## have multiple clashes. The attached patch ensures they are all unique.
Steps To ReproduceApply patch and confirm compilation is no different and specific internal error numbers no longer clash,
Additional InformationUnique internal error numbers are vital in isolating exactly where the compiler's internal state became unstable - clashing numbers adds an unnecessary element of confusion.

The most important appearance of 2018030701 is in AllocRegBetween, a supporting function in the Peephole Optimizer - this instance of the number is retained, while the two clashes are changed.
Tagscompiler, internal error, patch
Fixed in Revision46234
FPCOldBugId
FPCTarget-
Attached Files

Activities

J. Gareth Moreton

2020-08-03 05:30

developer  

IntErrorClashFix2.patch (1,527 bytes)   
Index: compiler/x86/rax86int.pas
===================================================================
--- compiler/x86/rax86int.pas	(revision 45994)
+++ compiler/x86/rax86int.pas	(working copy)
@@ -1142,7 +1142,7 @@
                       SetSegmentOverride(dest,segreg);
                   end;
                 else
-                  internalerror(2018030701);
+                  internalerror(2018030704);
               end;
             end;
           OPR_LOCAL:
@@ -1223,7 +1223,7 @@
               oper.opr.localsegment:=seg;
             end;
           else
-            internalerror(2018030703);
+            internalerror(2018030705);
         end;
       end;
 
Index: compiler/z80/raz80asm.pas
===================================================================
--- compiler/z80/raz80asm.pas	(revision 45994)
+++ compiler/z80/raz80asm.pas	(working copy)
@@ -862,7 +862,7 @@
                     dest.opr:=tmplocal;
                   end;
                 else
-                  internalerror(2018030701);
+                  internalerror(2018030711);
               end;
             end;
           OPR_LOCAL:
@@ -900,11 +900,11 @@
                 OPR_LOCAL:
                   Message(asmr_e_no_local_or_para_allowed);
                 else
-                  internalerror(2018030703);
+                  internalerror(2018030713);
               end;
             end;
           else
-            internalerror(2018030702);
+            internalerror(2018030712);
         end;
       end;
 
IntErrorClashFix2.patch (1,527 bytes)   

Florian

2020-08-04 22:52

administrator   ~0124571

Thanks, applied.

Issue History

Date Modified Username Field Change
2020-08-03 05:30 J. Gareth Moreton New Issue
2020-08-03 05:30 J. Gareth Moreton File Added: IntErrorClashFix2.patch
2020-08-03 05:31 J. Gareth Moreton Tag Attached: compiler
2020-08-03 05:31 J. Gareth Moreton Tag Attached: patch
2020-08-03 05:31 J. Gareth Moreton Tag Attached: internal error
2020-08-03 05:31 J. Gareth Moreton Priority normal => low
2020-08-03 05:31 J. Gareth Moreton Severity minor => text
2020-08-03 05:31 J. Gareth Moreton FPCTarget => -
2020-08-03 05:33 J. Gareth Moreton Additional Information Updated View Revisions
2020-08-04 22:52 Florian Assigned To => Florian
2020-08-04 22:52 Florian Status new => resolved
2020-08-04 22:52 Florian Resolution open => fixed
2020-08-04 22:52 Florian Fixed in Version => 3.3.1
2020-08-04 22:52 Florian Fixed in Revision => 46234
2020-08-04 22:52 Florian Note Added: 0124571