From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5697 invoked by alias); 25 Oct 2015 21:33:41 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 5677 invoked by uid 89); 25 Oct 2015 21:33:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-oi0-f47.google.com Received: from mail-oi0-f47.google.com (HELO mail-oi0-f47.google.com) (209.85.218.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Sun, 25 Oct 2015 21:33:38 +0000 Received: by oiao187 with SMTP id o187so90767091oia.3; Sun, 25 Oct 2015 14:33:37 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.202.96.2 with SMTP id u2mr21200798oib.95.1445808816950; Sun, 25 Oct 2015 14:33:36 -0700 (PDT) Received: by 10.202.168.133 with HTTP; Sun, 25 Oct 2015 14:33:36 -0700 (PDT) In-Reply-To: <20151025164719.077974ce@vepi2> References: <20151025164719.077974ce@vepi2> Date: Mon, 26 Oct 2015 01:04:00 -0000 Message-ID: Subject: Re: [Patch, fortran] PR67171 - [6 regression] sourced allocation From: Paul Richard Thomas To: Andre Vehreschild Cc: "fortran@gcc.gnu.org" , gcc-patches Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2015-10/txt/msg02622.txt.bz2 Dear Andre, Committed as revision 229303 with extra comments and tests for PR61819 and PR61830. I'll see what I can do to backport the fix for the latter, since it is a revision. Thanks for the review Paul On 25 October 2015 at 16:47, Andre Vehreschild wrote: > Hi Paul, > > I had a look at your patch, especially at the allocate() specific part > and have nothing serious to complain about. I would love to see more > comments to help beginners find there way in the code, but that's a > thing I will never get. :-) > > Therefore, from my perspective ok for trunk and thanks for the patch. > > Regards, > Andre > > On Sat, 24 Oct 2015 15:08:30 +0200 > Paul Richard Thomas wrote: > >> Dear All, >> >> This patch does four things: >> (i) On deallocating class components, the vptr is set to point to the >> vtable of the declared type; >> (ii) When digging out the last class reference, a NULL is returned if >> the allocatable component is to the right of a part reference with >> non-zero rank, so that the resulting ICE is removed. The previous >> modification takes care of these cases for gfc_reset_vptr and >> gfc_reset_len; >> (iii) gfc_reset_vptr has been simplified by the use of >> gfc_get_vptr_from_expr; and >> (iv) All variable expressions for the source are passed to >> gfc_trans-assignment, so that array sections work correctly. >> >> I see that Andre has already reserved the testcase >> allocate_with_source_10, for the pending patch that I undertook to >> review, so I will change this to #12 on submission >> >> OK for trunk? >> >> Cheers >> >> Paul >> >> 2015-01-24 Paul Thomas >> >> PR fortran/67171 >> * trans-array.c (structure_alloc_comps): On deallocation of >> class components, reset the vptr to the declared type vtable >> and reset the _len field of unlimited polymorphic components. >> *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on >> allocatable component references to the right of part reference >> with non-zero rank and return NULL. >> (gfc_reset_vptr): Simplify this function by using the function >> gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE. >> (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns >> NULL return. >> * trans-stmt.c (gfc_trans_allocate): Rely on the use of >> gfc_trans_assignment if expr3 is a variable expression since >> this deals correctly with array sections. >> >> 2015-01-24 Paul Thomas >> >> PR fortran/67171 >> * gfortran.dg/allocate_with_source_10.f03: New test > > > -- > Andre Vehreschild * Email: vehre ad gmx dot de -- Outside of a dog, a book is a man's best friend. Inside of a dog it's too dark to read. Groucho Marx