On Thu, Nov 13, 2014 at 05:44:40PM -0800, Cesar Philippidis wrote: > Thanks. I couldn't figure out how to assign the bugs in the PR. Maybe my > account doesn't have permission to do so. Regardless, I'll work on them.
Use your @gcc.gnu.org account instead, then you have far more permissions in bugzilla. > --- a/gcc/fortran/gfortran.h > +++ b/gcc/fortran/gfortran.h > @@ -1262,14 +1262,8 @@ typedef struct gfc_omp_clauses > gfc_expr_list *tile_list; > unsigned async:1, gang:1, worker:1, vector:1, seq:1, independent:1; > unsigned wait:1, par_auto:1, gang_static:1; The /* !$ACC DECLARE locus. */ comment wouldn't hurt here. > --- a/gcc/fortran/match.c > +++ b/gcc/fortran/match.c > @@ -2491,8 +2491,8 @@ match_exit_cycle (gfc_statement st, gfc_exec_op op) > > if (o != NULL) > { > - gfc_error ("%s statement at %C leaving OpenMP or OpenACC structured > block", > - gfc_ascii_statement (st)); > + gfc_error ("%s statement at %C leaving %s structured block", > + gfc_ascii_statement (st), is_oacc (p) ? "OpenACC" : "OpenMP"); You want gfc_error (is_oacc (p) ? "%s statement at %C leaving OpenACC structured block" : "%s statement at %C leaving OpenMP structured block", gfc_ascii_statement (st)); instead to be more translation friendly. > @@ -5545,3 +5547,28 @@ duplicate_main: > gfc_done_2 (); > return true; > } > + > +/* Return true if this state data represents an OpenACC region. */ > +bool > +is_oacc (gfc_state_data *sd) > +{ > + switch (sd->construct->op) > + { > + case EXEC_OACC_PARALLEL_LOOP:break; > + case EXEC_OACC_PARALLEL: What is that break; doing there? Then you fall through into end of function without return (and missing space before it). > + case EXEC_OACC_KERNELS_LOOP: > + case EXEC_OACC_KERNELS: > + case EXEC_OACC_DATA: > + case EXEC_OACC_HOST_DATA: > + case EXEC_OACC_LOOP: > + case EXEC_OACC_UPDATE: > + case EXEC_OACC_WAIT: > + case EXEC_OACC_CACHE: > + case EXEC_OACC_ENTER_DATA: > + case EXEC_OACC_EXIT_DATA: > + return true; > + > + default: > + return false; > + } > +} Jakub