From patchwork Tue Dec 6 14:01:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Marc_Poulhi=C3=A8s?= X-Patchwork-Id: 61562 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 07C98384C911 for ; Tue, 6 Dec 2022 14:02:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 07C98384C911 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1670335332; bh=YebmQGEWVGgLykD3OJrgEuQGCQOP4cPqfrJ5iBDOrrs=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=Dwq1lnLYr6J3sXGDalvV6wJ52Se+ZIc58g07P6uoe6hgBrSKsqO1zP8nFx3X6a00x U6II4nE7gxw8uC2pR469VsB5/uqVsm6/YX/c/RwiKijWyAUYjZspW4B505eiGWFs0b ls+e4lOvNI2E+HC5cIR2h1iMTiAT311Uxxjn2qsA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id F2B503848E2F for ; Tue, 6 Dec 2022 14:01:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F2B503848E2F Received: by mail-wr1-x42f.google.com with SMTP id d1so23558302wrs.12 for ; Tue, 06 Dec 2022 06:01:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YebmQGEWVGgLykD3OJrgEuQGCQOP4cPqfrJ5iBDOrrs=; b=3eWi7Cbcmmi2TMdJO9NEEY+a/83gAVZImAPy4dhbVnX2CFayV90SInVeFvQ6aL6a4W Xhp/5zT0ZjGv4opyZOeGdT+B98ucPIA7K5MuCme4c4aeOLMTbAfXshVxPuko5w0/Mbh1 MTSgaGER1nTeYov+je6lsZDlh61WYWqPNDBrOyAMblNhjpLc0p+1r3a3jqAZ6q3HhXtm dIE6kZeCbGzSP+rAS+pD6M4NnzA3YiYEhcPvFcVnh89HJsVoY4+NzAni7Nfhk2qynY7s IWRM7OINh70axJPDZcotWi5Lcq0ExTKqAy6N5m5f21Pkb4mEE/HsjWr5NslUmOF92DNM VSEw== X-Gm-Message-State: ANoB5pkbXTpphCshsM3H7rtviM1Qfbduny6KuhLMxsp8jP7plQL2Q4p9 4OYEfHaTjaPhCJl2uh8U2anHl8hlua3Qi+mB X-Google-Smtp-Source: AA0mqf4qXrxlcUvSCAYodiNSDEIdinSBBmLdmJuud9qhTSnf0LQUuQuxtkXB9MBxHMKV9yixeJWc9Q== X-Received: by 2002:a5d:4f0d:0:b0:242:65d:b750 with SMTP id c13-20020a5d4f0d000000b00242065db750mr32539032wru.367.1670335291890; Tue, 06 Dec 2022 06:01:31 -0800 (PST) Received: from poulhies-Precision-5550.lan (static-176-191-105-132.ftth.abo.bbox.fr. [176.191.105.132]) by smtp.gmail.com with ESMTPSA id p15-20020a05600c358f00b003c6b874a0dfsm29469511wmq.14.2022.12.06.06.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 06:01:31 -0800 (PST) To: gcc-patches@gcc.gnu.org Cc: Liaiss Merzougue Subject: [COMMITTED] ada: Add Codepeer Exemption + simplify TO_C code. Date: Tue, 6 Dec 2022 15:01:26 +0100 Message-Id: <20221206140126.716950-1-poulhies@adacore.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: =?utf-8?q?Marc_Poulhi=C3=A8s_via_Gcc-patches?= From: =?utf-8?q?Marc_Poulhi=C3=A8s?= Reply-To: =?utf-8?q?Marc_Poulhi=C3=A8s?= Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" From: Liaiss Merzougue This patch simplify the TO_C code to have a single branch for raising exception. Furthermore, adding pragma annotate for codepeer to ignore uninitialized value since this is caused because we have input check before the initialization. gcc/ada/ * libgnat/i-c.adb (To_C): Simplify code for having a single exception raise. Add pragma annotate about uninitialized value which happen only on exception raising. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/libgnat/i-c.adb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gcc/ada/libgnat/i-c.adb b/gcc/ada/libgnat/i-c.adb index 4b50d18a5a1..28660219b6e 100644 --- a/gcc/ada/libgnat/i-c.adb +++ b/gcc/ada/libgnat/i-c.adb @@ -186,7 +186,7 @@ is (Item : char_array; Trim_Nul : Boolean := True) return String is - Count : Natural; + Count : Natural := 0; From : size_t; begin @@ -1177,7 +1177,7 @@ is To : size_t; begin - if Target'Length < Item'Length then + if Target'Length < Item'Length + (if Append_Nul then 1 else 0) then raise Constraint_Error; else @@ -1210,17 +1210,14 @@ is Target'First + (Item'Length - 1))'Initialized); if Append_Nul then - if To > Target'Last then - raise Constraint_Error; - else - Target (To) := char32_nul; - Count := Item'Length + 1; - end if; - + Target (To) := char32_nul; + Count := Item'Length + 1; else Count := Item'Length; end if; end if; end To_C; + pragma Annotate (CodePeer, False_Positive, "validity check", + "Count is only uninitialized on abnormal return."); end Interfaces.C;