The current gomp branch (including Jakub Jelinek's proposed patch for PR24513, rejects the following code:
void bar (int *p) { #pragma omp parallel for for (int m=0; m<1000; ++m) { switch(p[m]) { case 1: p[m]=2; break; } } } ~/tmp>g++ -fopenmp -v -c test.cc Using built-in specs. Target: i686-pc-linux-gnu Configured with: /scratch/gompcc/configure --quiet --prefix=/scratch/ugccgomp --enable-languages=c++,f95 --with-gmp=/afs/mpa/data/martin/mygmp --disable-checking Thread model: posix gcc version 4.1.0-gomp-20050608-branch 20051023 (experimental) (merged 20051023) /scratch/ugccgomp/libexec/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/cc1plus -quiet -v -D_GNU_SOURCE test.cc -quiet -dumpbase test.cc -mtune=pentiumpro -auxbase test -version -fopenmp -o /tmp/ccxFI9tu.s ignoring nonexistent directory "/scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0-gomp-20050608-branch /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0-gomp-20050608-branch/i686-pc-linux-gnu /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0-gomp-20050608-branch/backward /usr/local/include /scratch/ugccgomp/include /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/include /usr/include End of search list. GNU C++ version 4.1.0-gomp-20050608-branch 20051023 (experimental) (merged 20051023) (i686-pc-linux-gnu) compiled by GNU C version 4.1.0-gomp-20050608-branch 20051023 (experimental) (merged 20051023). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: f20b28a8e8738447b8a8d4419521a6c9 test.cc: In function 'void bar(int*)': test.cc:10: error: break statement used with OpenMP for loop -- Summary: [openmp] Incorrect error for break statement in OpenMP loop Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: martin at mpa-garching dot mpg dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24516