On Mon, Dec 10, 2018 at 07:41:37PM +0000, Julian Brown wrote:
> @@ -11870,7 +11874,8 @@ c_parser_oacc_wait_list (c_parser *parser, location_t 
> clause_loc, tree list)
>  static tree
>  c_parser_omp_variable_list (c_parser *parser,
>                           location_t clause_loc,
> -                         enum omp_clause_code kind, tree list)
> +                         enum omp_clause_code kind, tree list,
> +                         bool allow_deref)

Make it bool allow_deref = false so that you don't have to change all
callers?

> @@ -12579,7 +12597,8 @@ c_parser_omp_clause_lastprivate (c_parser *parser, 
> tree list)
>           }
>       }
>        tree nlist = c_parser_omp_variable_list (parser, loc,
> -                                            OMP_CLAUSE_LASTPRIVATE, list);
> +                                            OMP_CLAUSE_LASTPRIVATE, list,
> +                                            false);
>        c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<)%>");
>        if (conditional)
>       for (tree c = nlist; c != list; c = OMP_CLAUSE_CHAIN (c))

Like these etc.

> +       if (ort == C_ORT_ACC && TREE_CODE (t) == MEM_REF)
> +         {
> +           poly_int64 offset = mem_ref_offset (t).force_shwi ();
> +           if (maybe_ne (offset, 0))

Just do if (maybe_ne (mem_ref_offset (t), 0)) ?

> @@ -14432,6 +14491,16 @@ c_finish_omp_clauses (tree clauses, enum 
> c_omp_region_type ort)
>               }
>             if (remove)
>               break;
> +           if (ort == C_ORT_ACC && TREE_CODE (t) == MEM_REF)
> +             {
> +               poly_int64 offset = mem_ref_offset (t).force_shwi ();
> +               if (maybe_ne (offset, 0))

Likewise.

> @@ -32111,7 +32115,7 @@ check_no_duplicate_clause (tree clauses, enum 
> omp_clause_code code,
>  
>  static tree
>  cp_parser_omp_var_list_no_open (cp_parser *parser, enum omp_clause_code kind,
> -                             tree list, bool *colon)
> +                             tree list, bool *colon, bool allow_deref)

See above.

> @@ -33560,7 +33579,7 @@ cp_parser_omp_clause_reduction (cp_parser *parser, 
> enum omp_clause_code kind,
>      goto resync_fail;
>  
>    nlist = cp_parser_omp_var_list_no_open (parser, kind, list,
> -                                       NULL);
> +                                       NULL, false);
>    for (c = nlist; c != list; c = OMP_CLAUSE_CHAIN (c))
>      {
>        OMP_CLAUSE_REDUCTION_CODE (c) = code;

See above.

> --- a/libgomp/target.c
> +++ b/libgomp/target.c
> @@ -39,6 +39,9 @@
>  #include <string.h>
>  #include <assert.h>
>  #include <errno.h>
> +#ifdef RC_CHECKING
> +#include <stdio.h>
> +#endif

This doesn't belong here.

> @@ -1089,8 +1274,10 @@ gomp_remove_var (struct gomp_device_descr *devicep, 
> splay_tree_key k)
>  {
>    bool is_tgt_unmapped = false;
>    splay_tree_remove (&devicep->mem_map, k);
> -  if (k->link_key)
> -    splay_tree_insert (&devicep->mem_map, (splay_tree_node) k->link_key);
> +  if (k->virtual_refcount == VREFCOUNT_LINK_KEY && k->u.link_key)
> +    splay_tree_insert (&devicep->mem_map, (splay_tree_node) k->u.link_key);
> +  if (k->virtual_refcount != VREFCOUNT_LINK_KEY && k->u.attach_count)
> +    free (k->u.attach_count);

So write
  if (k->virtual_refcount == VREFCOUNT_LINK_KEY)
    {
      if (k->u.link_key)
        splay_tree_insert (&devicep->mem_map, (splay_tree_node) k->u.link_key);
    }
  else if (k->u.attach_count)
    free (k->u.attach_count);
?

        Jakub

Reply via email to