1 2014-08-15 Jakub Jelinek <jakub@redhat.com>
4 * trans-openmp.c (gfc_omp_finish_clause): Handle scalar pointer
5 or allocatable passed by reference.
6 (gfc_trans_omp_clauses) <case OMP_LIST_MAP>: Likewise.
8 2014-08-14 Thomas Koenig <tkoenig@gcc.gnu.org>
11 * gfortran.h (symbol_attribute): Add fe_temp flag.
12 * frontend-passes.c (is_fe_temp): New function.
13 (create_var): Don't add a temporary for an already
14 created variable or for a constant.
15 (combine_ARRAY_constructor): Remove special handling
18 2014-08-14 Tobias Burnus <burnus@net-b.de>
20 * gfortran.texi (caf_register_t): Add CAF_REGTYPE_CRITICAL.
21 (_gfortran_caf_register): Update for locking/critical.
22 (_gfortran_caf_lock, _gfortran_caf_unlock): Add.
23 * resolve.c (resolve_critical): New.
24 (gfc_resolve_code): Call it.
25 * trans-decl.c (gfor_fndecl_caf_critical,
26 gfor_fndecl_caf_end_critical): Remove.
27 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
28 (gfc_build_builtin_function_decls): Remove critical,
29 assign locking declarations.
30 (generate_coarray_sym_init): Handle locking and
32 * trans-stmt.c (gfc_trans_critical): Add calls to
33 lock/unlock libcaf functions.
34 * trans.h (gfc_coarray_type): Update locking, add
36 (gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical): Remove.
37 (gfor_fndecl_caf_lock, gfor_fndecl_caf_unlock): Add.
39 2014-08-14 Tobias Burnus <burnus@net-b.de>
41 * gfortran.texi (Coarray Programming): Add first ABI
44 2014-08-14 Jakub Jelinek <jakub@redhat.com>
47 * openmp.c (gfc_match_omp_clauses): When failed to match
48 operator name, defined op name or name, set buffer to
49 empty string. Don't call gfc_find_omp_udr if buffer is empty
51 (gfc_match_omp_declare_reduction): Call gfc_undo_symbols ()
52 before calling gfc_free_omp_udr.
54 2014-08-11 Richard Biener <rguenther@suse.de>
57 * trans-expr.c (gfc_conv_structure): Initialize _size with
58 a value of proper type.
60 2014-08-10 Thomas Koenig <tkoenig@gcc.gnu.org>
63 * simplify.c (gfc_simplify_dot_product): Convert types of
64 vectors before calculating the result.
66 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
68 * openmp.c, trans-decl.c: Use hash_set instead of pointer_set.
70 2014-07-26 Tobias Burnus <burnus@net-b.de>
75 * intrinsic.texi (SIZEOF): Document changed behavior
76 for polymorphic arrays.
78 2014-07-26 Tobias Burnus <burnus@net-b.de>
83 * check.c (gfc_check_sizeof): Permit for assumed type if and
84 only if it has an array descriptor.
85 * intrinsic.c (do_ts29113_check): Permit SIZEOF.
86 (add_functions): SIZEOF is an Inquiry function.
87 * intrinsic.texi (SIZEOF): Add note that only contiguous
89 * trans-expr.c (gfc_conv_intrinsic_to_class): Handle assumed
91 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle
92 assumed type + array descriptor, CLASS and assumed rank.
93 (gfc_conv_intrinsic_storage_size): Handle class arrays.
95 2014-07-25 Tobias Burnus <burnus@net-b.de>
97 * simplify.c (gfc_simplify_storage_size): Use proper
98 integer kind for the returned value.
100 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
102 * intrinsic.texi (Intrinsic Procedures) <ATOMIC_DEFINE>: Move to
103 correct menu position to match sectioning.
105 2014-06-15 Tobias Burnus <burnus@net-b.de>
107 * symbol.c (check_conflict): Add codimension conflict with
108 pointer; fix cray-pointee check.
110 2014-06-14 Tobias Burnus <burnus@net-b.de>
112 * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
113 for kind mismatch with -fcoarray=lib.
115 2014-07-12 Paul Thomas <pault@gcc.gnu.org>
118 * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
119 that elements are skipped. This then correctly aligns 'reverse'
120 with the scalarizer loops.
122 2014-07-12 Tobias Burnus <burnus@net-b.de>
125 * trans-types.c (gfc_init_types): Fix data-type bug
126 with gfc_max_array_element_size.
128 2014-07-12 Tobias Burnus <burnus@net-b.de>
130 * libgfortran.h (libcaf_atomic_codes): Add.
131 * trans-decl.c (gfor_fndecl_caf_atomic_def,
132 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
133 gfor_fndecl_caf_atomic_op): New variables.
134 (gfc_build_builtin_function_decls): Initialize them.
135 * trans.h (gfor_fndecl_caf_atomic_def,
136 gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
137 gfor_fndecl_caf_atomic_op): New variables.
138 * trans-intrinsic.c (conv_intrinsic_atomic_op,
139 conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
140 Add library calls with -fcoarray=lib.
142 2014-07-12 Tobias Burnus <burnus@net-b.de>
144 * check.c (gfc_check_atomic): Update for STAT=.
145 (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
146 (gfc_check_atomic_op, gfc_check_atomic_cas,
147 gfc_check_atomic_fetch_op): New.
148 * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
149 GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
150 GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
151 GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
152 * intrinsic.c (add_subroutines): Handle them.
153 * intrinsic.texi: Add documentation for them.
154 (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
155 (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
156 * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
157 gfc_check_atomic_fetch_op): New
159 * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
160 * iso-fortran-env.def: Add it.
161 * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
162 conv_intrinsic_atomic_ref; handle more atomics.
163 (conv_intrinsic_atomic_def): Handle STAT=.
164 (conv_intrinsic_atomic_cas): New.
165 (gfc_conv_intrinsic_subroutine): Handle new atomics.
167 2014-07-09 Bernd Schmidt <bernds@codesourcery.com>
169 * trans-array.c (gfc_build_constant_array_constructor): Build a
170 static decl manually.
171 * trans-decl.c (create_main_function): Likewise.
173 2014-07-07 Paul Thomas <pault@gcc.gnu.org>
177 * trans-expr.c (fcncall_realloc_result): Use the natural type
178 for the address expression of 'res_desc'.
180 2014-07-07 Gerald Pfeifer <gerald@pfeifer.com>
182 * gfortran.texi (Fortran 2003 status): Fix grammar.
184 2014-07-04 Tobias Burnus <burnus@net-b.de>
186 * resolve.c (resolve_assoc_var): Fix corank setting.
187 * trans-array.c (gfc_conv_descriptor_token): Change assert.
188 for select-type temporaries.
189 * trans-decl.c (generate_coarray_sym_init): Skip for
190 attr.select_type_temporary.
191 * trans-expr.c (gfc_conv_procedure_call): Fix for
192 select-type temporaries.
193 * trans-intrinsic.c (get_caf_token_offset): Ditto.
194 (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
196 * trans-types.h (gfc_get_dtype_rank_type): New.
197 * trans-types.c (gfc_get_dtype_rank_type): Ditto.
199 2014-07-03 Tobias Burnus <burnus@net-b.de>
201 * scanner.c (skip_free_comments): Fix indentation.
203 2014-07-02 Jakub Jelinek <jakub@redhat.com>
204 Fritz Reese <Reese-Fritz@zai.com>
206 * decl.c (variable_decl): Reject old style initialization
207 for derived type components.
209 2014-06-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
213 * decl.c (check_bind_name_identifier): New function.
214 (gfc_match_bind_c): Match any constant expression as binding
216 * match.c (gfc_match_name_C): Remove.
218 2014-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
221 * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
222 * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
224 * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
225 * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
226 * module.c (mio_symbol): Keep track of symbols which came from
228 (gfc_use_module): Keep track of the IEEE modules.
229 * trans-decl.c (gfc_get_symbol_decl): Adjust code since
230 we have new intrinsic modules.
231 (gfc_build_builtin_function_decls): Build decls for
232 ieee_procedure_entry and ieee_procedure_exit.
233 (is_from_ieee_module, is_ieee_module_used, save_fp_state,
234 restore_fp_state): New functions.
235 (gfc_generate_function_code): Save and restore floating-point
236 state on procedure entry/exit, when IEEE modules are used.
237 * intrinsic.texi: Document the IEEE modules.
239 2014-06-25 Tobias Burnus <burnus@net-b.de>
241 * interface.c (check_intents): Fix diagnostic with
244 2014-06-25 Tobias Burnus <burnus@net-b.de>
246 * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
247 when assigning a coindexed RHS scalar to a noncoindexed LHS
249 * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
250 for a noncoindexed scalar RHS.
252 2014-06-25 Tobias Burnus <burnus@net-b.de>
254 * check.c (check_co_minmaxsum): Add definable check.
255 * expr.c (gfc_check_vardef_context): Fix context == NULL case.
256 * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
258 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
261 2014-06-25 Jakub Jelinek <jakub@redhat.com>
263 * trans.h (gfc_omp_clause_linear_ctor): New prototype.
264 * trans-openmp.c (gfc_omp_linear_clause_add_loop,
265 gfc_omp_clause_linear_ctor): New functions.
266 (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
267 correct type. Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
268 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
270 2014-06-24 Jakub Jelinek <jakub@redhat.com>
272 * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
274 * f95-lang.c (gfc_init_builtin_functions): Initialize
275 BUILT_IN_ASSUME_ALIGNED.
276 * gfortran.h (gfc_omp_namelist): Change udr field type to
277 struct gfc_omp_namelist_udr.
278 (gfc_omp_namelist_udr): New type.
279 (gfc_get_omp_namelist_udr): Define.
280 (gfc_resolve_code): New prototype.
281 * match.c (gfc_free_omp_namelist): Free name->udr.
282 * module.c (intrinsics): Add INTRINSIC_USER.
283 (fix_mio_expr): Likewise.
284 (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
285 * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
286 (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
287 Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
288 (struct resolve_omp_udr_callback_data): New type.
289 (resolve_omp_udr_callback, resolve_omp_udr_callback2,
290 resolve_omp_udr_clause): New functions.
291 (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
293 (omp_udr_callback): Don't check for implicitly declared functions
295 (gfc_resolve_omp_udr): Don't call gfc_resolve. Don't check for
296 implicitly declared subroutines here.
297 * resolve.c (resolve_function): If value.function.isym is non-NULL,
298 consider it already resolved.
299 (resolve_code): Renamed to ...
300 (gfc_resolve_code): ... this. No longer static.
301 (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
303 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
304 by reference type (C_PTR) variables.
305 (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
306 (gfc_trans_omp_udr_expr): Remove.
307 (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
308 Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
309 expand it as assignment or subroutine call. Don't initialize
312 2014-06-23 Tobias Burnus <burnus@net-b.de>
314 * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
315 explicit-size arrays with -fcoarray=lib.
317 2014-06-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
320 * invoke.texi: Don't mention nonexisting -fcase-lower option.
322 2014-06-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
325 * expr.c (scalarize_intrinsic_call): Take care of optional
328 2014-06-19 Tobias Burnus <burnus@net-b.de>
330 * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
333 2014-06-18 Tobias Burnus <burnus@net-b.de>
335 * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
336 * intrinsic.texi (OpenMP Modules): Ditto.
338 2014-06-18 Jakub Jelinek <jakub@redhat.com>
340 * cpp.c (cpp_define_builtins): Change _OPENMP macro to
342 * dump-parse-tree.c (show_omp_namelist): Add list_type
343 argument. Adjust for rop being u.reduction_op now,
344 handle depend_op or map_op.
345 (show_omp_node): Adjust callers. Print some new
346 OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
347 becoming a single OMP_LIST_DEPEND.
348 * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
350 (gfc_attribute_table): New variable.
351 (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
352 * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
353 EXEC_OMP_* codes and new clauses.
354 * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
355 ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
356 ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
357 ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
358 ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
359 ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
360 ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
361 ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
362 ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
363 ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
364 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
365 ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
366 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
367 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
368 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
369 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
370 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
371 ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
372 ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
373 ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
374 ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
375 (symbol_attribute): Add omp_declare_target field.
376 (gfc_omp_depend_op, gfc_omp_map_op): New enums.
377 (gfc_omp_namelist): Replace rop field with union
378 containing reduction_op, depend_op and map_op.
379 (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
380 (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
381 (gfc_omp_clauses): Add num_teams, device, thread_limit,
382 dist_sched_kind, dist_chunk_size fields.
383 (gfc_common_head): Add omp_declare_target field.
384 (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
385 EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
386 EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
387 EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
388 EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
389 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
390 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
391 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
392 EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
393 EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
394 EXEC_OMP_TARGET_UPDATE.
395 (gfc_add_omp_declare_target): New prototype.
396 * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
397 gfc_match_omp_distribute_parallel_do,
398 gfc_match_omp_distribute_parallel_do_simd,
399 gfc_match_omp_distribute_simd, gfc_match_omp_target,
400 gfc_match_omp_target_data, gfc_match_omp_target_teams,
401 gfc_match_omp_target_teams_distribute,
402 gfc_match_omp_target_teams_distribute_parallel_do,
403 gfc_match_omp_target_teams_distribute_parallel_do_simd,
404 gfc_match_omp_target_teams_distribute_simd,
405 gfc_match_omp_target_update, gfc_match_omp_teams,
406 gfc_match_omp_teams_distribute,
407 gfc_match_omp_teams_distribute_parallel_do,
408 gfc_match_omp_teams_distribute_parallel_do_simd,
409 gfc_match_omp_teams_distribute_simd): New prototypes.
410 * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
411 (attr_bits): Likewise.
412 (mio_symbol_attribute): Handle omp_declare_target attribute.
413 (gfc_free_omp_clauses): Free num_teams, device, thread_limit
414 and dist_chunk_size expressions.
415 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
416 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
417 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
418 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
419 OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
420 OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
421 OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
422 OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
423 OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
424 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
425 OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
426 OMP_CLAUSE_DIST_SCHEDULE): Define.
427 (gfc_match_omp_clauses): Change mask parameter to unsigned int.
428 Adjust for rop becoming u.reduction_op. Disallow inbranch with
429 notinbranch. For depend clause, always create OMP_LIST_DEPEND
430 and fill in u.depend_op. Handle num_teams, device, map,
431 to, from, thread_limit and dist_schedule clauses.
432 (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
433 OMP_CLAUSE_NOTINBRANCH.
434 (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
435 OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
436 OMP_DISTRIBUTE_CLAUSES): Define.
437 (match_omp): New function.
438 (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
439 gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
440 gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
441 gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
442 gfc_match_omp_task): Rewritten using match_omp.
443 (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
444 Diagnose if the directives are followed by unexpected junk.
445 (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
446 gfc_match_omp_distribute_parallel_do_simd,
447 gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
448 gfc_match_omp_target, gfc_match_omp_target_data,
449 gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
450 gfc_match_omp_target_teams_distribute_parallel_do,
451 gfc_match_omp_target_teams_distribute_parallel_do_simd,
452 gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
453 gfc_match_omp_teams, gfc_match_omp_teams_distribute,
454 gfc_match_omp_teams_distribute_parallel_do,
455 gfc_match_omp_teams_distribute_parallel_do_simd,
456 gfc_match_omp_teams_distrbute_simd): New functions.
457 * openmp.c (resolve_omp_clauses): Adjust for
458 OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
459 OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
460 dist_chunk_size and thread_limit.
461 (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
462 ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
463 new EXEC_OMP_* codes.
464 (resolve_omp_do): Handle various new EXEC_OMP_* codes.
465 (gfc_resolve_omp_directive): Likewise.
466 (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
467 * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
468 offloading related directives.
469 (case_executable): Add ST_OMP_TARGET_UPDATE.
470 (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
472 (case_decl): Add ST_OMP_DECLARE_TARGET.
473 (gfc_ascii_statement): Handle new ST_OMP_* codes.
474 (parse_omp_do): Handle various new ST_OMP_* codes.
475 (parse_executable): Likewise.
476 * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
478 (resolve_code): Likewise.
479 (resolve_symbol): Change that !$OMP DECLARE TARGET variables
481 * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
482 * symbol.c (check_conflict): Check omp_declare_target conflicts.
483 (gfc_add_omp_declare_target): New function.
484 (gfc_copy_attr): Copy omp_declare_target.
485 * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
486 * trans-common.c (build_common_decl): Add "omp declare target"
488 * trans-decl.c (add_attributes_to_decl): Likewise.
489 * trans.h (gfc_omp_finish_clause): New prototype.
490 * trans-openmp.c (gfc_omp_finish_clause): New function.
491 (gfc_trans_omp_reduction_list): Adjust for rop being renamed
493 (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
494 change to OMP_LIST_DEPEND and fix up depend handling.
495 Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
496 thread_limit, device, dist_chunk_size and dist_sched_kind.
497 (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
498 (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
499 GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
500 GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
501 (gfc_split_omp_clauses): Handle splitting of clauses for new
503 (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
504 callable for combined constructs.
505 (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
506 (gfc_trans_omp_distribute, gfc_trans_omp_teams,
507 gfc_trans_omp_target, gfc_trans_omp_target_data,
508 gfc_trans_omp_target_update): New functions.
509 (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
510 new EXEC_OMP_* codes.
512 2014-06-18 Tobias Burnus <burnus@net-b.de>
515 * invoke.texi (-Wunused-parameter): Make clearer when
516 -Wextra implies this option.
518 2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
521 * options.c (gfc_handle_option): Remove call to
522 handle_generated_option.
524 2014-06-17 Tobias Burnus <burnus@net-b.de>
526 * check.c (gfc_check_atomic, gfc_check_atomic_def):
527 Use argument for GFC_ISYM_CAF_GET.
528 * resolve.c (resolve_variable): Enable CAF_GET insertion.
529 (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
530 (resolve_ordinary_assign): Enable CAF_SEND insertion.
531 * trans-const.c (gfc_build_string_const,
532 gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
533 * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
534 gfor_fndecl_caf_sendget): New global variables.
535 (gfc_build_builtin_function_decls): Initialize them;
536 update co_min/max/sum initialization.
537 * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
538 get_tree_for_caf_expr and removed static.
539 (gfc_conv_procedure_call): Update call.
540 * trans-intrinsic.c (caf_get_image_index,
541 conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
542 get_caf_token_offset, gfc_conv_intrinsic_caf_get,
544 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
545 gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
546 (conv_co_minmaxsum): Update call for remove unused vector
548 (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
549 Skip a CAF_GET of the argument.
550 * trans-types.c (gfc_get_caf_vector_type): New.
551 * trans-types.h (gfc_get_caf_vector_type): New.
552 * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
553 gfor_fndecl_caf_sendget): New global variables.
554 (gfc_get_tree_for_caf_expr): New prototypes.
556 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
558 * trans-common.c (build_common_decl): Use
560 * trans-decl.c (gfc_finish_var_decl): Likewise.
561 (get_proc_pointer_decl): Likewise.
563 2014-06-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
567 * check.c (gfc_check_system_clock): Improve checking of arguments.
568 * intrinsic.texi: Update doc of SYSTEM_CLOCK.
569 * iresolve.c (gfc_resolve_system_clock): Choose library function
570 used depending on argument kinds.
571 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
572 decls for system_clock_4 and system_clock_8.
573 * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
574 (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
575 * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
578 2014-06-12 Tobias Burnus <burnus@net-b.de>
580 * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
581 * symbol.c (gfc_copy_formal_args_intr): Handle the case
582 that absent optional arguments should be ignored.
583 * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
584 (gfc_conv_intrinsic_funcall,
585 conv_generic_with_optional_char_arg): Update call.
586 * resolve.c (gfc_resolve_intrinsic): Ditto.
588 2014-06-10 Dominique d'Humieres <dominiq@lps.ens.fr>
589 Mikael Morin <mikael@gcc.gnu.org>
592 * trans-expr.c (gfc_conv_expr_reference): Deallocate array
595 2014-06-10 Jakub Jelinek <jakub@redhat.com>
598 * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
600 * openmp.c (resolve_omp_clauses): Remove allocatable components
601 diagnostics. Add associate-name and intent(in) pointer
602 diagnostics for various clauses, diagnose procedure pointers in
604 * parse.c (match_word_omp_simd): New function.
605 (matchs, matcho): New macros.
606 (decode_omp_directive): Change match macros to either matchs
607 or matcho. Handle -fopenmp-simd.
608 (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
609 * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
611 * trans-array.c (get_full_array_size): Rename to...
612 (gfc_full_array_size): ... this. No longer static.
613 (duplicate_allocatable): Adjust caller. Add NO_MEMCPY argument
615 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
616 duplicate_allocatable callers.
617 (gfc_duplicate_allocatable_nocopy): New function.
618 (structure_alloc_comps): Adjust g*_full_array_size and
619 duplicate_allocatable caller.
620 * trans-array.h (gfc_full_array_size,
621 gfc_duplicate_allocatable_nocopy): New prototypes.
622 * trans-common.c (create_common): Call gfc_finish_decl_attrs.
623 * trans-decl.c (gfc_finish_decl_attrs): New function.
624 (gfc_finish_var_decl, create_function_arglist,
625 gfc_get_fake_result_decl): Call it.
626 (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
627 don't allocate it again.
628 (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
630 * trans.h (gfc_finish_decl_attrs): New prototype.
631 (struct lang_decl): Add scalar_allocatable and scalar_pointer
633 (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
634 GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
635 GFC_DECL_ASSOCIATE_VAR_P): Define.
636 (GFC_POINTER_TYPE_P): Remove.
637 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
638 GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
639 GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
640 (gfc_omp_predetermined_sharing): Associate-names are predetermined.
641 (enum walk_alloc_comps): New.
642 (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
643 gfc_walk_alloc_comps): New functions.
644 (gfc_omp_private_outer_ref): Return true for scalar allocatables or
645 decls with allocatable components.
646 (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
647 gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
648 allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
649 allocatables and decls with allocatable components.
650 (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
652 (gfc_trans_omp_reduction_list): Call
653 gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
654 (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
655 (gfc_trans_omp_parallel_do_simd): Likewise.
656 * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
657 (gfc_get_derived_type): Call gfc_finish_decl_attrs.
659 2014-06-09 Paul Thomas <pault@gcc.gnu.org>
662 * trans-stmt.c (trans_associate_var): Check that array
663 constructors are constant for direct reference.
665 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
668 * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
669 BESSEL_Y0, and BESSEL_Y1.
671 2014-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
674 * trans-decl.c (gfc_create_module_variable): Don't create
675 Cray-pointee decls twice.
677 2014-06-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
679 * io.c (resolve_tag): Warn on non-default kind for NUMBER,
680 NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
682 2014-06-06 Jakub Jelinek <jakub@redhat.com>
684 * dump-parse-tree.c (show_omp_namelist): Dump reduction
685 id in each list item.
686 (show_omp_node): Only handle OMP_LIST_REDUCTION, not
687 OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST. Don't
688 dump reduction id here.
689 * frontend-passes.c (dummy_code_callback): Renamed to...
690 (gfc_dummy_code_callback): ... this. No longer static.
691 (optimize_reduction): Use gfc_dummy_code_callback instead of
693 * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
694 (symbol_attribute): Add omp_udr_artificial_var bitfield.
695 (gfc_omp_reduction_op): New enum.
696 (gfc_omp_namelist): Add rop and udr fields.
697 (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
698 OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
699 OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
700 OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
701 (OMP_LIST_REDUCTION): New.
702 (gfc_omp_udr): New type.
703 (gfc_get_omp_udr): Define.
704 (gfc_symtree): Add n.omp_udr field.
705 (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
706 (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
707 gfc_dummy_code_callback): New prototypes.
708 * match.h (gfc_match_omp_declare_reduction): New prototype.
709 * module.c (MOD_VERSION): Increase to 13.
710 (omp_declare_reduction_stmt): New array.
711 (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
713 (read_module): Read OpenMP user defined reductions.
714 (write_module): Write OpenMP user defined reductions.
715 * openmp.c: Include arith.h.
716 (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
717 (gfc_match_omp_clauses): Handle user defined reductions.
718 Store reduction kind into gfc_omp_namelist instead of using
719 several OMP_LIST_* entries.
720 (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
721 gfc_match_omp_declare_reduction): New functions.
722 (resolve_omp_clauses): Adjust for reduction clauses being only
723 in OMP_LIST_REDUCTION list. Diagnose missing UDRs.
724 (struct omp_udr_callback_data): New type.
725 (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
727 * parse.c (decode_omp_directive): Handle !$omp declare reduction.
728 (case_decl): Add ST_OMP_DECLARE_REDUCTION.
729 (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
730 * resolve.c (resolve_fl_variable): Allow len=: or len=* on
731 sym->attr.omp_udr_artificial_var symbols.
732 (resolve_types): Call gfc_resolve_omp_udrs.
733 * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
734 use parent ns instead of gfc_current_ns.
735 (gfc_get_sym_tree): Don't insert symbols into
736 namespaces with omp_udr_ns set.
737 (free_omp_udr_tree): New function.
738 (gfc_free_namespace): Call it.
739 * trans-openmp.c (struct omp_udr_find_orig_data): New type.
740 (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
741 (gfc_trans_omp_array_reduction): Renamed to...
742 (gfc_trans_omp_array_reduction_or_udr): ... this. Remove SYM
743 argument, instead pass gfc_omp_namelist pointer N. Handle
744 user defined reductions.
745 (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
746 Handle user defined reductions and reduction ops in gfc_omp_namelist.
747 (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
749 (gfc_split_omp_clauses): Likewise.
751 2014-06-05 Richard Biener <rguenther@suse.de>
754 * gfortranspec.c (spec_file): Remove.
755 (find_spec_file): Likewise.
756 (lang_specific_driver): Do not look for specs file in -L
757 or append -specs command line argument.
758 (lang_specific_pre_link): Always %:include libgfortran.spec.
760 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
762 * fortran/trans.c (trans_runtime_error_vararg): Call
763 fold_build_call_array_loc instead of fold_builtin_call_array.
765 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
767 * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
768 arguments to caf_init.
770 2014-05-26 Tobias Burnus <burnus@net-b.de>
772 * gfortran.texi (Project Status): Fix broken link.
774 2014-05-26 Janne Blomqvist <jb@gcc.gnu.org>
777 * intrinsics.texi (CTIME): Remove mention of locale-dependent
780 2014-05-26 Tobias Burnus <burnus@net-b.de>
783 * trans-io.c (nml_full_name, transfer_namelist_element): Insert
784 a '+' rather then '%' to differentiate namelist variable names
785 that are based on extended derived types.
787 2014-05-25 Tobias Burnus <burnus@net-b.de>
789 * check.c (gfc_check_num_images): New.
790 (gfc_check_this_image): Handle distance argument.
791 * intrinsic.c (add_functions): Update this_image and num_images
792 for new distance and failed arguments.
793 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
795 * intrinsic.h (gfc_check_num_images): New.
796 (gfc_check_this_image, gfc_simplify_num_images,
797 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
798 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
799 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
800 Handle new arguments.
801 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
802 (gfc_conv_intrinsic_function): Update trans_num_images call.
804 2014-05-23 Tobias Burnus <burnus@net-b.de>
806 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
807 * gfortran.texi: Ditto.
809 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
811 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
812 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
813 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
814 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
816 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
818 * f95-lang.c (pushlevel): Adjust.
819 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
820 (gfc_find_module): Likewise.
821 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
822 (gfc_get_array_type_bounds): Likewise.
823 (gfc_nonrestricted_type): Likewise.
824 * trans.h: Don't use variable_size gty attribute.
826 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
828 * check.c (gfc_check_fn_rc2008): move "argument" to the right
831 2014-05-12 Tobias Burnus <burnus@net-b.de>
834 * openmp.c (resolve_omp_do): Reject do concurrent loops.
836 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
839 * frontend-passes.c (in_assoc_list): New variable.
840 (optimize_namespace): Initialize in_assoc_list
841 (combine_array_constructor): Don't try to combine
843 (gfc_code_walker): Keep track of in_assoc_list.
845 2014-05-11 Jakub Jelinek <jakub@redhat.com>
847 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
848 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
849 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
850 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
852 (gfc_omp_namelist): New typedef.
853 (gfc_get_omp_namelist): Define.
854 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
855 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
856 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
857 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
858 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
860 (gfc_omp_declare_simd): New typedef.
861 (gfc_get_omp_declare_simd): Define.
862 (gfc_namespace): Add omp_declare_simd field.
863 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
864 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
865 EXEC_OMP_PARALLEL_DO_SIMD.
866 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
867 and GFC_OMP_ATOMIC_SWAP.
868 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
869 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
870 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
872 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
873 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
874 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
875 simdlen_expr. Use gfc_free_omp_namelist instead of
877 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
879 (gfc_match_omp_variable_list): Add end_colon, headp and
880 allow_sections arguments. Handle parsing of array sections.
881 Use *omp_namelist* instead of *namelist* data structure and
882 functions/macros. Allow termination at : character.
883 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
884 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
885 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
886 (gfc_match_omp_clauses): Change first and needs_space variables
887 into arguments with default values. Parse inbranch, notinbranch,
888 proc_bind, safelen, simdlen, uniform, linear, aligned and
890 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
891 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
892 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
893 (gfc_match_omp_do_simd): New function.
894 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
895 data structure and functions/macros.
896 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
897 gfc_match_omp_parallel_do_simd): New functions.
898 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
899 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
900 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
902 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
903 Use *omp_namelist* instead of *namelist* data structure and
904 functions/macros. Resolve uniform, aligned, linear, depend,
905 safelen and simdlen clauses.
906 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
907 addition, recognize atomic swap.
908 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
909 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
910 EXEC_OMP_PARALLEL_DO.
911 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
912 data structure and functions/macros.
913 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
914 EXEC_OMP_PARALLEL_DO_SIMD.
915 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
916 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
917 resolve_omp_clauses caller.
918 (gfc_resolve_omp_declare_simd): New function.
919 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
920 declare simd, end do simd, end simd, end parallel do simd,
921 end taskgroup, parallel do simd, simd and taskgroup directives.
922 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
923 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
924 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
925 (case_decl): Add ST_OMP_DECLARE_SIMD.
926 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
927 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
928 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
929 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
931 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
932 ST_OMP_PARALLEL_DO_SIMD.
933 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
934 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
935 ST_OMP_PARALLEL_DO_SIMD.
936 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
937 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
938 * trans-decl.c (gfc_get_extern_function_decl,
939 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
941 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
942 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
943 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
944 of depend, aligned and linear clauses.
945 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
946 and EXEC_OMP_PARALLEL_DO_SIMD.
947 (gfc_free_omp_namelist): New function.
948 * dump-parse-tree.c (show_namelist): Removed.
949 (show_omp_namelist): New function.
950 (show_omp_node): Handle OpenMP 4.0 additions.
951 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
952 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
954 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
955 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
956 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
957 gfc_match_omp_taskgroup): New prototypes.
958 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
959 argument, handle it. Allow current_function_decl to be NULL.
960 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
961 it through to gfc_trans_omp_variable and disregard whether
962 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
963 instead of gfc_namelist.
964 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
965 gfc_namelist. Adjust gfc_trans_omp_variable caller.
966 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
967 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
968 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
969 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
971 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
972 adjust for GFC_OMP_ATOMIC_* changes.
973 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
975 (gfc_trans_omp_do): Add op argument, handle simd translation into
977 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
978 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
979 GFC_OMP_MASK_PARALLEL): New.
980 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
981 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
982 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
984 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
985 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
986 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
987 Adjust gfc_trans_omp_do caller.
988 (gfc_trans_omp_declare_simd): New function.
989 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
990 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
991 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
992 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
994 * module.c (omp_declare_simd_clauses): New variable.
995 (mio_omp_declare_simd): New function.
996 (mio_symbol): Call it.
997 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
998 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
999 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1000 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
1001 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1002 (resolve_code): Handle EXEC_OMP_CANCEL,
1003 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
1004 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
1005 (resolve_types): Call gfc_resolve_omp_declare_simd.
1007 2014-05-11 Tobias Burnus <burnus@net-b.de>
1009 * trans-intrinsic.c (gfc_build_builtin_function_decls):
1010 Change type of second argument to int.
1012 2014-05-09 Mike Stump <mikestump@comcast.net>
1015 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
1018 2014-05-08 Tobias Burnus <burnus@net-b.de>
1020 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
1021 and GFC_ISYM_CAF_SEND.
1022 * intrinsic.c (add_functions): Add only internally
1023 accessible caf_get and caf_send functions.
1024 * resolve.c (add_caf_get_intrinsic,
1025 remove_caf_get_intrinsic): New functions.
1026 (resolve_variable): Resolve expression rank and
1027 prepare for add_caf_get_intrinsic call.
1028 (gfc_resolve_expr): For variables, remove rank
1030 (resolve_ordinary_assign): Prepare call to
1032 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
1033 the LHS of an assignment.
1035 2014-05-08 Tobias Burnus <burnus@net-b.de>
1037 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
1039 2014-05-08 Tobias Burnus <burnus@net-b.de>
1041 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
1042 gfc_check_co_sum): New.
1043 * error.c (gfc_notify_std): Update -std=f2008ts.
1044 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
1045 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
1046 * intrinsic.h (gfc_check_co_minmax,
1047 gfc_check_co_sum): Declare.
1048 * intrinsic.c (add_subroutines): Add co_min, co_max
1050 (gfc_check_intrinsic_standard): Update text for
1052 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
1054 * invoke.texi (-std=f2008ts): Update wording.
1055 * trans.h (gfor_fndecl_co_max,
1056 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1057 * trans-decl.c (gfor_fndecl_co_max,
1058 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
1059 (gfc_build_builtin_function_decls): Assign to it.
1060 * trans-intrinsic.c (conv_co_minmaxsum): New.
1061 (gfc_conv_intrinsic_subroutine): Call it.
1063 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
1064 Mike Stump <mikestump@comcast.net>
1065 Richard Sandiford <rdsandiford@googlemail.com>
1067 * target-memory.c: Include wide-int.h.
1068 (gfc_interpret_logical): Use wide-int interfaces.
1069 * trans-array.c: Include wide-int.h.
1070 (gfc_conv_array_initializer): Use wide-int interfaces.
1071 * trans-const.c: Include wide-int.h.
1072 (gfc_conv_string_init): Use wide-int interfaces.
1073 (gfc_conv_mpz_to_tree): Likewise.
1074 (gfc_conv_tree_to_mpz): Likewise.
1075 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
1076 * trans-expr.c: Include wide-int.h.
1077 (gfc_conv_cst_int_power): Use wide-int interfaces.
1078 (gfc_string_to_single_character): Likewise.
1079 (gfc_optimize_len_trim): Likewise.
1080 * trans-intrinsic.c: Include wide-int.h.
1081 (trans_this_image): Use wide-int interfaces.
1082 (gfc_conv_intrinsic_bound): Likewise.
1083 (conv_intrinsic_cobound): Likewise.
1084 * trans-types.c (gfc_init_types): Likewise.
1085 (gfc_get_array_type_bounds): Pass an integer of the correct type
1086 instead of using integer_one_node.
1088 2014-04-30 Tobias Burnus <burnus@net-b.de>
1090 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
1091 also for polymorphic coarrays.
1092 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
1093 also for polymorphic coarrays.
1095 2014-04-30 Tobias Burnus <burnus@net-b.de>
1097 * resolve.c (resolve_function): Don't do
1098 assumed-size check for lcobound/ucobound.
1099 * trans-types.c (gfc_build_array_type): Only build an array
1100 descriptor with codimensions for allocatable coarrays.
1102 2014-04-30 Tobias Burnus <burnus@net-b.de>
1104 * gfortran.h (gfc_init_coarray_decl): Remove.
1105 * parse.c (translate_all_program_units): Remove call to it.
1106 (gfc_parse_file): Update call.
1107 * trans.h (gfor_fndecl_caf_this_image,
1108 gfor_fndecl_caf_num_images): Add.
1109 (gfort_gvar_caf_num_images,
1110 gfort_gvar_caf_this_image): Remove.
1111 * trans-decl.c (gfor_fndecl_caf_this_image,
1112 gfor_fndecl_caf_num_images): Add.
1113 (gfort_gvar_caf_num_images,
1114 gfort_gvar_caf_this_image): Remove.
1115 (gfc_build_builtin_function_decls): Init new decl.
1116 (gfc_init_coarray_dec): Remove.
1117 (create_main_function): Change calls.
1118 * trans-intrinsic.c (trans_this_image, trans_image_index,
1119 conv_intrinsic_cobound): Generate call to new library function
1120 instead of to a static variable.
1121 * trans-stmt.c (gfc_trans_sync): Ditto.
1123 2014-04-30 Tobias Burnus <burnus@net-b.de>
1125 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1126 and derived-type coarrays.
1128 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1132 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
1133 * arith.c (gfc_int2int): Convert number to signed if
1134 arithmetic overflow is not checked.
1135 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1136 size if range checking is in force.
1137 (convert_mpz_to_signed): Make non-static, rename to
1138 (gfc_convert_mpz_to_signed).
1139 (simplify_dshift): Use gfc_convert_mpz_to_signed.
1140 (gfc_simplify_ibclr): Likewise.
1141 (gfc_simplify_ibits): Likewise.
1142 (gfc_simplify_ibset): Likewise.
1143 (simplify_shift): Likewise.
1144 (gfc_simplify_ishiftc): Likewise.
1145 (gfc_simplify_maskr): Likewise.
1146 (gfc_simplify_maskl): Likewise.
1148 2014-04-22 Tobias Burnus <burnus@net-b.de>
1151 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1154 2014-04-17 Jakub Jelinek <jakub@redhat.com>
1156 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1157 argument is enum machine_mode.
1159 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
1163 * trans.h: Add 'use_offset' bitfield to gfc_se.
1164 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1165 as a trigger to unconditionally recalculate the offset for
1166 array slices and constant arrays.
1167 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1168 trans-stmt.c (trans_associate_var): Ditto.
1169 (gfc_conv_procedure_call): Ditto.
1171 2014-04-11 Tobias Burnus <burnus@net-b.de>
1175 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1176 and finalization wrappers are generated.
1178 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1180 * intrinsic.texi (RANDOM_SEED): Improve example.
1182 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1184 * class.c (gfc_build_class_symbol): Append "_t" to target class
1185 names to make the generated type names unique.
1187 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1190 * trans-types.c (gfc_get_function_type): In case of recursion
1191 build a variadic function type with empty argument list instead of a
1192 stdarg-like function type with incomplete argument list.
1194 2014-04-04 Tobias Burnus <burnus@net-b.de>
1196 * check.c (gfc_check_cmplx): Fix typo.
1198 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1199 Tobias Burnus <burnus@net-b.de>
1202 * trans-expr.c (gfc_conv_derived_to_class): Avoid
1203 generation of out-of-bounds range expr.
1205 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
1208 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1211 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1214 * frontend-passes.c (cfe_code): Do not walk subtrees
1217 2014-03-27 Tobias Burnus <burnus@net-b.de>
1220 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1223 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1226 * fortran.texi: Document Volatile COMMON as not supported.
1228 2014-03-22 Jakub Jelinek <jakub@redhat.com>
1231 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1234 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1237 * gfortran.texi: Add description of namelist DELIM= behavior.
1239 2014-03-19 Tobias Burnus <burnus@net-b.>
1242 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1243 * resolve.c (resolve_ordinary_assign): Ditto.
1245 2014-03-19 Tobias Burnus <burnus@net-b.de>
1249 * gfortran.h (gfc_unset_implicit_pure): New prototype.
1250 * resolve.c (gfc_unset_implicit_pure): New.
1251 (resolve_structure_cons, resolve_function,
1252 pure_subroutine): Use it.
1253 * decl.c (match_old_style_init, gfc_match_data,
1254 match_pointer_init, variable_decl): Ditto.
1255 * expr.c (gfc_check_pointer_assign): Ditto.
1256 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1257 * io.c (match_vtag, gfc_match_open, gfc_match_close,
1258 match_filepos, gfc_match_inquire, gfc_match_print,
1259 gfc_match_wait): Ditto.
1260 * match.c (gfc_match_critical, gfc_match_stopcode,
1261 lock_unlock_statement, sync_statement, gfc_match_allocate,
1262 gfc_match_deallocate): Ditto.
1263 * parse.c (decode_omp_directive): Ditto.
1264 * symbol.c (gfc_add_save): Ditto.
1266 2014-03-18 Janus Weil <janus@gcc.gnu.org>
1270 * decl.c (match_attr_spec): Revert r208590.
1272 2014-03-18 Jakub Jelinek <jakub@redhat.com>
1275 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1278 2014-03-18 Tobias Burnus <burnus@net-b.de>
1281 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1282 (gfc_trans_io_runtime_check): Remove.
1283 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1284 as argument, add predictor to block.
1285 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1286 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1287 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1288 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1289 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1291 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1292 * trans-stmt.c (gfc_trans_allocate): Ditto.
1293 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1295 2014-03-15 Janus Weil <janus@gcc.gnu.org>
1298 * decl.c (match_attr_spec): Variables in the main program implicitly
1299 get the SAVE attribute in Fortran 2008.
1301 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
1304 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1305 if it has transposed dimensions.
1307 2014-03-08 Tobias Burnus <burnus@net-b.de>
1310 * f95-lang.c (gfc_init): Return false when only
1312 * options.c (gfc_post_options): Ditto.
1314 2014-03-08 Tobias Burnus <burnus@net-b.de>
1316 * gfortran.texi (Fortran 2003 Status): Mention finalization,
1317 deferred-length character support and input rounding.
1318 (Fortran 2008 Status): Mention that at termination
1319 signalling exceptions are shown.
1321 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
1322 Janus Weil <janus@gcc.gnu.org>
1325 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1326 * primary.c (build_actual_constructor): It is not an error if
1327 a missing component has the deferred_parameter attribute;
1328 equally, if one is given a value, it is an error.
1329 * resolve.c (resolve_fl_derived0): Remove error for deferred
1330 character length components. Add the hidden string length
1331 field to the structure. Give it the deferred_parameter
1333 * trans-array.c (duplicate_allocatable): Add a strlen field
1334 which is used as the element size if it is non-null.
1335 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1336 NULL to the new argument in duplicate_allocatable.
1337 (structure_alloc_comps): Set the hidden string length as
1338 appropriate. Use it in calls to duplicate_allocatable.
1339 (gfc_alloc_allocatable_for_assignment): When a deferred length
1340 backend declaration is variable, use that; otherwise use the
1341 string length from the expression evaluation.
1342 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1343 character length component, the string length should have the
1344 value of the hidden string length field.
1345 (gfc_trans_subcomponent_assign): Set the hidden string length
1346 field for deferred character length components. Allocate the
1347 necessary memory for the string.
1348 (alloc_scalar_allocatable_for_assignment): Same change as in
1349 gfc_alloc_allocatable_for_assignment above.
1350 * trans-stmt.c (gfc_trans_allocate): Likewise.
1351 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1352 * trans-types.c (gfc_get_derived_type): Set the tree type for
1353 a deferred character length component.
1354 * trans.c (gfc_deferred_strlen): New function.
1355 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1357 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
1360 * frontend-passes.c (optimize_comparison): Guard two union accesses
1361 with the corresponding tag checks.
1363 2014-02-28 Janus Weil <janus@gcc.gnu.org>
1366 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1367 procedure for characters.
1369 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1372 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1375 2014-02-21 Janus Weil <janus@gcc.gnu.org>
1378 * gfortran.h (gfc_build_class_symbol): Removed argument.
1379 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1380 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1381 delayed now, except for unlimited polymorphics.
1382 (comp_is_finalizable): Procedure pointer components are not finalizable.
1383 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1384 'gfc_build_class_symbol'.
1385 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1387 * symbol.c (gfc_set_default_type): Ditto.
1389 2014-02-19 Janus Weil <janus@gcc.gnu.org>
1392 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1393 functions, which are used as procedure pointer target.
1395 2014-02-18 Tobias Burnus <burnus@net-b.de>
1398 * expr.c (gfc_check_pointer_assign): Add check for
1400 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1401 decl in a corner case.
1403 2014-02-18 Janus Weil <janus@gcc.gnu.org>
1406 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1407 arguments to prevent ICE.
1409 2014-02-17 Janus Weil <janus@gcc.gnu.org>
1412 * resolve.c (build_default_init_expr): Don't initialize character
1413 variable if -fno-automatic is given.
1415 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
1418 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1419 number of arguments.
1421 2014-02-11 Jakub Jelinek <jakub@redhat.com>
1424 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1425 on decl if sym->attr.optional.
1427 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1430 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1431 attribute for the 'associate-name' if necessary.
1432 * trans-stmt.c (trans_associate_var): If the 'associate-name'
1433 is a subref_array_pointer, assign the element size of the
1434 associate variable to 'span'.
1436 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
1439 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1440 actual argument to a formal argument with the value attribute
1441 in an elemental procedure.
1443 2014-02-08 Janus Weil <janus@gcc.gnu.org>
1444 Mikael Morin <mikael.morin@gcc.gnu.org>
1447 * class.c (generate_finalization_wrapper): Assert that proc_tree has
1448 been set in gfc_resolve_finalizers.
1449 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1452 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
1454 PR translation/52289
1455 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1456 in an error message.
1458 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
1461 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1464 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
1467 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1468 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1469 pointer to the string is stored.
1470 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1471 gfc_conv_string_parameter to ensure that a pointer to is passed
1472 to the elemental function.
1474 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
1477 * trans-stmt.c (gfc_trans_allocate): Before the pointer
1478 assignment to transfer the source _vptr to a class allocate
1479 expression, the final class reference should be exposed. The
1480 tail that includes the _data and array references is stored.
1481 This reduced expression is transferred to 'lhs' and the _vptr
1482 added. Then the tail is restored to the allocate expression.
1484 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
1487 * module.c (read_module): Assert for component name correctness.
1489 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
1492 * module.c (MOD_VERSION): Bump.
1493 (fp2, find_pointer2): Remove.
1494 (mio_component_ref): Don't forcedfully set the containing derived type
1495 symbol for loading. Remove unused argument.
1496 (mio_ref): Update caller
1497 (mio_symbol): Dump component list earlier.
1498 (skip_list): New argument nest_level. Initialize level with the new
1500 (read_module): Add forced pointer components association for derived
1503 2014-01-12 Janus Weil <janus@gcc.gnu.org>
1506 * decl.c (gfc_match_data_decl): Improve error recovery.
1508 2014-01-09 Tobias Burnus <burnus@net-b.de>
1510 * cpp.c (gfc_cpp_handle_option): Add missing break.
1511 * trans-io.c (transfer_expr): Silence unused value warning.
1513 2014-01-08 Janus Weil <janus@gcc.gnu.org>
1516 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1518 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1521 * class.c (comp_is_finalizable): New function to dermine if a given
1522 component is finalizable.
1523 (finalize_component, generate_finalization_wrapper): Use it.
1525 2014-01-06 Janus Weil <janus@gcc.gnu.org>
1529 * resolve.c (resolve_global_procedure): Don't apply to c-binding
1531 (gfc_verify_binding_labels): Remove duplicate line.
1533 2014-01-04 Janus Weil <janus@gcc.gnu.org>
1536 * class.c (add_proc_comp): Copy pure attribute.
1538 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
1540 Update copyright years
1542 2014-01-02 Tobias Burnus <burnus@net-b.de>
1544 * gfortranspec.c (lang_specific_driver): Update copyright notice
1546 * gfc-internals.texi: Bump @copying's copyright year.
1547 * gfortran.texi: Ditto.
1548 * intrinsic.texi: Ditto.
1549 * invoke.texi: Ditto.
1551 2014-01-02 Janus Weil <janus@gcc.gnu.org>
1554 * resolve.c (resolve_typebound_procedures): No need to create the vtab
1557 Copyright (C) 2014 Free Software Foundation, Inc.
1559 Copying and distribution of this file, with or without modification,
1560 are permitted in any medium without royalty provided the copyright
1561 notice and this notice are preserved.