From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id AF651385C420 for ; Mon, 7 Nov 2022 08:41:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AF651385C420 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com Received: by mail-wm1-x32a.google.com with SMTP id p16so6396134wmc.3 for ; Mon, 07 Nov 2022 00:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=tTvR8TjqlGzPuyyhaxWuiiRa3yMQdL+HaJopaUHOaKs=; b=VEQgfpD9ImJ7L8xQaL+EnRSM+5UjmxblGNr1lCUsz+d43tAb9TfhtH5f6ahSqVijy9 TDm9lDu2UPEraxNQtXB84OOHZEnGtxJtyudNXDMK+HFXRhXzjzKA+otyl+bKV7mFY37M uoLO8TGelR8IVidu4MicywZXwh9wK9qJzEBptuLStPAvEDosvmp3o1MLpohscdiSLXTf DNrPK9h+wOtPTPCW+rMWedC5vN+axQ1vsJGs53lPoj4pO2hV0y8vUPdgD8qrSPBnegbV TKqY6IxHuimnVciztNCTlk2sCn575I/y14GxWWbalUess4wm1koqH/fZFuaz133tK0eg mXPg== 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=tTvR8TjqlGzPuyyhaxWuiiRa3yMQdL+HaJopaUHOaKs=; b=7JipRzcTbSGDSrkgITz5fo9fO3QpqBsGbqbNVPT230HMPalSVnC8lfK7Y4NvwCUevm evzMsaprpgImfCcNCTCGkGPRlYrwi31SWOn/Ec/mjg3banHdjVhVPVwI1ljM9CIcGvS4 YCd+LvoIuTOTCaFed3afaIk6o2cZYJIllxVCPBVR8Zetk3aGutP3pEkPTqonm/3D/myq 36o01CqXIUG2uPvMB2jtzgM7ou39tcZahdtJzpHTLE2dQbJWp0gzlRk2urk1HorBBB+R WZUDBEexEc6LhAePDoVhg0Vf+5RhMDeozb0OUeovj5sBdEyAzX6iClGR89qGl+6TgR7x PkYg== X-Gm-Message-State: ANoB5plsWT/VY+hOVlp4wxE46PxGeU5wCQ82drxTTpKIEt4AE4DuYjLT z8FtgIXzUjuC+hSpy+EvWC3d8hP43TGoow== X-Google-Smtp-Source: AA0mqf4H3MvH66Pa4MNvLLksmE7lF4CP0cqCbKbqW0lffzP3KIgUNR4+OQxThqNx1zOlzzEOghrvrQ== X-Received: by 2002:a1c:f407:0:b0:3cf:a856:ba12 with SMTP id z7-20020a1cf407000000b003cfa856ba12mr3846407wma.18.1667810471633; Mon, 07 Nov 2022 00:41:11 -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 v128-20020a1cac86000000b003a3170a7af9sm7517058wme.4.2022.11.07.00.41.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Nov 2022 00:41:11 -0800 (PST) From: =?UTF-8?q?Marc=20Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Bob Duff Subject: [COMMITTED] ada: Fix inherited postconditions in inlined subprograms Date: Mon, 7 Nov 2022 09:41:08 +0100 Message-Id: <20221107084108.151693-1-poulhies@adacore.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.4 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 List-Id: From: Bob Duff Protect the building of postcondition pragmas in case the postcondition is not present due to inlining. gcc/ada/ * freeze.adb (Build_Inherited_Condition_Pragmas): Do nothing if A_Post is empty. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/freeze.adb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 888e2ecb7af..1fdc9d0d60e 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -1718,11 +1718,16 @@ package body Freeze is end; end if; - New_Prag := New_Copy_Tree (A_Post); - Rewrite - (Expression (First (Pragma_Argument_Associations (New_Prag))), - Class_Post); - Append (New_Prag, Decls); + -- A_Post can be null here if the postcondition was inlined in the + -- called subprogram. + + if Present (A_Post) then + New_Prag := New_Copy_Tree (A_Post); + Rewrite + (Expression (First (Pragma_Argument_Associations (New_Prag))), + Class_Post); + Append (New_Prag, Decls); + end if; end if; end Build_Inherited_Condition_Pragmas; -- 2.34.1