From patchwork Wed Jul 13 10:03:04 2022 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: 223 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a98:d5ce:0:b0:178:cc93:bf7d with SMTP id g14csp166306eik; Wed, 13 Jul 2022 03:11:25 -0700 (PDT) X-Google-Smtp-Source: AGRyM1u/fQ+Pd5LzzSHf3iHxa3a4XHekMC5Jp0w4P5YDCAhhbt2djaCfeM/nI23Oz6rTGym+GTKM X-Received: by 2002:a05:6402:348c:b0:43a:915f:d403 with SMTP id v12-20020a056402348c00b0043a915fd403mr3686229edc.326.1657707084807; Wed, 13 Jul 2022 03:11:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657707084; cv=none; d=google.com; s=arc-20160816; b=C2RMO7IdMKqN4R0PqemyZQqmH6UjXNbDn4+FmLCeVBJ8btyiJ5TgY+HQ9wbUJLCY/C Mp9xLOFEX5Kw4uVNgCA7xWYCkc75VAJ0bLSQFKq7YqLtMUsIbezd3xOOkfXZYXJHYwOi 8qQmh5K1IyQgUI7PXOy0T5HcAv40zSQrNGp8PtGhh+ftpsk1anr8GS/LAEEI+ZlbHK8t vZtIgCEglI/61MqagwTqllMywZu14bmpo9vco74dMBoVXn2SGyALyvhe33oigu3M0PMG Lt1qRhBiv6KfOSKaWuLPpcV7LFrjGRKmOXqqo4VPCcJS5yEYprY7CwsZorszvxcLUAe5 eRhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :content-disposition:mime-version:message-id:subject:to:date :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=3zfsjiv/UqFEG7mxOmqEB+o+0edbr8+YCbs5Z0kFuAM=; b=w+ceADmpEjz68XYPyXj8cnTzYphoZmj30aUu9kOcNbaQdOKlPx9k9/rDweJmniH3xw 64+EhdbCudopMBucCCHf4MI4rbyLJJ2oZ+tH0gMjT9IHanlut0CqraLAZxSXMwjpGg+0 IlO3WtNe2JDolZ/lG1gH3w/ahhqhR02Lg7vcEpbK+pl94HBx9IGz/Pj/vC+rJjm+vJ66 RdZ/YE5u0AaS0zHYDyxuSg9/SYvBgKUfBa13989DGiX3q+h71C6o7Q9cI+uvax5jvvr6 Jzj/8VekonXPfoMc1nSqdOlpcShQqjYorQlZLkW1pd3Y1V9RAhwvsCqn3hmSSSWoQRuz /zJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=OSkjrum5; 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=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id k5-20020a1709062a4500b0072b16a6bc33si16533363eje.352.2022.07.13.03.11.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Jul 2022 03:11:24 -0700 (PDT) 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=@gcc.gnu.org header.s=default header.b=OSkjrum5; 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=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A83113836F90 for ; Wed, 13 Jul 2022 10:06:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A83113836F90 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1657706795; bh=3zfsjiv/UqFEG7mxOmqEB+o+0edbr8+YCbs5Z0kFuAM=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=OSkjrum5c+rpnpswTicDyCZQfsKJJS3CLKzkI21uM4ibHvlDjagknOkEi66gf6+LN uQEjTkpF+yVLMfCl8sxS3Xl7ExQcILimfki63TCbABF/A1fTxndVwMcYMyOVdnx/Vq xqjor+sh+uVLT5cUpVKv8KxsJa5jqeu47YRDiIk0= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by sourceware.org (Postfix) with ESMTPS id E609F3851AA1 for ; Wed, 13 Jul 2022 10:03:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E609F3851AA1 Received: by mail-ej1-x630.google.com with SMTP id ez10so18913290ejc.13 for ; Wed, 13 Jul 2022 03:03:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition; bh=3zfsjiv/UqFEG7mxOmqEB+o+0edbr8+YCbs5Z0kFuAM=; b=tts8ixvv7rLdmVthBMEat0q5LfIe0lAy4bw1Ty0nmFU7LYPOb4slmcfn44wSf0Ok3l 7gelX9TTupUcIvyZO6xXooCVgy9o67eovHXTc0Gu3/STsmv6X0GyaGrdWwOQLUBOdsxy 4ecybagiFHkcpLiPnuuP7bd5vgotuPH3tfCInYQrt+RER0q9ggI0gAa7Psz+YW11IJd/ XaznXKvsWcvUl3OvJyGB/+Bf26pvuHFoff44aza3l93tZRpGXEH+gqhsOMrmtDfLVHE8 9ZBEnjB7Lq6hFqcZ08i+84TBQkXI1pMPTVrGKMkUxXYxiDl3W6c+HoDejSrEuu3msIbL 6oLw== X-Gm-Message-State: AJIora9BGxGPW38z88HmM5QCNE0m+InbrCLfBziWVTdd6OUN5G5rd5Oc fJnP+gCN8OBTxT2G2PGp/ueW0ZKDUlE3Pw== X-Received: by 2002:a17:907:628a:b0:6fe:526c:ebc with SMTP id nd10-20020a170907628a00b006fe526c0ebcmr2431832ejc.531.1657706585744; Wed, 13 Jul 2022 03:03:05 -0700 (PDT) Received: from adacore.com ([45.147.211.82]) by smtp.gmail.com with ESMTPSA id v18-20020a170906293200b006fe8ec44461sm4773168ejd.101.2022.07.13.03.03.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Jul 2022 03:03:05 -0700 (PDT) Date: Wed, 13 Jul 2022 10:03:04 +0000 To: gcc-patches@gcc.gnu.org Subject: [Ada] Generate debug info entry for user-defined access subtype Message-ID: <20220713100304.GA994799@adacore.com> MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-13.2 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Pierre-Marie de Rodat via Gcc-patches From: Pierre-Marie de Rodat Reply-To: Pierre-Marie de Rodat Cc: Eric Botcazou Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1738231864642901603?= X-GMAIL-MSGID: =?utf-8?q?1738231864642901603?= This is consistent with the other kinds of subtypes. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity) : Do not reuse the TYPE_DECL of the base type. diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc --- a/gcc/ada/gcc-interface/decl.cc +++ b/gcc/ada/gcc-interface/decl.cc @@ -3867,7 +3867,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition) case E_Access_Subtype: /* We treat this as identical to its base type; any constraint is meaningful only to the front-end. */ - gnu_decl = gnat_to_gnu_entity (gnat_equiv_type, NULL_TREE, false); + gnu_type = gnat_to_gnu_type (gnat_equiv_type); maybe_present = true; /* The designated subtype must be elaborated as well, if it does @@ -3877,11 +3877,10 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition) && Is_Frozen (Directly_Designated_Type (gnat_entity)) && No (Freeze_Node (Directly_Designated_Type (gnat_entity)))) { - tree gnu_base_type = TREE_TYPE (gnu_decl); - tree gnu_desig_base_type - = TYPE_IS_FAT_POINTER_P (gnu_base_type) - ? TREE_TYPE (TREE_TYPE (TYPE_FIELDS (gnu_base_type))) - : TREE_TYPE (gnu_base_type); + tree gnu_desig_type + = TYPE_IS_FAT_POINTER_P (gnu_type) + ? TREE_TYPE (TREE_TYPE (TYPE_FIELDS (gnu_type))) + : TREE_TYPE (gnu_type); /* If we are to defer elaborating incomplete types, make a dummy type node and elaborate it later. */ @@ -3898,7 +3897,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition) /* Otherwise elaborate the designated subtype only if its base type has already been elaborated. */ - else if (!TYPE_IS_DUMMY_P (gnu_desig_base_type)) + else if (!TYPE_IS_DUMMY_P (gnu_desig_type)) gnat_to_gnu_entity (Directly_Designated_Type (gnat_entity), NULL_TREE, false); }