diff options
author | Bernhard Fischer <aldot@gcc.gnu.org> | 2007-01-07 17:23:45 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | 2007-01-07 17:23:45 +0100 |
commit | be58af47f2e33815a7632ccca34a2d72127be35e (patch) | |
tree | ce104e32e3d71efd8297d4cb8ef0bc9180ae85c0 | |
parent | b881887e66d13ed96a421c0d8438e677c33ba6ea (diff) | |
download | gcc-be58af47f2e33815a7632ccca34a2d72127be35e.zip gcc-be58af47f2e33815a7632ccca34a2d72127be35e.tar.gz gcc-be58af47f2e33815a7632ccca34a2d72127be35e.tar.bz2 |
re PR fortran/27698 (subroutine _foo draws "unclassifiable statement" instead of a useful error.)
fortran/ChangeLog
2007-01-03 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/27698
* match.c (gfc_match_name): Print diagnostics for invalid character
in names.
testsuite/ChangeLog
2007-01-03 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/27698
* gfortran.dg/invalid_name.f90: New test.
* gfortran.dg/do_iterator.f90: Adjust pattern for expected error.
* gfortran.dg/gomp/pr29759.f90: Ditto.
From-SVN: r120549
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/match.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/do_iterator.f90 | 2 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/gomp/pr29759.f90 | 8 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/invalid_name.f90 | 6 |
6 files changed, 26 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 116d4ac..5615d1f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-01-07 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/27698 + * match.c (gfc_match_name): Print diagnostics for invalid + character in names. + 2007-01-06 Steven G. Kargl <kargl@gcc.gnu.org> * array.c: Fix whitespace in comment table. diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 0dc2c72..376f0a5 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -396,6 +396,8 @@ gfc_match_name (char *buffer) c = gfc_next_char (); if (!ISALPHA (c)) { + if (gfc_error_flag_test() == 0) + gfc_error ("Invalid character in name at %C"); gfc_current_locus = old_loc; return MATCH_NO; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cc6dd8e..3047d1e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2007-01-07 Bernhard Fischer <aldot@gcc.gnu.org> + + PR fortran/27698 + * gfortran.dg/invalid_name.f90: New test. + * gfortran.dg/do_iterator.f90: Adjust pattern for expected error. + * gfortran.dg/gomp/pr29759.f90: Ditto. + 2007-01-06 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/present_1.f90: Update error message. diff --git a/gcc/testsuite/gfortran.dg/do_iterator.f90 b/gcc/testsuite/gfortran.dg/do_iterator.f90 index 0e11aa2..cb3e50d 100644 --- a/gcc/testsuite/gfortran.dg/do_iterator.f90 +++ b/gcc/testsuite/gfortran.dg/do_iterator.f90 @@ -10,4 +10,4 @@ DO I=1,5 ! { dg-error "cannot be redefined" "changing do-iterator 3" } READ(5,*,iostat=i) j ! { dg-error "cannot be redefined" "changing do-iterator 3" } ENDDO END - +! { dg-error "Invalid character" "character" { target *-*-* } 7 } diff --git a/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 b/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 index 19a19c9..b723eeb 100644 --- a/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 +++ b/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 @@ -22,21 +22,21 @@ PROGRAM test_omp !$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } -!$ NUM_THREADS(2) ! { dg-error "Unclassifiable" } +!$ NUM_THREADS(2) ! { dg-error "Unclassifiable|Invalid character" } !$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } -!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable" } +!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable|Invalid character" } !$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } ! -!$ NUM_THREADS(2) ! { dg-error "Unclassifiable" } +!$ NUM_THREADS(2) ! { dg-error "Unclassifiable|Invalid character" } !$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } ! -!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable" } +!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable|Invalid character" } !$OMP END PARALLEL ! { dg-error "Unexpected" } END PROGRAM diff --git a/gcc/testsuite/gfortran.dg/invalid_name.f90 b/gcc/testsuite/gfortran.dg/invalid_name.f90 new file mode 100644 index 0000000..895664f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/invalid_name.f90 @@ -0,0 +1,6 @@ +! { dg-do compile } +! Tests the fix for PR27698, where names not starting with a letter were +! rejected but not diagnosed with a proper message. +SUBROUTINE _foo ! { dg-error "Invalid character in name" } +END + |