From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1499) id 9F25B3858D20; Sat, 10 Feb 2024 02:19:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9F25B3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1707531583; bh=bcW/tzh/UkOtCEqtXoTX59TueFw6n06qB5NLxTO6ICg=; h=From:To:Subject:Date:From; b=ccsNldXPbfayQtgVmRI5lW2iMOVCVPT+33n8RvtOUDiymmhawXDq8cC9PAbsn7AqR EzMuyIR8f4+sX4z/85yD2p0CkazsLv29qiDrVLRv/KlhOXgACieGhhlAuf+rOJW04a FmdP2uJ1g0WEhV/aoYNyMkNiinnFUzQTD4W2w6Bs= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Gaius Mulley To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-8906] PR modula2/113848 modula2 does not build with clang X-Act-Checkin: gcc X-Git-Author: Gaius Mulley X-Git-Refname: refs/heads/master X-Git-Oldrev: 2523654a54982344bc095a1d27bd9f1d35ef033e X-Git-Newrev: 863202684dff775ae4a3e576f77044474384d41f Message-Id: <20240210021943.9F25B3858D20@sourceware.org> Date: Sat, 10 Feb 2024 02:19:43 +0000 (GMT) List-Id: https://gcc.gnu.org/g:863202684dff775ae4a3e576f77044474384d41f commit r14-8906-g863202684dff775ae4a3e576f77044474384d41f Author: Gaius Mulley Date: Sat Feb 10 02:18:54 2024 +0000 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 Diff: --- gcc/m2/gm2-libs/SArgs.mod | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/m2/gm2-libs/SArgs.mod b/gcc/m2/gm2-libs/SArgs.mod index d6cb448d497a..3c3fe8d85a18 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