On Tue, Jun 07, 2016 at 08:01:10AM -0700, Cesar Philippidis wrote: > 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.
But then you need to set need_space = true; if it doesn't have the ( after it. Jakub