From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 74405388A83F for ; Tue, 10 May 2022 20:48:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 74405388A83F Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-587-jnC-5GflOVaueGdUNET6EA-1; Tue, 10 May 2022 16:48:40 -0400 X-MC-Unique: jnC-5GflOVaueGdUNET6EA-1 Received: by mail-qt1-f200.google.com with SMTP id g1-20020ac85801000000b002f3b281f745so15396667qtg.22 for ; Tue, 10 May 2022 13:48:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:from:to:references:in-reply-to :content-transfer-encoding; bh=zhmTWi1tUXnLhv9Cg2HA6g7huHATDAemO7DR8Xk8iL0=; b=K8gAUoY0ZgkBSGtz5s2xZ8bMZpHnqcoQWAdV7kErmpJoq+Y1pzP0lbJDvda7DgUF/c l+Rrs14kUl6M5kU8IMqzr2/7rEi69F0zWW79ZcGb5n1FSqpaSYkZ64Vy6Oh5bNFkFyFq VORaYAKgEUrZ8FKNFNafMGXwgiiHAV2IW56MkS9i5d8pAy9nnsxTp1dXLSDfMvQgFSLl Xxjqg75nKFmXJN9kanHYAZu1MWTCMqFr4DqVIHwLDEYUEiLS2/dLDaUeWphiSzjioZI1 IBO2V4LSkbG8YOP4Lv95pwakBA4DqFGnnYSqvTyaNRsxozG4VAnKgUtjWUJ2GjIlDkmV nMWg== X-Gm-Message-State: AOAM532nCbBUPmDsBHTP68vlQ6Lvl6rRzDk2gEr7C32Efy2W+TJFZyNh RFuhR/KdRzOWOV4OFSLhP21vbNVummqptH7M19MVCiDiYKo0lTp7NgO9ENQUZnAMs0R85eY1nT/ IWWz+a/6f6UxeMWAYqCOEpILFGnJM/179r1jDEP/L4HM1gjNCZ2IT5q8zf9rXZ6wtiQ== X-Received: by 2002:a05:6214:21a5:b0:45a:ea15:625d with SMTP id t5-20020a05621421a500b0045aea15625dmr18400490qvc.62.1652215719948; Tue, 10 May 2022 13:48:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxgWMAwcXndxScMti8tRqkde3sl1/uKihG49XFTSjvduMT79WCFdqgM5YYlCH7i3CLN1oGNYg== X-Received: by 2002:a05:6214:21a5:b0:45a:ea15:625d with SMTP id t5-20020a05621421a500b0045aea15625dmr18400465qvc.62.1652215719518; Tue, 10 May 2022 13:48:39 -0700 (PDT) Received: from [192.168.1.100] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id q7-20020a05620a024700b0069fc13ce1f7sm13329qkn.40.2022.05.10.13.48.37 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 May 2022 13:48:38 -0700 (PDT) Message-ID: Date: Tue, 10 May 2022 16:48:36 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: PING Re: [PATCH RFA] attribs: fix typedefs in generic code [PR105492] From: Jason Merrill To: gcc-patches@gcc.gnu.org References: <20220505180728.2791914-1-jason@redhat.com> In-Reply-To: <20220505180728.2791914-1-jason@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Tue, 10 May 2022 20:48:43 -0000 Ping? On 5/5/22 14:07, Jason Merrill wrote: > In my patch for PR100545 I added an assert to check for broken typedefs in > set_underlying_type, and it found one in this case: > rs6000_handle_altivec_attribute had the same problem as > handle_mode_attribute. So let's move the fixup into decl_attributes. > > Tested that this fixes the ICE on a cross compiler, regression tested > x86_64-pc-linux-gnu, OK for trunk? > > PR c/105492 > > gcc/ChangeLog: > > * attribs.cc (decl_attributes): Fix broken typedefs here. > > gcc/c-family/ChangeLog: > > * c-attribs.cc (handle_mode_attribute): Don't fix broken typedefs > here. > --- > gcc/attribs.cc | 15 +++++++++++++++ > gcc/c-family/c-attribs.cc | 10 ---------- > 2 files changed, 15 insertions(+), 10 deletions(-) > > diff --git a/gcc/attribs.cc b/gcc/attribs.cc > index b219f878042..0648391f0c6 100644 > --- a/gcc/attribs.cc > +++ b/gcc/attribs.cc > @@ -872,6 +872,21 @@ decl_attributes (tree *node, tree attributes, int flags, > tree ret = (spec->handler) (cur_and_last_decl, name, args, > flags|cxx11_flag, &no_add_attrs); > > + /* Fix up typedefs clobbered by attribute handlers. */ > + if (TREE_CODE (*node) == TYPE_DECL > + && anode == &TREE_TYPE (*node) > + && DECL_ORIGINAL_TYPE (*node) > + && TYPE_NAME (*anode) == *node > + && TYPE_NAME (cur_and_last_decl[0]) != *node) > + { > + tree t = cur_and_last_decl[0]; > + DECL_ORIGINAL_TYPE (*node) = t; > + tree tt = build_variant_type_copy (t); > + cur_and_last_decl[0] = tt; > + TREE_TYPE (*node) = tt; > + TYPE_NAME (tt) = *node; > + } > + > *anode = cur_and_last_decl[0]; > if (ret == error_mark_node) > { > diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc > index b1953a45f9b..a280987c111 100644 > --- a/gcc/c-family/c-attribs.cc > +++ b/gcc/c-family/c-attribs.cc > @@ -2204,16 +2204,6 @@ handle_mode_attribute (tree *node, tree name, tree args, > TYPE_QUALS (type)); > if (TYPE_USER_ALIGN (type)) > *node = build_aligned_type (*node, TYPE_ALIGN (type)); > - > - tree decl = node[2]; > - if (decl && TYPE_NAME (type) == decl) > - { > - /* Set up the typedef all over again. */ > - DECL_ORIGINAL_TYPE (decl) = NULL_TREE; > - TREE_TYPE (decl) = *node; > - set_underlying_type (decl); > - *node = TREE_TYPE (decl); > - } > } > > return NULL_TREE; > > base-commit: 000f4480005035d0811e009a7cb25b42721f0a6e