------- Comment #1 from dfranke at gcc dot gnu dot org 2010-05-07 17:23 -------
In openmp.c (gfc_match_omp_end_nowait), we match "nowait" and end-of-string. If
there's anything but whitespace after the nowait, the match is rejected.
With "nowait" being rejected, parse.c (match_word) rejects the whole matching
sequence, { "end sections" "nowait" end-of-string } and returns to the last
known locus, here just after the "$omp".
67 if (m != MATCH_YES)
68 {
69 gfc_current_locus = *old_locus;
70 reject_statement ();
71 }
If line 69 is removed, one gets:
pr43711.f90:8.31:
!$omp end sections nowait nowait
1
Error: Unclassifiable OpenMP directive at (1)
But everything else is broken ^^
This is not specific for nowait, but for all OpenMP related things that
explicitly check for end-of-string.
I believe, this is eventually the same as PR32365.
--
dfranke at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
GCC build triplet|x86_64-suse-linux |
GCC host triplet|x86_64-suse-linux |
GCC target triplet|x86_64-suse-linux |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43711