From becbb68a0d92744a28033209de3984fc1d823c2f Mon Sep 17 00:00:00 2001 From: Juha Date: Sun, 21 May 2023 15:55:12 +0300 Subject: [PATCH] FpDebug: Use {$PUSH} {$T-} ... {$POP} instead of Pointer() typacasts in some places. --- components/fpdebug/fpdbgdwarfdataclasses.pas | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/components/fpdebug/fpdbgdwarfdataclasses.pas b/components/fpdebug/fpdbgdwarfdataclasses.pas index 2adde01a41..b2fc24e86a 100644 --- a/components/fpdebug/fpdbgdwarfdataclasses.pas +++ b/components/fpdebug/fpdbgdwarfdataclasses.pas @@ -4062,13 +4062,19 @@ begin if CIE64^.CIEId = QWord($ffffffffffffffff) then begin // It is a CIE - CIE := LoadCiE(CIE64^.Version, @CIE64^.Augmentation[0], Pointer(@CIE64^.CIEId+CIE64^.Length)-Pointer(@CIE64^.Augmentation[0])); + {$PUSH} {$T-} // Would require 2 Pointer() typecasts. + CIE := LoadCiE(CIE64^.Version, @CIE64^.Augmentation[0], + @CIE64^.CIEId+CIE64^.Length-@CIE64^.Augmentation[0]); + {$POP} CFI.AddCIE(p-inf.RawData, CIE); end else begin // It is a FDE - FDE := LoadFDE(CFI, FDE64^.CIEPointer, @FDE64^.InitialLocation, Pointer(@FDE64^.CIEPointer+FDE64^.Length)-Pointer(@FDE64^.InitialLocation)); + {$PUSH} {$T-} + FDE := LoadFDE(CFI, FDE64^.CIEPointer, @FDE64^.InitialLocation, + @FDE64^.CIEPointer+FDE64^.Length-@FDE64^.InitialLocation); + {$POP} if Assigned(FDE) then CFI.AddFDE(FDE); end; @@ -4081,7 +4087,10 @@ begin if CIE32^.CIEId = $ffffffff then begin // It is a CIE - CIE := LoadCiE(CIE32^.Version, @CIE32^.Augmentation[0], Pointer(@CIE32^.CIEId+CIE32^.Length)-Pointer(@CIE32^.Augmentation[0])); + {$PUSH} {$T-} + CIE := LoadCiE(CIE32^.Version, @CIE32^.Augmentation[0], + @CIE32^.CIEId+CIE32^.Length-@CIE32^.Augmentation[0]); + {$POP} CFI.AddCIE(p-inf.RawData, CIE); end else @@ -4089,7 +4098,8 @@ begin // It is a FDE if FDE32^.Length > 0 then begin - FDE := LoadFDE(CFI, FDE32^.CIEPointer, @FDE32^.InitialLocation, @FDE32^.CIEPointer+FDE32^.Length-@FDE32^.InitialLocation); + FDE := LoadFDE(CFI, FDE32^.CIEPointer, @FDE32^.InitialLocation, + @FDE32^.CIEPointer+FDE32^.Length-@FDE32^.InitialLocation); if Assigned(FDE) then CFI.AddFDE(FDE); end