From patchwork Sat Mar 24 21:25:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerry DeLisle X-Patchwork-Id: 890555 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-475418-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=charter.net Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="Q2SEkONa"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 407tkG59NVz9s1q for ; Sun, 25 Mar 2018 08:25:58 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:message-id:date:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=hBHRxIAi7DQeAD3X X84gEnNj+f0Q3tPisqn1m33McOVsOYUzA65GBymZ0rpJzys5D9Gd7a61lbGzDKCx KHYaxNUX+zKcNLK3DAWOULTkcDdpWSzOkM5HK4a2Cd5tEV8wNSfON/NtPBerfUqa wZnLi6E151DSbQ12/0Xn4Vs4cEA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:message-id:date:mime-version:content-type :content-transfer-encoding; s=default; bh=ohmWCx5bVqrePTd7xBMikz dP0j0=; b=Q2SEkONaygh9sYPBBE8KsMZZxVTomBSL2iIxHGJBygQW05R6XrjISE RXS9pj1NLUIupPk53nJ7Mc8qZu1I8pf8tWZ0aIso4oZYeoCkuzqHBpyAuhwm3twq jDTOuoKiagV2pVdIxATWooTUhY47qEtlYt6JzNJAABT4kpJBmwLNk= Received: (qmail 16056 invoked by alias); 24 Mar 2018 21:25:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 15912 invoked by uid 89); 24 Mar 2018 21:25:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=sk:jvdelis, U*jvdelisle X-Spam-User: qpsmtpd, 2 recipients X-HELO: mtaout002-public.msg.strl.va.charter.net Received: from mtaout002-public.msg.strl.va.charter.net (HELO mtaout002-public.msg.strl.va.charter.net) (68.114.190.27) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 24 Mar 2018 21:25:40 +0000 Received: from impout001 ([68.114.189.16]) by mtaout002.msg.strl.va.charter.net (InterMail vM.9.00.023.01 201-2473-194) with ESMTP id <20180324212538.XTZF7360.mtaout002.msg.strl.va.charter.net@impout001>; Sat, 24 Mar 2018 16:25:38 -0500 Received: from amdr.localdomain ([96.41.213.35]) by impout001 with charter.net id RxRd1x0030mPCJg01xRd7A; Sat, 24 Mar 2018 16:25:38 -0500 X-Authority-Analysis: v=2.2 cv=ffHd8wYF c=1 sm=1 tr=0 a=NNeuWy7OTYa7gJ+3pFFB5Q==:117 a=NNeuWy7OTYa7gJ+3pFFB5Q==:17 a=IkcTkHD0fZMA:10 a=x7bEGLp0ZPQA:10 a=mDV3o1hIAAAA:8 a=t5wnfp3p11ap1yRtLbQA:9 a=QEXdDO2ut3YA:10 a=_FVE-zBwftR9WsbkzFJk:22 X-Auth-id: anZkZWxpc2xlQGNoYXJ0ZXIubmV0 From: Jerry DeLisle To: "fortran@gcc.gnu.org" Cc: GCC Patches Subject: [patch,fortran] Bug 69497 - ICE in gfc_free_namespace Message-ID: <2a78763f-b5e3-2696-78d0-8c808720ba1a@charter.net> Date: Sat, 24 Mar 2018 14:25:36 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 This one has been hanging around for a while. Dominique found this fix. I retested with the 30 cases provided in the PR. These are all invalid fortran. They give errors now and do not ICE. Regression tested on trunk. OK? Jerry PS I will use the first of the many test cases for the testsuite with appropriate ChangeLog, etc. 2018-03-24 Jerry DeLisle Dominique d'Humieres PR fortran/84506 * symbol.c (gfc_free_namespace): Delete the assert and if refs count is less than zero, free the namespece. Something is halfway and other errors will resound. diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index ce6b1e93644..997d90b00fd 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -4037,10 +4037,9 @@ gfc_free_namespace (gfc_namespace *ns) return; ns->refs--; - if (ns->refs > 0) - return; - gcc_assert (ns->refs == 0); + if (ns->refs != 0) + return; gfc_free_statements (ns->code);