From patchwork Thu May 31 10:48:38 2018 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: 923306 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-478817-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="d+RciptH"; 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 40xPNP5vB1z9s0W for ; Thu, 31 May 2018 20:49:25 +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=BhQD8YWwLCTU6KeV1NCtW59MePP6ZugPr4+0HXh0wX4ZpJIK2b QP5hzFP3FiV7OSn2ytpCDlcr6/40NSjXc0TL0Drk6zl4vpgmxzjfjWgabC83T7ZF u7xu/q7+8HMIQe0p6Ush29M6+LaUAK3IbZRK/hua8Y9LlM9cGyF+u0EoI= 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=t470O0lV/M5k13Z2XBHohABVLYc=; b=d+RciptHq2bxT9r+NebQ e+3oTToxhhoUv+SksRecvFicJexNY85ZtCOEycfCLObwgKnatLHWNCrdJJeJRvsQ dLJ042vuFsJR4D/5nevILUVVkJAQ2hiRTDPpJwDz/4IHApfpDpa7Z4brkBZC/hNK Of+33w0+BcdRBQuEPTujTcg= Received: (qmail 107812 invoked by alias); 31 May 2018 10:48:56 -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 100646 invoked by uid 89); 31 May 2018 10:48:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=etype, Etype, Original_Node, original_node 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; Thu, 31 May 2018 10:48:44 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 8760B560D4; Thu, 31 May 2018 06:48:38 -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 J8eMBDdA+GSh; Thu, 31 May 2018 06:48:38 -0400 (EDT) Received: from tron.gnat.com (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) by rock.gnat.com (Postfix) with ESMTP id 769A7117F92; Thu, 31 May 2018 06:48:38 -0400 (EDT) Received: by tron.gnat.com (Postfix, from userid 4862) id 759C74C2; Thu, 31 May 2018 06:48:38 -0400 (EDT) Date: Thu, 31 May 2018 06:48:38 -0400 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Piotr Trojanek Subject: [Ada] Set Etype on rewriteen Max_Queue_Length expressions Message-ID: <20180531104838.GA119712@adacore.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-IsSubscribed: yes Rewriting of Max_Queue_Length expression into N_Integer_Literal should probably be done in expansion and not in analysis, but anyway it should not strip the expression from its Etype because backends (e.g. GNATprove) expect that Etype to be present. No frontend test is provided, because GNAT doesn't care about the missing Etype decoration. This patch allows to simplify AST processing in GNATprove. Tested on x86_64-pc-linux-gnu, committed on trunk 2018-05-31 Piotr Trojanek gcc/ada/ * sem_prag.adb (Analyze_Pragma): Set Etype on the rewritten Max_Queue_Length expression. --- gcc/ada/sem_prag.adb +++ gcc/ada/sem_prag.adb @@ -18833,6 +18833,7 @@ package body Sem_Prag is if Nkind (Arg) /= N_Integer_Literal then Rewrite (Arg, Make_Integer_Literal (Sloc (Arg), Val)); + Set_Etype (Arg, Etype (Original_Node (Arg))); end if; Record_Rep_Item (Entry_Id, N);