From patchwork Tue Jan 19 09:48:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Botcazou X-Patchwork-Id: 1428550 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=adacore-com.20150623.gappssmtp.com header.i=@adacore-com.20150623.gappssmtp.com header.a=rsa-sha256 header.s=20150623 header.b=lVAr39fk; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DKkPQ5C9vz9sT6 for ; Tue, 19 Jan 2021 20:48:41 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A90B73938C13; Tue, 19 Jan 2021 09:48:38 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id CF233389C425 for ; Tue, 19 Jan 2021 09:48:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CF233389C425 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=botcazou@adacore.com Received: by mail-wr1-x431.google.com with SMTP id c5so19041322wrp.6 for ; Tue, 19 Jan 2021 01:48:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=BZp4U+es20yOXSbldvGEyhLCxZyiGENv7yYgiNxgtww=; b=lVAr39fkxPgMdKVbcpJ+uSvB+5fze0c6FAkgbeOiHPapqwUqRMn/VVlFIAUP1Tq+H4 qwZZrrFX5XjRL1rJeDPlQO54O7jigX83vOvjSLueTRU3eJdiqo3kaRf3C712PNYNSoDS 1/hE7AQtCP0wgG24dDLgumYirpq4tBR/Mlmhwfuv7LXCsATyWgRYXLTQ19uXriw4Dk8f 5a31QDhIzJlqUvk2p6vlcXE4N9hAOmR8k2o2V9EM9Z5N2fDLJfBzrMgRA+s8/m8XopjP 8caYiXlSP8hvpg9ue79eO82f5n2gNQ18FyHnYnYKGitLve0z8BgphMwnyn4po5CVLDKS YbQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=BZp4U+es20yOXSbldvGEyhLCxZyiGENv7yYgiNxgtww=; b=C652DiazKdDNLSU9O1gRbDk1mxcliLOzWIsALmf/OTQbU3Ve6bxcd2Geg7k++l1bLw fcRq0qTFK05A9qvBUJ9pt1iuISMD2AAvKyV2sVvEKWOJLmwKxzK62sjjuKAoo0u2lKT4 nwNOrSIYuLq+lud1DPFFyEXZQifmFDwCQb3XbWxO1w2bNY3CLMaH28DEpbxajxoer9U9 7e6CMtvbKwBKXX7AtTk4NgaLzAanaMy+XZ8kHQjOnxR3O2aJHouRstf/JbAY9T0XKsQY U6ASr3Luopryv24UKR5vOvAkmREcLR8y0VH58Ya0b53qc32FmYLZ/mwV5d07Gdq+qu2h mJ/A== X-Gm-Message-State: AOAM533R0iVeZ0iyDIGTP7tB0MBGuzxAPC/JGecLwQ8PY+JCiTJcv4W3 /i8L4lyWHRREEDTS4UQxOxxhrus6sqyCp2VI X-Google-Smtp-Source: ABdhPJxeLddUB8+F/jtUMm/cZijOWuxLTg2mCDZhbxGaQsHXEr1GM9NA8mlcuIPcgDS8erAnoEBsig== X-Received: by 2002:a05:6000:cc:: with SMTP id q12mr3519846wrx.335.1611049712518; Tue, 19 Jan 2021 01:48:32 -0800 (PST) Received: from fomalhaut.localnet ([2a01:e0a:41b:84f0:cf71:f5e0:b050:bede]) by smtp.gmail.com with ESMTPSA id t4sm3386244wru.66.2021.01.19.01.48.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 19 Jan 2021 01:48:31 -0800 (PST) From: Eric Botcazou X-Google-Original-From: Eric Botcazou To: gcc-patches@gcc.gnu.org Subject: Fix PR ada/98740 Date: Tue, 19 Jan 2021 10:48:30 +0100 Message-ID: <4674484.f4mTRMsDmp@fomalhaut> MIME-Version: 1.0 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: , Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" It's a long-standing GENERIC tree sharing issue. Tested on x86_64-suse-linux, applied on the mainline, 10 and 9 branches. 2021-01-19 Eric Botcazou PR ada/98740 * gcc-interface/trans.c (add_decl_expr): Always mark TYPE_ADA_SIZE. diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index 4ab26d3e2dd..6402c73ded0 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -8479,15 +8479,16 @@ add_decl_expr (tree gnu_decl, Node_Id gnat_node) MARK_VISITED (DECL_SIZE_UNIT (gnu_decl)); MARK_VISITED (DECL_INITIAL (gnu_decl)); } - /* In any case, we have to deal with our own TYPE_ADA_SIZE field. */ - else if (TREE_CODE (gnu_decl) == TYPE_DECL - && RECORD_OR_UNION_TYPE_P (type) - && !TYPE_FAT_POINTER_P (type)) - MARK_VISITED (TYPE_ADA_SIZE (type)); } else add_stmt_with_node (gnu_stmt, gnat_node); + /* Mark our TYPE_ADA_SIZE field now since it will not be gimplified. */ + if (TREE_CODE (gnu_decl) == TYPE_DECL + && RECORD_OR_UNION_TYPE_P (type) + && !TYPE_FAT_POINTER_P (type)) + MARK_VISITED (TYPE_ADA_SIZE (type)); + /* If this is a variable and an initializer is attached to it, it must be valid for the context. Similar to init_const in create_var_decl. */ if (TREE_CODE (gnu_decl) == VAR_DECL