]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog.omp
Fortran/OpenMP: Fix mapping of array descriptors and deferred-length strings
[thirdparty/gcc.git] / gcc / fortran / ChangeLog.omp
CommitLineData
55a18d47
TB
12023-02-22 Tobias Burnus <tobias@codesourcery.com>
2
3 * trans-decl.cc (gfc_get_symbol_decl): Add attributes
4 such as 'declare target' also to hidden artificial
5 variable for deferred-length character variables.
6 * trans-openmp.cc (gfc_trans_omp_array_section,
7 gfc_trans_omp_clauses, gfc_trans_omp_target_exit_data):
8 Improve mapping of array descriptors and deferred-length
9 string variables.
10
cbd92239
TB
112023-02-22 Tobias Burnus <tobias@codesourcery.com>
12
13 * trans-openmp.cc (gfc_trans_omp_clauses): Move align modifier
14 handling from OMP_LIST_ALLOCATOR to OMP_LIST_ALLOCATE.
15
174c1677
TB
162023-02-15 Tobias Burnus <tobias@codesourcery.com>
17
18 Backported from master:
19 2023-02-15 Tobias Burnus <tobias@codesourcery.com>
20
21 PR fortran/108512
22 * openmp.cc (gfc_resolve_omp_parallel_blocks): Handle combined 'loop'
23 directives.
24 (gfc_resolve_do_iterator): Set a source location for added
25 'private'-clause arguments.
26 * resolve.cc (gfc_resolve_code): Call gfc_resolve_omp_do_blocks
27 also for EXEC_OMP_LOOP and gfc_resolve_omp_parallel_blocks for
28 combined directives with loop + '{masked,master} taskloop (simd)'.
29
e7279cc2
KCY
302023-02-14 Kwok Cheung Yeung <kcy@codesourcery.com>
31
32 * dump-parse-tree.cc (show_omp_namelist): Display 'present' map
33 modifier.
34 (show_omp_clauses): Display 'present' motion modifier for 'to'
35 and 'from' clauses.
36
229b7058
KCY
372023-02-09 Kwok Cheung Yeung <kcy@codesourcery.com>
38
39 * gfortran.h (enum gfc_omp_map_op): Add entries with 'present'
40 modifiers.
41 (enum gfc_omp_motion_modifier): New.
42 (struct gfc_omp_namelist): Add motion_modifier field.
43 * openmp.cc (gfc_match_omp_variable_list): Add new parameter with
44 default. Parse 'present' motion modifier and apply.
45 (gfc_match_omp_clauses): Parse 'present' in defaultmap, 'from'
46 clauses, 'map' clauses and 'to' clauses.
47 (resolve_omp_clauses): Allow 'present' modifiers on 'target',
48 'target data', 'target enter' and 'target exit' directives.
49 * trans-openmp.cc (gfc_trans_omp_clauses): Apply 'present' modifiers
50 to tree node for 'map', 'to' and 'from' clauses. Apply 'present' for
51 defaultmap.
52
f735f59a
TB
532023-02-09 Tobias Burnus <tobias@codesourcery.com>
54
55 Backported from master:
56 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
57
58 PR fortran/107424
59 * trans-openmp.cc (struct dovar_init_d): Add 'sym' and
60 'non_unit_incr' members.
61 (gfc_nonrect_loop_expr): New.
62 (gfc_trans_omp_do): Call it; use normal loop bounds
63 for unit stride - and only create local loop var.
64
12102532
TB
652023-02-09 Tobias Burnus <tobias@codesourcery.com>
66
67 Backported from master:
68 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
69
70 * parse.cc (decode_omp_directive): Really ignore 'assumes' with
71 -fopenmp-simd.
72
23f2f065
TB
732023-02-01 Tobias Burnus <tobias@codesourcery.com>
74
75 Backported from master:
76 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
77
78 * openmp.cc (resolve_omp_clauses): Check also for
79 power of two.
80
01a12b3d
TB
812023-01-16 Tobias Burnus <tobias@codesourcery.com>
82
83 Backported from master:
84 2023-01-12 Tobias Burnus <tobias@codesourcery.com>
85
86 PR fortran/107706
87 * openmp.cc (gfc_resolve_omp_assumptions): Reject nonscalars.
88
83f24e7f
JB
892022-12-21 Tobias Burnus <tobias@codesourcery.com>
90
91 Backported from master:
92 2022-12-14 Julian Brown <julian@codesourcery.com>
93
94 PR fortran/107214
95 * gfortran.h (gfc_symbol): Add data_mark, dev_mark, gen_mark and
96 reduc_mark bitfields.
97 * openmp.cc (resolve_omp_clauses): Use above bitfields to improve
98 duplicate clause detection.
99
c4d7c7ee
JB
1002022-12-21 Tobias Burnus <tobias@codesourcery.com>
101
102 Backported from master:
103 2022-12-14 Julian Brown <julian@codesourcery.com>
104
105 * trans-openmp.cc (gfc_add_firstprivate_if_unmapped): New function.
106 (gfc_split_omp_clauses): Call above.
107
58e0579e
TB
1082022-12-12 Tobias Burnus <tobias@codesourcery.com>
109
110 Backported from master:
111 2022-12-09 Tobias Burnus <tobias@codesourcery.com>
112
113 * dump-parse-tree.cc (show_omp_namelist): Improve OMP_LIST_ALLOCATE
114 output.
115 * gfortran.h (struct gfc_omp_namelist): Add 'align' to 'u'.
116 (gfc_free_omp_namelist): Add bool arg.
117 * match.cc (gfc_free_omp_namelist): Likewise; free 'u.align'.
118 * openmp.cc (gfc_free_omp_clauses, gfc_match_omp_clause_reduction,
119 gfc_match_omp_flush): Update call.
120 (gfc_match_omp_clauses): Match 'align/allocate modifers in
121 'allocate' clause.
122 (resolve_omp_clauses): Resolve align.
123 * st.cc (gfc_free_statement): Update call
124 * trans-openmp.cc (gfc_trans_omp_clauses): Handle 'align'.
125
519f647c
TB
1262022-11-28 Tobias Burnus <tobias@codesourcery.com>
127
128 Backported from master:
129 2022-11-28 Tobias Burnus <tobias@codesourcery.com>
130
131 * openmp.cc (OMP_DO_CLAUSES, OMP_SCOPE_CLAUSES,
132 OMP_SECTIONS_CLAUSES): Add 'nowait'.
133 (OMP_SINGLE_CLAUSES): Add 'nowait' and 'copyprivate'.
134 (gfc_match_omp_distribute_parallel_do,
135 gfc_match_omp_distribute_parallel_do_simd,
136 gfc_match_omp_parallel_do,
137 gfc_match_omp_parallel_do_simd,
138 gfc_match_omp_parallel_sections,
139 gfc_match_omp_teams_distribute_parallel_do,
140 gfc_match_omp_teams_distribute_parallel_do_simd): Disallow 'nowait'.
141 (gfc_match_omp_workshare): Match 'nowait' clause.
142 (gfc_match_omp_end_single): Use clause matcher for 'nowait'.
143 (resolve_omp_clauses): Reject 'nowait' + 'copyprivate'.
144 * parse.cc (decode_omp_directive): Break too long line.
145 (parse_omp_do, parse_omp_structured_block): Diagnose duplicated
146 'nowait' clause.
147
f9d53629
TB
1482022-11-04 Tobias Burnus <tobias@codesourcery.com>
149
150 Partial Revert:
151 2022-11-02 Tobias Burnus <tobias@codesourcery.com>
152
153 * openmp.cc (resolve_omp_clauses):Accept noncontiguous arrays.
154
9cb4ef1e
TB
1552022-11-02 Tobias Burnus <tobias@codesourcery.com>
156
157 * trans-openmp.cc (gfc_trans_omp_clauses): Ensure DT struct-comp with
158 array descriptor and 'alloc:' have the descriptor mapped with 'to:'.
159
cb934e37
TB
1602022-11-02 Tobias Burnus <tobias@codesourcery.com>
161
162 * openmp.cc (gfc_match_omp_clauses): Permit derived types.
163 (resolve_omp_clauses):Accept noncontiguous
164 arrays.
165 * trans-openmp.cc (gfc_trans_omp_clauses): Fixes for
166 derived-type changes; fix size for scalars.
167
5eb6cbcf
MV
1682022-10-27 Marcel Vollweiler <marcel@codesourcery.com>
169
170 * openmp.cc (oacc_is_parallel): Remove.
171 (resolve_oacc_loop_blocks): Remove "gang reduction on an orphan loop"
172 checking.
173
92b14810
TB
1742022-10-19 Tobias Burnus <tobias@codesourcery.com>
175
176 * trans-array.cc (non_negative_strides_array_p): Fix handling
177 of GFC_DECL_SAVED_DESCRIPTOR.
178 (gfc_conv_array_ref): Use ARRAY_REF again when possible.
179
cc4b1e41
TB
1802022-10-17 Tobias Burnus <tobias@codesourcery.com>
181
182 Backport from mainline:
183 2022-10-17 Tobias Burnus <tobias@codesourcery.com>
184
185 PR fortran/107266
186 * trans-expr.cc (gfc_conv_string_parameter): Use passed
187 type to honor character kind.
188 * trans-types.cc (gfc_sym_type): Honor character kind.
189 * trans-decl.cc (gfc_conv_cfi_to_gfc): Fix handling kind=4
190 character strings.
191
249a6ce0
TB
1922022-10-05 Tobias Burnus <tobias@codesourcery.com>
193
194 Backport from mainline:
195 2022-10-05 Tobias Burnus <tobias@codesourcery.com>
196
197 * dump-parse-tree.cc (show_omp_assumes): New.
198 (show_omp_clauses, show_namespace): Call it.
199 (show_omp_node, show_code_node): Handle OpenMP ASSUME.
200 * gfortran.h (enum gfc_statement): Add ST_OMP_ASSUME,
201 ST_OMP_END_ASSUME, ST_OMP_ASSUMES and ST_NOTHING.
202 (gfc_exec_op): Add EXEC_OMP_ASSUME.
203 (gfc_omp_assumptions): New struct.
204 (gfc_get_omp_assumptions): New XCNEW #define.
205 (gfc_omp_clauses, gfc_namespace): Add assume member.
206 (gfc_resolve_omp_assumptions): New prototype.
207 * match.h (gfc_match_omp_assume, gfc_match_omp_assumes): New.
208 * openmp.cc (omp_code_to_statement): Forward declare.
209 (enum gfc_omp_directive_kind, struct gfc_omp_directive): New.
210 (gfc_free_omp_clauses): Free assume member and its struct data.
211 (enum omp_mask2): Add OMP_CLAUSE_ASSUMPTIONS.
212 (gfc_omp_absent_contains_clause): New.
213 (gfc_match_omp_clauses): Call it; optionally use passed
214 omp_clauses argument.
215 (omp_verify_merge_absent_contains, gfc_match_omp_assume,
216 gfc_match_omp_assumes, gfc_resolve_omp_assumptions): New.
217 (resolve_omp_clauses): Call the latter.
218 (gfc_resolve_omp_directive, omp_code_to_statement): Handle
219 EXEC_OMP_ASSUME.
220 * parse.cc (decode_omp_directive): Parse OpenMP ASSUME(S).
221 (next_statement, parse_executable, parse_omp_structured_block):
222 Handle ST_OMP_ASSUME.
223 (case_omp_decl): Add ST_OMP_ASSUMES.
224 (gfc_ascii_statement): Handle Assumes, optional return
225 string without '!$OMP '/'!$ACC ' prefix.
226 * parse.h (gfc_ascii_statement): Add optional bool arg to prototype.
227 * resolve.cc (gfc_resolve_blocks, gfc_resolve_code): Add
228 EXEC_OMP_ASSUME.
229 (gfc_resolve): Resolve ASSUMES directive.
230 * symbol.cc (gfc_free_namespace): Free omp_assumes member.
231 * st.cc (gfc_free_statement): Handle EXEC_OMP_ASSUME.
232 * trans-openmp.cc (gfc_trans_omp_directive): Likewise.
233 * trans.cc (trans_code): Likewise.
234
5c341c05
TB
2352022-10-05 Tobias Burnus <tobias@codesourcery.com>
236
237 Backport from mainline:
238 2022-10-04 Tobias Burnus <tobias@codesourcery.com>
239
240 * parse.cc (decode_omp_directive): Handle '(end) loop' and 'scan'
241 also with -fopenmp-simd.
242
5ee8de35
TB
2432022-09-30 Tobias Burnus <tobias@codesourcery.com>
244
245 Backport from mainline:
246 2022-09-30 Tobias Burnus <tobias@codesourcery.com>
247
248 PR fortran/105318
249 * openmp.cc (resolve_omp_clauses): Update is_device_ptr restrictions
250 for OpenMP 5.1 and map to has_device_addr where applicable; map
251 use_device_ptr to use_device_addr where applicable.
252 Silence integer-range warning for device(omp_{initial,invalid}_device).
d21bfef9
PAA
253
2542022-09-28 Paul-Antoine Arras <pa@codesourcery.com>
255
256 * parse.cc (gfc_ascii_statement): Missing $ in !$OMP END METADIRECTIVE.
257 (parse_omp_structured_block): Fix handling of OMP end metadirective.
258 (parse_omp_metadirective_body): Reject OMP end statements
259 at the end of an OMP metadirective.
260
ff46d9d6
TB
2612022-09-23 Tobias Burnus <tobias@codesourcery.com>
262
263 Backport from mainline:
264 2022-09-20 Tobias Burnus <tobias@codesourcery.com>
265
266 PR fortran/104143
267 * interface.cc (compare_parameter): Permit scalar args to
268 'type(*), dimension(*)'.
269
fa7e7381
TB
2702022-09-09 Tobias Burnus <tobias@codesourcery.com>
271
272 Backport from mainline:
273 2022-09-08 Tobias Burnus <tobias@codesourcery.com>
274
275 PR fortran/106670
276 * scanner.cc (skip_fixed_omp_sentinel): Add -Wsurprising warning
277 for 'omx' sentinels with -fopenmp.
278 * invoke.texi (-Wsurprising): Document additional warning case.
279
e0859448
TB
2802022-09-06 Tobias Burnus <tobias@codesourcery.com>
281
282 Backport from mainline:
283 2022-09-06 Tobias Burnus <tobias@codesourcery.com>
284
285 * openmp.cc (resolve_omp_clauses): Remove ordered/linear
286 check as it is handled now in the middle end.
287
bc81271a
TB
2882022-09-05 Tobias Burnus <tobias@codesourcery.com>
289
290 Backport from mainline:
291 2022-09-05 Tobias Burnus <tobias@codesourcery.com>
292
293 * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Handle
294 omp_cur_iteration and distinguish doacross/depend.
295 * gfortran.h (enum gfc_omp_depend_doacross_op): Renamed from
296 gfc_omp_depend_op.
297 (enum gfc_omp_depend_doacross_op): Add OMP_DOACROSS_SINK_FIRST,
298 Rename OMP_DEPEND_SINK to OMP_DOACROSS_SINK.
299 (gfc_omp_namelist) Handle renaming, rename depend_op to
300 depend_doacross_op.
301 (struct gfc_omp_clauses): Add doacross_source.
302 * openmp.cc (gfc_match_omp_depend_sink): Renamed to ...
303 (gfc_match_omp_doacross_sink): ... this; handle omp_all_memory.
304 (enum omp_mask2): Add OMP_CLAUSE_DOACROSS.
305 (gfc_match_omp_clauses): Handle 'doacross' and syntax changes to
306 depend.
307 (gfc_match_omp_depobj): Simplify as sink/source are now impossible.
308 (gfc_match_omp_ordered_depend): Request OMP_CLAUSE_DOACROSS.
309 (resolve_omp_clauses): Update sink/source checks.
310 (gfc_resolve_omp_directive): Resolve EXEC_OMP_ORDERED clauses.
311 * parse.cc (decode_omp_directive): Handle 'ordered doacross'.
312 * trans-openmp.cc (gfc_trans_omp_clauses): Handle doacross.
313 (gfc_trans_omp_do): Fix OMP_FOR_ORIG_DECLS handling if 'ordered'
314 clause is present.
315 (gfc_trans_omp_depobj): Update for member name change.
316
92e848d3
JJ
3172022-09-05 Tobias Burnus <tobias@codesourcery.com>
318
319 Backport from mainline:
320 2022-09-03 Jakub Jelinek <jakub@redhat.com>
321
322 * trans-openmp.cc (gfc_trans_omp_clauses): Use
323 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
324 OMP_CLAUSE_DEPEND_SINK_NEGATIVE, build OMP_CLAUSE_DOACROSS
325 clause instead of OMP_CLAUSE_DEPEND and set OMP_CLAUSE_DOACROSS_DEPEND
326 on it.
327
44d5246b
TB
3282022-08-30 Tobias Burnus <tobias@codesourcery.com>
329
330 Backport from mainline:
331 2022-05-27 Tobias Burnus <tobias@codesourcery.com>
332 Chung-Lin Tang <cltang@codesourcery.com>
333
334 * openmp.cc (gfc_check_omp_requires): Fix clause name in error.
335
9b937ac0
TB
3362022-08-23 Tobias Burnus <tobias@codesourcery.com>
337
338 Backport from mainline:
339 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
340
341 PR fortran/106566
342 * openmp.cc (gfc_match_omp_clauses): Fix setting linear-step value
343 to 1 when not specified.
344 (gfc_match_omp_declare_simd): Accept module procedures.
345
547a6252
TB
3462022-07-29 Tobias Burnus <tobias@codesourcery.com>
347
348 Backport from mainline:
349 2022-07-29 Tobias Burnus <tobias@codesourcery.com>
350
351 * openmp.cc (resolve_omp_clauses): Permit assumed-size arrays
352 in uniform clause.
353
5e7baa3c
TB
3542022-07-05 Tobias Burnus <tobias@codesourcery.com>
355
356 Backport from mainline:
357 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
358 Chung-Lin Tang <cltang@codesourcery.com>
359 Thomas Schwinge <thomas@codesourcery.com>
360
361 * openmp.cc (gfc_match_omp_requires): Remove sorry.
362 * parse.cc (decode_omp_directive): Don't regard 'declare target'
363 as target usage for 'omp requires'; add more flags to
364 omp_requires_mask.
365
9492ed22
TB
3662022-07-05 Tobias Burnus <tobias@codesourcery.com>
367
368 Backport from mainline:
369 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
370 Jakub Jelinek <jakub@redhat.com>
371
372 * gfortran.h (gfc_omp_namelist): Update by creating 'linear' struct,
373 move 'linear_op' as 'op' to id and add 'old_modifier' to it.
374 * dump-parse-tree.cc (show_omp_namelist): Update accordingly.
375 * module.cc (mio_omp_declare_simd): Likewise.
376 * trans-openmp.cc (gfc_trans_omp_clauses): Likewise.
377 * openmp.cc (resolve_omp_clauses): Likewise; accept new-style
378 'val' modifier with do/simd.
379 (gfc_match_omp_clauses): Handle OpenMP 5.2 linear clause syntax.
380
f9c809f0
TB
3812022-07-05 Tobias Burnus <tobias@codesourcery.com>
382
383 Backport from mainline:
384 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
385
386 * dump-parse-tree.cc (show_omp_namelist): For the map-type,
387 also handle the always modifer and release/delete.
388 * openmp.cc (resolve_omp_clauses): Accept tofrom
389 map-type modifier for target enter/exit data,
390 but use 'to' / 'from' internally.
391
0bded9db
TB
3922022-07-05 Tobias Burnus <tobias@codesourcery.com>
393
394 Backport from mainline:
395 2022-06-08 Tobias Burnus <tobias@codesourcery.com>
396
397 * openmp.cc (gfc_match_omp_clauses): Check also parent namespace
398 for 'requires reverse_offload'.
399
b017548f
JJ
4002022-07-05 Tobias Burnus <tobias@codesourcery.com>
401
402 Backport from mainline:
403 2022-06-07 Jakub Jelinek <jakub@redhat.com>
404
405 * trans-openmp.cc (gfc_trans_omp_clauses): Set
406 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER on OMP_CLAUSE_LINEAR
407 clauses unconditionally for now.
408
fc8e0d12
TB
4092022-07-05 Tobias Burnus <tobias@codesourcery.com>
410
411 Backport from mainline:
412 2022-06-03 Tobias Burnus <tobias@codesourcery.com>
413
414 * openmp.cc (OMP_SCOPE_CLAUSES): Add firstprivate and allocate.
415
5d894208
TB
4162022-07-05 Tobias Burnus <tobias@codesourcery.com>
417
418 Backport from mainline:
419 2022-05-28 Tobias Burnus <tobias@codesourcery.com>
420
421 * dump-parse-tree.cc (show_omp_clauses): Handle OMP_LIST_ENTER.
422 * gfortran.h: Add OMP_LIST_ENTER.
423 * openmp.cc (enum omp_mask2, OMP_DECLARE_TARGET_CLAUSES): Add
424 OMP_CLAUSE_ENTER.
425 (gfc_match_omp_clauses, gfc_match_omp_declare_target,
426 resolve_omp_clauses): Handle 'enter' clause.
427
47b01438
TB
4282022-07-05 Tobias Burnus <tobias@codesourcery.com>
429
430 Backport from mainline:
431 2022-05-24 Tobias Burnus <tobias@codesourcery.com>
432
433 PR c/105378
434 * openmp.cc (gfc_match_omp_taskwait): Accept nowait.
435
2dda9403
TB
4362022-07-05 Tobias Burnus <tobias@codesourcery.com>
437
438 Backport from mainline:
439 2022-05-18 Tobias Burnus <tobias@codesourcery.com>
440
441 * gfortran.h (enum gfc_omp_depend_op): Add OMP_DEPEND_INOUTSET.
442 (gfc_omp_clauses): Enlarge ENUM_BITFIELD.
443 * dump-parse-tree.cc (show_omp_namelist, show_omp_clauses): Handle
444 'inoutset' depend modifier.
445 * openmp.cc (gfc_match_omp_clauses, gfc_match_omp_depobj): Likewise.
446 * trans-openmp.cc (gfc_trans_omp_clauses, gfc_trans_omp_depobj):
447 Likewise.
448
c4157723
TB
4492022-07-04 Tobias Burnus <tobias@codesourcery.com>
450
451 Backport from mainline:
452 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
453
454 * trans-openmp.cc (gfc_trans_omp_clauses): When mapping nondescriptor
455 array sections, use GOMP_MAP_FIRSTPRIVATE_POINTER instead of
456 GOMP_MAP_POINTER for the pointer attachment.
457
458 * dump-parse-tree.cc (show_omp_namelist): Handle omp_all_memory.
459 * openmp.cc (gfc_match_omp_variable_list, gfc_match_omp_depend_sink,
460 gfc_match_omp_clauses, resolve_omp_clauses): Likewise.
461 * trans-openmp.cc (gfc_trans_omp_clauses, gfc_trans_omp_depobj):
462 Likewise.
463 * resolve.cc (resolve_symbol): Reject it as symbol.
464
438b4cec
TB
4652022-07-04 Tobias Burnus <tobias@codesourcery.com>
466
467 Backport from mainline:
468 2022-05-13 Tobias Burnus <tobias@codesourcery.com>
469
470 * trans-openmp.cc (gfc_trans_omp_clauses): When mapping nondescriptor
471 array sections, use GOMP_MAP_FIRSTPRIVATE_POINTER instead of
472 GOMP_MAP_POINTER for the pointer attachment.
473
82a3f9f2
KCY
4742022-06-30 Kwok Cheung Yeung <kcy@codesourcery.com>
475
476 * openmp.cc (gfc_resolve_omp_allocate): Initialize tail to NULL.
477
9fb0076b
KCY
4782022-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
479
480 * trans-array.cc (gfc_conv_array_ref): Update arguments to
481 gfc_build_array_ref.
482
aec89cc4
SL
4832022-05-05 Sandra Loosemore <sandra@codesourcery.com>
484
485 Backport from mainline:
486 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
487
488 * gfortran.h (struct gfc_omp_clauses): Add non_rectangular bit.
489 * openmp.cc (is_outer_iteration_variable): New function.
490 (expr_is_invariant): New function.
491 (bound_expr_is_canonical): New function.
492 (resolve_omp_do): Replace existing non-rectangularity error with
493 check for canonical form and setting non_rectangular bit.
494 * trans-openmp.cc (gfc_trans_omp_do): Transfer non_rectangular
495 flag to generated tree structure.
496
28d79c96
SL
4972022-03-24 Sandra Loosemore <sandra@codesourcery.com>
498
499 Backport from mainline:
500
501 2022-03-24 Sandra Loosemore <sandra@codesourcery.com>
502
503 * trans-openmp.cc (gfc_trans_omp_critical): Set location on OMP
504 tree node.
505 (gfc_trans_omp_do): Likewise.
506 (gfc_trans_omp_masked): Likewise.
507 (gfc_trans_omp_do_simd): Likewise.
508 (gfc_trans_omp_scope): Likewise.
509 (gfc_trans_omp_taskgroup): Likewise.
510 (gfc_trans_omp_taskwait): Likewise.
511 (gfc_trans_omp_distribute): Likewise.
512 (gfc_trans_omp_taskloop): Likewise.
513 (gfc_trans_omp_master_masked_taskloop): Likewise.
514
dbc770c4
CLT
5152022-06-17 Chung-Lin Tang <cltang@codesourcery.com>
516
517 Backport from mainline:
518 2022-06-17 Chung-Lin Tang <cltang@codesourcery.com>
519
520 * gfortran.h (struct gfc_omp_namelist): Add memspace_sym, traits_sym
521 fields.
522 (OMP_LIST_USES_ALLOCATORS): New list enum.
523 * openmp.cc (enum omp_mask2): Add OMP_CLAUSE_USES_ALLOCATORS.
524 (gfc_match_omp_clause_uses_allocators): New function.
525 (gfc_match_omp_clauses): Add case to handle OMP_CLAUSE_USES_ALLOCATORS.
526 (OMP_TARGET_CLAUSES): Add OMP_CLAUSE_USES_ALLOCATORS.
527 (resolve_omp_clauses): Add "USES_ALLOCATORS" to clause_names[].
528 * dump-parse-tree.cc (show_omp_namelist): Handle OMP_LIST_USES_ALLOCATORS.
529 (show_omp_clauses): Likewise.
530 * trans-array.cc (gfc_conv_array_initializer): Adjust array index
531 to always be a created tree expression instead of NULL_TREE when zero.
532 * trans-openmp.cc (gfc_trans_omp_clauses): For ALLOCATE clause, handle
533 using gfc_trans_omp_variable for EXPR_VARIABLE exprs.
534 Add handling of OMP_LIST_USES_ALLOCATORS case.
535 * types.def (BT_FN_VOID_PTRMODE): Define.
536 (BT_FN_PTRMODE_PTRMODE_INT_PTR): Define.
537
2bdbbdb6
TB
5382022-05-23 Tobias Burnus <tobias@codesourcery.com>
539
540 Backport from mainline:
541 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
542
543 PR fortran/104949
544 * f95-lang.cc (LANG_HOOKS_OMP_ARRAY_SIZE): Redefine.
545 * trans-openmp.cc (gfc_omp_array_size): New.
546 (gfc_trans_omp_variable_list): Never turn has_device_addr
547 to firstprivate.
548 * trans.h (gfc_omp_array_size): New.
549
21357770
TB
5502022-05-12 Tobias Burnus <tobias@codesourcery.com>
551
552 * trans-array.cc (gfc_scalar_elemental_arg_saved_as_reference):
553 Return true for attr.proc_pointer expressions.
554
319298fb
TB
5552022-04-27 Tobias Burnus <tobias@codesourcery.com>
556
557 * resolve.cc (gfc_resolve_finalizers): Remove
558 gfc_resolve_finalizers calls, use gfc_is_finalizable.
559 (resolve_fl_derived): Resolve derived-type components
560 first.
561
6d3366dd
TB
5622022-04-25 Tobias Burnus <tobias@codesourcery.com>
563
564 * resolve.cc (gfc_resolve_finalizers): Also resolve allocatable comps.
565
7e14e1a8
AS
5662022-04-20 Andrew Stubbs <ams@codesourcery.com>
567
568 * openmp.cc (gfc_match_omp_requires): Check requires unified_address
569 for conflict with -foffload-memory=shared.
570
fa65fc45
AS
5712022-03-10 Andrew Stubbs <ams@codesourcery.com>
572
573 Backport of the patch posted at
574 https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591351.html
575
576 * openmp.cc (gfc_match_omp_requires): Check compatibility of
577 -foffload-memory option with requires directive.
578
d38d8653
HAQ
5792022-03-09 Abid Qadeer <abidh@codesourcery.com>
580
581 Backport of a patch posted at
582 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588370.html
583
584 * gfortran.h (struct access_ref): Declare new members
585 omp_allocated and omp_allocated_end.
586 * openmp.cc (gfc_match_omp_allocate): Set new_st.resolved_sym to
587 NULL.
588 (prepare_omp_allocated_var_list_for_cleanup): New function.
589 (gfc_resolve_omp_allocate): Call it.
590 * trans-decl.cc (gfc_trans_deferred_vars): Process omp_allocated.
591 * trans-openmp.ccc (gfc_trans_omp_allocate): Set kind for the stmt
592 generated for allocate directive.
593
f59df0cd
HAQ
5942022-03-09 Abid Qadeer <abidh@codesourcery.com>
595
596 Backport of a patch posted at
597 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588369.html
598
599 * trans-openmp.cc (gfc_trans_omp_clauses): Handle OMP_LIST_ALLOCATOR.
600 (gfc_trans_omp_allocate): New function.
601 (gfc_trans_omp_directive): Handle EXEC_OMP_ALLOCATE.
602
491478d1
HAQ
6032022-03-09 Abid Qadeer <abidh@codesourcery.com>
604
605 Backport of a patch posted at
606 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588368.html
607
608 * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_ALLOCATE.
609 (show_code_node): Likewise.
610 * gfortran.h (enum gfc_statement): Add ST_OMP_ALLOCATE.
611 (OMP_LIST_ALLOCATOR): New enum value.
612 (enum gfc_exec_op): Add EXEC_OMP_ALLOCATE.
613 * match.h (gfc_match_omp_allocate): New function.
614 * openmp.cc (enum omp_mask1): Add OMP_CLAUSE_ALLOCATOR.
615 (OMP_ALLOCATE_CLAUSES): New define.
616 (gfc_match_omp_allocate): New function.
617 (resolve_omp_clauses): Add ALLOCATOR in clause_names.
618 (omp_code_to_statement): Handle EXEC_OMP_ALLOCATE.
619 (EMPTY_VAR_LIST): New define.
620 (check_allocate_directive_restrictions): New function.
621 (gfc_resolve_omp_allocate): Likewise.
622 (gfc_resolve_omp_directive): Handle EXEC_OMP_ALLOCATE.
623 * parse.cc (decode_omp_directive): Handle ST_OMP_ALLOCATE.
624 (next_statement): Likewise.
625 (gfc_ascii_statement): Likewise.
626 * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_ALLOCATE.
627 * st.cc (gfc_free_statement): Likewise.
628 * trans.cc (trans_code): Likewise
629
7eda84c4
HAQ
6302022-03-08 Abid Qadeer <abidh@codesourcery.com>
631
632 * parse.cc (gfc_parse_file): Set OMP_REQUIRES_DYNAMIC_ALLOCATORS
633 bit in omp_requires_mask.
634
a6c1eccf
TB
6352022-03-01 Tobias Burnus <tobias@codesourcery.com>
636
637 * class.cc (finalization_scalarizer): Mark syms as artificial.
638 (generate_callback_wrapper): New.
639 (gfc_find_derived_vtab): Call it, add _callback comp.
640 * f95-lang.cc (LANG_HOOKS_OMP_DEEP_MAPPING,
641 LANG_HOOKS_OMP_DEEP_MAPPING_P,
642 LANG_HOOKS_OMP_DEEP_MAPPING_CNT): Redeinfe
643 * gfortran.h (gfc_import_iso_c_binding_module,
644 GFC_CLASS_CALLBACK_DEFAULT_FLAG, GFC_CLASS_CALLBACK_VTABLE_FLAG,
645 GFC_CLASS_CB_ALLOCATABLE, GFC_CLASS_CB_POINTER,
646 GFC_CLASS_CB_PROC_POINTER, GFC_CLASS_CB_VTABLE,
647 GFC_CLASS_CB_VPTR): New.
648 * match.cc (select_type_set_tmp): Propagate allocatable property.
649 * module.cc (MOD_VERSION): Bump due to vtab change.
650 (import_iso_c_binding_module): New import_all arg.
651 (gfc_import_iso_c_binding_module): New.
652 (gfc_use_module): Update call.
653 * openmp.cc (resolve_omp_clauses): Accept DT with alloc comps.
654 * resolve.cc (gfc_resolve_formal_arglist, gfc_resolve_intrinsic,
655 resolve_fl_procedure, resolve_types): Permit some violations
656 for internal code.
657 * trans-array.cc (gfc_conv_descriptor_stride_get,
658 gfc_tree_array_size, gfc_full_array_size): Update
659 for GFC_TYPE_ARRAY_AKIND change.
660 (gfc_conv_expr_descriptor): Likewise; permit calling with tree code.
661 * trans-expr.cc (VTABLE_CALLBACK_FIELD): Add.
662 (VTAB_GET_FIELD_GEN): Use it.
663 (VTABLE_DEALLOCATE_FIELD): Undef at the end.
664 (gfc_conv_expr_reference): Fixes; avoid unneccessary temp var.
665 * trans-intrinsic.cc (gfc_conv_intrinsic_sizeof,
666 gfc_conv_associated): Fix class and comp-ref handling.
667 (conv_isocbinding_function): Remove buggy code.
668 * trans-openmp.ccc (gfc_has_alloc_comps): Add ptr_ok arg.
669 (gfc_omp_private_outer_ref, gfc_walk_alloc_comps,
670 gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
671 gfc_omp_clause_assign_op, gfc_omp_clause_dtor,
672 (gfc_omp_finish_clause): Update call.
673 (GFC_MAP_TOKEN_DATA, GFC_MAP_TOKEN_SIZES, GFC_MAP_TOKEN_KINDS,
674 GFC_MAP_TOKEN_DATA_OFFSET, GFC_MAP_TOKEN_OFFSET,
675 GFC_MAP_TOKEN_FLAGS, GFC_MAP_TOKEN_DETACH): Define.
676 (gfc_omp_get_token_data, gfc_omp_get_token_sizes,
677 gfc_omp_get_token_kinds, gfc_omp_get_token_offset_data,
678 gfc_omp_get_token_offset, gfc_omp_get_token_flags,
679 gfc_omp_get_token_detach, gfc_omp_get_map_token_type,
680 gfc_omp_get_cb_type, gfc_omp_gen_deep_map_fn,
681 gfc_omp_deep_mapping_map, gfc_omp_deep_mapping_item,
682 gfc_omp_deep_mapping_comps, gfc_omp_gen_simple_loop,
683 gfc_omp_get_array_size, gfc_omp_elmental_loop,
684 gfc_omp_deep_map_kind_p, gfc_omp_deep_mapping_int_p,
685 gfc_omp_deep_mapping_p, gfc_omp_deep_mapping_do),
686 gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New.
687 (gfc_trans_omp_array_section): Save clause decl to survive gimplifying.
688 (gfc_trans_omp_clauses): Likewise; fixes.
689 * trans-types.cc (gfc_build_array_type, gfc_get_derived_type,
690 gfc_get_array_descr_info): Update array kind to distinguish
691 different assumed-rank arrays.
692 * trans.h (gfc_class_vtab_callback_get, gfc_omp_deep_mapping_p,
693 gfc_omp_deep_mapping_cnt, gfc_omp_deep_mapping): New prototypes.
694 (enum gfc_array_kind): Additional GFC_ARRAY_ASSUMED_RANK_* entries.
695
484384f0
KCY
6962022-02-11 Kwok Cheung Yeung <kcy@codesourcery.com>
697
698 * gfortran.h (is_omp_declarative_stmt): New.
699 * openmp.cc (match_omp_metadirective): Reject declarative OpenMP
700 directives with 'sorry'.
701 * parse.cc (parse_omp_metadirective_body): Check that state stack head
702 is non-null before dereferencing.
703 (is_omp_declarative_stmt): New.
704
e0d1e494
KCY
7052022-02-11 Kwok Cheung Yeung <kcy@codesourcery.com>
706
707 * decl.cc (gfc_match_end): Search for first previous state that is not
708 COMP_OMP_METADIRECTIVE.
709 * gfortran.h (gfc_skip_omp_metadirective_clause): Add prototype.
710 * openmp.cc (match_omp_metadirective): Skip clause if
711 result of gfc_skip_omp_metadirective_clause is true.
712 * trans-openmp.ccc (gfc_trans_omp_set_selector): Add argument and
713 disable expression conversion if false.
714 (gfc_skip_omp_metadirective_clause): New.
715
da1da230
KCY
7162022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com>
717
718 * openmp.cc (omp_target_device_selectors): New.
719 (gfc_match_omp_context_selector): Accept 'target_device' selector set.
720 Treat 'device_num' selector as expression.
721 (gfc_match_omp_context_selector_specification): Handle 'target_device'
722 selector set.
723 * types.def (BT_FN_BOOL_INT_CONST_PTR_CONST_PTR_CONST_PTR): New type.
724
631148e2
KCY
7252022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com>
726
727 * decl.cc (gfc_match_end): Handle COMP_OMP_METADIRECTIVE and
728 COMP_OMP_BEGIN_METADIRECTIVE.
729 * dump-parse-tree.cc (show_omp_node): Handle EXEC_OMP_METADIRECTIVE.
730 (show_code_node): Handle EXEC_OMP_METADIRECTIVE.
731 * gfortran.h (enum gfc_statement): Add ST_OMP_METADIRECTIVE,
732 ST_OMP_BEGIN_METADIRECTIVE and ST_OMP_END_METADIRECTIVE.
733 (struct gfc_omp_metadirective_clause): New structure.
734 (gfc_get_omp_metadirective_clause): New macro.
735 (struct gfc_st_label): Add omp_region field.
736 (enum gfc_exec_op): Add EXEC_OMP_METADIRECTIVE.
737 (struct gfc_code): Add omp_metadirective_clauses field.
738 (gfc_free_omp_metadirective_clauses): New prototype.
739 (match_omp_directive): New prototype.
740 * io.cc (format_asterisk): Initialize omp_region field.
741 * match.h (gfc_match_omp_begin_metadirective): New prototype.
742 (gfc_match_omp_metadirective): New prototype.
743 * openmp.cc (gfc_match_omp_eos): Match ')' in context selectors.
744 (gfc_free_omp_metadirective_clauses): New.
745 (gfc_match_omp_clauses): Remove context_selector argument. Rely on
746 gfc_match_omp_eos to match end of clauses.
747 (match_omp): Remove extra argument to gfc_match_omp_clauses.
748 (gfc_match_omp_context_selector): Remove extra argument to
749 gfc_match_omp_clauses. Set gfc_matching_omp_context_selector
750 before call to gfc_match_omp_clauses and reset after.
751 (gfc_match_omp_context_selector_specification): Modify to take a
752 gfc_omp_set_selector** argument.
753 (gfc_match_omp_declare_variant): Pass set_selectors to
754 gfc_match_omp_context_selector_specification.
755 (match_omp_metadirective): New.
756 (gfc_match_omp_begin_metadirective): New.
757 (gfc_match_omp_metadirective): New.
758 (resolve_omp_metadirective): New.
759 (gfc_resolve_omp_directive): Handle EXEC_OMP_METADIRECTIVE.
760 * parse.cc (gfc_matching_omp_context_selector): New variable.
761 (gfc_in_metadirective_body): New variable.
762 (gfc_omp_region_count): New variable.
763 (decode_omp_directive): Match 'begin metadirective',
764 'end metadirective' and 'metadirective'.
765 (match_omp_directive): New.
766 (case_omp_structured_block): New.
767 (case_omp_do): New.
768 (gfc_ascii_statement): Handle metadirective statements.
769 (gfc_omp_end_stmt): New.
770 (parse_omp_do): Delegate to gfc_omp_end_stmt.
771 (parse_omp_structured_block): Delegate to gfc_omp_end_stmt. Handle
772 ST_OMP_END_METADIRECTIVE.
773 (parse_omp_metadirective_body): New.
774 (parse_executable): Delegate to case_omp_structured_block and
775 case_omp_do. Return after one statement if compiling regular
776 metadirective. Handle metadirective statements.
777 (gfc_parse_file): Reset gfc_omp_region_count,
778 gfc_in_metadirective_body and gfc_matching_omp_context_selector.
779 * parse.h (enum gfc_compile_state): Add COMP_OMP_METADIRECTIVE and
780 COMP_OMP_BEGIN_METADIRECTIVE.
781 (gfc_omp_end_stmt): New prototype.
782 (gfc_matching_omp_context_selector): New declaration.
783 (gfc_in_metadirective_body): New declaration.
784 (gfc_omp_region_count): New declaration.
785 * resolve.cc (gfc_resolve_code): Handle EXEC_OMP_METADIRECTIVE.
786 * st.cc (gfc_free_statement): Handle EXEC_OMP_METADIRECTIVE.
787 * symbol.cc (compare_st_labels): Take omp_region into account.
788 (gfc_get_st_labels): Incorporate omp_region into label.
789 * trans-decl.ccc (gfc_get_label_decl): Add omp_region into translated
790 label name.
791 * trans-openmp.ccc (gfc_trans_omp_directive): Handle
792 EXEC_OMP_METADIRECTIVE.
793 (gfc_trans_omp_set_selector): Hoist code from...
794 (gfc_trans_omp_declare_variant): ...here.
795 (gfc_trans_omp_metadirective): New.
796 * trans-stmt.h (gfc_trans_omp_metadirective): New prototype.
797 * trans.cc (trans_code): Handle EXEC_OMP_METADIRECTIVE.
798
39a8c371
SL
7992021-11-16 Sandra Loosemore <sandra@codesourcery.com>
800 Tobias Burnus <tobias@codesourcery.com>
801
802 * lang.opt (-param=delinearize=): New.
803 * trans-array.cc (get_class_array_vptr): New, split from...
804 (build_array_ref): ...here.
805 (get_array_lbound, get_array_ubound): New, split from...
806 (gfc_conv_array_ref): ...here. Additional code refactoring
807 plus support for delinearization of the array access.
808
404817a4
JB
8092021-06-02 Julian Brown <julian@codesourcery.com>
810
811 * trans-openmp.cc (gfc_trans_omp_clauses): Don't create GOMP_MAP_TO_PSET
812 mappings for class metadata, nor GOMP_MAP_POINTER mappings for
813 POINTER_TYPE_P decls.
814
6ab6303f
CLT
8152021-02-02 Chung-Lin Tang <cltang@codesourcery.com>
816
817 * openmp.cc (gfc_check_omp_requires): Fix REVERSE_OFFLOAD typo.
818 (gfc_match_omp_requires): Adjust to only mention "not implemented yet"
819 for OMP_REQUIRES_DYNAMIC_ALLOCATORS.
820 * parse.cc ("tree.h"): Add include.
821 ("omp-general.h"): Likewise.
822 (gfc_parse_file): Add code to merge omp_requires to omp_requires_mask.
823
b813e919
SL
8242020-08-22 Sandra Loosemore <sandra@codesourcery.com>
825
826 Permit calls to Fortran intrinsics when annotating loops in
827 kernels regions.
828
829 * openmp.cc (check_expr_for_invalid_calls): Check for intrinsic
830 functions.
831
8fa50b8d
SL
8322020-08-19 Sandra Loosemore <sandra@codesourcery.com>
833
834 Annotate inner loops in "acc kernels loop" directives (Fortran).
835
836 * openmp.cc (annotate_do_loops_in_kernels): Handle
837 EXEC_OACC_KERNELS_LOOP separately to permit annotation of inner
838 loops in a combined "acc kernels loop" directive.
839
652fff3f
SL
8402020-08-19 Sandra Loosemore <sandra@codesourcery.com>
841
842 Add a "combined" flag for "acc kernels loop" etc directives.
843
844 * trans-openmp.cc (gfc_trans_omp_do): Add combined parameter,
845 use it to set OACC_LOOP_COMBINED. Update all call sites.
846
29fd0337
SL
8472020-03-27 Sandra Loosemore <sandra@codesourcery.com>
848 Gergö Barany <gergo@codesourcery.com>
849
850 * gfortran.h (gfc_oacc_annotate_loops_in_kernels_regions): Declare.
851 * lang.opt (Wopenacc-kernels-annotate-loops): New.
852 (fopenacc-kernels-annotate-loops): New.
853 * openmp.cc: Include options.h.
854 (enum annotation_state, enum annotation_result): New.
855 (check_code_for_invalid_calls): New.
856 (check_expr_for_invalid_calls): New.
857 (check_for_invalid_calls): New.
858 (annotate_do_loop): New.
859 (annotate_do_loops_in_kernels): New.
860 (compute_goto_targets): New.
861 (gfc_oacc_annotate_loops_in_kernels_regions): New.
862 * parse.cc (gfc_parse_file): Handle -fopenacc-kernels-annotate-loops.
863
924b6fcc
JB
8642020-02-19 Julian Brown <julian@codesourcery.com>
865
866 * trans-openmp.ccc (gfc_omp_check_optional_argument): Handle non-decl
867 case.
868
8692018-10-04 Cesar Philippidis <cesar@codesourcery.com>
870 Julian Brown <julian@codesourcery.com>
871
872 * gfortran.h (enum gfc_omp_map_op): Add OMP_MAP_DECLARE_ALLOCATE,
873 OMP_MAP_DECLARE_DEALLOCATE.
874 (gfc_omp_clauses): Add update_allocatable.
875 * trans-array.c (gfc_array_allocate): Call
876 gfc_trans_oacc_declare_allocate for decls that have oacc_declare_create
877 attribute set.
878 * trans-decl.c (find_module_oacc_declare_clauses): Relax oacc_declare_create to
879 OMP_MAP_ALLOC, and oacc_declare_copyin to OMP_MAP_TO, in order to
880 match OpenACC 2.5 semantics.
881 * trans-openmp.c (gfc_trans_omp_clauses): Use GOMP_MAP_ALWAYS_POINTER
882 (for update directive) or GOMP_MAP_FIRSTPRIVATE_POINTER (otherwise) for
883 allocatable scalar decls. Handle OMP_MAP_DECLARE_{ALLOCATE,DEALLOCATE}
884 clauses.
885 (gfc_trans_oacc_executable_directive): Use GOMP_MAP_ALWAYS_POINTER
886 for allocatable scalar data clauses inside acc update directives.
887 (gfc_trans_oacc_declare_allocate): New function.
888 * trans-stmt.c (gfc_trans_allocate): Call
889 gfc_trans_oacc_declare_allocate for decls with oacc_declare_create
890 attribute set.
891 (gfc_trans_deallocate): Likewise.
892 * trans.h (gfc_trans_oacc_declare_allocate): Declare.
893
9f711701
JB
8942019-07-10 Julian Brown <julian@codesourcery.com>
895
896 * trans-openmp.cc (gfc_omp_finish_clause): Change clauses mapping
897 assumed-size arrays to use the GOMP_MAP_FORCE_PRESENT map type.
898
1665877a
JB
8992019-05-19 Julian Brown <julian@codesourcery.com>
900
901 * trans-openmp.cc (gfc_omp_finish_clause): Guard addition of clauses for
902 pointers with DECL_P.
903
3a5e5254
JB
9042018-12-13 Cesar Philippidis <cesar@codesourcery.com>
905 Nathan Sidwell <nathan@acm.org>
906 Julian Brown <julian@codesourcery.com>
907
908 * openmp.cc (oacc_is_parallel): New.
909 (resolve_oacc_loop_blocks): Emit an error on orphan OpenACC
910 gang reductions.
911 * trans-openmp.ccc (gfc_omp_clause_copy_ctor): Permit reductions.
912
4c708e05
JB
9132018-06-29 Cesar Philippidis <cesar@codesourcery.com>
914 James Norris <jnorris@codesourcery.com>
915
916 * openmp.cc (resolve_positive_int_expr): Promote the warning to an
917 error.
918
15d0f61a
CLT
9192020-04-19 Chung-Lin Tang <cltang@codesourcery.com>
920
921 PR other/76739
922
923 * f95-lang.cc (DEF_FUNCTION_TYPE_VAR_5): New symbol.
924 * types.def (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_VAR): New type.