aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-13 20:42:55 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2006-11-13 20:42:55 +0100
commitb30c6a0d2177a1d28b7c320afffd12a1cafcc4bb (patch)
tree15823ef68e65e72d14a857c6f5534ffbffda0e7f /gcc
parente7d459bd0bc6a40dbbc550c15270d41a07874b3a (diff)
downloadgcc-b30c6a0d2177a1d28b7c320afffd12a1cafcc4bb.zip
gcc-b30c6a0d2177a1d28b7c320afffd12a1cafcc4bb.tar.gz
gcc-b30c6a0d2177a1d28b7c320afffd12a1cafcc4bb.tar.bz2
re PR fortran/29759 (ice on line continuation in OMP statements (gfc_next_char_literal, at fortran/scanner.c:701))
PR fortran/29759 * fortran/scanner.c (skip_free_comments): Clear openmp_flag before returning true. * gfortran.dg/gomp/pr29759.f90: New test. From-SVN: r118773
Diffstat (limited to 'gcc')
-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 3cd8b11..2ba9e87 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-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR fortran/26994
diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c
index 9d0ba2a..b054904 100644
--- a/gcc/fortran/scanner.c
+++ b/gcc/fortran/scanner.c
@@ -392,6 +392,7 @@ skip_free_comments (void)
{
gfc_current_locus = old_loc;
next_char ();
+ openmp_flag = 0;
return true;
}
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 88f8c59..b058a6d 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 Mark Mitchell <mark@codesourcery.com>
PR c++/29518
diff --git a/gcc/testsuite/gfortran.dg/gomp/pr29759.f90 b/gcc/testsuite/gfortran.dg/gomp/pr29759.f90
new file mode 100644
index 0000000..19a19c9
--- /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