From: Tobias Burnus Date: Wed, 17 Jul 2013 12:57:41 +0000 (+0200) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bdb4f6ce2febef65e8e6b1a0d9e921b2061edac8;p=gcc.git [multiple changes] 2013-07-17 Mikael Morin Tobias Burnus PR fortran/57895 * match.c (gfc_match_name): Ensure that the error message regarding -fdollar-ok gets printed. (gfc_match_common): Avoid multiple freeing. 2013-07-17 Tobias Burnus PR fortran/57895 * gfortran.dg/dollar_sym_3.f: New. * gfortran.dg/dollar_sym_1.f90: Update dg-error. From-SVN: r201008 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0013101a544..6c977b9491c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,11 @@ +2013-07-17 Mikael Morin + Tobias Burnus + + PR fortran/57895 + * match.c (gfc_match_name): Ensure that the error + message regarding -fdollar-ok gets printed. + (gfc_match_common): Avoid multiple freeing. + 2013-07-16 Tobias Burnus PR fortran/57912 @@ -149,7 +157,7 @@ PR fortran/37336 * trans-decl.c (init_intent_out_dt): Call finalizer - when approriate. + when appropriate. 2013-06-08 Tobias Burnus @@ -650,7 +658,7 @@ 2013-04-08 Thomas Koenig PR fortran/56782 - * frontend-passes.c (callback_reduction): Dont't do + * frontend-passes.c (callback_reduction): Don't do any simplification if there is only a single element which has an iterator. diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 2533584246b..7f30156624d 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -556,8 +556,8 @@ gfc_match_name (char *buffer) if (c == '$' && !gfc_option.flag_dollar_ok) { - gfc_error ("Invalid character '$' at %C. Use -fdollar-ok to allow it " - "as an extension"); + gfc_fatal_error ("Invalid character '$' at %L. Use -fdollar-ok to allow " + "it as an extension", &old_loc); return MATCH_ERROR; } @@ -4520,10 +4520,6 @@ syntax: gfc_syntax_error (ST_COMMON); cleanup: - if (old_blank_common) - old_blank_common->common_next = NULL; - else - gfc_current_ns->blank_common.head = NULL; gfc_free_array_spec (as); return MATCH_ERROR; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 75f75de325b..2d6ece45d1e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2013-07-17 Tobias Burnus + + PR fortran/57895 + * gfortran.dg/dollar_sym_3.f: New. + * gfortran.dg/dollar_sym_1.f90: Update dg-error. + 2013-07-16 Iain Sandoe PR target/55654 diff --git a/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 b/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 index 37f0f888d62..6c0dfcb24d6 100644 --- a/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 +++ b/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 @@ -3,7 +3,7 @@ ! Variable names containing $ signs ! REAL*4 PLT$C_HOUSTPIX ! { dg-error "Invalid character '\\$'" } - INTEGER PLT$C_COMMAND ! { dg-error "Invalid character '\\$'" } - PARAMETER (PLT$B_OPC=0) ! { dg-error "Invalid character '\\$'" } - common /abc$def/ PLT$C_HOUSTPIX, PLT$C_COMMAND ! { dg-error "Invalid character '\\$'" } + INTEGER PLT$C_COMMAND ! Unreachable as the error above is now fatal + PARAMETER (PLT$B_OPC=0) ! Unreachable as the error above is now fatal + common /abc$def/ PLT$C_HOUSTPIX, PLT$C_COMMAND ! Unreachable as the error above is now fatal end diff --git a/gcc/testsuite/gfortran.dg/dollar_sym_3.f b/gcc/testsuite/gfortran.dg/dollar_sym_3.f new file mode 100644 index 00000000000..7cf2047eda0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dollar_sym_3.f @@ -0,0 +1,10 @@ +! { dg-do compile } +! +! PR fortran/57895 +! +! Contributed by Vittorio Zecca +! +c Segmentation fault in gfc_restore_last_undo_checkpoint + COMMON RADE3155V62$JUTMU9L9E(3,3,3), LADE314JUTMP9 ! { dg-error "Invalid character '\\$' at .1.. Use -fdollar-ok to allow it as an extension" } + +LHEDDJNTMP9L(3,3,3) + end