public inbox for fortran@gcc.gnu.org
 help / color / mirror / Atom feed
* [patch, fortran] New take on PR 82373
@ 2017-10-12 18:21 Thomas Koenig
  2017-10-12 19:26 ` Steve Kargl
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Koenig @ 2017-10-12 18:21 UTC (permalink / raw)
  To: fortran, gcc-patches

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

Hello world,

after some thought, I think the PR can be fixed by something
far less invasive than my previous patch.

The new version of the patch simply issues an error for a
non-printable character (which should never be legal).
Anything else should be caught by other error reporting
routines.

OK for trunk?

Regards

	Thomas

2017-10-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

         PR fortran/82372
         * fortran/scanner.c (last_error_char):  New global variable.
         (gfc_scanner_init_1): Set last_error_char to NULL.
         (gfc_gooble_whitespace): If a character not printable or
         not newline, issue an error.

2017-10-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

         PR fortran/82372
         * gfortran.dg/illegal_char.f90: New test.

[-- Attachment #2: p2.diff --]
[-- Type: text/x-patch, Size: 933 bytes --]

Index: scanner.c
===================================================================
--- scanner.c	(Revision 253530)
+++ scanner.c	(Arbeitskopie)
@@ -80,6 +80,7 @@ static struct gfc_file_change
 size_t file_changes_cur, file_changes_count;
 size_t file_changes_allocated;
 
+static gfc_char_t *last_error_char;
 
 /* Functions dealing with our wide characters (gfc_char_t) and
    sequences of such characters.  */
@@ -269,6 +270,7 @@ gfc_scanner_init_1 (void)
   continue_line = 0;
 
   end_flag = 0;
+  last_error_char = NULL;
 }
 
 
@@ -1700,6 +1702,14 @@ gfc_gobble_whitespace (void)
     }
   while (gfc_is_whitespace (c));
 
+  if (!ISPRINT(c) && c != '\n' && last_error_char != gfc_current_locus.nextc)
+    {
+      char buf[20];
+      last_error_char = gfc_current_locus.nextc;
+      snprintf (buf, 20, "%2.2X", c);
+      gfc_error_now ("Invalid character 0x%s at %C", buf);
+    }
+
   gfc_current_locus = old_loc;
 }
 

[-- Attachment #3: illegal_char_2.f90 --]
[-- Type: text/x-fortran, Size: 28 bytes --]

#include "illegal_char.f90"

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch, fortran] New take on PR 82373
  2017-10-12 18:21 [patch, fortran] New take on PR 82373 Thomas Koenig
@ 2017-10-12 19:26 ` Steve Kargl
  2017-10-15 12:14   ` Thomas Koenig
  0 siblings, 1 reply; 3+ messages in thread
From: Steve Kargl @ 2017-10-12 19:26 UTC (permalink / raw)
  To: Thomas Koenig; +Cc: fortran, gcc-patches

On Thu, Oct 12, 2017 at 08:21:46PM +0200, Thomas Koenig wrote:
> 
> after some thought, I think the PR can be fixed by something
> far less invasive than my previous patch.
> 
> The new version of the patch simply issues an error for a
> non-printable character (which should never be legal).
> Anything else should be caught by other error reporting
> routines.
> 
> OK for trunk?
> 

I like this patch much better than the last.  It's
ok with me, but you might want give 24 hours to let
the world rotate before committing (ie., allow others
to comment).

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch, fortran] New take on PR 82373
  2017-10-12 19:26 ` Steve Kargl
@ 2017-10-15 12:14   ` Thomas Koenig
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Koenig @ 2017-10-15 12:14 UTC (permalink / raw)
  To: sgk; +Cc: fortran, gcc-patches

Hi Steve,

> I like this patch much better than the last.  It's
> ok with me, but you might want give 24 hours to let
> the world rotate before committing (ie., allow others
> to comment)

Committed as r253768.  Thanks for the review!

I don't think it is worth backporting, so I'll close
the bug. If somebody thinks that we should indeed backport,
please let me know.

Regards

	Thomas

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-10-15 12:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-12 18:21 [patch, fortran] New take on PR 82373 Thomas Koenig
2017-10-12 19:26 ` Steve Kargl
2017-10-15 12:14   ` Thomas Koenig

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).