From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id C9545385843A for ; Wed, 10 Nov 2021 15:37:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C9545385843A Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-390-TIRZQaNZPgK2zBBxCd739A-1; Wed, 10 Nov 2021 10:37:10 -0500 X-MC-Unique: TIRZQaNZPgK2zBBxCd739A-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 790D610066FE; Wed, 10 Nov 2021 15:37:09 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.39.192.82]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9DBB21ACBB; Wed, 10 Nov 2021 15:37:08 +0000 (UTC) From: Florian Weimer To: Joseph Myers Cc: Subject: Re: [PATCH v2] Support C2X printf %b, %B References: <87lf1w743t.fsf@oldenburg.str.redhat.com> Date: Wed, 10 Nov 2021 16:37:06 +0100 In-Reply-To: (Joseph Myers's message of "Wed, 10 Nov 2021 15:30:08 +0000") Message-ID: <877ddg3tul.fsf@oldenburg.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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, 10 Nov 2021 15:37:13 -0000 * Joseph Myers: > On Wed, 10 Nov 2021, Florian Weimer wrote: > >> * Joseph Myers: >> >> > +@item @samp{%b}, @samp{%B} >> > +Print an integer as an unsigned binary number. @samp{%b} uses >> > +lower-case @samp{b} with the @samp{#} flag and @samp{%B} uses >> > +upper-case. @samp{%b} is an ISO C2X feature; @samp{%B} is an >> > +extension recommended by ISO C2X. @xref{Integer Conversions}, for >> > +details. >> >> The new tests do not contain any negative input numbers. Do they result >> in undefined behavior? > > Negative input numbers result in undefined behavior when the specified > argument type is unsigned after the integer promotions, as with %b with no > length modifiers, since printf is specified to behave as if it uses va_arg > (with the promoted version of the specified argument type), and mixing > signed / unsigned types with va_arg is only valid when the value passed is > representable in both types. > > Negative (int) input numbers are valid when the specified argument type is > int (promoted from a narrower unsigned type), and the tests do include > cases passing (int) 0x87654321 to %hb, %hB, %hhb, %hhB to test that. I see. This isn't really clear from the manual, but I assume it applies to %u as well, so it's not really related to your patch. My only concern was with the documentation/test, those have been resolved now. I think the patch can go in. Thanks, Florian