1 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
4 * gfortran.dg/storage_size_6.f90: New tests.
6 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
9 * gfortran.dg/storage_size_6.f90: New tests.
11 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
14 * decl.c(gfc_match_entry): Change a gfc_internal_error() into
17 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
20 * gfortran.dg/storage_size_6.f90: New tests.
22 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
25 * parse.c(verify_st_order): Replace a gfc_internal_error with your
28 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
31 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
32 BACKSPACE, and ENDFILE statements
34 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
37 * symbol.c(check_conflict): Check for a conflict between a dummy
38 argument and an internal procedure name.
40 2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
43 * io.c (format_lex): Change to NONSTRING when checking for
44 possible doubled quote.
45 * scanner.c (gfc_next_char_literal): Revert change from 64506
46 and add a check for quotes and return.
48 2015-05-16 Thomas Koenig <tkoenig@gcc.gnu.org>
51 * expr.c (is_parent_of_current_ns): New function.
52 (check_restricted): Use it.
54 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
58 Replace all calls to gfc_notify_std_1 with gfc_notify_std and
59 gfc_warning_1 with gfc_warning.
60 * decl.c (gfc_verify_c_interop_param): Here.
61 * resolve.c (resolve_branch): Here.
62 (resolve_fl_derived): Here.
63 * dependency.c (gfc_check_argument_var_dependency):
64 * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
65 counter and locations before and after warning.
66 * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
68 (gfc_warning_now_at): Declare.
69 * error.c (gfc_warning_1): Delete.
70 (gfc_notify_std_1): Delete.
71 (gfc_warning_now_1): Delete.
72 (gfc_format_decoder): Handle two locations.
73 (gfc_diagnostic_build_prefix): Rename as
74 gfc_diagnostic_build_kind_prefix.
75 (gfc_diagnostic_build_locus_prefix): Take an expanded_location
76 instead of diagnostic_info.
77 (gfc_diagnostic_build_locus_prefix): Add overload that takes two
79 (gfc_diagnostic_starter): Handle two locations.
80 (gfc_warning_now_at): New.
81 (gfc_diagnostics_init): Initialize caret_chars array.
82 (gfc_diagnostics_finish): Reset caret_chars array to default.
84 2015-05-16 Mikael Morin <mikael@gcc.gnu.org>
85 Paul Thomas <pault@gcc.gnu.org>
88 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
89 the expression component to the destination. In addition, if
90 the component has allocatable components, copy them and
91 deallocate those of the expression, if it is not a variable.
92 The expression is fixed if not a variable to prevent multiple
95 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
98 * frontend-passes.c (has_dimen_vector_ref): New function.
99 (inline_matmul_assign): Use it to return early in case
100 of unhandled vector subscripts.
102 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
106 * gfortran.h (gfc_array_spec): Add field resolved.
107 * array.c (gfc_resolve_array_spec): Resolve array spec
110 2015-05-11 Mikael Morin <mikael@gcc.gnu.org>
113 * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
115 2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
118 * frontend-passes.c (scalarized_expr): Set correct dimension and
119 shape for the expression to be passed to lbound. Remove trailing
120 references after array refrence.
121 (inline_matmul_assign): Remove gfc_copy_expr from calls
122 to scalarized_expr().
124 2015-05-10 Mikael Morin <mikael@gcc.gnu.org>
126 * simplify.c (simplify_bound_dim): Don't check for emptyness
127 in the case of cobound simplification. Factor lower/upper
128 bound differenciation before the actual simplification.
129 (simplify_bound): Remove assumed shape specific simplification.
130 Don't give up early for the lbound of an assumed shape.
132 2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
135 * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
137 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
139 (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
141 (gfc_walk_elemental_function_args): Set the dummy_arg field.
142 * trans.h (gfc_ss_info): New subfield dummy_arg.
143 * trans-expr.c (gfc_conv_procedure_call): Revert the change
145 (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
148 2015-05-08 Mikael Morin <mikael@gcc.gnu.org>
150 * trans-array.c (gfc_walk_elemental_function_args):
151 Don't skip the advance to the next dummy argument when skipping
152 absent optional args.
154 2015-05-05 David Malcolm <dmalcolm@redhat.com>
156 * expr.c (check_inquiry): Fix indentation so that it reflects the
158 * interface.c (compare_parameter): Likewise.
159 * parse.c (parse_oacc_structured_block): Likewise.
160 * target-memory.c (expr_to_char): Likewise.
161 * trans-types.c (gfc_init_kinds): Likewise.
163 2015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
166 * invoke.texi: Remove 'no-' in '-fno-fixed-form'
168 2015-05-01 Mikael Morin <mikael@gcc.gnu.org>
170 * simplify.c (simplify_bound_dim): Tighten the check for array fullness
171 by also checking for absence of subreference.
172 (simplify_bound): Don't skip simplification if the array
174 (simplify_cobound): Same.
176 2015-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
179 * simplify.c (simplify_bound): Get constant lower bounds of one
180 from array spec for assumed and explicit shape shape arrays if
181 the lower bounds are indeed one.
183 2015-04-30 David Malcolm <dmalcolm@redhat.com>
185 * options.c (gfc_init_options): Remove spurious second
187 * trans-stmt.c (gfc_trans_allocate): Likewise.
189 2015-04-28 Andre Vehreschild <vehre@gmx.de>
191 * interface.c (gfc_compare_types): Check for unlimited
192 polymorphism flag in the correct position indepent of the _data
193 component being present or not. This prevents a segfault, when
194 the _data component is not present.
195 * symbol.c (gfc_type_compatible): Same.
197 2015-04-27 Jim Wilson <jim.wilson@linaro.org>
199 * Make-lang.in (fortran.mostlyclean): Remove gfortran and
202 2015-04-27 Andre Vehreschild <vehre@gmx.de>
206 * trans-array.c (duplicate_allocatable): Fixed deep copy of
207 allocatable components, which are liable for copy only, when
209 (gfc_duplicate_allocatable): Add deep-copy code into if
210 component allocated block. Needed interface change for that.
211 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
212 add into if-block for checking whether a component was
214 (gfc_duplicate_allocatable_nocopy): Likewise.
215 (structure_alloc_comps): Likewise.
216 * trans-array.h: Likewise.
217 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
218 * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
220 2015-04-23 Andre Vehreschild <vehre@gmx.de>
223 * expr.c (gfc_lval_expr_from_sym): Code to select the regular
224 or class array added.
225 * gfortran.h: Add IS_CLASS_ARRAY macro.
226 * trans-array.c (gfc_add_loop_ss_code): Treat class objects
227 to be referenced always.
228 (build_class_array_ref): Adapt retrieval of array descriptor.
229 (build_array_ref): Likewise.
230 (gfc_conv_array_ref): Hand the vptr or the descriptor to
231 build_array_ref depending whether the sym is class or not.
232 (gfc_trans_array_cobounds): Select correct gfc_array_spec for
233 regular and class arrays.
234 (gfc_trans_array_bounds): Likewise.
235 (gfc_trans_dummy_array_bias): Likewise.
236 (gfc_get_dataptr_offset): Correcting call of build_array_ref.
237 (gfc_conv_expr_descriptor): Set the array's offset to -1 when
238 lbound in inner most dim is 1 and symbol non-pointer/assoc.
239 * trans-decl.c (gfc_build_qualified_array): Select correct
240 gfc_array_spec for regular and class arrays.
241 (gfc_build_dummy_array_decl): Likewise.
242 (gfc_get_symbol_decl): Get a dummy array for class arrays.
243 (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
245 * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
246 from the correct location for class arrays.
247 (gfc_class_len_get): Likewise.
248 (gfc_conv_intrinsic_to_class): Add handling of _len component.
249 (gfc_conv_class_to_class): Prevent access to unset array data
250 when the array is an optional argument. Add handling of _len
252 (gfc_copy_class_to_class): Check that _def_init is non-NULL
253 when used in _vptr->copy()
254 (gfc_trans_class_init_assign): Ensure that the rank of
256 (gfc_conv_component_ref): Get the _vptr along with _data refs.
257 (gfc_conv_variable): Make sure the temp array descriptor is
258 returned for class arrays, too, and that class arrays are
259 dereferenced correctly.
260 (gfc_conv_procedure_call): For polymorphic type initialization
261 the initializer has to be a pointer to _def_init stored in a
262 dummy variable, which then needs to be used by value.
263 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
264 temporary array descriptor for class arrays, too.
265 (gfc_conv_intrinsic_storage_size): Likewise.
266 (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
268 * trans-stmt.c (trans_associate_var): Use a temporary array for
269 the associate variable of class arrays, too, making the array
270 one-based (lbound == 1).
271 * trans-types.c (gfc_is_nodesc_array): Use the correct
273 * trans.c (gfc_build_array_ref): Use the dummy array descriptor
275 * trans.h: Add class_vptr to gfc_se for storing a class ref's
278 2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
281 * decl.c (add_init_expr_to_sym): Set the length type parameter.
283 2015-04-10 Tobias Burnus <burnus@net-b.de>
285 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
286 version; reject not-yet-implemented variants.
287 * trans-types.c (gfc_get_derived_type): For lock_type with
288 -fcoarray=lib, use a void pointer as type.
289 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
290 Handle lock_type with -fcoarray=lib.
292 2015-04-10 Mikael Morin <mikael@gcc.gnu.org>
298 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
299 former to the latter and make it non-static. Update callers.
300 * gfortran.h (gfc_save_symbol_data): New prototype.
301 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
302 before modifying symbols 'sym' and 'dt_sym'.
304 2013-04-09 Paul Thomas <pault@gcc.gnu.org>
307 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
308 of the index variables are untyped and errors are present.
310 2015-04-07 Andre Vehreschild <vehre@gmx.de>
313 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
314 use conv_expr_descriptor() instead of conv_expr_reference().
316 2015-03-30 Jakub Jelinek <jakub@redhat.com>
319 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
320 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
321 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
322 instead of the original step on the new iterator - count.
324 2015-03-25 Mikael Morin <mikael@gcc.gnu.org>
328 * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
329 * resolve.c (resolve_types): Return early if field 'types_resolved'
330 is set. Set 'types_resolved' at the end.
332 2015-03-24 Andre Vehreschild <vehre@gmx.de>
335 * trans-expr.c (gfc_conv_structure): Fixed indendation.
336 Using integer_zero_node now instead of explicitly
337 constructing a integer constant zero node.
338 (gfc_conv_derived_to_class): Add handling of _len component,
339 i.e., when the rhs has a string_length then assign that to
340 class' _len, else assign 0.
341 (gfc_conv_intrinsic_to_class): Likewise.
343 2015-03-24 Andre Vehreschild <vehre@gmx.de>
348 * class.c (gfc_add_component_ref): Free no longer needed
349 ref-chains to prevent memory loss.
350 (find_intrinsic_vtab): For deferred length char arrays or
351 unlimited polymorphic objects, store the size in bytes of one
352 character in the size component of the vtab.
353 * gfortran.h: Added gfc_add_len_component () define.
354 * trans-array.c (gfc_trans_create_temp_array): Switched to new
355 function name for getting a class' vtab's field.
356 (build_class_array_ref): Likewise.
357 (gfc_array_init_size): Using the size information from allocate
358 more consequently now, i.e., the typespec of the entity to
359 allocate is no longer needed. This is to address the last open
360 comment in PR fortran/57456.
361 (gfc_array_allocate): Likewise.
362 (structure_alloc_comps): gfc_copy_class_to_class () needs to
363 know whether the class is unlimited polymorphic.
364 * trans-array.h: Changed interface of gfc_array_allocate () to
365 reflect the no longer needed typespec.
366 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
367 (gfc_reset_len): New.
368 (gfc_get_class_array_ref): Switch to new function name for
369 getting a class' vtab's field.
370 (gfc_copy_class_to_class): Added flag to know whether the class
371 to copy is unlimited polymorphic. Adding _len dependent code
372 then, which calls ->vptr->copy () with four arguments adding
373 the length information ->vptr->copy(from, to, from_len, to_cap).
374 (gfc_conv_procedure_call): Switch to new function name for
375 getting a class' vtab's field.
376 (alloc_scalar_allocatable_for_assignment): Use the string_length
377 as computed by gfc_conv_expr and not the statically backend_decl
378 which may be incorrect when ref-ing.
379 (gfc_trans_assignment_1): Use the string_length variable and
380 not the rse.string_length. The former has been computed more
382 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
383 function name for getting a class' vtab's field.
384 (gfc_conv_intrinsic_storage_size): Likewise.
385 (gfc_conv_intrinsic_transfer): Likewise.
386 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
387 source=expr3 only once before the loop over the objects to
388 allocate, when the objects are not arrays. Doing correct _len
389 initialization and calling of vptr->copy () fixing PR 64787.
390 (gfc_trans_deallocate): Reseting _len to 0, preventing future
392 * trans.c (gfc_build_array_ref): Switch to new function name
393 for getting a class' vtab's field.
394 (gfc_add_comp_finalizer_call): Likewise.
395 * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
396 and gfc_vptr_*_get () functions.
397 Added gfc_find_and_cut_at_last_class_ref () and
398 gfc_reset_len () routine prototype. Added flag to
399 gfc_copy_class_to_class () prototype to signal an unlimited
400 polymorphic entity to copy.
402 2015-03-24 Iain Sandoe <iain@codesourcery.com>
403 Tobias Burnus <burnus@net-b.de>
405 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
407 2015-03-23 Paul Thomas <pault@gcc.gnu.org>
408 Mikael Morin <mikael@gcc.gnu.org>
411 * gfortran.h (struct symbol_attribute) : New field
412 'array_outer_dependency'.
413 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
414 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
415 (attr_bits): Append same value to initializer.
416 (mio_symbol_attribute): Handle 'array_outer_dependency' attr
417 in module read and write.
418 * resolve.c (update_current_proc_outer_array_dependency): New function.
419 (resolve_function, resolve_call): Add code to update current procedure's
420 'array_outer_dependency' attribute.
421 (resolve_variable): Mark current procedure with attribute
422 array_outer_dependency if the variable is an array coming from outside
423 the current namespace.
424 (resolve_fl_procedure): Mark a procedure without body with attribute
425 'array_outer_dependency'.
426 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
427 marked as 'array_outer_dependency' generate a temporary.
428 (gfc_walk_function_expr): If the function may reference external arrays,
429 mark the head gfc_ss with flag 'array_outer_dependency'.
431 2015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
434 * gfortran.texi (Read/Write after EOF marker): New information.
436 2015-03-21 H.J. Lu <hongjiu.lu@intel.com>
438 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
441 2015-03-21 Tobias Burnus <burnus@net-b.de>
443 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
444 _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
445 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
446 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
447 _gfortran_caf_atomic_op): New sections.
449 2015-03-21 Tobias Burnus <burnus@net-b.de>
451 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
452 coindexed coarray accesses.
454 2015-03-17 Paul Thomas <pault@gcc.gnu.org>
457 * trans-types.c (gfc_get_derived_type): If an abstract derived
458 type with procedure pointer components has no other type of
459 component, return the backend_decl. Otherwise build the
460 components if any of the non-procedure pointer components have
463 2015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
466 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
467 smallest kind passed in user arguments and hardcode tesults for
468 KIND=1 or KIND=2 to indicate no clock available.
470 2015-03-16 Andre Vehreschild <vehre@gmx.de>
472 * resolve.c: Prevent segfault on illegal input.
474 2015-03-14 Mikael Morin <mikael@gcc.gnu.org>
477 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
478 field before reusing LSE.
480 2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
483 * gfortran.texi: Document behavior when opening files without
484 explicit ACTION= specifier.
486 2015-03-10 Paul Thomas <pault@gcc.gnu.org>
489 * trans-expr.c (gfc_conv_component_ref): If the component
490 backend declaration is missing and the derived type symbol is
491 available in the reference, call gfc_build_derived_type.
493 2015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
494 Tobias Burnus <burnus@net-b.de>
496 * trans.h (caf_sync_memory): New function decl tree.
497 * trans-decl.c (gfc_build_builtin_function_decls): Define it.
498 (create_main_function): Don't call sync_synchronize and leave
499 it to the CAF library.
500 * trans-stmt.c (gfc_trans_stop): Ditto.
501 (gfc_trans_sync): Ditto; add call library call for sync memory.
503 2015-03-08 Mikael Morin <mikael@gcc.gnu.org>
506 * resolve.c (resolve_symbol): Check that the symbol found by
507 name lookup really is the current symbol being resolved.
509 2015-03-02 Tobias Burnus <burnus@net-b.de>
511 * check.c (gfc_check_atomic): Properly check for coarrayness
512 and for being coindexed.
514 2015-02-26 Martin Liska <mliska@suse.cz>
516 * resolve.c: Rename enum 'comparison' to 'compare_result' as
517 solution for -Wodr issue.
519 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
522 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
524 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
525 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
526 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
527 Remove function types.
528 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
529 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
530 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
533 2015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
537 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
538 for component references to class objects.
539 (gfc_conv_procedure_call): Compare the class by name.
541 2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
544 * scanner.c (gfc_next_char_literal): For free form source,
545 check for '!' and if found, clear the comment and go back
546 and get the next character. For fixed form source, skip the
549 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
552 * trans-stmt.c (gfc_trans_deallocate): If a component array
553 expression is not a descriptor type and it is a derived type
554 that has allocatable components and is not finalizable, then
555 deallocate the allocatable components.
557 2015-02-08 Mikael Morin <mikael@gcc.gnu.org>
560 * module.c (check_for_ambiguous): Change argument type
561 from gfc_symbol to gfc_symtree. Check local (symtree) name
562 instead of original (symbol) name.
563 (read_module): Update caller.
565 2015-02-06 Paul Thomas <pault@gcc.gnu.org>
568 * gfortran.h: Add 'must finalize' field to gfc_expr and
569 prototypes for gfc_is_alloc_class_scalar_function and for
570 gfc_is_alloc_class_array_function.
571 * expr.c (gfc_is_alloc_class_scalar_function,
572 gfc_is_alloc_class_array_function): New functions.
573 * trans-array.c (gfc_add_loop_ss_code): Do not move the
574 expression for allocatable class scalar functions outside the
576 (conv_array_index_offset): Cope with deltas being NULL_TREE.
577 (build_class_array_ref): Do not return with allocatable class
578 array functions. Add code to pick out the returned class array.
579 Dereference if necessary and return if not a class object.
580 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
581 (gfc_walk_function_expr): Return an array ss for the result of
582 an allocatable class array function.
583 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
584 that the argument should be a variable. If an allocatable class
585 array function, set the offset to zero and skip the write-out
587 (gfc_conv_procedure_call): Add allocatable class array function
588 to the assert. Call gfc_conv_subref_array_arg for allocatable
589 class array function arguments with derived type formal arg..
590 Add the code for handling allocatable class functions, including
591 finalization calls to prevent memory leaks.
592 (arrayfunc_assign_needs_temporary): Return if an allocatable
593 class array function.
594 (gfc_trans_assignment_1): Set must_finalize to rhs expression
595 for allocatable class functions. Set scalar_to_array as needed
596 for scalar class allocatable functions assigned to an array.
597 Nullify the allocatable components corresponding the the lhs
598 derived type so that the finalization does not free them.
600 2015-01-29 Andre Vehreschild <vehre@gmx.de>
601 Janus Weil <janus@gcc.gnu.org>
604 Initial patch by Janus Weil
605 * resolve.c (resolve_allocate_expr): Add check for comp. only
606 when target is not unlimited polymorphic.
607 * trans-stmt.c (gfc_trans_allocate): Assign correct value to
608 _len component of unlimited polymorphic entities.
610 2015-02-05 Tobias Burnus <burnus@net-b.de>
613 * resolve.c (resolve_transfer): Also check structure
616 2015-02-05 Paul Thomas <pault@gcc.gnu.org>
619 * resolve.c (resolve_structure_cons): Obtain the rank of class
621 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
622 assignment to allocatable class array components.
623 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
624 is a class component, allocate to the _data field.
625 (gfc_trans_subcomponent_assign): If a class component with a
626 derived type expression set the _vptr field and for array
627 components, call gfc_trans_alloc_subarray_assign. For scalars,
628 the assignment is performed here.
630 2015-02-04 Jakub Jelinek <jakub@redhat.com>
632 * options.c: Include langhooks.h.
633 (gfc_post_options): Change lang_hooks.name based on
636 2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
638 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
640 2015-01-30 Andre Vehreschild <vehre@gmx.de>
642 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
643 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
644 Fixed datatype of charlen to be a 32-bit int.
646 2015-02-01 Joseph Myers <joseph@codesourcery.com>
648 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
649 char *, ...)): Remove functions.
650 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
651 (const char *, ...)): Remove declarations.
652 * arith.c, check.c, data.c, decl.c, frontend-passes.c,
653 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
654 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
655 trans-common.c, trans-const.c, trans-stmt.c: All callers of
656 gfc_warning and gfc_warning_now changed to pass 0 or option number
659 2015-01-30 Joseph Myers <joseph@codesourcery.com>
661 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
662 callers of fatal_error changed to pass input_location as first
665 2015-01-28 Tobias Burnus <burnus@net-b.de>
667 * intrinsic.texi (CO_BROADCAST): Correct argument description.
669 2015-01-27 Tobias Burnus <burnus@net-b.de>
672 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
673 Fix handling for scalar coarrays.
674 * trans-types.c (gfc_get_element_type): Add comment.
676 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
679 * interface.c: Remove <algorithm>.
680 (check_dummy_characteristics): Use MAX instead of std::max.
682 2015-01-26 Paul Thomas <pault@gcc.gnu.org>
685 * resolve.c (resolve_allocate_expr): If the default initializer
686 is NULL, keep the original MOLD expression so that the correct
687 typespec is available.
689 2015-01-26 Tobias Burnus <burnus@net-b.de>
692 * interface.c (check_dummy_characteristics): Fix coarray handling.
694 2015-01-26 Tobias Burnus <burnus@net-b.de>
696 * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
698 2015-01-26 Janus Weil <janus@gcc.gnu.org>
701 * class.c (finalize_component): New argument 'sub_ns'. Insert code to
702 check if 'expr' is associated.
703 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
704 'ptr2'. Pass 'sub_ns' to finalize_component.
706 2015-01-25 Mikael Morin <mikael@gcc.gnu.org>
709 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
710 * module.c (MOD_VERSION): Bump.
711 (write_module): Don't write list of extensions.
712 (read_module): Don't jump over list of extensions;
713 don't load list of extensions.
714 (load_derived_extensions, write_dt_extensions,
715 write_derived_extensions): Remove.
717 2015-01-24 Tobias Burnus <burnus@net-b.de>
719 * parse.c (gfc_parse_file): Fix two-location gfc_error call.
721 2015-01-23 Martin Liska <mliska@suse.cz>
723 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
724 false positive during profiledbootstrap by initializing them.
725 * matchexp.c (match_mult_operand): Likewise.
726 * module.c (write_atom): Likewise.
727 (read_module): Likewise.
729 2015-01-23 Tom de Vries <tom@codesourcery.com>
732 * lang.opt (fopenacc): Mark as LTO option.
734 2015-01-23 Tom de Vries <tom@codesourcery.com>
737 * lang.opt (fopenmp): Mark as LTO option.
739 2015-01-23 Andre Vehreschild <vehre@gmx.de>
741 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
742 * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
744 2015-01-23 Jakub Jelinek <jakub@redhat.com>
746 * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
748 2015-01-23 Janus Weil <janus@gcc.gnu.org>
751 * class.c (finalize_component): Apply the check for 'fini_coarray' only
752 to coarray components.
754 2015-01-23 Tobias Burnus <burnus@net-b.de>
757 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
760 2015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
764 * trans-io.c (set_parameter_value): Delete use of has_iostat.
765 Redefine to not generate any runtime error check calls.
766 (set_parameter_value_chk): Rename of the former
767 set_parameter_value with the runtime error checks and fix
768 whitespace. (set_parameter_value_inquire): New function that
769 builds a runtime conditional block to set the INQUIRE
770 common parameter block unit number to -2 when unit numbers
771 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
772 For unit, use the renamed set_parameter_value_chk.
773 (gfc_trans_close): Likewise use renamed function.
774 (build_filepos): Whitespace and use renamed function.
775 (gfc_trans_inquire): Whitespace and for unit use
776 set_parameter_value and set_parameter_value_inquire.
777 (gfc_trans_wait): Remove p->iostat from call to
778 set_parameter_value. Use new set_parameter_value_chk for unit.
779 (build_dt): Use the new set_parameter_value without p->iostat
780 and fix whitespace. Use set_parameter_value_chk for unit.
782 2015-01-21 Thomas Koenig <tkoenig@netcologne.de>
785 * dependency.c (callback_dummy_intent_not_int): New function.
786 (dummy_intent_not_in): New function.
787 (gfc_full_array_ref_p): Use dummy_intent_not_in.
789 2015-01-18 Andre Vehreschild <vehre@gmx.de>
790 Janus Weil <janus@gcc.gnu.org>
793 * class.c (gfc_get_len_component): New.
794 (gfc_build_class_symbol): Add _len component to unlimited
795 polymorphic entities.
796 (find_intrinsic_vtab): Removed emitting of error message.
797 * gfortran.h: Added prototype for gfc_get_len_component.
798 * simplify.c (gfc_simplify_len): Use _len component where
800 * trans-expr.c (gfc_class_len_get): New.
801 (gfc_conv_intrinsic_to_class): Add handling for deferred
803 (gfc_conv_structure): Treat _len component correctly.
804 (gfc_conv_expr): Prevent bind_c handling when not required.
805 (gfc_trans_pointer_assignment): Propagate _len component.
806 * trans-stmt.c (class_has_len_component): New.
807 (trans_associate_var): _len component treatment for associate
809 (gfc_trans_allocate): Same as for trans_associate_var()
810 * trans.h: Added prototype for gfc_class_len_get.
812 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
815 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
816 for allocatable components, where the source is a variable.
818 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
821 * primary.c (gfc_match_varspec): Exclude dangling associate-
822 names with dimension 0 from being counted as arrays.
823 * resolve.c (resolve_assoc_var): Sub-strings are permissible
824 for associate-names, so exclude characters from the test for
826 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
827 the hidden string length variable of their associated target.
828 Signal this by setting 'length' to a constant, if the decl for
829 the string length is a variable.
831 2015-01-17 Paul Thomas <pault@gcc.gnu.org>
834 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
835 before reinitializing rse, to add the rse.pre to block before
837 * trans-intrinsic.c (gfc_conv_associated): Deal with the class
838 data being a descriptor.
840 2015-01-17 Andre Vehreschild <vehre@gmx.de>
843 * primary.c (build_actual_constructor): Prevent warning.
844 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
845 assignment): New function encapsulates treatment of allocatable
847 (gfc_trans_subcomponent_assign): Needed to distinguish between
848 regular assignment and initilization.
849 (gfc_trans_structure_assign): Same.
850 (gfc_conv_structure): Same.
853 * gfortran.h: deferred_parameter is not needed, because
854 it artificial does the trick completely.
855 * primary.c (build_actual_constructor): Same.
856 (gfc_convert_to_structure_constructor): Same.
857 * resolve.c (resolve_fl_derived0): Same.
858 * trans-expr.c (gfc_conv_component_ref): Prevent treating
859 allocatable deferred length char arrays here.
860 (gfc_trans_subcomponent_assign): Same as above.
861 * trans-types.c (gfc_sym_type): This is done in
862 gfc_get_derived_type already.
864 2015-01-17 Andre Vehreschild <vehre@gmx.de>
867 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
868 length when the symbol is declared to be a result.
869 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
870 string length when functions are nested and the string length
871 is a reference already.
873 2015-01-16 Janus Weil <janus@gcc.gnu.org>
876 * decl.c (match_pointer_init): Error out if resolution of init expr
879 2015-01-15 Tobias Burnus <burnus@net-b.de>
881 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
882 resolve_oacc_deviceptr_clause, resolve_omp_clauses,
883 gfc_resolve_oacc_declare): Replace '%s' by %qs.
885 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
886 Cesar Philippidis <cesar@codesourcery.com>
887 James Norris <jnorris@codesourcery.com>
888 Ilmir Usmanov <i.usmanov@samsung.com>
889 Tobias Burnus <burnus@net-b.de>
891 * lang.opt (fopenacc): New option.
892 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
893 * dump-parse-tree.c (show_omp_node): Split part of it into...
894 (show_omp_clauses): ... this new function.
895 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
896 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
897 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
898 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
899 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
900 (show_namespace): Update for OpenACC.
901 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
902 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
903 (DEF_GOACC_BUILTIN_COMPILER): New macros.
904 * types.def (BT_FN_VOID_INT_INT_VAR)
905 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
906 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
908 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
909 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
910 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
911 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
912 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
913 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
914 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
916 (struct gfc_expr_list): New data type.
917 (gfc_get_expr_list): New macro.
918 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
919 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
920 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
921 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
922 (OMP_LIST_CACHE): New enumerators.
923 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
924 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
925 wait_list, tile_list, async, gang, worker, vector, seq,
926 independent, wait, par_auto, gang_static, and loc members.
927 (struct gfc_namespace): Add oacc_declare_clauses member.
928 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
929 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
930 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
931 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
932 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
933 (gfc_free_expr_list, gfc_resolve_oacc_directive)
934 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
935 (gfc_resolve_oacc_blocks): New prototypes.
936 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
937 EXEC_OACC_PARALLEL_LOOP.
938 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
939 (gfc_match_oacc_update, gfc_match_oacc_declare)
940 (gfc_match_oacc_loop, gfc_match_oacc_host_data)
941 (gfc_match_oacc_data, gfc_match_oacc_kernels)
942 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
943 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
944 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
946 * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
947 (gfc_free_omp_clauses): Update for members added to struct
949 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
951 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
952 (struct fortran_omp_context): Add is_openmp member.
953 (gfc_resolve_omp_parallel_blocks): Initialize it.
954 (gfc_resolve_do_iterator): Update for OpenACC.
955 (gfc_resolve_omp_directive): Call
956 resolve_omp_directive_inside_oacc_region.
957 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
958 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
959 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
960 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
961 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
962 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
963 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
964 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
965 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
966 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
967 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
968 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
969 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
970 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
971 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
972 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
973 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
974 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
975 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
976 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
977 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
978 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
979 (gfc_match_omp_clauses): Handle those.
980 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
981 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
982 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
983 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
984 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
985 (OACC_WAIT_CLAUSES): New macros.
986 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
987 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
988 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
989 (gfc_match_oacc_kernels, gfc_match_oacc_data)
990 (gfc_match_oacc_host_data, gfc_match_oacc_loop)
991 (gfc_match_oacc_declare, gfc_match_oacc_update)
992 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
993 (gfc_match_oacc_wait, gfc_match_oacc_cache)
994 (gfc_match_oacc_routine, oacc_is_loop)
995 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
996 (check_symbol_not_pointer, check_array_not_assumed)
997 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
998 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
999 (omp_code_to_statement, oacc_code_to_statement)
1000 (resolve_oacc_directive_inside_omp_region)
1001 (resolve_omp_directive_inside_oacc_region)
1002 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
1003 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
1004 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
1005 (gfc_resolve_oacc_directive): New functions.
1006 * parse.c (next_free): Update for OpenACC. Move some code into...
1007 (verify_token_free): ... this new function.
1008 (next_fixed): Update for OpenACC. Move some code into...
1009 (verify_token_fixed): ... this new function.
1010 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
1011 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
1012 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
1013 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
1014 ST_OACC_KERNELS_LOOP.
1015 (case_decl): Add ST_OACC_ROUTINE.
1016 (push_state, parse_critical_block, parse_progunit): Update for
1018 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
1019 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1020 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
1021 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
1022 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
1023 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
1024 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1026 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
1027 (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
1028 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
1029 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
1030 (decode_oacc_directive, parse_oacc_structured_block)
1031 (parse_oacc_loop, is_oacc): New functions.
1032 * parse.h (struct gfc_state_data): Add oacc_declare_clauses
1034 (is_oacc): New prototype.
1035 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
1036 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
1037 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
1038 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
1039 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
1040 EXEC_OACC_EXIT_DATA.
1041 (resolve_codes): Call gfc_resolve_oacc_declare.
1042 * scanner.c (openacc_flag, openacc_locus): New variables.
1043 (skip_free_comments): Update for OpenACC. Move some code into...
1044 (skip_omp_attribute): ... this new function.
1045 (skip_oacc_attribute): New function.
1046 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
1047 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
1048 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1049 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1050 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1051 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1052 * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
1053 * trans-openmp.c: Include "gomp-constants.h".
1054 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
1055 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
1056 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
1057 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
1058 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
1059 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
1060 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
1061 independent, wait_list, num_gangs_expr, num_workers_expr,
1062 vector_length_expr, vector, vector_expr, worker, worker_expr,
1063 gang, gang_expr members.
1064 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
1065 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
1066 (gfc_trans_oacc_executable_directive)
1067 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
1068 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
1069 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
1070 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
1072 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
1073 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
1074 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
1075 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
1076 EXEC_OACC_EXIT_DATA.
1077 * gfortran.texi: Update for OpenACC.
1078 * intrinsic.texi: Likewise.
1079 * invoke.texi: Likewise.
1081 2015-01-15 Janus Weil <janus@gcc.gnu.org>
1084 * resolve.c (resolve_fl_derived0): Continue resolving next component
1087 2015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1090 * io.c (gfc_match_inquire): Generate error if unit number in
1091 inquire statement is a constant -1. All other values allowed.
1092 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
1093 (create_dummy_iostat): Delete function no longer used.
1095 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1098 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
1099 on dummy args with VALUE attribute.
1101 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1104 * interface.c (gfc_extend_expr): Look for type-bound operators before
1107 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1110 * resolve.c (resolve_fl_derived0): Set error flag if problems with the
1111 interface of a procedure-pointer component were detected.
1113 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1116 * interface.c (compare_parameter): Interface check for
1117 procedure-pointer component as actual argument.
1119 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
1121 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
1122 Runtime Library" to "GNU Offloading and Multi Processing Runtime
1124 * intrinsic.texi: Likewise.
1126 2015-01-10 Tobias Burnus <burnus@net-b.de>
1129 * invoke.texi (Wline-truncation): Document new behaviour.
1130 * lang.opt (Wline-truncation): Add Init(-1).
1131 * options.c (gfc_post_options): If -Wline-truncation is unset,
1132 enable it for free-form source files; for the latter, also use
1133 -Werror=line-truncation, unless -Wno-error has been specified.
1135 2015-01-09 Michael Collison <michael.collison@linaro.org>
1137 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1138 input.h, alias.h, symtab.h, options.h, fold-const.h,
1139 wide-int.h, and inchash.h due to flattening of tree.h.
1140 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1141 input.h, alias.h, symtab.h, fold-const.h,
1142 wide-int.h, and inchash.h due to flattening of tree.h.
1144 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1145 input.h, alias.h, symtab.h, options.h, fold-const.h,
1146 wide-int.h, and inchash.h due to flattening of tree.h.
1147 * iresolve.c: Ditto.
1148 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1149 input.h, alias.h, symtab.h, fold-const.h,
1150 wide-int.h, and inchash.h due to flattening of tree.h.
1151 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1152 input.h, alias.h, symtab.h, options.h, fold-const.h,
1153 wide-int.h, and inchash.h due to flattening of tree.h.
1155 * target-memory.c: Include hash-set.h, vec.h,
1156 double-int.h, input.h, alias.h, symtab.h, fold-const.h,
1157 wide-int.h, and inchash.h due to flattening of tree.h.
1158 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1159 input.h, alias.h, symtab.h, options.h, fold-const.h,
1160 wide-int.h, and inchash.h due to flattening of tree.h.
1161 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1162 input.h, alias.h, symtab.h, options.h, fold-const.h,
1163 wide-int.h, and inchash.h due to flattening of tree.h.
1164 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1165 input.h, alias.h, symtab.h, fold-const.h,
1166 wide-int.h, and inchash.h due to flattening of tree.h.
1167 * trans-const.c: Ditto.
1168 * trans-decl.c: Ditto.
1169 * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1170 input.h, alias.h, symtab.h, options.h, fold-const.h,
1171 wide-int.h, and inchash.h due to flattening of tree.h.
1172 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1173 input.h, alias.h, symtab.h, fold-const.h,
1174 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1175 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1176 input.h, alias.h, symtab.h, options.h, fold-const.h,
1177 wide-int.h, and inchash.h due to flattening of tree.h.
1178 * trans-openmp.c: Ditto.
1179 * trans-stmt.c: Ditto.
1180 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1181 input.h, alias.h, symtab.h, fold-const.h,
1182 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1184 2015-01-08 Tobias Burnus <burnus@net-b.de>
1186 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1187 for module coarrays with -fcoarray=lib.
1188 (get_proc_pointer_decl): As module variable, make only public
1189 when not marked as private.
1191 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1194 * dependency.h: Actually commit changes.
1196 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1199 * dependency.c: Update copyright years.
1200 (gfc_discard_nops): Add prototype.
1201 * dependency.c (discard_nops): Rename to gfc_discard_nops,
1203 (gfc_discard_nops): Use gfc_discard_nops.
1204 (gfc_dep_difference): Likewise.
1205 * frontend-passes.c Update copyright years.
1206 (realloc_strings): New function. Add prototype.
1207 (gfc_run_passes): Call realloc_strings.
1208 (realloc_string_callback): New function.
1209 (create_var): Add prototype. Handle case of a
1210 scalar character variable.
1211 (optimize_trim): Do not handle allocatable variables.
1213 2015-01-05 Jakub Jelinek <jakub@redhat.com>
1215 Update copyright years.
1217 * gfortranspec.c (lang_specific_driver): Update copyright notice
1219 * gfc-internals.texi: Bump @copying's copyright year.
1220 * gfortran.texi: Ditto.
1221 * intrinsic.texi: Ditto.
1222 * invoke.texi: Ditto.
1224 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1227 * expr.c (find_component_ref): Deal with extended types.
1229 2015-01-02 Tobias Burnus <burnus@net-b.de>
1231 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1232 for module coarrays with -fcoarray=lib.
1234 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1237 * interface.c (is_procptr_result): New function to check if an
1238 expression is a procedure-pointer result.
1239 (compare_actual_formal): Use it.
1241 Copyright (C) 2015 Free Software Foundation, Inc.
1243 Copying and distribution of this file, with or without modification,
1244 are permitted in any medium without royalty provided the copyright
1245 notice and this notice are preserved.