Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2233173/?format=api
{ "id": 2233173, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2233173/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/87385a0d-18df-4839-9947-e8f363458468@gmx.de/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.1/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<87385a0d-18df-4839-9947-e8f363458468@gmx.de>", "date": "2026-05-05T20:17:08", "name": "Fortran: fix namelist read for input with comments [PR125095]", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "e42bf9f9b2048ef727a4cdb3b26f02e507124ded", "submitter": { "id": 21263, "url": "http://patchwork.ozlabs.org/api/1.1/people/21263/?format=api", "name": "Harald Anlauf", "email": "anlauf@gmx.de" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/87385a0d-18df-4839-9947-e8f363458468@gmx.de/mbox/", "series": [ { "id": 502895, "url": "http://patchwork.ozlabs.org/api/1.1/series/502895/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=502895", "date": "2026-05-05T20:17:08", "name": "Fortran: fix namelist read for input with comments [PR125095]", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/502895/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2233173/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2233173/checks/", "tags": {}, "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=gmx.de header.i=anlauf@gmx.de header.a=rsa-sha256\n header.s=s31663417 header.b=V1/MqqpX;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (2048-bit key,\n secure) header.d=gmx.de header.i=anlauf@gmx.de header.a=rsa-sha256\n header.s=s31663417 header.b=V1/MqqpX", "sourceware.org;\n dmarc=pass (p=quarantine dis=none) header.from=gmx.de", "sourceware.org; spf=pass smtp.mailfrom=gmx.de", "server2.sourceware.org;\n arc=none smtp.remote-ip=212.227.15.18" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g98vn4SJhz1yJ0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 06:17:56 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 84D8C4BAD154\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 5 May 2026 20:17:54 +0000 (GMT)", "from mout.gmx.net (mout.gmx.net [212.227.15.18])\n by sourceware.org (Postfix) with ESMTPS id 1123E4BA7986\n for <gcc-patches@gcc.gnu.org>; Tue, 5 May 2026 20:17:17 +0000 (GMT)", "from client.hidden.invalid by mail.gmx.net (mrgmx005\n [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mdeb5-1vlZcE1vRR-00k9hd; Tue, 05\n May 2026 22:17:11 +0200" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 84D8C4BAD154", "OpenDKIM Filter v2.11.0 sourceware.org 1123E4BA7986" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 1123E4BA7986", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 1123E4BA7986", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778012238; cv=none;\n b=VuvcDzfEZmtbTgvxWBBof3Nmlkq0biUGp9YpbBgFiB0Ggjx9Q0HNGA8V/4quOMKqgLTu4y5KToi/BwJtC+FChH7ctxqO1OEYVpOinK8IbkuA86tW5IG8PXEDfTYPLkO1NCAC59H4Pbmd38cH9L3/ZYkuiXocVd+Nus1Mq1Bgzbw=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778012238; c=relaxed/simple;\n bh=3vF6LEkVmKznqY2jKpNlFkhkWVARV46aLmeNnr345a0=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject;\n b=P7zL/jsgpKjxZytBuee+9U+2tXfw2TnYjsTfcqMy9zPP9/GRWv1JBpsaH9g1pa6svRrJ+T+a0NArB4Kqz2iA0h3NKJSfR6AI7iMifpnUb7UudQMiJfpv3afV/qNHz+yzcqo7EwZIgick6l3dmgiWWUh3FO84/9ACsXQDgMawvgg=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de;\n s=s31663417; t=1778012231; x=1778617031; i=anlauf@gmx.de;\n bh=G5VAdcwo9zPn9WouywW88Ga5KBYdVzTG6cdDkam5aJY=;\n h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version:Cc:\n From:Subject:cc:content-transfer-encoding:content-type:date:from:\n message-id:mime-version:reply-to:subject:to;\n b=V1/MqqpXMUbnH0kEaFlkFs4FzvEwFA7Jdoel0qXssMnavG+nq8ayJRev3X3G7UhP\n REWjyLpMO3H+K4YTDrb0ZLMWxrEY7dcWye+zsCOCqPTZGpAPrJIoxnvQPIOAwbPb/\n Wq1DDRZUXZGeYpU4I6/69FQI8i5Ao1rfTf/jnMnPT+As4OiQdo6jKkpcAzzMFG6Uk\n hXyAs6j9LvyYDo2zqiJKdflexxr0iJiw3JJmlcU57vxrDzOfKfEJGLo5R2JLKBlwD\n cg6MhIa5D9l02ZWcYg4pxKiAJj0VPI2KGOUmBVamEY57pqTujXbolZIGIQ3a7Comr\n 61tEe0VyQi+VwjMegg==", "X-UI-Sender-Class": "724b4f7f-cbec-4199-ad4e-598c01a50d3a", "Content-Type": "multipart/mixed; boundary=\"------------brREqYjm61CNryvmpztg9OM1\"", "Message-ID": "<87385a0d-18df-4839-9947-e8f363458468@gmx.de>", "Date": "Tue, 5 May 2026 22:17:08 +0200", "MIME-Version": "1.0", "User-Agent": "Mozilla Thunderbird", "Newsgroups": "gmane.comp.gcc.fortran,gmane.comp.gcc.patches", "Content-Language": "en-US", "Cc": "fortran <fortran@gcc.gnu.org>, gcc-patches <gcc-patches@gcc.gnu.org>", "From": "Harald Anlauf <anlauf@gmx.de>", "Subject": "[PATCH] Fortran: fix namelist read for input with comments [PR125095]", "X-Provags-ID": "V03:K1:dlhKSOzWV7/CNRgkcmoc6VFjPO0OwPycbaQ7701tg2E9kuJeAoU\n /Pht+jVQHbXiA14NGsG8E0RytLc3JMGaS4OgOPs7oa5Vo4TxZRHt8F1XrhZ3LKTydGVYFmY\n K+InOzndJDk9MAFAepo/kkX1RMMGthTANWpjFpNL9yARHs9V8rKChXJnI2c3Ryes+8qzL2o\n n99aBp0UGRRxRYYOkUXXg==", "UI-OutboundReport": "notjunk:1;M01:P0:kXMM4wRr32s=;QdTd2ti3aF6rqVL/aRPt2soxB56\n 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\n uzR7pQ==", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "Dear all,\n\nnamelist input of arrays got confused when there were comments\nafter value separators. The obvious fix is to cleanly skip the\ncomments and eat subsequent whitespace. The attached conservative\npatch fixes this for all basic types.\n\nTested on x86_64-pc-linux-gnu for gfortran.dg/namelist*.\n\nOK for mainline / backports?\n\nThanks,\nHarald", "diff": "From 9f981df194cd8dba1d9fe491596cd26232ea13a5 Mon Sep 17 00:00:00 2001\nFrom: Harald Anlauf <anlauf@gmx.de>\nDate: Tue, 5 May 2026 22:00:43 +0200\nSubject: [PATCH] Fortran: fix namelist read with comments [PR125095]\n\nNamelist input may contain comments (initiated with a \"!\") after a\nseparator or in the first nonblank position of a namelist input record.\nSkip comments until end of line, and eat leading whitespace in a subsequent\ninput record.\n\n\tPR libfortran/125095\n\nlibgfortran/ChangeLog:\n\n\t* io/list_read.c (read_logical): Eat comments in namelist read mode.\n\t(read_integer): Likewise.\n\t(read_character): Likewise.\n\t(read_complex): Likewise.\n\t(read_real): Likewise.\n\ngcc/testsuite/ChangeLog:\n\n\t* gfortran.dg/namelist_102.f90: New test.\n---\n gcc/testsuite/gfortran.dg/namelist_102.f90 | 248 +++++++++++++++++++++\n libgfortran/io/list_read.c | 26 +++\n 2 files changed, 274 insertions(+)\n create mode 100644 gcc/testsuite/gfortran.dg/namelist_102.f90\n\ndiff --git a/gcc/testsuite/gfortran.dg/namelist_102.f90 b/gcc/testsuite/gfortran.dg/namelist_102.f90\nnew file mode 100644\nindex 00000000000..66c3809439e\n--- /dev/null\n+++ b/gcc/testsuite/gfortran.dg/namelist_102.f90\n@@ -0,0 +1,248 @@\n+! { dg-do run }\n+! { dg-additional-options \"-O2\" }\n+!\n+! PR fortran/125095 - test namelist read with comments\n+!\n+! Based on testcases by Andy Nelson and Steven G. Kargl\n+\n+program nmlbug\n+ implicit none\n+ call test_int\n+ call test_real\n+ call test_complex\n+ call test_logical\n+ call test_char\n+\n+contains\n+\n+ subroutine test_int\n+\n+ integer :: array(4), barray(4), carray(4), darray(4)\n+\n+ namelist/nml1/ array\n+ namelist/nml2/ barray\n+ namelist/nml3/ carray\n+ namelist/nml4/ darray\n+\n+ open(10,status='scratch')\n+ write(10,'(A)') '&nml1'\n+ write(10,'(A)') ' array = 1, 2, 3, 4,'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml2'\n+ write(10,'(A)') ' barray = 5, ! comment'\n+ write(10,'(A)') ' 6,'\n+ write(10,'(A)') ' 7 ! another comment'\n+ write(10,'(A)') ' 8,'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml3'\n+ write(10,'(A)') ' carray = 9 ! New comment'\n+ write(10,'(A)') ' 10'\n+ write(10,'(A)') ' 11 ! another new comment'\n+ write(10,'(A)') ' 12'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml4'\n+ write(10,'(A)') ' darray = 13, 14, 15, 16,'\n+ write(10,'(A)') '/'\n+ flush(10)\n+ rewind(10)\n+\n+ read(10,nml1)\n+ if (any( array /= [ 1, 2, 3, 4])) stop 1\n+ read(10,nml2)\n+ if (any(barray /= [ 5, 6, 7, 8])) stop 2\n+ read(10,nml3)\n+ if (any(carray /= [ 9, 10, 11, 12])) stop 3\n+ read(10,nml4)\n+ if (any(darray /= [13, 14, 15, 16])) stop 4\n+ close(10)\n+\n+ end subroutine test_int\n+\n+ subroutine test_real\n+\n+ real :: array(4), barray(4), carray(4), darray(4)\n+\n+ namelist/nml1/ array\n+ namelist/nml2/ barray\n+ namelist/nml3/ carray\n+ namelist/nml4/ darray\n+\n+ open(10,status='scratch')\n+ write(10,'(A)') '&nml1'\n+ write(10,'(A)') ' array = 1, 2, 3, 4,'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml2'\n+ write(10,'(A)') ' barray = 5, ! comment'\n+ write(10,'(A)') ' 6,'\n+ write(10,'(A)') ' 7 ! another comment'\n+ write(10,'(A)') ' 8,'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml3'\n+ write(10,'(A)') ' carray = 9 ! New comment'\n+ write(10,'(A)') ' 10'\n+ write(10,'(A)') ' 11 ! another new comment'\n+ write(10,'(A)') ' 12'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml4'\n+ write(10,'(A)') ' darray = 13, 14, 15, 16,'\n+ write(10,'(A)') '/'\n+ flush(10)\n+ rewind(10)\n+\n+ read(10,nml1)\n+ if (any( array /= [ 1, 2, 3, 4])) stop 1\n+ read(10,nml2)\n+ if (any(barray /= [ 5, 6, 7, 8])) stop 2\n+ read(10,nml3)\n+ if (any(carray /= [ 9, 10, 11, 12])) stop 3\n+ read(10,nml4)\n+ if (any(darray /= [13, 14, 15, 16])) stop 4\n+ close(10)\n+\n+ end subroutine test_real\n+\n+ subroutine test_complex\n+\n+ complex :: array(4), barray(4), carray(4), darray(4)\n+\n+ namelist/nml1/ array\n+ namelist/nml2/ barray\n+ namelist/nml3/ carray\n+ namelist/nml4/ darray\n+\n+ open(10,status='scratch')\n+ write(10,'(A)') '&nml1'\n+ write(10,'(A)') ' array = (1,0), (2,0), (3,0), (4,0),'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml2'\n+ write(10,'(A)') ' barray = (5,0), ! comment'\n+ write(10,'(A)') ' (6,0),'\n+ write(10,'(A)') ' (7,0) ! another comment'\n+ write(10,'(A)') ' (8,0),'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml3'\n+ write(10,'(A)') ' carray = (9,0) ! New comment'\n+ write(10,'(A)') ' (10,0)'\n+ write(10,'(A)') ' (11,0) ! another new comment'\n+ write(10,'(A)') ' (12,0)'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml4'\n+ write(10,'(A)') ' darray = (13,0), (14,0), (15,0), (16,0),'\n+ write(10,'(A)') '/'\n+ flush(10)\n+ rewind(10)\n+\n+ read(10,nml1)\n+ if (any( array /= [ 1, 2, 3, 4])) stop 1\n+ read(10,nml2)\n+ if (any(barray /= [ 5, 6, 7, 8])) stop 2\n+ read(10,nml3)\n+ if (any(carray /= [ 9, 10, 11, 12])) stop 3\n+ read(10,nml4)\n+ if (any(darray /= [13, 14, 15, 16])) stop 4\n+ close(10)\n+\n+ end subroutine test_complex\n+\n+ subroutine test_logical\n+\n+ logical :: array(4), barray(4), carray(4), darray(4)\n+\n+ namelist/nml1/ array\n+ namelist/nml2/ barray\n+ namelist/nml3/ carray\n+ namelist/nml4/ darray\n+\n+ open(10,status='scratch')\n+ write(10,'(A)') '&nml1'\n+ write(10,'(A)') ' array = T,F,F,T'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml2'\n+ write(10,'(A)') ' barray = T, ! comment'\n+ write(10,'(A)') ' F,'\n+ write(10,'(A)') ' F ! another comment'\n+ write(10,'(A)') ' T,'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml3'\n+ write(10,'(A)') ' carray = T ! New comment'\n+ write(10,'(A)') ' F'\n+ write(10,'(A)') ' F ! another new comment'\n+ write(10,'(A)') ' T'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml4'\n+ write(10,'(A)') ' darray = T,F,F,T'\n+ write(10,'(A)') '/'\n+ flush(10)\n+ rewind(10)\n+\n+ read(10,nml1)\n+ if (any( array .neqv. [ .true.,.false.,.false.,.true. ])) stop 1\n+ read(10,nml2)\n+ if (any(barray .neqv. [ .true.,.false.,.false.,.true. ])) stop 2\n+ read(10,nml3)\n+ if (any(carray .neqv. [ .true.,.false.,.false.,.true. ])) stop 3\n+ read(10,nml4)\n+ if (any(darray .neqv. [ .true.,.false.,.false.,.true. ])) stop 4\n+ close(10)\n+\n+ end subroutine test_logical\n+\n+ subroutine test_char\n+\n+ character(8) :: array(4), barray(4), carray(4), darray(4)\n+\n+ namelist/nml1/ array\n+ namelist/nml2/ barray\n+ namelist/nml3/ carray\n+ namelist/nml4/ darray\n+\n+ open(10,status='scratch')\n+ write(10,'(A)') '&nml1'\n+ write(10,'(A)') ' array = \"a\", \"b\", \"c\", \"d\",'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml2'\n+ write(10,'(A)') ' barray = \"a\", ! comment'\n+ write(10,'(A)') ' \"b\",'\n+ write(10,'(A)') ' \"c\" ! another comment'\n+ write(10,'(A)') ' \"d\",'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml3'\n+ write(10,'(A)') ' carray = \"a\" ! New comment'\n+ write(10,'(A)') ' \"b\"'\n+ write(10,'(A)') ' \"c\" ! another new comment'\n+ write(10,'(A)') ' \"d\"'\n+ write(10,'(A)') '/'\n+ write(10,*)\n+ write(10,'(A)') '&nml4'\n+ write(10,'(A)') ' darray = \"a\", \"b\", \"c\", \"d\",'\n+ write(10,'(A)') '/'\n+ flush(10)\n+ rewind(10)\n+\n+ read(10,nml1)\n+ if (any( array /= [ \"a\", \"b\", \"c\", \"d\" ])) stop 1\n+ read(10,nml2)\n+ if (any(barray /= [ \"a\", \"b\", \"c\", \"d\" ])) stop 2\n+ read(10,nml3)\n+ if (any(carray /= [ \"a\", \"b\", \"c\", \"d\" ])) stop 3\n+ read(10,nml4)\n+ if (any(darray /= [ \"a\", \"b\", \"c\", \"d\" ])) stop 4\n+ close(10)\n+\n+ end subroutine test_char\n+\n+end program nmlbug\ndiff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c\nindex 0d16640a900..7b71cf38719 100644\n--- a/libgfortran/io/list_read.c\n+++ b/libgfortran/io/list_read.c\n@@ -917,6 +917,7 @@ read_logical (st_parameter_dt *dtp, int length)\n if (parse_repeat (dtp))\n return;\n \n+next:\n c = safe_tolower (next_char (dtp));\n l_push_char (dtp, c);\n switch (c)\n@@ -961,6 +962,9 @@ read_logical (st_parameter_dt *dtp, int length)\n case '!':\n if (!dtp->u.p.namelist_mode)\n goto bad_logical;\n+ eat_line (dtp);\n+ eat_spaces (dtp);\n+ goto next;\n \n CASE_SEPARATORS:\n case EOF:\n@@ -1076,6 +1080,7 @@ read_integer (st_parameter_dt *dtp, int length, bt type)\n int c, negative;\n negative = 0;\n \n+next:\n c = next_char (dtp);\n switch (c)\n {\n@@ -1091,6 +1096,9 @@ read_integer (st_parameter_dt *dtp, int length, bt type)\n case '!':\n if (!dtp->u.p.namelist_mode)\n goto bad_integer;\n+ eat_line (dtp);\n+ eat_spaces (dtp);\n+ goto next;\n \n CASE_SEPARATORS:\t\t/* Single null. */\n unget_char (dtp, c);\n@@ -1260,6 +1268,7 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))\n \n quote = ' ';\t\t\t/* Space means no quote character. */\n \n+next:\n if ((c = next_char (dtp)) == EOF)\n goto eof;\n if (c == ';')\n@@ -1284,6 +1293,15 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))\n quote = c;\n goto get_string;\n \n+ case '!':\n+ if (dtp->u.p.namelist_mode)\n+\t{\n+\t eat_line (dtp);\n+\t eat_spaces (dtp);\n+\t goto next;\n+\t}\n+ /* Fall through... */\n+\n default:\n if (dtp->u.p.namelist_mode)\n \t{\n@@ -1703,6 +1721,7 @@ read_complex (st_parameter_dt *dtp, void *dest, int kind, size_t size)\n if (parse_repeat (dtp))\n return;\n \n+next:\n c = next_char (dtp);\n switch (c)\n {\n@@ -1712,6 +1731,9 @@ read_complex (st_parameter_dt *dtp, void *dest, int kind, size_t size)\n case '!':\n if (!dtp->u.p.namelist_mode)\n \tgoto bad_complex;\n+ eat_line (dtp);\n+ eat_spaces (dtp);\n+ goto next;\n \n CASE_SEPARATORS:\n case EOF:\n@@ -1813,6 +1835,7 @@ read_real (st_parameter_dt *dtp, void *dest, int length)\n \n seen_dp = 0;\n \n+next:\n c = next_char (dtp);\n if (dtp->u.p.current_unit->decimal_status == DECIMAL_COMMA)\n {\n@@ -1844,6 +1867,9 @@ read_real (st_parameter_dt *dtp, void *dest, int length)\n case '!':\n if (!dtp->u.p.namelist_mode)\n \tgoto bad_real;\n+ eat_line (dtp);\n+ eat_spaces (dtp);\n+ goto next;\n \n CASE_SEPARATORS:\n unget_char (dtp, c);\t\t/* Single null. */\n-- \n2.51.0\n\n", "prefixes": [] }