trunk/gcclocal/vcs_diff_compiler.patch results

File details

./trunk/gcclocal/vcs_diff_compiler.patch 2026-07-24-05:39

Used binaries

   

Binaries version

master of gcclocal is disabled, not trying to connect
master of gcclocal is disabled, not trying to connect
master of gcclocal is disabled, not trying to connect

Full file content

 
diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas
index 5a3e9c01fc..89c728bbd9 100644
--- a/compiler/arm/aasmcpu.pas
+++ b/compiler/arm/aasmcpu.pas
@@ -321,7 +321,7 @@ implementation
 
   uses
     itcpugas,aoptcpu,
-    systems,symdef;
+    systems,symdef,cutils;
 
 
     procedure taicpu.loadshifterop(opidx:longint;const so:tshifterop);
@@ -1159,6 +1159,9 @@ implementation
                                   hp2.Next:=nil;
                                   hp2.Previous:=nil;
                                   listtoinsert.Concat(hp2);
+                                  if ((taicpu(curtai).oper[curop]^.ref^.base<>NR_NO) and not(is_pc(taicpu(curtai).oper[curop]^.ref^.base))) or
+                                     (taicpu(curtai).oper[curop]^.ref^.index<>NR_NO) then
+                                    list.insertafter(curtai,tai_comment.create(strpnew('internalerror(200309012')));
                                   taicpu(curtai).oper[curop]^.ref^.symboldata:=hp;
                                   taicpu(curtai).oper[curop]^.ref^.symbol:=l;
                                   l.increfs;
diff --git a/compiler/arm/agarmgas.pas b/compiler/arm/agarmgas.pas
index a152371522..086140ccc3 100644
--- a/compiler/arm/agarmgas.pas
+++ b/compiler/arm/agarmgas.pas
@@ -213,8 +213,11 @@       TArmAppleGNUAssembler=class(TAppleGNUassembler)
             if assigned(symbol) then
               begin
                 if (base<>NR_NO) and not(is_pc(base)) then
-                  internalerror(200309011);
-                s:=symbol.name;
+                  s:='['+gas_regname(base)+']'
+                else
+                  s:='';
+                // internalerror(200309011);
+                s:=s+symbol.name;
                 if offset<>0 then
                   s:=s+tostr_with_plus(offset);
                 if refaddr=addr_pic then