From adccaf9448b01e1b6061252c25b6bea87382c6f2 Mon Sep 17 00:00:00 2001
From: "J. Gareth \"Curious Kit\" Moreton" <gareth@moreton-family.com>
Date: Wed, 10 Apr 2024 19:14:23 +0100
Subject: [PATCH]   * Mathematical intrinsics are now pure

---
 rtl/inc/mathh.inc | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/rtl/inc/mathh.inc b/rtl/inc/mathh.inc
index 2d8ff6ebbc..7fa3cab9a5 100644
--- a/rtl/inc/mathh.inc
+++ b/rtl/inc/mathh.inc
@@ -116,19 +116,19 @@ procedure float_raise(i: TFPUExceptionMask);
   {$endif}
 {$endif}
 
-    function Pi : ValReal;[internproc:fpc_in_pi_real];
-    function Abs(d : ValReal) : ValReal;[internproc:fpc_in_abs_real];
-    function Sqr(d : ValReal) : ValReal;[internproc:fpc_in_sqr_real];
-    function Sqrt(d : ValReal) : ValReal;[internproc:fpc_in_sqrt_real];
-    function ArcTan(d : ValReal) : ValReal;[internproc:fpc_in_arctan_real];
-    function Ln(d : ValReal) : ValReal;[internproc:fpc_in_ln_real];
-    function Sin(d : ValReal) : ValReal;[internproc:fpc_in_sin_real];
-    function Cos(d : ValReal) : ValReal;[internproc:fpc_in_cos_real];
-    function Exp(d : ValReal) : ValReal;[internproc:fpc_in_exp_real];
-    function Round(d : ValReal) : int64;[internproc:fpc_in_round_real];
-    function Frac(d : ValReal) : ValReal;[internproc:fpc_in_frac_real];
-    function Int(d : ValReal) : ValReal;[internproc:fpc_in_int_real];
-    function Trunc(d : ValReal) : int64;[internproc:fpc_in_trunc_real];
+    function Pi : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_pi_real];
+    function Abs(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_abs_real];
+    function Sqr(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_sqr_real];
+    function Sqrt(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_sqrt_real];
+    function ArcTan(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_arctan_real];
+    function Ln(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_ln_real];
+    function Sin(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_sin_real];
+    function Cos(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_cos_real];
+    function Exp(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_exp_real];
+    function Round(d : ValReal) : int64;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_round_real];
+    function Frac(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_frac_real];
+    function Int(d : ValReal) : ValReal;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_int_real];
+    function Trunc(d : ValReal) : int64;{$ifdef USEPURE}pure;{$endif}[internproc:fpc_in_trunc_real];
 
 {$ifdef SUPPORT_EXTENDED}
     function FPower10(val: Extended; Power: Longint): Extended;