diff options
author | Gaius Mulley <gaiusmod2@gmail.com> | 2024-02-10 02:18:54 +0000 |
---|---|---|
committer | Gaius Mulley <gaiusmod2@gmail.com> | 2024-02-10 02:18:54 +0000 |
commit | 863202684dff775ae4a3e576f77044474384d41f (patch) | |
tree | 6964479181e2f25496cd8e363ce11e947266a716 | |
parent | 2523654a54982344bc095a1d27bd9f1d35ef033e (diff) | |
download | gcc-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.mod | 5 |
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 |