On 06/07/2016 04:13 AM, Jakub Jelinek wrote:

> I've noticed
>           if ((mask & OMP_CLAUSE_WAIT)
>               && !c->wait
>               && gfc_match ("wait") == MATCH_YES)
>             {
>               c->wait = true; 
>               match_oacc_expr_list (" (", &c->wait_list, false);
>               continue;
>             }
> which looks just weird and confusing.  Why isn't this instead:
>           if ((mask & OMP_CLAUSE_WAIT)
>               && !c->wait
>             && (match_oacc_expr_list ("wait (", &c->wait_list, false)
>                 == MATCH_YES))
>             {
>               c->wait = true; 
>               continue;
>             }
> ?  Otherwise you happily accept wait without following (, perhaps even
> combined with another clause without any space in between etc.

Both acc wait and async accept optional parenthesis arguments. E.g.,

  #pragma acc wait

blocks for all of the async streams to complete before proceeding, whereas

  #pragma acc wait (1, 5)

only blocks for async streams 1 and 5.

Cesar

Reply via email to