From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9]) by sourceware.org (Postfix) with ESMTPS id 5D64D3858D39 for ; Wed, 22 Sep 2021 14:17:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5D64D3858D39 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux-m68k.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=nefkom.net Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4HF0k76qxjz1qwdY; Wed, 22 Sep 2021 16:17:35 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4HF0k76WG6z1qqkB; Wed, 22 Sep 2021 16:17:35 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id K4gPsS0RuOtb; Wed, 22 Sep 2021 16:17:35 +0200 (CEST) X-Auth-Info: 7U74E3rKA8F9D7+vFKcrtWSgxwLHHxI7DroRv9rW1+JdomI1h2S8KhqRyQW6dUWG Received: from igel.home (ppp-46-244-176-100.dynamic.mnet-online.de [46.244.176.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Wed, 22 Sep 2021 16:17:35 +0200 (CEST) Received: by igel.home (Postfix, from userid 1000) id AE8A72C08F2; Wed, 22 Sep 2021 16:17:34 +0200 (CEST) From: Andreas Schwab To: Florian Weimer via Libc-alpha Cc: Florian Weimer Subject: Re: [PATCH 2/2] vfprintf: Unify argument handling in process_arg References: <1a90d7bf325cd6606bcb083ffc5cd528eefad219.1632294469.git.fweimer@redhat.com> X-Yow: ..I'll make you an ASHTRAY!! Date: Wed, 22 Sep 2021 16:17:34 +0200 In-Reply-To: <1a90d7bf325cd6606bcb083ffc5cd528eefad219.1632294469.git.fweimer@redhat.com> (Florian Weimer via Libc-alpha's message of "Wed, 22 Sep 2021 09:10:37 +0200") Message-ID: <87y27owv7l.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Sep 2021 14:17:38 -0000 On Sep 22 2021, Florian Weimer via Libc-alpha wrote: > Instead of checking a pointer argument for NULL, use helper macros > defined differently in the non-positional and positional cases. > This avoids frequent conditional checks and a GCC 12 warning > about comparing pointers against NULL which cannot be NULL. Ok. > @@ -1545,8 +1474,28 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap, unsigned int mode_flags) > /* Process current format. */ > while (1) > { > - process_arg (((struct printf_spec *) NULL)); > - process_string_arg (((struct printf_spec *) NULL)); > +#define PROCESS_ARG_INT() va_arg (ap, int) > +#define PROCESS_ARG_LONG_INT() va_arg (ap, long int) > +#define PROCESS_ARG_LONG_LONG_INT() va_arg (ap, long long int) > +#define PROCESS_ARG_POINTER() va_arg (ap, void *) > +#define PROCESS_ARG_STRING() va_arg (ap, const char *) > +#define PROCESS_ARG_UNSIGNED_INT() va_arg (ap, unsigned int) > +#define PROCESS_ARG_UNSIGNED_LONG_INT() va_arg (ap, unsigned long int) > +#define PROCESS_ARG_UNSIGNED_LONG_LONG_INT() va_arg (ap, unsigned long long int) > +#define PROCESS_ARG_WCHAR_T() va_arg (ap, wchar_t) > +#define PROCESS_ARG_WSTRING() va_arg (ap, const wchar_t *) I think it would be nicer to spell these macros in lower case. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."