------- Comment #7 from hjl dot tools at gmail dot com 2009-12-28 01:09 ------- The omplower pass turns
--- #pragma omp parallel private(ix) private(ndfl) { ix = 0; { integer(kind=4) D.1393; D.1393 = dfm.ndfl; #pragma omp for private(i) for (i = 1; i <= D.1393; i = i + 1) { ix = ix + 1; if (ix > 5) goto __label_009000; else goto <D.1396>; <D.1396>: L.1: } } } __label_009000: --- into: --- { #pragma omp parallel private(ix) private(ndfl) [child fn: xrotate_.omp_fn.0 (???)] { ix = 0; { integer(kind=4) D.1393; D.1393 = dfm.ndfl; { integer(kind=4) D.1407; integer(kind=4) i; D.1407 = D.1393; #pragma omp for private(i) for (i = 1; i <= D.1407; i = i + 1) ix = ix + 1; if (ix > 5) goto <D.1404>; else goto <D.1405>; <D.1405>: <D.1406>: #pragma omp continue (i, i) #pragma omp return } } #pragma omp return } } __label_009000: --- D.1404 isn't defined anywhere. Also I didn't see diagnose_sb_2 handle GIMPLE_COND stmt with GIMPLE_GOTO stmt. -- hjl dot tools at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41344