On Fri, Oct 09, 2015 at 09:34:51AM -0400, Nathan Sidwell wrote: > On 10/09/15 09:26, Thomas Schwinge wrote: > >Hi! > > >You mean the cp_parser_oacc_loop and cp_parser_oacc_kernels_parallel > >functions need documentation? I agree it's a bit terse, but documenting > >these by just listing the accepted parsing tokens "# pragma acc loop" > >etc., followed by the *_CLAUSE_MASKs is what's done for the other > >OpenACC/OpenMP directives in the C/C++ front ends. So, I don't see a > >reason to be different for these two? > > > What's the p_name argument for?
That is a pointer to the name of the combined/composite construct. This stuff works basically that if you have a combined construct, you call the outermost parsing routine with a buffer long enough to contain the longest possible combined construct name, and strcpy (p_name, "#pragma omp {omp,acc}"); first, and then each parsing routine strcats the name of itself after that (and merges in its own clause mask), and finally on the innermost construct you have the full name of your combined construct in p_name and the right clause mask in mask, so you call the clause parsing with those two parameters, which might use the name for diagnostics. Jakub