http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51669
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-02 15:29:20 UTC --- Caused by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181332 aka PR51060. Slightly more reduced testcase: template <typename T> const T & min (const T &, const T &); void foo () { #pragma omp parallel num_threads (min (4, 5)) ; } which ICEs starting with r181332 with just -fopenmp. struct A { A (); ~A (); }; int foo (const A &); void foo () { #pragma omp parallel num_threads (foo (A ())) ; } apparently ICEd already in 4.2 though. Guess the C++ FE needs to insert some CLEANUP_POINT_EXPRs around the omp stmts.