From patchwork Fri Nov 22 14:40:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Heiko_Ei=C3=9Ffeldt?= X-Patchwork-Id: 2014342 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=hexco.de header.i=heiko@hexco.de header.a=rsa-sha256 header.s=s1-ionos header.b=pWvc1w/8; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Xvykf1zJfz1yCc for ; Sat, 23 Nov 2024 01:52:36 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 431F03857023 for ; Fri, 22 Nov 2024 14:52:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 431F03857023 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=hexco.de header.i=heiko@hexco.de header.a=rsa-sha256 header.s=s1-ionos header.b=pWvc1w/8 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.24]) by sourceware.org (Postfix) with ESMTPS id 2CF993858C48 for ; Fri, 22 Nov 2024 14:51:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2CF993858C48 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=hexco.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hexco.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2CF993858C48 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.24 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732287119; cv=none; b=tmmgNLuEXmW8uRpLtor4eHrO0fvEYUoC1S55+o1NZc3O825Invggb69eb3XkTmPxWt4kCk5jJjfYc3dQuZBVmglWD3Bnie+D7p0R3VSKGYWXF6rRq/EhzZ5Nv5uRPfUnnyWGHym7j0ffG8JA/FcIPhuTvvVCzmTvaoL7IfRJwy8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1732287119; c=relaxed/simple; bh=EBpx5F1SPqzX7HhSI4CKV4W1pVJ84QfBgj8l7a9wylk=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=u1wFFi4/KvVKiTznVI9m5m4qFUHGG4JaIMVH8xxQsxqBuFGVCDnY2z7/lfLbwrlm2bEDu2cl7REPe/slzhIa3u5Cj+Yprt3wMV49w8RoYaFszrGkB2E6+P+AtJNdL4zx+umk8WTvmTTHYkWUIH07dJFxebO0jft9RC++W6k3uCY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2CF993858C48 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hexco.de; s=s1-ionos; t=1732287115; x=1732891915; i=heiko@hexco.de; bh=EBpx5F1SPqzX7HhSI4CKV4W1pVJ84QfBgj8l7a9wylk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:To:From:Subject: Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=pWvc1w/8hpImcqlqF9ZJ3OYzbxtIz3rcQZjkeBluoBksFEKjRVn4rSLLGp1/k/aO lkGlFJoCnQ0kI83FHg+PmKtBt1bC8t0Hs2CRk2Ov/rO8B/UCqDRi1JiemJ4ylHKSv nelJfDgJTBt2wSeJMYE2DgNv3ClX4Yf0t3dxTaAWLB0V9Iu56+iWnNEoy5wJGAYMV 2nFZzwDzJkJn9ojczPmRSp5UIhVCcPd9fITphtCvW08xkxfBunpesrGjcaFdGSbRh EQcPDdvhwNjC4jNqGF2aRs/VC0mgm+dg3iWqxc7ppgkLSTWXOvLCLERvOkxL8eBlz GP44Gpy7s2ALs2GFxw== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from [192.168.178.51] ([89.182.200.150]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M9WqY-1tJzCB0kp2-00FDPt for ; Fri, 22 Nov 2024 15:51:55 +0100 Message-ID: Date: Fri, 22 Nov 2024 15:40:02 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches@gcc.gnu.org From: =?utf-8?q?Heiko_Ei=C3=9Ffeldt?= Subject: [PATCH] replace atoi with strtol in varasm.cc (decode_reg_name_and_count) [PR114540] X-Provags-ID: V03:K1:sLThHTyux9pvBbvJAu/v8+y4b4RT4bqIhbjYHMhV2AZsbNnE8zc p7HCLIpZSO+I0cTFWlaNjNd0qZoTiGea6asoN9T9FLXWu94u8euwn0/sVkc+/z2PEiLrdjO BP/EdUB8JCeHYYUuM8H+DaAbd2KwRlK/f/izGe78Zmmh0tnwJb15Y0vLca7XKMaYCa00luS sd+qu+92OpiwQ6ir+AkYQ== UI-OutboundReport: notjunk:1;M01:P0:+UCni98Fuaw=;D4SV80qVizNDEyTt0tZuuqh7iFI gWKEptkVFp5Z47DrcbTdCSiomoWAUtu3zwz7jnEJVpP88eflvuaJ1T0NPzfXA2jebL2HwX1Cq jiTdaDrl3aTebnUCSbX+Onpzk0JNAD7xHbruZEPKrZM+xdAnng8aImm2Bf472TyBiqCrToGs+ rzk3anYzMfMEsgkWk4rdFmVenxtoMJFWR5umLGeSMD+sVw3OwKjuCvd5k7bnGSAKGoFujtYy/ 7Np8hcZPoU/SUxa2KpriCJybisjapTMuCwPXFFzEZ1tfBjPiQs70UURald/6V+QKterQyfykG oQN+U6qMeIbf4zcisitsWIk9sYtXtNDxZnwZRI79s+gGLRlQQhvpFXAGGwfOXTgnHs2ey9YNW lW+NxbTPkx+MiZf8tAE6Yas3Gprtk8b8kJhSPEoWHXDXl9g5yQtRl1thnsp4tnkOlXvSksuE/ GjQGY/rmhUonXaP3emZ2RJCxUXF53D5F/YuyJcoCSRU7vSlUH4LV2rT+o3AOXD+RASjnR24WS 2L0QfhQegfVZTKg/tHXe4aUX2wvN3IvkB98dWanSwTmkbiE+FDSClQMKGXWPoraaYRjktyabv CvsjdNyFPfhFv9HoRicdxvJatFB9O0riqHZuB6nQUkm/itdV2KTT1RZutAX+usV+tLBGwAYYy zOtEVqboYb+I86Bqjjou21YjM1MFF3bIBMWqlQ9jKtRQF3T9Bfqd9UAomb3hed7Dvc1QuXq+P 2RVHk4UklemX9YW9KZW9rO1vjoivJSX1kVaSrdY6TL3+j7Ns0a4nvclbCzhFwcKz0zXMA2cOw yshurLS2AJUNiFdJqPV2Dp1ImDD1JqBs6jiw8Sma92gmays+WCN3265jsMqX3AmXgVrxJ2ak0 5PG0GsY1koQL7FrlkDacsiUjHehxhe+XiZfDu5GiRCdcPAAxrApRxmEGkAx0X1/FALOqx8DRV UM5wa7wwTjW3/oOaMtknTf0PlsBbWuA6K9iLtlchyQtCbsPaTQhHjgH1jCcta6dOi/xTCMq6c ckW1i+zQq648hNj+sE= X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org A simple replacement of atoi() with strtol() in varasm.cc:decode_reg_name_and_count(). Parsing now has errno ERANGE checking, eg no undetected overflow. Being new it is difficult for me to come up with a good test case. ---             return -2; diff --git a/gcc/varasm.cc b/gcc/varasm.cc index acc4b4a0419..d3c60eaf4d6 100644 --- a/gcc/varasm.cc +++ b/gcc/varasm.cc @@ -993,8 +993,11 @@ decode_reg_name_and_count (const char *asmspec, int *pnregs)           break;        if (asmspec[0] != 0 && i < 0)         { -         i = atoi (asmspec); -         if (i < FIRST_PSEUDO_REGISTER && i >= 0 && reg_names[i][0]) +         char *pend{}; +         errno = 0; +         i = strtol (asmspec, &pend, 10); +         if (errno != ERANGE +             && i < FIRST_PSEUDO_REGISTER && i >= 0 && reg_names[i][0])             return i;           else