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

Reply via email to