| Message ID | 20260809211434.709343-1-jdx@o2.pl |
|---|---|
| State | New |
| Headers |
Return-Path: <newlib-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9F63D4BA23FF for <patchwork@sourceware.org>; Sun, 9 Aug 2026 21:16:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9F63D4BA23FF Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=o2.pl header.i=@o2.pl header.a=rsa-sha256 header.s=20241105 header.b=1WyuGqfN X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mx-out.tlen.pl (mx-out.tlen.pl [193.222.135.140]) by sourceware.org (Postfix) with ESMTPS id 8EE744BA23D1 for <newlib@sourceware.org>; Sun, 9 Aug 2026 21:15:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8EE744BA23D1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=o2.pl Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=o2.pl ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8EE744BA23D1 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=193.222.135.140 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786310141; cv=none; b=Vdke5yaae3M+Wr0JwdoDAzj3Z9I2BGfRdwtXrZrKqv1ggH6M2YwA6DkIvHGM2QyxqA2RMHEDQPA/7YoND1DsXtFUeH4uyDdJUfXAtXCLs/eELl5eEsNKkJl39SpvVKjJHzUY06a6vHv8/oEri1C93+f+hTBPPqeAPkF8F78vwtg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786310141; c=relaxed/simple; bh=d/9x5NKxY8rHrjikqjDECQXWeXDcJ1Zn8tB+TE/YAn8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=FY/jvonh5Pzq13gmhVDpYZKjzG5B3yrMz9F303FEZ0GPevny1NvHyy7E45EpBrzwGVnv7zss2Z8tW9V/2mE/VtxkUCOE0VhlkPsbDyDcIdSIHqYWApEi5LgG5LPGgO6J6r7Ya0r/JsZKTvxtU6zqAQmMOWQlpMxq1oqj+UqFZJ4= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=o2.pl header.i=@o2.pl header.a=rsa-sha256 header.s=20241105 header.b=1WyuGqfN DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8EE744BA23D1 Received: (wp-smtpd smtp.tlen.pl 21738 invoked from network); 9 Aug 2026 23:15:38 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=o2.pl; s=20241105; t=1786310138; bh=M0RXieDrqhmyTdTXS6RqiqadW1aNYTX6T+9klhbJb98=; h=From:To:Cc:Subject; b=1WyuGqfNohzwegJ50SesvB7J8g2g+NGtPs7pImeSXhPLdJSmoPWjq6otVWg5iagrX 2iPdbEq3vryLKbSz/EUTNmUsrVa4XhEzIyrRCKMKWt9pXqKMFBhK42OLsrl4Ji5OoR FQ8SF7ejp+w7Apo+d92V+KNvHHdwJdYZ1OW2vDo2mfZgzGFdwVXItwAEEpgbTPw0Fi QB26u0xyg4lw6UpLqsIYOsOrY/3KyLCEYRc5r6RM5C9sGUof0DpyAEXDTz1Z6lWwJm b3iGij5O7UtLq6LHzhNH7YpLJu3POv6Umfa15TidWnYc4GnLJPPxLi1bTkqD3VYjA0 o8++nFR1U4sxA== Received: from ip-94-42-228-58.multimo.pl (HELO jdxpc) (jdx@o2.pl@[94.42.228.58]) (envelope-sender <jdx@o2.pl>) by smtp.tlen.pl (WP-SMTPD) with TLS_AES_256_GCM_SHA384 encrypted SMTP for <newlib@sourceware.org>; 9 Aug 2026 23:15:38 +0200 From: Jan Dubiec <jdx@o2.pl> To: newlib@sourceware.org Cc: Jan Dubiec <jdx@o2.pl>, Torbjorn SVENSSON <torbjorn.svensson@foss.st.com>, Jeff Johnston <jjohnstn@redhat.com> Subject: [PATCH] Make the UNALIGNED_X_Y() macro more robust against errors. Date: Sun, 9 Aug 2026 23:10:00 +0200 Message-ID: <20260809211434.709343-1-jdx@o2.pl> X-Mailer: git-send-email 2.55.0 In-Reply-To: <c0a2cc4c-5b94-40aa-8cb0-6b7631a238a6@foss.st.com> References: <c0a2cc4c-5b94-40aa-8cb0-6b7631a238a6@foss.st.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-WP-MailID: 15f3782819b6baed58ab42df2ba70d3d X-WP-AV: skaner antywirusowy Poczty o2 X-WP-SPAM: NO 0000000 [ceOC] X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, RCVD_IN_PBL, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list <newlib.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/newlib>, <mailto:newlib-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/newlib/> List-Post: <mailto:newlib@sourceware.org> List-Help: <mailto:newlib-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/newlib>, <mailto:newlib-request@sourceware.org?subject=subscribe> Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
Make the UNALIGNED_X_Y() macro more robust against errors.
|
|
Commit Message
Jan Dubiec
Aug. 9, 2026, 9:10 p.m. UTC
On 23.07.2026 13:33, Torbjorn SVENSSON wrote: > On 2026-07-22 01:48, Jan Dubiec wrote:[...]>> /* Nonzero if either X or Y is not aligned on a "long" boundary. */ >> #define UNALIGNED_X_Y(X, Y) \ >> - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) >> + (((long)(intptr_t)X & (sizeof (long) - 1)) | \ >> + ((long)(intptr_t)Y & (sizeof (long) - 1))) > > Not really what you change, but ideally, shouldn't this be: > > + (((long)(intptr_t)(X) & (sizeof (long) - 1)) | \ > + ((long)(intptr_t)(Y) & (sizeof (long) - 1))) > > i.e. putting parenthesis around the macro arguments? I totally agree. Thanks! /J.D. Signed-off-by: Jan Dubiec <jdx@o2.pl> --- newlib/libc/string/local.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Comments
Patch merged. -- Jeff J. On Sun, Aug 9, 2026 at 5:15 PM Jan Dubiec <jdx@o2.pl> wrote: > On 23.07.2026 13:33, Torbjorn SVENSSON wrote: > > On 2026-07-22 01:48, Jan Dubiec wrote:[...]>> /* Nonzero if either X > or Y is not aligned on a "long" boundary. */ > >> #define UNALIGNED_X_Y(X, Y) \ > >> - (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) > >> + (((long)(intptr_t)X & (sizeof (long) - 1)) | \ > >> + ((long)(intptr_t)Y & (sizeof (long) - 1))) > > > > Not really what you change, but ideally, shouldn't this be: > > > > + (((long)(intptr_t)(X) & (sizeof (long) - 1)) | \ > > + ((long)(intptr_t)(Y) & (sizeof (long) - 1))) > > > > i.e. putting parenthesis around the macro arguments? > > I totally agree. Thanks! > > /J.D. > > > Signed-off-by: Jan Dubiec <jdx@o2.pl> > --- > newlib/libc/string/local.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/newlib/libc/string/local.h b/newlib/libc/string/local.h > index 94c7c4a8f..d9bff40ab 100644 > --- a/newlib/libc/string/local.h > +++ b/newlib/libc/string/local.h > @@ -31,8 +31,8 @@ int __wcwidth (wint_t); > #else /* _HAVE_HW_MISALIGNED_ACCESS */ > /* Nonzero if either X or Y is not aligned on a "long" boundary. */ > #define UNALIGNED_X_Y(X, Y) \ > - (((long)(intptr_t)X & (sizeof (long) - 1)) | \ > - ((long)(intptr_t)Y & (sizeof (long) - 1))) > + (((long)(intptr_t)(X) & (sizeof (long) - 1)) | \ > + ((long)(intptr_t)(Y) & (sizeof (long) - 1))) > #endif /* _HAVE_HW_MISALIGNED_ACCESS */ > > /* How many bytes are copied each iteration of the word copy loop. */ > -- > 2.55.0 > >
diff --git a/newlib/libc/string/local.h b/newlib/libc/string/local.h index 94c7c4a8f..d9bff40ab 100644 --- a/newlib/libc/string/local.h +++ b/newlib/libc/string/local.h @@ -31,8 +31,8 @@ int __wcwidth (wint_t); #else /* _HAVE_HW_MISALIGNED_ACCESS */ /* Nonzero if either X or Y is not aligned on a "long" boundary. */ #define UNALIGNED_X_Y(X, Y) \ - (((long)(intptr_t)X & (sizeof (long) - 1)) | \ - ((long)(intptr_t)Y & (sizeof (long) - 1))) + (((long)(intptr_t)(X) & (sizeof (long) - 1)) | \ + ((long)(intptr_t)(Y) & (sizeof (long) - 1))) #endif /* _HAVE_HW_MISALIGNED_ACCESS */ /* How many bytes are copied each iteration of the word copy loop. */