From: Tobias Burnus Date: Wed, 20 Feb 2008 18:21:14 +0000 (+0100) Subject: re PR fortran/34997 (Mention -fdollar-ok option in error message for symbol names... X-Git-Tag: releases/gcc-4.4.0~6392 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89a5afda0e8c61e452cf46f305658d3f01117aba;p=thirdparty%2Fgcc.git re PR fortran/34997 (Mention -fdollar-ok option in error message for symbol names containing $) 2008-02-20 Tobias Burnus PR fortran/34997 * match.c (gfc_match_name): Improve error message for '$'. 2008-02-20 Tobias Burnus PR fortran/34997 * gfortran.dg/dollar_sym_1.f90: New. * gfortran.dg/dollar_sym_2.f90: New. From-SVN: r132488 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ea74958f3f92..cdce2802b296 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2008-02-20 Tobias Burnus + + PR fortran/34997 + * match.c (gfc_match_name): Improve error message for '$'. + 2008-02-19 Daniel Franke PR fortran/35030 diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 324e52ecee04..c1920ff9d581 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -519,6 +519,13 @@ gfc_match_name (char *buffer) } while (ISALNUM (c) || c == '_' || (gfc_option.flag_dollar_ok && c == '$')); + if (c == '$' && !gfc_option.flag_dollar_ok) + { + gfc_error ("Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension"); + return MATCH_ERROR; + } + + buffer[i] = '\0'; gfc_current_locus = old_loc; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 04c799fe178e..34ccb964a48d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2008-02-20 Tobias Burnus + + PR fortran/34997 + * gfortran.dg/dollar_sym_1.f90: New. + * gfortran.dg/dollar_sym_2.f90: New. + 2008-02-20 Richard Guenther PR middle-end/35265 diff --git a/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 b/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 new file mode 100644 index 000000000000..37f0f888d621 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dollar_sym_1.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! PR fortran/34997 +! 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 '\\$'" } + end diff --git a/gcc/testsuite/gfortran.dg/dollar_sym_2.f90 b/gcc/testsuite/gfortran.dg/dollar_sym_2.f90 new file mode 100644 index 000000000000..800a728749ae --- /dev/null +++ b/gcc/testsuite/gfortran.dg/dollar_sym_2.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-fdollar-ok" } +! +! PR fortran/34997 +! Variable names containing $ signs +! + REAL*4 PLT$C_HOUSTPIX + INTEGER PLT$C_COMMAND + PARAMETER (PLT$B_OPC=0) + common /abc$def/ PLT$C_HOUSTPIX, PLT$C_COMMAND + end