From patchwork Tue Dec 8 18:59:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 41340 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 1285C393C03B; Tue, 8 Dec 2020 18:59:33 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa1.mentor.iphmx.com (esa1.mentor.iphmx.com [68.232.129.153]) by sourceware.org (Postfix) with ESMTPS id 73870386F02A for ; Tue, 8 Dec 2020 18:59:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 73870386F02A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=joseph_myers@mentor.com IronPort-SDR: zmEJ4xiJNnuYBI+pC+nv4WNNWyWGu/30lJQWQ2K8r2gWiIY95/k2Nie65Q/Wg0silStHyHTQLc oI2nARVnckt+t60TVWuexkNmJ6nm/60S2J8T5OM47/8rPLl3x5HRHgR8pfIy2TR38FErqfOsTq nx6ma6wENiSLPtp+b2+KjMfw6h+MmkwH5jdDfuPhjsk1fWA2vcqWfdmNravBmUGMGGG1Qkr+h8 fjWurdCcEkpTyAnKQvtAysX6D9VSTxzb4NQVQvQ23KGcOxYpwVac8swRH1NcOsA7YWiQZvveUz vnE= X-IronPort-AV: E=Sophos;i="5.78,403,1599552000"; d="scan'208";a="58231371" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa1.mentor.iphmx.com with ESMTP; 08 Dec 2020 10:59:29 -0800 IronPort-SDR: PhEk+4FEu1DaypAkwvDjW4oHLGAssAineOVmKOpq6ZfgOF5qzVeA7kocAHRvfLGMFRDk2/ITHa ni6ApLfYrSkmtpLBIL+m7FmxNkfZep4NHwQKm1Phx/maCfoxBFekPuFang11o3xGybZBJ78z1S lBIR7eepj8TlE6YsX+aLdSxb5gIPhhE6mNJSzYjoj8e7nrk7x5C1MuTPGw0ybx+9f0dVx8ZuFv Uku/E3zfBRkbqPI0LxfwNgGS78wNn7t9tH4H1kGqGDTypW7eOuFUfMw4VP2KOkiFyM6f4K8UgS gzk= Date: Tue, 8 Dec 2020 18:59:24 +0000 From: Joseph Myers X-X-Sender: jsm28@digraph.polyomino.org.uk To: Subject: Remove strtoimax, strtoumax, wcstoimax, wcstoumax inlines Message-ID: User-Agent: Alpine 2.22 (DEB 394 2020-01-19) MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-3130.7 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: , Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" inttypes.h has inline implementations of the strtoimax, strtoumax, wcstoimax and wcstoumax functions, despite the corresponding stdlib.h and wchar.h inlines having been removed in 2007 (commit 9b2e9577b228350b15d88303b00097dd58e8d29b). Remove those inlines, thereby eliminating all references to the corresponding __*_internal functions from installed headers (so they could be made into compat symbols in future if desired). Tested for x86_64 and x86. Reviewed-by: Adhemerval Zanella diff --git a/stdlib/inttypes.h b/stdlib/inttypes.h index 611a8b56c3..bcc56f6af6 100644 --- a/stdlib/inttypes.h +++ b/stdlib/inttypes.h @@ -311,124 +311,6 @@ extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __THROW; -#ifdef __USE_EXTERN_INLINES - -# if __WORDSIZE == 64 - -extern long int __strtol_internal (const char *__restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `strtol' but convert to `intmax_t'. */ -__extern_inline intmax_t -__NTH (strtoimax (const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtol_internal (__nptr, __endptr, __base, 0); -} - -extern unsigned long int __strtoul_internal (const char *__restrict __nptr, - char ** __restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `strtoul' but convert to `uintmax_t'. */ -__extern_inline uintmax_t -__NTH (strtoumax (const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoul_internal (__nptr, __endptr, __base, 0); -} - -extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr, - __gwchar_t **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `wcstol' but convert to `intmax_t'. */ -__extern_inline intmax_t -__NTH (wcstoimax (const __gwchar_t *__restrict __nptr, - __gwchar_t **__restrict __endptr, int __base)) -{ - return __wcstol_internal (__nptr, __endptr, __base, 0); -} - -extern unsigned long int __wcstoul_internal (const __gwchar_t * - __restrict __nptr, - __gwchar_t ** - __restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `wcstoul' but convert to `uintmax_t'. */ -__extern_inline uintmax_t -__NTH (wcstoumax (const __gwchar_t *__restrict __nptr, - __gwchar_t **__restrict __endptr, int __base)) -{ - return __wcstoul_internal (__nptr, __endptr, __base, 0); -} - -# else /* __WORDSIZE == 32 */ - -__extension__ -extern long long int __strtoll_internal (const char *__restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `strtol' but convert to `intmax_t'. */ -__extern_inline intmax_t -__NTH (strtoimax (const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoll_internal (__nptr, __endptr, __base, 0); -} - -__extension__ -extern unsigned long long int __strtoull_internal (const char * - __restrict __nptr, - char ** - __restrict __endptr, - int __base, - int __group) - __THROW __nonnull ((1)) __wur; -/* Like `strtoul' but convert to `uintmax_t'. */ -__extern_inline uintmax_t -__NTH (strtoumax (const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoull_internal (__nptr, __endptr, __base, 0); -} - -__extension__ -extern long long int __wcstoll_internal (const __gwchar_t *__restrict __nptr, - __gwchar_t **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -/* Like `wcstol' but convert to `intmax_t'. */ -__extern_inline intmax_t -__NTH (wcstoimax (const __gwchar_t *__restrict __nptr, - __gwchar_t **__restrict __endptr, int __base)) -{ - return __wcstoll_internal (__nptr, __endptr, __base, 0); -} - - -__extension__ -extern unsigned long long int __wcstoull_internal (const __gwchar_t * - __restrict __nptr, - __gwchar_t ** - __restrict __endptr, - int __base, - int __group) - __THROW __nonnull ((1)) __wur; -/* Like `wcstoul' but convert to `uintmax_t'. */ -__extern_inline uintmax_t -__NTH (wcstoumax (const __gwchar_t *__restrict __nptr, - __gwchar_t **__restrict __endptr, int __base)) -{ - return __wcstoull_internal (__nptr, __endptr, __base, 0); -} - -# endif /* __WORDSIZE == 32 */ -#endif /* Use extern inlines. */ - __END_DECLS #endif /* inttypes.h */