From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116889 invoked by alias); 15 Jun 2017 12:07:54 -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 116848 invoked by uid 89); 15 Jun 2017 12:07:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=cured, weil, cures X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-yw0-f180.google.com Received: from mail-yw0-f180.google.com (HELO mail-yw0-f180.google.com) (209.85.161.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 15 Jun 2017 12:07:48 +0000 Received: by mail-yw0-f180.google.com with SMTP id l75so4339971ywc.3; Thu, 15 Jun 2017 05:07:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=CbgS89S+fY5GOYckUpmAzDKAnzw1LpY50k4nHTC8V48=; b=FOry+IPDRPs73ubDjh/LKMN0gtrV3PLmgJ2GvdSYLOhAsHtUQbdl4Xw6X/F+z6dW+q wZrzNioGCov3E8Qoof19VRC2W4zusBLklFLuoij30zaHkpwuvI0FokxuM4b1HTYrpBLP uL6Pt2tq+kjY3izvgRNKR3xREh17qbHtPmYvG/hovZPG1quYs8DCoLYY4vmAao04F4Xj qybzQvq2uhBDi/IE1X0BF2uRMpL7dAQ+IQ5PlPzw++gRV2yPMgM1YeC08rQ1t6+r5UXP 7ufT83rnE2sQ+b444g4aBMn4C5/Xcoq4GShJpDxkHX5gwe7sZ4jTWldGlFhujDa9Mvjf 8GKQ== X-Gm-Message-State: AKS2vOyy/P+X9u+JCwa3nbKVSuTunY/+jZZHaIHCE3kvC8ON2vxLTSXQ o7pxLQcl7TQKu76jiglboPZOygnn1g9W X-Received: by 10.129.69.3 with SMTP id s3mr4554167ywa.202.1497528471903; Thu, 15 Jun 2017 05:07:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.129.174.2 with HTTP; Thu, 15 Jun 2017 05:07:51 -0700 (PDT) From: Janus Weil Date: Thu, 15 Jun 2017 12:07:00 -0000 Message-ID: Subject: [Patch, Fortran, F03] PR 80983: memory leak when calling procedure-pointer component with allocatable result To: gfortran , gcc-patches Content-Type: multipart/mixed; boundary="f403045e5f009c0ffb0551fe840e" X-SW-Source: 2017-06/txt/msg01111.txt.bz2 --f403045e5f009c0ffb0551fe840e Content-Type: text/plain; charset="UTF-8" Content-length: 772 Hi all, the attached patch fixes a runtime memory leak with procedure-pointer components (PPCs). gfortran correctly deallocates scalar allocatable function results (also for procedure pointers), but fails to do so for PPCs, which is cured by my patch. [Note: Since gfortran translates any type-bound procedure call into a PPC call internally, the patch also cures memory leaks with TBPs.] It regtests cleanly on x86_64-linux-gnu. Ok for trunk? Cheers, Janus 2017-06-15 Janus Weil PR fortran/70983 * trans-expr.c (gfc_conv_procedure_call): Deallocate the result of scalar allocatable procedure-pointer components. 2017-06-15 Janus Weil PR fortran/70983 * gfortran.dg/proc_ptr_comp_51.f90: New test. --f403045e5f009c0ffb0551fe840e Content-Type: text/plain; charset="US-ASCII"; name="pr80983.diff" Content-Disposition: attachment; filename="pr80983.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3ydd65r0 Content-length: 1013 SW5kZXg6IGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBnY2MvZm9ydHJhbi90cmFucy1leHByLmMJKHJldmlz aW9uIDI0OTEzMCkKKysrIGdjYy9mb3J0cmFuL3RyYW5zLWV4cHIuYwkod29y a2luZyBjb3B5KQpAQCAtNjEzMiw3ICs2MTMyLDggQEAgZ2ZjX2NvbnZfcHJv Y2VkdXJlX2NhbGwgKGdmY19zZSAqIHNlLCBnZmNfc3ltYm9sICoKICAgICAg YWZ0ZXIgdXNlLiBUaGlzIG5lY2Vzc2l0YXRlcyB0aGUgY3JlYXRpb24gb2Yg YSB0ZW1wb3JhcnkgdG8KICAgICAgaG9sZCB0aGUgcmVzdWx0IHRvIHByZXZl bnQgZHVwbGljYXRlIGNhbGxzLiAgKi8KICAgaWYgKCFieXJlZiAmJiBzeW0t PnRzLnR5cGUgIT0gQlRfQ0hBUkFDVEVSCi0gICAgICAmJiBzeW0tPmF0dHIu YWxsb2NhdGFibGUgJiYgIXN5bS0+YXR0ci5kaW1lbnNpb24gJiYgIWNvbXAp CisgICAgICAmJiAoKHN5bS0+YXR0ci5hbGxvY2F0YWJsZSAmJiAhc3ltLT5h dHRyLmRpbWVuc2lvbiAmJiAhY29tcCkKKwkgIHx8IChjb21wICYmIGNvbXAt PmF0dHIuYWxsb2NhdGFibGUgJiYgIWNvbXAtPmF0dHIuZGltZW5zaW9uKSkp CiAgICAgewogICAgICAgdG1wID0gZ2ZjX2NyZWF0ZV92YXIgKFRSRUVfVFlQ RSAoc2UtPmV4cHIpLCBOVUxMKTsKICAgICAgIGdmY19hZGRfbW9kaWZ5ICgm c2UtPnByZSwgdG1wLCBzZS0+ZXhwcik7Cg== --f403045e5f009c0ffb0551fe840e Content-Type: text/x-fortran; charset="US-ASCII"; name="proc_ptr_comp_51.f90" Content-Disposition: attachment; filename="proc_ptr_comp_51.f90" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3yddhgn1 Content-length: 1119 ISB7IGRnLWRvIGNvbXBpbGUgfQohCiEgUFIgODA5ODM6IFtGMDNdIG1lbW9y eSBsZWFrIHdoZW4gY2FsbGluZyBwcm9jZWR1cmUtcG9pbnRlciBjb21wb25l bnQgd2l0aCBhbGxvY2F0YWJsZSByZXN1bHQKIQohIENvbnRyaWJ1dGVkIGJ5 IEphbnVzIFdlaWwgPGphbnVzQGdjYy5nbnUub3JnPgoKcHJvZ3JhbSB0ZXN0 CiAgaW1wbGljaXQgbm9uZQoKICB0eXBlIDo6IGNvbmNyZXRlX3R5cGUKICAg IHByb2NlZHVyZSAoYWxsb2NfaW50ZWdlciksIHBvaW50ZXIsIG5vcGFzcyA6 OiBhbGxvYwogIGVuZCB0eXBlCgogIHByb2NlZHVyZSAoYWxsb2NfaW50ZWdl ciksIHBvaW50ZXIgOjogcHAKCiAgdHlwZShjb25jcmV0ZV90eXBlKSA6OiBj b25jcmV0ZQoKICBwcmludCAqLCBhbGxvY19pbnRlZ2VyKCkgICAgICEgY2Fz ZSAjMTogcGxhaW4gZnVuY3Rpb24KCiAgcHAgPT4gYWxsb2NfaW50ZWdlcgog IHByaW50ICosIHBwKCkgICAgICAgICAgICAgICAgISBjYXNlICMyOiBwcm9j ZWR1cmUgcG9pbnRlcgoKICBjb25jcmV0ZSAlIGFsbG9jID0+IGFsbG9jX2lu dGVnZXIKICBwcmludCAqLCBjb25jcmV0ZSAlIGFsbG9jKCkgICEgY2FzZSAj MzogcHJvY2VkdXJlLXBvaW50ZXIgY29tcG9uZW50Cgpjb250YWlucwoKICAg ZnVuY3Rpb24gYWxsb2NfaW50ZWdlcigpIHJlc3VsdChyZXMpCiAgICAgIGlu dGVnZXIsIGFsbG9jYXRhYmxlIDo6IHJlcwogICAgICBhbGxvY2F0ZShyZXMs IHNvdXJjZT0xMykKICAgZW5kIGZ1bmN0aW9uCgplbmQKCiEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fZnJlZSIgMyAi b3JpZ2luYWwiIH0gfQo= --f403045e5f009c0ffb0551fe840e--