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

Reply via email to