From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 105679 invoked by alias); 28 Jul 2018 07:32:57 -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 105660 invoked by uid 89); 28 Jul 2018 07:32:56 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=HX-Received:Sat, D*it, build_int_cst, sk:transfe X-HELO: mail-yb0-f175.google.com Received: from mail-yb0-f175.google.com (HELO mail-yb0-f175.google.com) (209.85.213.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 28 Jul 2018 07:32:54 +0000 Received: by mail-yb0-f175.google.com with SMTP id k124-v6so2906027ybk.6; Sat, 28 Jul 2018 00:32:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=PL6ZArUgxhqZNv3DKOEYE+5c6vhcE4rVeygfu0d8FM8=; b=cGQE5ig/UqBqhAD4itiIIzK5pa/JCmZT5hX6U3hn7mRdXxRUqZbuU+M/uL+ks+qBlq lJVymya+4XdBGv+4l55bO5vwiO5pnMuNCaioX6Gr3F14EQ1M6Zp6tJ/GQR1sGe8vPdF0 e3SVl50G8LM9V6zXsSG61gAQLruENLx9zArWzeWU2WPbU9OjfjMmaStnZppvB7e2OG27 6l39zD3zZRW8Zcc0YXJQ28MlqF0yUmN7sUPJG2wrytBX9HfGetTTqDeOdDKCFLAnp8wk jBhWyg5bdeWY2Pxf4X+77Y7LPNNBdQ8jG+GDTa31VHFBLR0t9xPo+lrDN2LDBEJT4beg azSA== MIME-Version: 1.0 From: Paul Richard Thomas Date: Sat, 28 Jul 2018 07:32:00 -0000 Message-ID: Subject: [Patch, fortran] PR80477 - [OOP] Polymorphic function result generates memory leak To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="00000000000073126205720a3c77" X-SW-Source: 2018-07/txt/msg01773.txt.bz2 --00000000000073126205720a3c77 Content-Type: text/plain; charset="UTF-8" Content-length: 775 Several attempts, including mine, were made to fix this bug since it was posted. They were all attacking the wrong place. Instead of providing the free of the class _data as part of the call to 'add_a_type' it should be included in the post block of the argument processing in the call to 'assign_a_type'. The comment in the patch says the rest. Bootstrapped and regtested on FC28/x86_64 - OK for trunk? Paul 2017-07-27 Paul Thomas PR fortran/80477 * trans-expr.c (gfc_conv_procedure_call): Allocatable class results being passed to a derived type formal argument must have the _data component deallocated after use. 2017-07-27 Paul Thomas PR fortran/80477 * gfortran.dg/class_result_7.f90: New test. --00000000000073126205720a3c77 Content-Type: text/x-patch; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jk53lx330 Content-length: 4185 SW5kZXg6IGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CioqKiBnY2MvZm9ydHJhbi90cmFucy1leHByLmMJKHJldmlz aW9uIDI2MjQ0NCkKLS0tIGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwkod29y a2luZyBjb3B5KQoqKioqKioqKioqKioqKiogZ2ZjX2NvbnZfcHJvY2VkdXJl X2NhbGwgKGdmY19zZSAqIHNlLCBnZgoqKiogNTM2MCw1MzY2ICoqKioKICAJ CSAgICAgICYmIGUtPnRzLnR5cGUgPT0gQlRfQ0xBU1MKICAJCSAgICAgICYm ICFDTEFTU19EQVRBIChlKS0+YXR0ci5kaW1lbnNpb24KICAJCSAgICAgICYm ICFDTEFTU19EQVRBIChlKS0+YXR0ci5jb2RpbWVuc2lvbikKISAJCSAgICBw YXJtc2UuZXhwciA9IGdmY19jbGFzc19kYXRhX2dldCAocGFybXNlLmV4cHIp OwogIAogIAkJICAvKiBXcmFwIHNjYWxhciB2YXJpYWJsZSBpbiBhIGRlc2Ny aXB0b3IuIFdlIG5lZWQgdG8gY29udmVydAogIAkJICAgICB0aGUgYWRkcmVz cyBvZiBhIHBvaW50ZXIgYmFjayB0byB0aGUgcG9pbnRlciBpdHNlbGYgYmVm b3JlLAotLS0gNTM2MCw1Mzg0IC0tLS0KICAJCSAgICAgICYmIGUtPnRzLnR5 cGUgPT0gQlRfQ0xBU1MKICAJCSAgICAgICYmICFDTEFTU19EQVRBIChlKS0+ YXR0ci5kaW1lbnNpb24KICAJCSAgICAgICYmICFDTEFTU19EQVRBIChlKS0+ YXR0ci5jb2RpbWVuc2lvbikKISAJCSAgICB7CiEgCQkgICAgICBwYXJtc2Uu ZXhwciA9IGdmY19jbGFzc19kYXRhX2dldCAocGFybXNlLmV4cHIpOwohIAkJ ICAgICAgLyogVGhlIHJlc3VsdCBpcyBhIGNsYXNzIHRlbXBvcmFyeSwgd2hv c2UgX2RhdGEgY29tcG9uZW50CiEgCQkJIG11c3QgYmUgZnJlZWQgdG8gYXZv aWQgYSBtZW1vcnkgbGVhay4gICovCiEgCQkgICAgICBpZiAoZS0+ZXhwcl90 eXBlID09IEVYUFJfRlVOQ1RJT04KISAJCQkgICYmIENMQVNTX0RBVEEgKGUp LT5hdHRyLmFsbG9jYXRhYmxlKQohIAkJCXsKISAJCQkgIHRyZWUgemVybzsK ISAJCQkgIHplcm8gPSBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUgKHBhcm1z ZS5leHByKSwgMCk7CiEgCQkJICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlu cHV0X2xvY2F0aW9uLCBORV9FWFBSLAohIAkJCQkJCSBsb2dpY2FsX3R5cGVf bm9kZSwKISAJCQkJCQkgcGFybXNlLmV4cHIsIHplcm8pOwohIAkJCSAgdG1w ID0gYnVpbGQzX3YgKENPTkRfRVhQUiwgdG1wLAohIAkJCQkJICBnZmNfY2Fs bF9mcmVlIChwYXJtc2UuZXhwciksCiEgCQkJCQkgIGJ1aWxkX2VtcHR5X3N0 bXQgKGlucHV0X2xvY2F0aW9uKSk7CiEgCQkJICBnZmNfYWRkX2V4cHJfdG9f YmxvY2sgKCZwYXJtc2UucG9zdCwgdG1wKTsKISAJCQkgIGdmY19hZGRfbW9k aWZ5ICgmcGFybXNlLnBvc3QsIHBhcm1zZS5leHByLCB6ZXJvKTsKISAJCQl9 CiEgCQkgICAgfQogIAogIAkJICAvKiBXcmFwIHNjYWxhciB2YXJpYWJsZSBp biBhIGRlc2NyaXB0b3IuIFdlIG5lZWQgdG8gY29udmVydAogIAkJICAgICB0 aGUgYWRkcmVzcyBvZiBhIHBvaW50ZXIgYmFjayB0byB0aGUgcG9pbnRlciBp dHNlbGYgYmVmb3JlLApJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9jbGFzc19yZXN1bHRfNy5mOTAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoq KiogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc19yZXN1bHRfNy5m OTAJKG5vbmV4aXN0ZW50KQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9jbGFzc19yZXN1bHRfNy5mOTAJKHdvcmtpbmcgY29weSkKKioqKioqKioq KioqKioqCioqKiAwICoqKioKLS0tIDEsMzYgLS0tLQorICEgeyBkZy1kbyBj b21waWxlIH0KKyAhIHsgZGctb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3JpZ2lu YWwiIH0KKyAhCisgISAgVGVzdCB0aGUgZml4IGZvciBQUjgwNDc3CisgIQor ICEgQ29udHJpYnV0ZWQgYnkgU3RlZmFubyBaYWdoaSAgPHN0ZWZhbm8uemFn aGlAY25yLml0PgorICEKKyBtb2R1bGUgYV90eXBlX20KKyAgICBpbXBsaWNp dCBub25lCisgICAgdHlwZSA6OiBhX3R5cGVfdAorICAgICAgIHJlYWwgOjog eAorICAgIGVuZHR5cGUKKyBjb250YWlucworICAgIHN1YnJvdXRpbmUgYXNz aWduX2FfdHlwZShsaHMsIHJocykKKyAgICAgICB0eXBlKGFfdHlwZV90KSwg aW50ZW50KGlub3V0KSA6OiBsaHMKKyAgICAgICB0eXBlKGFfdHlwZV90KSwg aW50ZW50KGluKSAgICA6OiByaHMKKyAgICAgICBsaHMleCA9IHJocyV4Cisg ICAgZW5kIHN1YnJvdXRpbmUKKyAKKyAgICBmdW5jdGlvbiBhZGRfYV90eXBl KGxocywgcmhzKSByZXN1bHQoIHJlcyApCisgICAgICAgdHlwZShhX3R5cGVf dCksIGludGVudChpbikgIDo6IGxocworICAgICAgIHR5cGUoYV90eXBlX3Qp LCBpbnRlbnQoaW4pICA6OiByaHMKKyAgICAgICBjbGFzcyhhX3R5cGVfdCks IGFsbG9jYXRhYmxlIDo6IHJlcworICAgICAgIGFsbG9jYXRlIChhX3R5cGVf dCA6OiByZXMpCisgICAgICAgcmVzJXggPSBsaHMleCArIHJocyV4CisgICAg ZW5kIGZ1bmN0aW9uCisgZW5kIG1vZHVsZQorIAorIHByb2dyYW0gcG9seW1v cnBoaWNfb3BlcmF0b3JzX21lbW9yeV9sZWFrcworICAgIHVzZSBhX3R5cGVf bQorICAgIGltcGxpY2l0IG5vbmUKKyAgICB0eXBlKGFfdHlwZV90KSA6OiBh ID0gYV90eXBlX3QoMSkgLCBiID0gYV90eXBlX3QoMikKKyAgICBjYWxsIGFz c2lnbl9hX3R5cGUgKGEsIGFkZF9hX3R5cGUoYSxiKSkgICAgICAgICAgICAg ICEgZ2VuZXJhdGVkIGEgbWVtb3J5IGxlYWsKKyBlbmQKKyAhIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiYnVpbHRpbl9mcmVlIiAxICJv cmlnaW5hbCIgfSB9CisgISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgImJ1aWx0aW5fbWFsbG9jIiAxICJvcmlnaW5hbCIgfSB9CkluZGV4 OiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3RyYW5zZmVyX2NsYXNzXzMu ZjkwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0K --00000000000073126205720a3c77--