OpenACC cache directive maintenance.
[official-gcc.git] / gcc / c / ChangeLog.gomp
blob70278b9ec43743de582d365873c3c1c40518700e
1 2014-11-05  Thomas Schwinge  <thomas@codesourcery.com>
3         * c-parser.c (c_parser_oacc_cache): Generate OACC_CACHE.
4         * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE__CACHE_.
6         * c-parser.c (c_parser_omp_variable_list) <OMP_CLAUSE__CACHE_>:
7         Remove explicit mark_exp_read invocations.
9 2014-11-05  James Norris  <jnorris@codesourcery.com>
11         * c-parser.c (c_parser_omp_variable_list): Handle
12         OMP_NO_CLAUSE_CACHE.
13         (c_parser_oacc_cache): New function.
14         (c_parser_omp_construct): Use it for PRAGMA_OACC_CACHE.
16 2014-11-03  Cesar Philippidis  <cesar@codesourcery.com>
18         * c-parser.c (c_parser_oacc_enter_exit_data): New function.
19         (c_parser_pragma): Handle PRAGMA_OACC_ENTER_DATA and
20         PRAGMA_OACC_EXIT_DATA.
21         (OACC_ENTER_DATA_CLAUSE_MASK): New macro.
22         (OACC_EXIT_DATA_CLAUSE_MASK): New macro.
23         (c_parser_oacc_update): Don't create a new stmt if the pragma
24         is bogus.
26 2014-10-20  Cesar Philippidis  <cesar@codesourcery.com>
28         * c-parser.c (c_parser_oacc_update): Don't create a new stmt
29         if the pragma is bogus.
31 2014-07-14  Cesar Philippidis  <cesar@codesourcery.com>
33         * c-parser.c (c_parser_oacc_all_clauses): Handle
34         PRAGMA_OMP_CLAUSE_COLLAPSE.
35         (OACC_LOOP_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
36         (c_parser_omp_for_loop): Remove asserts.
38 2014-07-08  Cesar Philippidis  <cesar@codesourcery.com>
40         * c-parser.c (c_parser_oacc_all_clauses): Handle
41         PRAGMA_OMP_CLAUSE_REDUCTION.
42         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK): Add
43         PRAGMA_OMP_CLAUSE_REDUCTION.
45 2014-06-12  Thomas Schwinge  <thomas@codesourcery.com>
46             James Norris  <jnorris@codesourcery.com>
48         * c-parser.c (c_parser_oacc_all_clauses): Handle
49         PRAGMA_OMP_CLAUSE_IF.
50         (OACC_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
51         (OACC_PARALLEL_CLAUSE_MASK, OACC_UPDATE_CLAUSE_MASK): Add it.
53 2014-06-06  Thomas Schwinge  <thomas@codesourcery.com>
54             James Norris  <jnorris@codesourcery.com>
56         * c-parser.c (c_parser_pragma): Handle PRAGMA_OACC_UPDATE.
57         (c_parser_omp_clause_name, c_parser_oacc_data_clause)
58         (c_parser_oacc_all_clauses): Handle PRAGMA_OMP_CLAUSE_DEVICE,
59         PRAGMA_OMP_CLAUSE_HOST, PRAGMA_OMP_CLAUSE_SELF.
60         (c_parser_oacc_update): New function.
62 2014-06-05  Thomas Schwinge  <thomas@codesourcery.com>
64         * c-typeck.c (handle_omp_array_sections, c_finish_omp_clauses):
65         Handle OMP_CLAUSE_MAP_FORCE_DEVICEPTR.
67 2014-03-20  Thomas Schwinge  <thomas@codesourcery.com>
69         * c-parser.c: Update comments.
70         (c_parser_oacc_loop): Move.
71         (c_parser_omp_for_loop): Catch some unsupported cases.
72         (c_parser_omp_construct) <case PRAGMA_OACC_LOOP>: Sort
73         alphabetically.
75 2014-03-18  Ilmir Usmanov  <i.usmanov@samsung.com>
77         * c-parser.c (c_parser_oacc_loop): New function.
78         (c_parser_oacc_kernels): Parse OpenACC combined directive.
79         (c_parser_oacc_parallel): Likewise.
80         (c_parser_omp_construct): Parse OpenACC loop directive.
82 2014-04-18  Thomas Schwinge  <thomas@codesourcery.com>
84         * c-parser.c (c_parser_omp_clause_num_gangs)
85         (c_parser_omp_clause_num_workers)
86         (c_parser_omp_clause_vector_length): New functions.
87         (c_parser_omp_clause_name, c_parser_oacc_all_clauses): Handle
88         PRAGMA_OMP_CLAUSE_NUM_GANGS, PRAGMA_OMP_CLAUSE_NUM_WORKERS,
89         PRAGMA_OMP_CLAUSE_VECTOR_LENGTH.
90         (OACC_PARALLEL_CLAUSE_MARK): Add these.
91         * c-typeck.c (c_finish_omp_clauses): Handle these.
93 2014-02-28  Thomas Schwinge  <thomas@codesourcery.com>
95         * c-parser.c (OACC_KERNELS_CLAUSE_MASK): New macro definition.
96         (c_parser_oacc_kernels): New function.
97         (c_parser_omp_construct): Handle PRAGMA_OACC_KERNELS.
98         * c-tree.h (c_finish_oacc_kernels): New prototype.
99         * c-typeck.c (c_finish_oacc_kernels): New function.
101 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
103         * c-parser.c (OACC_DATA_CLAUSE_MASK): New macro definition.
104         (c_parser_oacc_data): New function.
105         (c_parser_omp_construct): Handle PRAGMA_OACC_DATA.
106         * c-tree.h (c_finish_oacc_data): New prototype.
107         * c-typeck.c (c_finish_oacc_data): New function.
109 2014-02-17  Thomas Schwinge  <thomas@codesourcery.com>
111         * c-parser.c (c_parser_omp_clause_name): Accept pcopy, pcopyin,
112         pcopyout, pcreate clauses.
113         (c_parser_oacc_data_clause): Update comment.
115 2014-01-28  Thomas Schwinge  <thomas@codesourcery.com>
117         * c-parser.c (OACC_PARALLEL_CLAUSE_MASK): Add
118         PRAGMA_OMP_CLAUSE_COPY, PRAGMA_OMP_CLAUSE_COPYIN,
119         PRAGMA_OMP_CLAUSE_COPYOUT, PRAGMA_OMP_CLAUSE_CREATE,
120         PRAGMA_OMP_CLAUSE_DEVICEPTR, PRAGMA_OMP_CLAUSE_PRESENT,
121         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPY,
122         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYIN,
123         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYOUT, and
124         PRAGMA_OMP_CLAUSE_PRESENT_OR_CREATE.
126         * c-parser.c (c_parser_omp_clause_name): Handle these.
127         (c_parser_oacc_data_clause, c_parser_oacc_data_clause_deviceptr):
128         New functions.
129         (c_parser_oacc_all_clauses): Handle PRAGMA_OMP_CLAUSE_COPY,
130         PRAGMA_OMP_CLAUSE_COPYIN, PRAGMA_OMP_CLAUSE_COPYOUT,
131         PRAGMA_OMP_CLAUSE_CREATE, PRAGMA_OMP_CLAUSE_DELETE,
132         PRAGMA_OMP_CLAUSE_DEVICEPTR, PRAGMA_OMP_CLAUSE_PRESENT,
133         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPY,
134         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYIN,
135         PRAGMA_OMP_CLAUSE_PRESENT_OR_COPYOUT, and
136         PRAGMA_OMP_CLAUSE_PRESENT_OR_CREATE.
138         * c-parser.c (c_parser_oacc_all_clauses): New function.
139         (c_parser_oacc_parallel): Use it.
140         * c-typeck.c (c_finish_omp_clauses): Update comment.  Remove
141         duplicated variable initialization.
143 2013-11-21  Jakub Jelinek  <jakub@redhat.com>
145         * c-decl.c (c_builtin_function_ext_scope): Don't bind if
146         external_scope is NULL.
148 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
150         * c-tree.h (c_finish_oacc_parallel): New declaration.
151         * c-typeck.c (c_finish_oacc_parallel): New function.
153         * c-parser.c (c_parser_omp_structured_block): Update comment.
154         (c_parser_oacc_parallel): New function.
155         (c_parser_omp_construct): Handle PRAGMA_OACC_PARALLEL.
157         * c-parser.c (c_parser_omp_all_clauses): Make a parser error
158         message suitable for OpenACC, too.
160 2013-10-10  Jakub Jelinek  <jakub@redhat.com>
162         * c-parser.c (c_parser_binary_expression): Document omp_atomic_lhs
163         argument in function comment and drop prec argument description.
165         * c-typeck.c (handle_omp_array_sections_1): Change wording
166         of errors requesting specification of length.
167         (c_finish_omp_clauses): For error about non-integral non-pointer
168         linear clause include type in the diagnostic message.
169         * c-parser.c (c_finish_omp_declare_simd): If
170         c_omp_declare_simd_clauses_to_numbers returned non-NULL, store
171         the clauses into TREE_VALUE of an extra TREE_LIST pointed out
172         by TREE_VALUE of the attribute.
174 2013-10-08  Jakub Jelinek  <jakub@redhat.com>
176         * c-typeck.c (c_finish_omp_clauses): Remove name variable, use
177         omp_clause_code_name[OMP_CLAUSE_CODE (c) instead.
179 2013-09-25  Jakub Jelinek  <jakub@redhat.com>
181         * c-parser.c (c_parser_omp_taskgroup): Return tree.
182         Don't call c_begin_omp_taskgroup.
183         (c_parser_omp_construct): Adjust caller.
184         * c-typeck.c (c_begin_omp_taskgroup, c_finish_omp_taskgroup): Remove.
185         * c-tree.h (c_begin_omp_taskgroup, c_finish_omp_taskgroup): Remove.
187 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
189         * c-tree.h (c_omp_reduction_id, c_omp_reduction_decl,
190         c_omp_reduction_lookup, c_check_omp_declare_reduction_r): New
191         prototypes.
192         * c-typeck.c: Include tree-inline.h.
193         (c_clone_udr, c_find_omp_placeholder_r): New functions.
194         (c_finish_omp_clauses): Handle user defined reductions.
195         * Make-lang.in (c-typeck.o): Depend on $(TREE_INLINE_H).
196         * c-parser.c (c_parser_omp_clause_reduction): Handle user
197         defined reductions.
198         (c_parser_omp_declare_reduction): New function.
199         (c_parser_omp_declare): Call it.
200         * c-decl.c (c_omp_reduction_id, c_omp_reduction_decl,
201         c_omp_reduction_lookup, c_check_omp_declare_reduction_r): New
202         functions.
204 2013-09-05  Jakub Jelinek  <jakub@redhat.com>
206         * c-typeck.c (handle_omp_array_sections_1): Remove pointer_based_p
207         argument.  Do c_save_expr on low bound unconditionally.
208         (handle_omp_array_sections): Adjust caller.  Call c_fully_fold when
209         needed.  Add OMP_CLAUSE_MAP_POINTER map clause even for array based
210         array sections.
211         (c_finish_omp_clauses): Don't complain about non-mappable types
212         for OMP_CLAUSE_MAP_POINTER.  Check for duplicates even for map
213         clauses.  Handle OMP_CLAUSE_NUM_TEAMS.
214         * c-parser.c (c_parser_omp_target_data, c_parser_omp_target): Call
215         keep_next_level ().
217 2013-07-20  Jakub Jelinek  <jakub@redhat.com>
219         * c-typeck.c (c_finish_omp_declare_simd): Moved to...
220         * c-parser.c (c_finish_omp_declare_simd): ... here.  Add
221         first c_parser * argument and change last argument to vec<c_token>.
222         Parse clauses here from the saved c_tokens.
223         (struct c_parser): Change tokens to c_token *.
224         Add tokens_buf field.  Change tokens_avail type to unsigned int.
225         (c_parser_consume_token): If parser->tokens isn't
226         &parser->tokens_buf[0], increment parser->tokens.
227         (c_parser_consume_pragma): Likewise
228         (c_parser_declaration_or_fndef): Change last argument to vec<c_token>.
229         Pass parser as first argument to c_finish_omp_declare_simd.  For
230         prototypes, fix code indentation and call temp_store_parm_decls
231         and temp_pop_parm_decls around c_finish_omp_declare_simd.
232         (c_parser_omp_variable_list): Remove declare_simd argument, call
233         lookup_name unconditionally.
234         (c_parser_omp_var_list_parens, c_parser_omp_clause_reduction,
235         c_parser_omp_clause_depend, c_parser_omp_clause_map,
236         c_parser_omp_clause_uniform): Adjust c_parser_omp_variable_list
237         callers.
238         (c_parser_omp_clause_aligned, c_parser_omp_clause_linear): Likewise.
239         Remove declare_simd argument.
240         (c_parser_omp_all_clauses): Remove declare_simd argument.  Adjust
241         c_parser_omp_clause_aligned and c_parser_omp_clause_linear callers.
242         (c_parser_omp_declare_simd): Don't parse declare simd clauses here,
243         instead push the clause c_tokens starting with simd token up to
244         CPP_PRAGMA_EOL for each #pragma omp declare simd into a vector.
245         (c_parser_omp_declare): Don't consume simd token here.
246         (c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
247         * c-decl.c (temp_store_parm_decls, temp_pop_parm_decls): New
248         functions.
249         * c-tree.h (temp_store_parm_decls, temp_pop_parm_decls): New
250         prototypes.
251         (c_finish_omp_declare_simd): Remove prototype.
253 2013-07-14  Jakub Jelinek  <jakub@redhat.com>
255         * c-typeck.c (c_finish_omp_declare_simd): Don't remove
256         redundant "omp declare simd" clauses here.  Adjust
257         c_omp_declare_simd_clauses_to_numbers caller.
259 2013-07-09  Jakub Jelinek  <jakub@redhat.com>
261         * c-typeck.c (c_finish_omp_cancel): Pass two arguments to GOMP_cancel
262         rather than just one, if no OMP_CLAUSE_IF, pass true, otherwise pass
263         if clause argument.  Emit the call unconditionally.
265 2013-07-06  Jakub Jelinek  <jakub@redhat.com>
267         * c-lang.h (current_omp_declare_target_attribute): New extern
268         decl.
269         * Make-lang.in (c/c-parser.o): Depend on c/c-lang.h.
270         * c-parser.c: Include c-lang.h.
271         (c_parser_pragma): Handle PRAGMA_OMP_TARGET and
272         PRAGMA_OMP_END_DECLARE_TARGET.
273         (c_parser_omp_clause_name): Handle thread_limit clause.
274         (c_parser_omp_variable_list): Parse array sections for
275         OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
276         (c_parser_omp_clause_reduction): Remove declare_simd argument.
277         Pass false instead of declare_simd to c_parser_omp_variable_list.
278         (c_parser_omp_clause_cancelkind): Remove diagnostics.
279         (c_parser_omp_clause_thread_limit): New function.
280         (c_parser_omp_all_clauses): Add finish_p argument.  Don't call
281         c_finish_omp_clauses if it is false.  Require that
282         OMP_CLAUSE_{PARALLEL,FOR,SECTIONS,TASKGROUP} must be first in
283         the list of clauses.  Adjust c_parser_omp_clause_reduction
284         caller.
285         (c_parser_omp_for_loop): Change last argument to cclauses,
286         and adjust uses to grab parallel clauses from the array of all
287         the split clauses.
288         (omp_split_clauses): New function.
289         (c_parser_omp_simd): Add p_name, mask and cclauses arguments.
290         Allow the function to be called also when parsing combined constructs.
291         (c_parser_omp_sections): Likewise.
292         (c_parser_omp_for): Add p_name, mask and cclauses arguments.
293         Allow the function to be called also when parsing combined constructs,
294         and call cp_parser_omp_simd when parsing for simd.
295         (c_parser_omp_parallel): Likewise.
296         (c_parser_omp_single, c_parser_omp_task, c_parser_omp_cancel,
297         c_parser_omp_cancellation_point, c_parser_omp_declare_simd): Adjust
298         c_parser_omp_all_clauses callers.
299         (OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
300         OMP_TARGET_DATA_CLAUSE_MASK, OMP_TARGET_UPDATE_CLAUSE_MASK,
301         OMP_DISTRIBUTE_CLAUSE_MASK): Define.
302         (c_parser_omp_teams, c_parser_omp_target, c_parser_omp_target_data,
303         c_parser_omp_target_update, c_parser_omp_distribute): New
304         functions.
305         (c_parser_omp_construct): Handle PRAGMA_OMP_DISTRIBUTE and
306         PRAGMA_OMP_TEAMS.  Adjust callers of c_parser_omp_simd,
307         c_parser_omp_sections, c_parser_omp_for and c_parser_omp_parallel.
308         (OMP_DECLARE_SIMD_CLAUSE_MASK): Remove OMP_CLAUSE_REDUCTION.
309         (c_parser_omp_declare_target, c_parser_omp_end_declare_target): New
310         functions.
311         (c_parser_omp_declare): For target keyword call
312         c_parser_omp_declare_target.  Adjust expected keyword diagnostics.
313         * c-decl.c (current_omp_declare_target_attribute): New variable.
314         (c_decl_attributes): New function.
315         (start_decl, start_function): Use it instead of decl_attributes.
316         * c-typeck.c (handle_omp_array_sections_1, handle_omp_array_sections):
317         New functions.
318         (c_finish_omp_clauses): Handle array sections on
319         OMP_CLAUSE_{MAP,TO,FROM,DEPEND}.  If not array sections, mark the
320         decl addressable.  Complain if OMP_CLAUSE_{MAP,TO,FROM}
321         decls or array sections don't have complete type. Handle
322         OMP_CLAUSE_THREAD_LIMIT.
324 2013-07-03  Jakub Jelinek  <jakub@redhat.com>
326         * c-parser.c (c_parser_omp_atomic): Disallow seq_cst before
327         atomic-clause, disallow comma in between atomic-clause and
328         seq_cst.
329         (c_parser_omp_sections_scope): If section-sequence doesn't
330         start with #pragma omp section, require exactly one structured-block
331         instead of sequence of statements.
332         * c-typeck.c (c_finish_omp_clauses): Diagnose copyprivate clause
333         appearing together with nowait clause.
335 2013-06-14  Jakub Jelinek  <jakub@redhat.com>
337         * c-parser.c (c_parser_omp_for): Comment out OMP_FOR_SIMD uses.
338         (c_parser_omp_parallel): Call c_omp_split_clauses instead of
339         c_split_parallel_clauses, adjust the code for different API
340         of the new function.
342 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
344         * c-tree.h (c_finish_omp_declare_simd): New prototype.
345         * c-typeck.c (c_finish_omp_clauses): Handle OMP_CLAUSE_LINEAR_STEP
346         adjustments for pointer-types here.  Diagnose inbranch notinbranch
347         being used together.
348         (c_finish_omp_declare_simd): New function.
349         * c-parser.c (enum pragma_context): Add pragma_struct and
350         pragma_param.
351         (c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
352         argument.  Call c_finish_omp_declare_simd if needed.
353         (c_parser_external_declaration, c_parser_compound_statement_nostart,
354         c_parser_label, c_parser_for_statement, c_parser_objc_methodprotolist,
355         c_parser_omp_for_loop): Adjust c_parser_declaration_or_fndef callers.
356         (c_parser_struct_or_union_specifier): Use pragma_struct instead of
357         pragma_external.
358         (c_parser_parameter_declaration): Use pragma_param instead of
359         pragma_external.
360         (c_parser_pragma): Handle PRAGMA_OMP_DECLARE_REDUCTION.
361         Replace == pragma_external with != pragma_stmt && != pragma_compound
362         test.
363         (c_parser_omp_variable_list): Add declare_simd argument.  Don't lookup
364         vars if it is true, just store identifiers.
365         (c_parser_omp_var_list_parens, c_parser_omp_clause_depend,
366         c_parser_omp_clause_map): Adjust callers.
367         (c_parser_omp_clause_reduction, c_parser_omp_clause_aligned): Add
368         declare_simd argument, pass it through to c_parser_omp_variable_list.
369         (c_parser_omp_clause_linear): Likewise.  Don't handle
370         OMP_CLAUSE_LINEAR_STEP adjustements for pointer-types here.
371         (c_parser_omp_clause_uniform): Call c_parser_omp_variable_list
372         instead of c_parser_omp_var_list_parens to pass true as declare_simd.
373         (c_parser_omp_all_clauses): Add declare_simd argument, pass it through
374         clause parsing routines as needed.  Don't call c_finish_omp_clauses if
375         set.
376         (c_parser_omp_simd, c_parser_omp_for, c_parser_omp_sections,
377         c_parser_omp_parallel, c_parser_omp_single, c_parser_omp_task,
378         c_parser_omp_cancel, c_parser_omp_cancellation_point): Adjust callers.
379         (OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
380         (c_parser_omp_declare_simd, c_parser_omp_declare): New functions.
382 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
384         * c-parser.c (c_parser_omp_atomic): Parse seq_cst clause, pass
385         true if it is present to c_finish_omp_atomic.
387 2013-04-24  Jakub Jelinek  <jakub@redhat.com>
389         * c-parser.c (c_parser_compound_statement,
390         c_parser_statement): Adjust comments for OpenMP 3.0+
391         additions.
392         (c_parser_pragma): Handle PRAGMA_OMP_CANCEL and
393         PRAGMA_OMP_CANCELLATION_POINT.
394         (c_parser_omp_clause_name): Handle new OpenMP 4.0 clauses.
395         (c_parser_omp_clause_collapse): Fully fold collapse
396         expression.
397         (c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
398         c_parser_omp_clause_num_teams, c_parser_omp_clause_aligned,
399         c_parser_omp_clause_linear, c_parser_omp_clause_safelen,
400         c_parser_omp_clause_simdlen, c_parser_omp_clause_depend,
401         c_parser_omp_clause_map, c_parser_omp_clause_device,
402         c_parser_omp_clause_dist_schedule, c_parser_omp_clause_proc_bind,
403         c_parser_omp_clause_to, c_parser_omp_clause_from,
404         c_parser_omp_clause_uniform): New functions.
405         (c_parser_omp_all_clauses): Handle new OpenMP 4.0 clauses.
406         (c_parser_omp_for_loop): Add CODE argument, pass it through
407         to c_finish_omp_for.
408         (OMP_SIMD_CLAUSE_MASK): Define.
409         (c_parser_omp_simd): New function.
410         (c_parser_omp_for): Parse #pragma omp for simd.
411         (OMP_PARALLEL_CLAUSE_MASK): Add OMP_CLAUSE_PROC_BIND.
412         (c_parser_omp_parallel): Parse #pragma omp parallel for simd.
413         (OMP_TASK_CLAUSE_MASK): Add OMP_CLAUSE_DEPEND.
414         (c_parser_omp_taskgroup): New function.
415         (OMP_CANCEL_CLAUSE_MASK, OMP_CANCELLATION_POINT_CLAUSE_MASK): Define.
416         (c_parser_omp_cancel, c_parser_omp_cancellation_point): New functions.
417         (c_parser_omp_construct): Handle PRAGMA_OMP_SIMD and
418         PRAGMA_OMP_TASKGROUP.
419         (c_parser_transaction_cancel): Formatting fix.
420         * c-tree.h (c_begin_omp_taskgroup, c_finish_omp_taskgroup,
421         c_finish_omp_cancel, c_finish_omp_cancellation_point): New prototypes.
422         * c-typeck.c (c_begin_omp_taskgroup, c_finish_omp_taskgroup,
423         c_finish_omp_cancel, c_finish_omp_cancellation_point): New functions.
424         (c_finish_omp_clauses): Handle new OpenMP 4.0 clauses.
426 2013-03-27  Jakub Jelinek  <jakub@redhat.com>
428         * c-parser.c (c_parser_omp_all_clauses): Change mask argument type
429         from unsigned to omp_clause_mask.
430         (c_parser_omp_for_loop): Adjust c_finish_omp_for caller.
431         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
432         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK,
433         OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
434         (c_parser_omp_parallel): Use omp_clause_mask type instead of unsigned
435         for mask, use OMP_CLAUSE_MASK_1 instead of 1 for masks.
437 2013-03-20  Jakub Jelinek  <jakub@redhat.com>
439         * c-parser.c (c_parser_expr_no_commas): Add omp_atomic_lhs argument
440         with default value, pass it down to c_parser_conditional_expression.
441         (c_parser_conditional_expression): Add omp_atomic_lhs argument, pass
442         it down to c_parser_binary_expression.  Don't pass PREC_NONE to
443         it.  Adjust recursive call.
444         (c_parser_binary_expression): Remove prec argument, add omp_atomic_lhs
445         argument.  Always start from PREC_NONE, if omp_atomic_lhs is non-NULL
446         and one of the arguments of toplevel binop matches it, use build2
447         instead of parser_build_binary_op.
448         (c_parser_omp_atomic): Handle OpenMP 4.0 atomics.
449         (c_parser_omp_for_loop): Adjust c_parser_binary_expression caller.
450         * c-tree.h (c_tree_equal): New prototype.
451         * c-typeck.c (c_tree_equal): New function.
453         * c-parser.c (c_parser_omp_atomic): Adjust comment.
454         Add another argument to c_finish_omp_atomic.
456 Copyright (C) 2013-2014 Free Software Foundation, Inc.
458 Copying and distribution of this file, with or without modification,
459 are permitted in any medium without royalty provided the copyright
460 notice and this notice are preserved.