From patchwork Tue Aug 20 09:51:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre-Marie de Rodat X-Patchwork-Id: 1150000 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-507355-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="IYUHQ2V7"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46CR3Y0Jrvz9s4Y for ; Tue, 20 Aug 2019 19:54:48 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; q=dns; s=default; b=dKjZAQ7AjRgHSWGOaO0Kdeu4guFplrqlgqZ7JJ78rPNEG3plkW zAKYkcuIRQ2BnT1rDEbCS8g5S9wBppxZ9gRqnIxxl5QYiLOrZNDCrUhMLKR02wwf j+nGbJgPsFV4V4+mTJKz8Z7WtG0jJGo4NE/q7c3r+aHhe7Ss/P7tlevug= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type; s= default; bh=pTBGUCG/d7/vAv8e73jBA3WiRS8=; b=IYUHQ2V7kcTVG7I+NC5p nroWEhHOBf2+tEQODTVUIo5WC3O8KQCEeywzJtk7ZYyYB6qQd56yjA2h/tiZucht ehEkiHpv2mxGcgvamjoiSlgc+s0Do2blxYMOz2/GcD31GZ2B2RJv/j7VLnlOCbnQ P5+jCLQltqqy7BJ6SCInV28= Received: (qmail 123347 invoked by alias); 20 Aug 2019 09:51:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 122288 invoked by uid 89); 20 Aug 2019 09:51:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1143 X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 20 Aug 2019 09:51:30 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 52BBF560C5; Tue, 20 Aug 2019 05:51:30 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id ffO0V4jm37Qf; Tue, 20 Aug 2019 05:51:30 -0400 (EDT) Received: from tron.gnat.com (tron.gnat.com [205.232.38.10]) by rock.gnat.com (Postfix) with ESMTP id 406D5560C0; Tue, 20 Aug 2019 05:51:30 -0400 (EDT) Received: by tron.gnat.com (Postfix, from userid 4862) id 3DAE063E; Tue, 20 Aug 2019 05:51:30 -0400 (EDT) Date: Tue, 20 Aug 2019 05:51:30 -0400 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Piotr Trojanek Subject: [Ada] Inconsistent scope chain due to quantified expression Message-ID: <20190820095129.GA75614@adacore.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes Routine Build_DIC_Procedure_Declaration appears to be heavily inspired by Build_Invariant_Procedure_Declaration; they both wrap an expression attached to a type inside an internal procedure. Initially none of them were calling Set_Last_Entity. For Build_Invariant_Procedure_Declaration this was fixed previously. For Build_DIC_Procedure_Declaration this is fixed here. The issue affects the GNATprove tool and is not visible to end users of the GNAT compiler. No simple test is available because this would require a debug session. Tested on x86_64-pc-linux-gnu, committed on trunk 2019-08-20 Piotr Trojanek gcc/ada/ * exp_util.adb (Build_DIC_Procedure_Declaration): Set the last entity of the generated Default_Initial_Condition procedure in order to construct a proper entity chain. --- gcc/ada/exp_util.adb +++ gcc/ada/exp_util.adb @@ -1977,6 +1977,7 @@ package body Exp_Util is Set_Scope (Obj_Id, Proc_Id); Set_First_Entity (Proc_Id, Obj_Id); + Set_Last_Entity (Proc_Id, Obj_Id); -- Generate: -- procedure DIC (_object : );