FreeBSD/contrib/gcc/cp/cp-gimplify.c
/* Hook into the middle of gimplifying an OMP_FOR node.  This is required
   in order to properly gimplify CONTINUE statements.  Here we merely
   manage the continue stack; the rest of the job is performed by the
   regular gimplifier.  */
Hook into the middle of gimplifying an OMP_FOR node.  This is required
in order to properly gimplify CONTINUE statements.  Here we merely
manage the continue stack; the rest of the job is performed by the
regular gimplifier.
Hook into the middle of gimplifying an OMP_FOR node . This is required in order to properly gimplify CONTINUE statements . Here we merely manage the continue stack ; the rest of the job is performed by the regular gimplifier .
static enum gimplify_status
cp_gimplify_omp_for (tree *expr_p)
{
  tree for_stmt = *expr_p;
  tree cont_block;
  if (OMP_FOR_GIMPLIFYING_P (for_stmt))
    return GS_UNHANDLED;
  OMP_FOR_GIMPLIFYING_P (for_stmt) = 1;
  cont_block = begin_bc_block (bc_continue);
  gimplify_stmt (expr_p);
  OMP_FOR_BODY (for_stmt)
    = finish_bc_block (bc_continue, cont_block, OMP_FOR_BODY (for_stmt));
  OMP_FOR_GIMPLIFYING_P (for_stmt) = 0;
  return GS_ALL_DONE;
}
static enum gimplify_status cp_gimplify_omp_for ( tree * expr_p ) { tree for_stmt = * expr_p ; tree cont_block ; if ( OMP_FOR_GIMPLIFYING_P ( for_stmt ) ) return GS_UNHANDLED ; OMP_FOR_GIMPLIFYING_P ( for_stmt ) = 1 ; cont_block = begin_bc_block ( bc_continue ) ; gimplify_stmt ( expr_p ) ; OMP_FOR_BODY ( for_stmt ) = finish_bc_block ( bc_continue , cont_block , OMP_FOR_BODY ( for_stmt ) ) ; OMP_FOR_GIMPLIFYING_P ( for_stmt ) = 0 ; return GS_ALL_DONE ; }
Hook into the middle of gimplifying an OMP_FOR node.
Hook into the middle of gimplifying an OMP_FOR node .
/* Protect ourselves from recursion.  */ /* Note that while technically the continue label is enabled too soon
     here, we should have already diagnosed invalid continues nested within
     statement expressions within the INIT, COND, or INCR expressions.  */