From patchwork Fri Jan 10 03:11:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam James X-Patchwork-Id: 104448 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 535243858C3A for ; Fri, 10 Jan 2025 03:12:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 535243858C3A X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) by sourceware.org (Postfix) with ESMTP id 355CE3858D20 for ; Fri, 10 Jan 2025 03:12:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 355CE3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gentoo.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gentoo.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 355CE3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:ea4a:1:5054:ff:fec7:86e4 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736478722; cv=none; b=rOnsVZKAX12iH3qQmdHrXt2ptlj5Ayw3BFKub3WvloBHumZ+4F1p5Id71OpAE4z5VZae9PpPx/b+bqghf7CGy5XFDRfxS5C95rKcYKpQPKiAsepDmYhz9vBKYoyz2UuAd0zdejskbAEhlKvl2CndvaT2rhl8+04asDhhYg+KRUA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736478722; c=relaxed/simple; bh=cU0dYGDO2OZDodskbFOy70u2xbjvbvKaqhYQZb1xVMc=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=DGo6PAkQu48Yc58HfNCQcNtOzv0rosFh/kiSGsdgDKfJk6hr3qaFaIYbx1Nhu+Lc0tvaLmDvzyTRF74zyrWmi1h0+lhZRbtaHw/0tc6yOQUqZLMoYFYbom1fq4QoySDnyhJY/sNxKxh3M3Qxc46FPQ2TaNX4aSqaLk9BzVzfayc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 355CE3858D20 From: Sam James To: libc-alpha@sourceware.org Cc: Joseph Myers , "H.J. Lu" , Sam James Subject: [PATCH] malloc: obscure calloc use in tst-calloc Date: Fri, 10 Jan 2025 03:11:44 +0000 Message-ID: <328b6145af0d5c1d2c3fc5ef44cb7b747173d021.1736478704.git.sam@gentoo.org> X-Mailer: git-send-email 2.48.0.rc2 MIME-Version: 1.0 X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org Similar to a9944a52c967ce76a5894c30d0274b824df43c7a and f9493a15ea9cfb63a815c00c23142369ec09d8ce, we need to hide calloc use from the compiler to accommodate GCC's r15-6566-g804e9d55d9e54c change. First, include tst-malloc-aux.h, but then use `volatile` variables for size. The test passes without the tst-malloc-aux.h change but IMO we want it there for consistency and to avoid future problems (possibly silent). --- malloc/tst-calloc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) base-commit: dad44389f2f96523080e3b105eee1b1ab8b19722 prerequisite-patch-id: 6bc066b9be8e3c65fae35848708646513d151266 diff --git a/malloc/tst-calloc.c b/malloc/tst-calloc.c index 77a32f8052..122b2cbeaf 100644 --- a/malloc/tst-calloc.c +++ b/malloc/tst-calloc.c @@ -23,6 +23,7 @@ #include #include +#include "tst-malloc-aux.h" /* Number of samples per size. */ #define N 50000 @@ -94,16 +95,19 @@ random_test (void) static void null_test (void) { + /* Obscure allocation size from the compiler. */ + volatile size_t max_size = UINT_MAX; + volatile size_t zero_size = 0; /* If the size is 0 the result is implementation defined. Just make sure the program doesn't crash. The result of calloc is deliberately ignored, so do not warn about that. */ DIAG_PUSH_NEEDS_COMMENT; DIAG_IGNORE_NEEDS_COMMENT (10, "-Wunused-result"); calloc (0, 0); - calloc (0, UINT_MAX); - calloc (UINT_MAX, 0); - calloc (0, ~((size_t) 0)); - calloc (~((size_t) 0), 0); + calloc (0, max_size); + calloc (max_size, 0); + calloc (0, ~((size_t) zero_size)); + calloc (~((size_t) zero_size), 0); DIAG_POP_NEEDS_COMMENT; }