aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaius Mulley <gaiusmod2@gmail.com>2024-02-10 02:18:54 +0000
committerGaius Mulley <gaiusmod2@gmail.com>2024-02-10 02:18:54 +0000
commit863202684dff775ae4a3e576f77044474384d41f (patch)
tree6964479181e2f25496cd8e363ce11e947266a716
parent2523654a54982344bc095a1d27bd9f1d35ef033e (diff)
downloadgcc-863202684dff775ae4a3e576f77044474384d41f.zip
gcc-863202684dff775ae4a3e576f77044474384d41f.tar.gz
gcc-863202684dff775ae4a3e576f77044474384d41f.tar.bz2
PR modula2/113848 modula2 does not build with clang
Re-write address arithmetic in gm2-libs/SArgs.mod:GetArg to avoid (void *) computation. mc treats ADDRESS as (char *) but does not cast user type (PtrToChar) to (char *) when performing address arithmetic. gcc/m2/ChangeLog: PR modula2/113848 * gm2-libs/SArgs.mod (GetArg): Re-write address arithmetic to avoid (void *) computation. Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
-rw-r--r--gcc/m2/gm2-libs/SArgs.mod5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/m2/gm2-libs/SArgs.mod b/gcc/m2/gm2-libs/SArgs.mod
index d6cb448..3c3fe8d 100644
--- a/gcc/m2/gm2-libs/SArgs.mod
+++ b/gcc/m2/gm2-libs/SArgs.mod
@@ -60,12 +60,15 @@ if defined(GM2_DEBUG_SARGS)
PROCEDURE GetArg (VAR s: String; n: CARDINAL) : BOOLEAN ;
VAR
i : INTEGER ;
+ a : ADDRESS ;
ppc: PtrToPtrToChar ;
BEGIN
i := VAL (INTEGER, n) ;
IF i < GetArgC ()
THEN
- ppc := ADDRESS (ADDRESS (GetArgV ()) + (n * TSIZE (PtrToChar))) ;
+ a := ADDRESS (GetArgV ()) ;
+ INC (a, n * TSIZE (PtrToChar)) ;
+ ppc := a ;
s := InitStringCharStar (ppc^) ;
RETURN TRUE
ELSE