From patchwork Sat Feb 17 01:40:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerry D X-Patchwork-Id: 85916 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 70322385772D for ; Sat, 17 Feb 2024 01:41:09 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 6624E3858C42; Sat, 17 Feb 2024 01:40:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6624E3858C42 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6624E3858C42 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::52f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708134039; cv=none; b=HbH839xtIHIoozo+x5LyD7LY1NEsxzzjBhvvlTNebWXlqU6n+DtRxIZcV4WIu3Lbh+Cx/O2zAtaMq4Dj0G+RLtn22VO0LaMipF+xjWqRCmIub0JhxBMJyVMfcyRESFuaOmGYk5RqBdkkf8TC2ZYI70WuLpd6jO/HYBeMSOY7/vM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708134039; c=relaxed/simple; bh=W4dM9MyqUakNBEQ2fjAm2Un+ax79Pb4FWX6vg4ILkZQ=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=eWWVFm1og9WHpsQloCN3nHk5QdTxJEIPp16eI4CkCQzxMLpTPl83VyLxEzq4uol6Zh6wog5ZSutwPVDplrpHf/Jwdja+9TXTNL9iQmP3iva89FPpf0Z3qzDCzwh1iszAl9OtsfpJZONOuKHIiWTBuVgC6hwu+Axnt3SK/acvDWE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-5cdbc42f5efso101480a12.0; Fri, 16 Feb 2024 17:40:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708134036; x=1708738836; darn=gcc.gnu.org; h=autocrypt:subject:from:cc:to:content-language:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=MHT2bVQBfEkW0rUw8eo3I4Nk7cshrx18l3oQW0cp9ds=; b=XHQ8t6kFEsgPimkpdqwgFp6EUEAJBdHnwfpTsTBmqNmEAB0Q4ypiQRX6GdUhA41Z45 PLNGKAxjy3VFjnldJ+U6jIrojjvzw/FJwPxjL3UPVfUV/VOMvpUX9rKZF7/U14EY995C 5UouDrkieXyrk8rflWzWbGlvCFIQbDMYRYQUXNMg4TMbOmjk3d3dyH9CoYN0CKRj3L+H OkphEwF3G7ajSwseupo3r6FZjYPdS556Kn0+VkfxRVrbyaQw+p7VNKak5eQzMzP3sdIb 7G+mv/HKopJu3bn3Gufdxwfn4gHETQjJ1dMBRVXknHSEkMTdw8aRs4eeAjq66eFOqeXg pTZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708134036; x=1708738836; h=autocrypt:subject:from:cc:to:content-language:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=MHT2bVQBfEkW0rUw8eo3I4Nk7cshrx18l3oQW0cp9ds=; b=qUXCByK/PVmqJxwXC5h6cZGhAMVxY/7PeKZjwCPXmGRP097+O2URIBT86m6i0itdRn ld+YJJoLoMLx7JnDI5q+MQlQe9VcD+R/SndPTWxH4wW7JUoHRqO4Keyl4zMxtmZB448h gvP2nOXZI5HY+QPBQxdFp0UIu24YlZwQbgd4N57chLb6mjkvdFtmCDEL9deN/uMrgcSm jFN3RcO4NK9cBDJM9KcVW4HMmLyM/c7SXgtkFTeuXnIGjC1CwsEJPXQnB/V24VjfdGyD JDkBaNd+xVSbqIsyjXdQJI6A9Iet5lhRYSJEyKc1SR3RE/9rcfPJriELWFVVJq5TNenv 11yQ== X-Gm-Message-State: AOJu0YxFhPXYa/aXcxTlY7SJkp5k/wYgEHMRAohpRbI+0xcPIFuvbsnx GcqiTwiVhBPoHUS581YzLzifyqOlPXP/ZgU/M7H6YsaI6y/18z0rNw2rKkon X-Google-Smtp-Source: AGHT+IGELkq1u3QpoZKvr9UoBHEUTISwStS1bAWRbMZmBeRqOv11yH5peG5/L0bKtrtDKR3+SBuKaA== X-Received: by 2002:a05:6a20:1455:b0:1a0:7b47:f9f3 with SMTP id a21-20020a056a20145500b001a07b47f9f3mr6808835pzi.4.1708134035666; Fri, 16 Feb 2024 17:40:35 -0800 (PST) Received: from [192.168.1.20] ([50.37.177.113]) by smtp.gmail.com with ESMTPSA id y29-20020aa79e1d000000b006d9b35b2602sm576830pfq.3.2024.02.16.17.40.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 16 Feb 2024 17:40:35 -0800 (PST) Message-ID: <81e691f6-efff-4897-891a-76217cf73c92@gmail.com> Date: Fri, 16 Feb 2024 17:40:34 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gfortran Cc: gcc-patches From: Jerry D Subject: [patch, libgfortran] PR107068 Run-time error when reading logical arrays with a namelist Autocrypt: addr=jvdelisle2@gmail.com; keydata= xjMEY5TlkxYJKwYBBAHaRw8BAQdAyrkRDhmJhSTTlV/50gJLlvliU6/Lm5C9ViKV8T9y1GnN HkplcnJ5IEQgPGp2ZGVsaXNsZTJAZ21haWwuY29tPsKJBBMWCAAxFiEEOFR0TS0390uh8dRV uWXAJaWpwWoFAmOU5ZMCGwMECwkIBwUVCAkKCwUWAgMBAAAKCRC5ZcAlpanBalsJAP4wdCiH 2Of9oZv1QWgZ/AVdbWFM3Fv47/WZQHOXfoZ9HgD6AkXrKeJ+6usST7PEaDJjptaViT1fLiYY V/6XaOKSsgLOOARjlOWTEgorBgEEAZdVAQUBAQdAdA7PczYnl07vnOT9oP/wvvMDd4HP09Zl g3LzwXQJWT8DAQgHwngEGBYIACAWIQQ4VHRNLTf3S6Hx1FW5ZcAlpanBagUCY5TlkwIbDAAK CRC5ZcAlpanBasF/AQCa5WjlsVpLsEiggZyT18MOJNAdeRd7wkGDUrwedHrvawD/cE1H+/Ms L1ZwvQiLfGdx8crigQqWTQyos4kH8Wx82wc= X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org The attached patch fixes this one. Se the ChangeLog below for explanation. OK for trunk? I think simple enough to backport to 13 as well. Regards, Jerry Author: Jerry DeLisle Date: Fri Feb 16 17:06:37 2024 -0800 libgfortran: Fix namelist read. PR libgfortran/107068 libgfortran/ChangeLog: * io/list_read.c (read_logical): When looking for a possible variable name, check for left paren, indicating a possible array reference. gcc/testsuite/ChangeLog: * gfortran.dg/pr107068.f90: New test. diff --git a/gcc/testsuite/gfortran.dg/pr107068.f90 b/gcc/testsuite/gfortran.dg/pr107068.f90 new file mode 100644 index 00000000000..c5ea0c1d244 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr107068.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +program test + implicit none + integer :: error + logical, dimension(3,3) :: flc,flp + namelist/inputdata/flc, flp + + flc = .false. + flp = .false. + + open(10, file="inputfile") + write(10,*) "&INPUTDATA" + write(10,*) " FLC = T, " + write(10,*) " FLP(1,2) = T," + write(10,*) "/" + rewind(10) + !write(*, nml=inputdata) + !open(10,file="inputfile") + read(10,inputdata,iostat=error) + close(10, status='delete') + if (error /= 0) stop 20 +end program test diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index f8ca64422de..0b7884fdda7 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -888,6 +888,14 @@ read_logical (st_parameter_dt *dtp, int length) for(i = 0; i < 63; i++) { c = next_char (dtp); + if (c == '(') + { + l_push_char (dtp, c); + dtp->u.p.nml_read_error = 1; + dtp->u.p.line_buffer_enabled = 1; + dtp->u.p.line_buffer_pos = 0; + return; + } if (is_separator(c)) { /* All done if this is not a namelist read. */