On Tue, Dec 17, 2013 at 09:13:05PM +0000, Iyer, Balaji V wrote: > @@ -10418,6 +10528,12 @@ > step = c_parser_expression (parser).value; > mark_exp_read (step); > step = c_fully_fold (step, false, NULL); > + if (is_cilk_simd_fn && TREE_CODE (step) == PARM_DECL) > + { > + sorry ("using parameters for %<linear%> step is not supported yet " > + "in this release");
I meant actually sorry ("using parameters for %<linear%> step is not supported yet"); > @@ -10933,8 +11051,14 @@ > c_name = "aligned"; > break; > case PRAGMA_OMP_CLAUSE_LINEAR: > - clauses = c_parser_omp_clause_linear (parser, clauses); > - c_name = "linear"; > + { > + bool is_cilk_simd_fn = false; > + if ((mask & PRAGMA_CILK_CLAUSE_VECTORLENGTH) == 0) > + is_cilk_simd_fn = true; I don't think this will work. PRAGMA_CILK_CLAUSE_VECTORLENGTH is something like 40 I think, so testing whether the mask doesn't include copyin and default clauses is not what you wanted probably. What I meant is if (((mask >> PRAGMA_CILK_CLAUSE_VECTORLENGTH) & 1) != 0) is_cilk_simd_fn = true; (note, for 32-bit HWI targets, omp_clause_mask is a class and not all arithmetic is actually supported on it, so better limit yourself to forms used elsewhere already). > @@ -12754,10 +12882,20 @@ > c_finish_omp_declare_simd (c_parser *parser, tree fndecl, tree parms, > vec<c_token> clauses) > { > + Please remove this extra vertical space. Otherwise looks good to me, just not sure where do you handle processor clause (or how Cilk+ simd clones specify the ISA they want to use). Jakub