From patchwork Tue Dec 19 14:30:32 2023 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: 180995 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:24d3:b0:fb:cd0c:d3e with SMTP id r19csp1978733dyi; Tue, 19 Dec 2023 06:32:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IF6sf6Mv58r6+UFnF2DVhd3xBvX5/CfrN9wOGXcrKPqfblZeOZUeXqlnq2UbOsSH8wsSXeL X-Received: by 2002:a05:6122:920:b0:4b6:e6e1:49b3 with SMTP id j32-20020a056122092000b004b6e6e149b3mr419894vka.17.1702996376991; Tue, 19 Dec 2023 06:32:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1702996376; cv=pass; d=google.com; s=arc-20160816; b=aUTXPsn8fAWgqXUSghSIYEzMPWZVMqo6y+XVSS/0SjkfDX4xTD1ht09CJmDoIQRkvU 1cjm1P3279DbQVqCg+4tt6U8WuXKnHUYbKDuAFW6m2o7IqcB6BH/YojP3auZ0GFwMFdA F7YmdKJBx1azZnTrCg82w5dV3Y4xwO/0FDbV/nZMFUJUyn2ql8XohQdsNEOIcK4TzsDL 6zBmfBMM1lKoBnKuMCMRX2cOxxZzpCfVQqgYMEwwegIkgthbEAKMKn4uGyS3HmPtv42F fX8RBqlVKrBXO9TsmxVAUb60o0ZlA2UhAluihZfEbhQuuqYRnsnunm8JNsRuHznC6+Kq Onyw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=RAFajeBBIxq0mDMbVoNwsW6jMMm5j74KaOi2APkQdjU=; fh=VfpjIVwbQyKCLGOH4P8eKpbC0rx5s9zOz2f2H065zJg=; b=Fl6zSFSpDUZICiSy3lR46D82LDXOtGe8tlJJPG73CzIS2JnbYGrYIJjmnuZlXHvjqp EzNUVfEoBwX0A8SQnxk8tliWuQxJt/vw/tWCwNm5IVr8eWZV3ERVvrV29Qgpm41idHb8 B1s+94aaMuDcau9f/2fTRvr6V/OW7Q0hYOKdb0eZ1AEISYNSBNGi0R3SxLMwTgxSrTOZ P3IWGEF6MMDDlMbg7sGIjSYfJq3WbNMo3OhApO3l+ir5S53C8Mm1kA5LSa+PZrmJ2+Jf uTrCCiXCYHuBxgUY49zrMw2lnYQ5G+1BPzbASmvOTkW5YBc5XA38l3+un22G1G8U0XpI PN0Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@adacore.com header.s=google header.b=hNOAUJ88; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=adacore.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id bk20-20020a056102549400b0046490387218si5004950vsb.217.2023.12.19.06.32.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 06:32:56 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@adacore.com header.s=google header.b=hNOAUJ88; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=adacore.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9B2F33884515 for ; Tue, 19 Dec 2023 14:31:30 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 8FF58386EC38 for ; Tue, 19 Dec 2023 14:30:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8FF58386EC38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8FF58386EC38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::336 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702996235; cv=none; b=Q7q7+/fJbStCrzLIcZCE1zG+ml0M1rMXoFwbKpzAPF+Z6d0tNiukr1VkROQ2TtDKSnOoxKLXxwwKIG0E8xgV4yiVMNciX8BU3CFt+VuWvCg99SBCrsZ+8HCZ2ZOE7OwoJmsjcqwKOKq9ma17ky9yGA47t/KyTuKFtfZheKxCytc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702996235; c=relaxed/simple; bh=/hY/NxE1qn0uuDtMcZHQsdeFl1USguI6ZDto/tTAU34=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=q/r53dWuGsg8OPpRqJzdProM5p6bfcmjPlvqLWtShE9mH3lEnRxE55EE441F7WNmr5vHQP7RkYuzkoAx2I02DTEMENiDcOW/yWMX6g+K8GNmZvqdL2hv1e+6mvOe5u/bPl47VOxPVApUbCccc11JVZ9I7wtNBTQNm3Oogg9qrME= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-40c3ca9472dso53147655e9.2 for ; Tue, 19 Dec 2023 06:30:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1702996233; x=1703601033; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=RAFajeBBIxq0mDMbVoNwsW6jMMm5j74KaOi2APkQdjU=; b=hNOAUJ88XP/v+yO+AcS+Lvx42qZoX5mEYMi3v2tU0JCUJE1ogWwbM0/kf8QSS+ztvR bbFCOe2APoH6UCdUNoiP3buTdhmHrFqmY2uwcq0fJ3e8TjqkFY52sSgLt8Fo/E/RLD1z JjLKGNop7Krwfwh4fzkXm1St3l4USW3hNvjm4IVWovAX0gftgi+L/kBmstI5C1N/JJI1 Tf/JJF0WBrxvyanF01rsxj/RhncBK1GCKqHFt5PdDQYp/der3yQj3lHLMJuZygn7NbD2 nwSVJkoV8NBIc5FpGNymQhEwXyRZ/fwcHb5DnZs7RmII9Yp7OJQOzJWBfzHeb4i0w5kQ uzFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702996233; x=1703601033; 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=RAFajeBBIxq0mDMbVoNwsW6jMMm5j74KaOi2APkQdjU=; b=m6jCsQ7YkuEz+NcEDeynq9LyR6fBA0eoCBUk3/vsxwV25slrrSEwxMa2vliK8qVbyW vUvvxjye1pyT77ZMX2lIuNxTMgSVhCrYtkMT+z52lSQTP/l8OgNMYM8h1U+HpGlt5Evd qvvVtve/6DqGsfa10luLSTo8Z+xzdHbN+NJ6jTQC98uTNSkUle7HQEc/1kHsn/ObqKzH XGLp3QrJNifksV3hHuNMQCwgKdtNO6Vu+DP0kBsHt9H8n3ZAEMSmj3SS+c+CryN/wcO1 tCKe3WDcthEqiMErmE+ijH8r54VCpyAs3gTZmcoZq24PnqYBZtgxheFjtQE30aTn6Ai3 tIZA== X-Gm-Message-State: AOJu0YxFkTdDPLMaw4N94nQzg+avuQHkfinovHkjcFkG6VPUU1/ulTUY c1Tf3juVKvo8tsFgP0OmuhIM2TlYCX7oi4O5zhw= X-Received: by 2002:a05:600c:b99:b0:40d:2d70:d71f with SMTP id fl25-20020a05600c0b9900b0040d2d70d71fmr223792wmb.150.1702996233352; Tue, 19 Dec 2023 06:30:33 -0800 (PST) Received: from poulhies-Precision-5550.lan ([2001:861:3382:1a90:fe1e:443:c34f:edaa]) by smtp.gmail.com with ESMTPSA id r2-20020a056000014200b003366224319csm7816572wrx.53.2023.12.19.06.30.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 06:30:32 -0800 (PST) From: =?utf-8?q?Marc_Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Steve Baird Subject: [COMMITTED] ada: Cope with Sem_Util.Enclosing_Declaration oddness. Date: Tue, 19 Dec 2023 15:30:32 +0100 Message-ID: <20231219143032.454847-1-poulhies@adacore.com> X-Mailer: git-send-email 2.43.0 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, T_SCC_BODY_TEXT_LINE 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1785721128929471639 X-GMAIL-MSGID: 1785721128929471639 From: Steve Baird Sem_Util.Enclosing_Declaration can return a non-empty result which is not a declaration; clients may need to compensate for the case where an N_Subprogram_Specification node is returned. One such client is the function Is_Actual_Subp_Of_Inst. gcc/ada/ * sem_ch8.adb (Is_Actual_Subp_Of_Inst): After calling Enclosing_Declaration, add a check for the case where one more Parent call is needed to get the enclosing declaration. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_ch8.adb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index c5bf0864671..2e6b1b6d785 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -2691,7 +2691,7 @@ package body Sem_Ch8 is -- Each attempt to find a suitable primitive of a particular -- type operates on its own copy of the original renaming. -- As a result the original renaming is kept decoration and - -- side-effect-free. + -- side-effect free. -- Inherit the overloaded status of the renamed subprogram name @@ -6550,6 +6550,16 @@ package body Sem_Ch8 is Decl := Enclosing_Declaration (E); + -- Enclosing_Declaration does not always return a + -- declaration; cope with this irregularity. + if Decl in N_Subprogram_Specification_Id + and then Nkind (Parent (Decl)) in + N_Subprogram_Body | N_Subprogram_Declaration + | N_Subprogram_Renaming_Declaration + then + Decl := Parent (Decl); + end if; + -- Look for the suprogram renaming declaration built -- for a generic actual subprogram. Unclear why -- Original_Node call is needed, but sometimes it is.