public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH,committed] PR fortran/82620 -- fix detection of syntax error
@ 2017-10-28  4:09 Steve Kargl
  0 siblings, 0 replies; only message in thread
From: Steve Kargl @ 2017-10-28  4:09 UTC (permalink / raw)
  To: fortran, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 778 bytes --]

I've committed the following patch to fix a problem
where gfortran ICEs after detection of a syntax 
error in an allocate statement.  The patch was
regression tested on x86_64-*-freebsd.

                === gfortran Summary ===

# of expected passes            46027
# of expected failures          97
# of unsupported tests          82
/mnt/sgk/gcc/obj/gcc/gfortran  version 8.0.0 20171028 (experimental) (GCC) 


2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* match.c (gfc_match_allocate): Exit early on syntax error.

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* gfortran.dg/allocate_error_7.f90: new test.

-- 
Steve
20170425 https://www.youtube.com/watch?v=VWUpyCsUKR4
20161221 https://www.youtube.com/watch?v=IbCHE-hONow

[-- Attachment #2: z.diff --]
[-- Type: text/x-diff, Size: 1073 bytes --]

Index: gcc/fortran/match.c
===================================================================
--- gcc/fortran/match.c	(revision 254192)
+++ gcc/fortran/match.c	(working copy)
@@ -3968,7 +3968,10 @@ gfc_match_allocate (void)
   saw_stat = saw_errmsg = saw_source = saw_mold = saw_deferred = false;
 
   if (gfc_match_char ('(') != MATCH_YES)
-    goto syntax;
+    {
+      gfc_syntax_error (ST_ALLOCATE);
+      return MATCH_ERROR;
+    }
 
   /* Match an optional type-spec.  */
   old_locus = gfc_current_locus;
Index: gcc/testsuite/gfortran.dg/allocate_error_7.f90
===================================================================
--- gcc/testsuite/gfortran.dg/allocate_error_7.f90	(nonexistent)
+++ gcc/testsuite/gfortran.dg/allocate_error_7.f90	(working copy)
@@ -0,0 +1,12 @@
+! { dg-do compile }
+!
+! Code contributed by Gerhard Steinmetz
+!
+program pr82620
+   type t(a)
+      integer, len :: a
+   end type
+   type(t(:)), allocatable :: x, y
+   allocate(t(4) :: x)
+   allocate)t(7) :: y)     ! { dg-error "Syntax error in ALLOCATE" }
+end program pr82620

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-10-28  1:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-28  4:09 [PATCH,committed] PR fortran/82620 -- fix detection of syntax error Steve Kargl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).