https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81052
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org --- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Smaller testcase: int foo (int x, int y) { int i; #pragma omp simd for (i = x; i < y; ++i) return 0; return 1; } template <typename T> T bar (T x, T y) { T i; #pragma omp simd for (i = x; i < y; ++i) return 0; return 1; } int x = bar (1, 7); at -O2 -fopenmp-simd. The bug is that we don't diagnose the invalid code with just -fopenmp-simd, we do with -fopenmp.