aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-14 07:52:04 +0000
committerJakub Jelinek <jakub@redhat.com>2006-11-14 07:52:04 +0000
commitb7806f25b14395e5bd59bc09b7c6b0874468b006 (patch)
tree563dfab7b3d231b55fa882860f3530e618aa8b47
parent1c68ea60a7889f42ae1b46c3da19f660251fde94 (diff)
svn merge -r118772:118773 svn+ssh://gcc.gnu.org/svn/gcc/trunk/
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_1-branch@118807 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/scanner.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/gomp/pr29759.f9042
4 files changed, 54 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 016fe5a80f2..b4aa7325885 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/29759
+ * fortran/scanner.c (skip_free_comments): Clear openmp_flag
+ before returning true.
+
2006-11-11 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR fortran/29713
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 021481be781..792b53388fa 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -385,6 +385,7 @@ skip_free_comments (void)
{
gfc_current_locus = old_loc;
next_char ();
+ openmp_flag = 0;
return;
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e0467680fb9..fe2403dd8ea 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/29759
+ * gfortran.dg/gomp/pr29759.f90: New test.
+
2006-11-13 Francois-Xavier Coudert <coudert@clipper.ens.fr>
PR libfortran/27895
diff --git a/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 b/gcc/testsuite/gfortran.dg/gomp/pr29759.f90
new file mode 100644
index 00000000000..19a19c978ae
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/gomp/pr29759.f90
@@ -0,0 +1,42 @@
+! PR fortran/29759
+! { dg-do compile }
+
+PROGRAM test_omp
+!$OMP PARALLEL &
+!$OMP NUM_THREADS(2)
+!$OMP END PARALLEL
+
+!$OMP PARALLEL &
+!$OMP & NUM_THREADS(2)
+!$OMP END PARALLEL
+
+!$OMP PARALLEL &
+!
+!$OMP NUM_THREADS(2)
+!$OMP END PARALLEL
+
+!$OMP PARALLEL &
+!
+!$OMP & NUM_THREADS(2)
+!$OMP END PARALLEL
+
+
+!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" }
+!$ NUM_THREADS(2) ! { dg-error "Unclassifiable" }
+!$OMP END PARALLEL ! { dg-error "Unexpected" }
+
+!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" }
+!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable" }
+!$OMP END PARALLEL ! { dg-error "Unexpected" }
+
+!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" }
+!
+!$ NUM_THREADS(2) ! { dg-error "Unclassifiable" }
+!$OMP END PARALLEL ! { dg-error "Unexpected" }
+
+!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" }
+!
+!$ & NUM_THREADS(2) ! { dg-error "Unclassifiable" }
+!$OMP END PARALLEL ! { dg-error "Unexpected" }
+
+END PROGRAM