1 2015-06-23 Andre Vehreschild <vehre@gmx.de>
4 * parse.c (parse_associate): Figure the rank and as of a
5 class array in an associate early.
6 * primary.c (gfc_match_varspec): Prevent setting the
7 dimension attribute on the sym for classes.
8 * resolve.c (resolve_variable): Correct the component
9 ref's type for associated variables. Add a full array ref
10 when class array's are associated.
11 (resolve_assoc_var): Correct the type of the symbol,
12 when in the associate the expression's rank becomes scalar.
13 * trans-expr.c (gfc_conv_variable): Indirect ref needed for
14 allocatable associated objects.
16 2015-06-19 Mikael Morin <mikael@gcc.gnu.org>
19 * resolve.c (resolve_global_procedure): Don't save and restore
20 OpenMP state around the call to gfc_resolve.
21 (gfc_resolve): Save OpenMP state on entry and restore it on return.
23 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
25 * convert.c: Do not include input.h, line-map.h or is-a.h.
28 * f95-lang.c: Likewise.
29 * gfortran.h: Likewise.
30 * iresolve.c: Likewise.
33 * options.c: Likewise.
34 * target-memory.c: Likewise.
35 * trans-array.c: Likewise.
36 * trans-common.c: Likewise.
37 * trans-const.c: Likewise.
38 * trans-decl.c: Likewise.
39 * trans-expr.c: Likewise.
40 * trans-intrinsic.c: Likewise.
41 * trans-io.c: Likewise.
42 * trans-openmp.c: Likewise.
43 * trans-stmt.c: Likewise.
44 * trans-types.c: Likewise.
47 2015-06-15 Andre Vehreschild <vehre@gmx.de>
52 * gfortran.h: Extend gfc_code.ext.alloc to carry a
53 flag indicating that the array specification has to be
55 * resolve.c (resolve_allocate_expr): Add F2008 notify
56 and flag indicating source driven array spec.
57 (resolve_allocate_deallocate): Check for source driven
58 array spec, when array to allocate has no explicit
60 * trans-array.c (gfc_array_init_size): Get lower and
61 upper bound from a tree array descriptor, except when
62 the source expression is an array-constructor which is
63 fixed to be one-based.
64 (retrieve_last_ref): Extracted from gfc_array_allocate().
65 (gfc_array_allocate): Enable allocate(array, source=
66 array_expression) as specified by F2008:C633.
67 (gfc_conv_expr_descriptor): Add class tree expression
68 into the saved descriptor for class arrays.
69 * trans-array.h: Add temporary array descriptor to
70 gfc_array_allocate ().
71 * trans-expr.c (gfc_conv_procedure_call): Special handling
72 for _copy() routine translation, that comes without an
73 interface. Third and fourth argument are now passed by value.
74 * trans-stmt.c (gfc_trans_allocate): Get expr3 array
75 descriptor for temporary arrays to allow allocate(array,
76 source = array_expression) for array without array
79 2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
81 * intrinsic.texi: Change \leq to < in descrition of imaginary
82 part in argument to log.
84 2015-06-11 Paul Thomas <pault@gcc.gnu.org>
87 * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
88 function results must be freed and nullified after use. Create
89 a temporary to hold the result to prevent duplicate calls.
90 * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
91 as 'source'. Deallocate allocatable components of non-variable
94 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
96 * f95-lang.c (gfc_create_decls): Register the main translation unit
97 through the new debug hook.
99 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
101 * convert.c : Adjust include files.
104 * f95-lang.c : Likewise.
105 * gfortran.h : Likewise.
106 * iresolve.c : Likewise.
107 * match.c : Likewise.
108 * module.c : Likewise.
109 * openmp.c : Likewise.
110 * options.c : Likewise.
111 * target-memory.c : Likewise.
112 * trans-array.c : Likewise.
113 * trans-common.c : Likewise.
114 * trans-const.c : Likewise.
115 * trans-decl.c : Likewise.
116 * trans-expr.c : Likewise.
117 * trans-intrinsic.c : Likewise.
118 * trans-io.c : Likewise.
119 * trans-openmp.c : Likewise.
120 * trans-stmt.c : Likewise.
121 * trans-types.c : Likewise.
122 * trans.c : Likewise.
124 2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
127 * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
128 return type spec or derived type spec is validate.
130 2015-06-06 Thomas Koenig <tkoenig@netcologne.de>
133 * arith.c (eval_intrinsic_op): Set warn flag for
134 gfc_type_convert_binary if -Wconversion or -Wconversion-extra
136 (wprecision_real_real): New function.
137 (wprecision_int_real): New function.
138 (gfc_int2int): If -fno-range-check and -Wconversion are specified
139 and it is a narrowing conversion, warn.
140 (gfc_int2real): If there is a change in value for the conversion,
142 (gfc_int2complex): Likewise.
143 (gfc_real2int): If there is a fractional part to the real number,
144 warn with -Wconversion, otherwise warn with -Wconversion-extra.
145 (gfc_real2real): Emit warning if the constant was changed by
146 conversion with either -Wconversion or -Wconversion-extra. With
147 -Wconversion-extra, warn if no warning was issued earlier.
148 (gfc_real2complex): Likewise.
149 (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
150 there was an imaginary part, warn; otherwise, warn for change in
151 value. Warn with -Wconversion-extra if no other warning was
153 (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
154 there was an imaginary part, warn; otherwise, warn for change in
155 value. Warn with -Wconversion-extra if no other warning was
157 (gfc_complex2complex): For -Wconversion, warn if the value of
158 either the real or the imaginary part was changed. Warn for
159 -Wconversion-extra if no prior warning was issued.
160 * expr.c (gfc_check_assign): Remove check for change in value.
161 * primary.c (match_real_constant): For -Wconversion-extra, check
162 against a number in which the last non-zero digit has been
163 replaced with a zero. If the number compares equal, warn.
164 * intrinsic.c (gfc_convert_type_warn): Do not warn about constant
167 2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
170 * resolve.c (apply_default_init_local): Do not dereference a NULL
173 2015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org>
176 * frontend-passes.c (combine_array_constructor): Return early if
177 inside a FORALL loop.
179 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
181 * f95-lang.c (gfc_write_global_declarations): Remove.
182 (LANG_HOOKS_WRITE_GLOBALS): Remove.
183 (gfc_write_global_declarations): Move code from here to...
184 (gfc_be_parse_file): ...here.
185 Call global_decl_processing.
186 * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
187 to early_global_decl.
189 2015-06-05 Russell Whitesides <russelldub@gmail.com>
190 Steven G. Kargl <kargl@gcc.gnu.org>
195 * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
196 from different modules. Eliminate the pruning of unused
199 2015-06-04 Thomas Koenig <tkoenig@netcologne.de>
202 * iresolve.c (gfc_resolve_adjustl): If string has a charlen,
203 copy it to the function.
204 (gfc_resolve_adjustr): Likewise.
206 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
208 * convert.c: Adjust includes for restructured coretypes.h.
211 * f95-lang.c: Likewise.
212 * iresolve.c: Likewise.
214 * module.c: Likewise.
215 * options.c: Likewise.
216 * target-memory.c: Likewise.
217 * trans-array.c: Likewise.
218 * trans-common.c: Likewise.
219 * trans-const.c: Likewise.
220 * trans-decl.c: Likewise.
221 * trans-expr.c: Likewise.
222 * trans-intrinsic.c: Likewise.
223 * trans-io.c: Likewise.
224 * trans-openmp.c: Likewise.
225 * trans-stmt.c: Likewise.
226 * trans-types.c: Likewise.
229 2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
232 * simplify.c (gfc_simplify_reshape): Convert assert into returning
233 NULL, which triggers an error condition.
235 2015-05-27 Andre Vehreschild <vehre@gmx.de>
238 * trans-stmt.c (gfc_trans_allocate): Add missing location
239 information for e3rhs.
241 2015-05-26 Paul Thomas <pault@gcc.gnu.org>
244 * trans-array.c (gfc_conv_array_parameter): Ensure that all
245 non-variable arrays with allocatable components have the
246 components deallocated after the procedure call.
248 2015-05-24 Mikael Morin <mikael@gcc.gnu.org>
251 * resolve.c (resolve_actual_arglist): Don't throw an error
252 if the argument with procedure pointer component is not a variable.
254 2015-05-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
257 * gfortran.h (struct gfc_error_buf): Rename as
258 gfc_error_buffer. Move closer to push, pop and free
259 methods. Reimplement using an output_buffer.
260 * error.c (errors, warnings, warning_buffer, cur_error_buffer):
261 Delete everywhere in this file.
262 (error_char): Delete all contents.
263 (gfc_increment_error_count): Delete.
264 (gfc_error_now): Update comment. Set error_buffer.flag.
265 (gfc_warning_check): Do not handle warning_buffer.
266 (gfc_error_1): Delete.
267 (gfc_error_now_1): Delete.
268 (gfc_error_check): Simplify.
269 (gfc_move_error_buffer_from_to): Renamed from
270 gfc_move_output_buffer_from_to.
271 (gfc_push_error): Handle only gfc_error_buffer.
272 (gfc_pop_error): Likewise.
273 (gfc_free_error): Likewise.
274 (gfc_get_errors): Remove warnings and errors.
275 (gfc_diagnostics_init): Use static error_buffer.
276 (gfc_error_1,gfc_error_now_1): Delete declarations.
277 * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
278 frontend-passes.c, resolve.c, match.c, parse.c: Replace
279 gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
281 * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
283 * primary.c (match_complex_constant): Replace gfc_error_buf and
284 output_buffer with gfc_error_buffer.
286 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
288 * Make-lang.in (check_gfortran_parallelize): Update comment.
290 2015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
293 * frontend-passes.c (check_conjg_variable): New function.
294 (inline_matmul_assign): Use it to keep track of conjugated
297 2015-05-20 Andre Vehreschild <vehre@gmx.de>
300 * trans-stmt.c (gfc_trans_allocate): Always retrieve the
301 descriptor or a reference to a source= expression for
302 arrays and non-arrays, respectively. Use a temporary
303 symbol and gfc_trans_assignment for all source=
304 assignments to allocated objects besides for class and
307 2015-05-19 Jakub Jelinek <jakub@redhat.com>
310 * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
312 (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
315 2015-05-19 David Malcolm <dmalcolm@redhat.com>
317 * cpp.c (maybe_print_line): Strengthen local "map" from
318 const line_map * to const line_map_ordinary *.
319 (cb_file_change): Likewise for param "map" and local "from".
320 (cb_line_change): Likewise for local "map".
322 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
324 * interface.c (compare_actual_formal): Use std::swap instead of
326 * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
327 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
329 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
332 * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
333 * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
335 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
338 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
340 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
343 * gfortran.dg/storage_size_6.f90: New tests.
345 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
348 * gfortran.dg/storage_size_6.f90: New tests.
350 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
353 * decl.c(gfc_match_entry): Change a gfc_internal_error() into
356 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
359 * gfortran.dg/storage_size_6.f90: New tests.
361 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
364 * parse.c(verify_st_order): Replace a gfc_internal_error with your
367 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
370 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
371 BACKSPACE, and ENDFILE statements
373 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
376 * symbol.c(check_conflict): Check for a conflict between a dummy
377 argument and an internal procedure name.
379 2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
382 * io.c (format_lex): Change to NONSTRING when checking for
383 possible doubled quote.
384 * scanner.c (gfc_next_char_literal): Revert change from 64506
385 and add a check for quotes and return.
387 2015-05-16 Thomas Koenig <tkoenig@gcc.gnu.org>
390 * expr.c (is_parent_of_current_ns): New function.
391 (check_restricted): Use it.
393 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
397 Replace all calls to gfc_notify_std_1 with gfc_notify_std and
398 gfc_warning_1 with gfc_warning.
399 * decl.c (gfc_verify_c_interop_param): Here.
400 * resolve.c (resolve_branch): Here.
401 (resolve_fl_derived): Here.
402 * dependency.c (gfc_check_argument_var_dependency):
403 * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
404 counter and locations before and after warning.
405 * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
407 (gfc_warning_now_at): Declare.
408 * error.c (gfc_warning_1): Delete.
409 (gfc_notify_std_1): Delete.
410 (gfc_warning_now_1): Delete.
411 (gfc_format_decoder): Handle two locations.
412 (gfc_diagnostic_build_prefix): Rename as
413 gfc_diagnostic_build_kind_prefix.
414 (gfc_diagnostic_build_locus_prefix): Take an expanded_location
415 instead of diagnostic_info.
416 (gfc_diagnostic_build_locus_prefix): Add overload that takes two
418 (gfc_diagnostic_starter): Handle two locations.
419 (gfc_warning_now_at): New.
420 (gfc_diagnostics_init): Initialize caret_chars array.
421 (gfc_diagnostics_finish): Reset caret_chars array to default.
423 2015-05-16 Mikael Morin <mikael@gcc.gnu.org>
424 Paul Thomas <pault@gcc.gnu.org>
427 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
428 the expression component to the destination. In addition, if
429 the component has allocatable components, copy them and
430 deallocate those of the expression, if it is not a variable.
431 The expression is fixed if not a variable to prevent multiple
434 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
437 * frontend-passes.c (has_dimen_vector_ref): New function.
438 (inline_matmul_assign): Use it to return early in case
439 of unhandled vector subscripts.
441 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
445 * gfortran.h (gfc_array_spec): Add field resolved.
446 * array.c (gfc_resolve_array_spec): Resolve array spec
449 2015-05-11 Mikael Morin <mikael@gcc.gnu.org>
452 * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
454 2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
457 * frontend-passes.c (scalarized_expr): Set correct dimension and
458 shape for the expression to be passed to lbound. Remove trailing
459 references after array refrence.
460 (inline_matmul_assign): Remove gfc_copy_expr from calls
461 to scalarized_expr().
463 2015-05-10 Mikael Morin <mikael@gcc.gnu.org>
465 * simplify.c (simplify_bound_dim): Don't check for emptyness
466 in the case of cobound simplification. Factor lower/upper
467 bound differenciation before the actual simplification.
468 (simplify_bound): Remove assumed shape specific simplification.
469 Don't give up early for the lbound of an assumed shape.
471 2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
474 * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
476 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
478 (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
480 (gfc_walk_elemental_function_args): Set the dummy_arg field.
481 * trans.h (gfc_ss_info): New subfield dummy_arg.
482 * trans-expr.c (gfc_conv_procedure_call): Revert the change
484 (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
487 2015-05-08 Mikael Morin <mikael@gcc.gnu.org>
489 * trans-array.c (gfc_walk_elemental_function_args):
490 Don't skip the advance to the next dummy argument when skipping
491 absent optional args.
493 2015-05-05 David Malcolm <dmalcolm@redhat.com>
495 * expr.c (check_inquiry): Fix indentation so that it reflects the
497 * interface.c (compare_parameter): Likewise.
498 * parse.c (parse_oacc_structured_block): Likewise.
499 * target-memory.c (expr_to_char): Likewise.
500 * trans-types.c (gfc_init_kinds): Likewise.
502 2015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
505 * invoke.texi: Remove 'no-' in '-fno-fixed-form'
507 2015-05-01 Mikael Morin <mikael@gcc.gnu.org>
509 * simplify.c (simplify_bound_dim): Tighten the check for array fullness
510 by also checking for absence of subreference.
511 (simplify_bound): Don't skip simplification if the array
513 (simplify_cobound): Same.
515 2015-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
518 * simplify.c (simplify_bound): Get constant lower bounds of one
519 from array spec for assumed and explicit shape shape arrays if
520 the lower bounds are indeed one.
522 2015-04-30 David Malcolm <dmalcolm@redhat.com>
524 * options.c (gfc_init_options): Remove spurious second
526 * trans-stmt.c (gfc_trans_allocate): Likewise.
528 2015-04-28 Andre Vehreschild <vehre@gmx.de>
530 * interface.c (gfc_compare_types): Check for unlimited
531 polymorphism flag in the correct position indepent of the _data
532 component being present or not. This prevents a segfault, when
533 the _data component is not present.
534 * symbol.c (gfc_type_compatible): Same.
536 2015-04-27 Jim Wilson <jim.wilson@linaro.org>
538 * Make-lang.in (fortran.mostlyclean): Remove gfortran and
541 2015-04-27 Andre Vehreschild <vehre@gmx.de>
545 * trans-array.c (duplicate_allocatable): Fixed deep copy of
546 allocatable components, which are liable for copy only, when
548 (gfc_duplicate_allocatable): Add deep-copy code into if
549 component allocated block. Needed interface change for that.
550 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
551 add into if-block for checking whether a component was
553 (gfc_duplicate_allocatable_nocopy): Likewise.
554 (structure_alloc_comps): Likewise.
555 * trans-array.h: Likewise.
556 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
557 * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
559 2015-04-23 Andre Vehreschild <vehre@gmx.de>
562 * expr.c (gfc_lval_expr_from_sym): Code to select the regular
563 or class array added.
564 * gfortran.h: Add IS_CLASS_ARRAY macro.
565 * trans-array.c (gfc_add_loop_ss_code): Treat class objects
566 to be referenced always.
567 (build_class_array_ref): Adapt retrieval of array descriptor.
568 (build_array_ref): Likewise.
569 (gfc_conv_array_ref): Hand the vptr or the descriptor to
570 build_array_ref depending whether the sym is class or not.
571 (gfc_trans_array_cobounds): Select correct gfc_array_spec for
572 regular and class arrays.
573 (gfc_trans_array_bounds): Likewise.
574 (gfc_trans_dummy_array_bias): Likewise.
575 (gfc_get_dataptr_offset): Correcting call of build_array_ref.
576 (gfc_conv_expr_descriptor): Set the array's offset to -1 when
577 lbound in inner most dim is 1 and symbol non-pointer/assoc.
578 * trans-decl.c (gfc_build_qualified_array): Select correct
579 gfc_array_spec for regular and class arrays.
580 (gfc_build_dummy_array_decl): Likewise.
581 (gfc_get_symbol_decl): Get a dummy array for class arrays.
582 (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
584 * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
585 from the correct location for class arrays.
586 (gfc_class_len_get): Likewise.
587 (gfc_conv_intrinsic_to_class): Add handling of _len component.
588 (gfc_conv_class_to_class): Prevent access to unset array data
589 when the array is an optional argument. Add handling of _len
591 (gfc_copy_class_to_class): Check that _def_init is non-NULL
592 when used in _vptr->copy()
593 (gfc_trans_class_init_assign): Ensure that the rank of
595 (gfc_conv_component_ref): Get the _vptr along with _data refs.
596 (gfc_conv_variable): Make sure the temp array descriptor is
597 returned for class arrays, too, and that class arrays are
598 dereferenced correctly.
599 (gfc_conv_procedure_call): For polymorphic type initialization
600 the initializer has to be a pointer to _def_init stored in a
601 dummy variable, which then needs to be used by value.
602 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
603 temporary array descriptor for class arrays, too.
604 (gfc_conv_intrinsic_storage_size): Likewise.
605 (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
607 * trans-stmt.c (trans_associate_var): Use a temporary array for
608 the associate variable of class arrays, too, making the array
609 one-based (lbound == 1).
610 * trans-types.c (gfc_is_nodesc_array): Use the correct
612 * trans.c (gfc_build_array_ref): Use the dummy array descriptor
614 * trans.h: Add class_vptr to gfc_se for storing a class ref's
617 2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
620 * decl.c (add_init_expr_to_sym): Set the length type parameter.
622 2015-04-10 Tobias Burnus <burnus@net-b.de>
624 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
625 version; reject not-yet-implemented variants.
626 * trans-types.c (gfc_get_derived_type): For lock_type with
627 -fcoarray=lib, use a void pointer as type.
628 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
629 Handle lock_type with -fcoarray=lib.
631 2015-04-10 Mikael Morin <mikael@gcc.gnu.org>
637 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
638 former to the latter and make it non-static. Update callers.
639 * gfortran.h (gfc_save_symbol_data): New prototype.
640 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
641 before modifying symbols 'sym' and 'dt_sym'.
643 2013-04-09 Paul Thomas <pault@gcc.gnu.org>
646 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
647 of the index variables are untyped and errors are present.
649 2015-04-07 Andre Vehreschild <vehre@gmx.de>
652 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
653 use conv_expr_descriptor() instead of conv_expr_reference().
655 2015-03-30 Jakub Jelinek <jakub@redhat.com>
658 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
659 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
660 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
661 instead of the original step on the new iterator - count.
663 2015-03-25 Mikael Morin <mikael@gcc.gnu.org>
667 * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
668 * resolve.c (resolve_types): Return early if field 'types_resolved'
669 is set. Set 'types_resolved' at the end.
671 2015-03-24 Andre Vehreschild <vehre@gmx.de>
674 * trans-expr.c (gfc_conv_structure): Fixed indendation.
675 Using integer_zero_node now instead of explicitly
676 constructing a integer constant zero node.
677 (gfc_conv_derived_to_class): Add handling of _len component,
678 i.e., when the rhs has a string_length then assign that to
679 class' _len, else assign 0.
680 (gfc_conv_intrinsic_to_class): Likewise.
682 2015-03-24 Andre Vehreschild <vehre@gmx.de>
687 * class.c (gfc_add_component_ref): Free no longer needed
688 ref-chains to prevent memory loss.
689 (find_intrinsic_vtab): For deferred length char arrays or
690 unlimited polymorphic objects, store the size in bytes of one
691 character in the size component of the vtab.
692 * gfortran.h: Added gfc_add_len_component () define.
693 * trans-array.c (gfc_trans_create_temp_array): Switched to new
694 function name for getting a class' vtab's field.
695 (build_class_array_ref): Likewise.
696 (gfc_array_init_size): Using the size information from allocate
697 more consequently now, i.e., the typespec of the entity to
698 allocate is no longer needed. This is to address the last open
699 comment in PR fortran/57456.
700 (gfc_array_allocate): Likewise.
701 (structure_alloc_comps): gfc_copy_class_to_class () needs to
702 know whether the class is unlimited polymorphic.
703 * trans-array.h: Changed interface of gfc_array_allocate () to
704 reflect the no longer needed typespec.
705 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
706 (gfc_reset_len): New.
707 (gfc_get_class_array_ref): Switch to new function name for
708 getting a class' vtab's field.
709 (gfc_copy_class_to_class): Added flag to know whether the class
710 to copy is unlimited polymorphic. Adding _len dependent code
711 then, which calls ->vptr->copy () with four arguments adding
712 the length information ->vptr->copy(from, to, from_len, to_cap).
713 (gfc_conv_procedure_call): Switch to new function name for
714 getting a class' vtab's field.
715 (alloc_scalar_allocatable_for_assignment): Use the string_length
716 as computed by gfc_conv_expr and not the statically backend_decl
717 which may be incorrect when ref-ing.
718 (gfc_trans_assignment_1): Use the string_length variable and
719 not the rse.string_length. The former has been computed more
721 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
722 function name for getting a class' vtab's field.
723 (gfc_conv_intrinsic_storage_size): Likewise.
724 (gfc_conv_intrinsic_transfer): Likewise.
725 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
726 source=expr3 only once before the loop over the objects to
727 allocate, when the objects are not arrays. Doing correct _len
728 initialization and calling of vptr->copy () fixing PR 64787.
729 (gfc_trans_deallocate): Reseting _len to 0, preventing future
731 * trans.c (gfc_build_array_ref): Switch to new function name
732 for getting a class' vtab's field.
733 (gfc_add_comp_finalizer_call): Likewise.
734 * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
735 and gfc_vptr_*_get () functions.
736 Added gfc_find_and_cut_at_last_class_ref () and
737 gfc_reset_len () routine prototype. Added flag to
738 gfc_copy_class_to_class () prototype to signal an unlimited
739 polymorphic entity to copy.
741 2015-03-24 Iain Sandoe <iain@codesourcery.com>
742 Tobias Burnus <burnus@net-b.de>
744 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
746 2015-03-23 Paul Thomas <pault@gcc.gnu.org>
747 Mikael Morin <mikael@gcc.gnu.org>
750 * gfortran.h (struct symbol_attribute) : New field
751 'array_outer_dependency'.
752 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
753 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
754 (attr_bits): Append same value to initializer.
755 (mio_symbol_attribute): Handle 'array_outer_dependency' attr
756 in module read and write.
757 * resolve.c (update_current_proc_outer_array_dependency): New function.
758 (resolve_function, resolve_call): Add code to update current procedure's
759 'array_outer_dependency' attribute.
760 (resolve_variable): Mark current procedure with attribute
761 array_outer_dependency if the variable is an array coming from outside
762 the current namespace.
763 (resolve_fl_procedure): Mark a procedure without body with attribute
764 'array_outer_dependency'.
765 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
766 marked as 'array_outer_dependency' generate a temporary.
767 (gfc_walk_function_expr): If the function may reference external arrays,
768 mark the head gfc_ss with flag 'array_outer_dependency'.
770 2015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
773 * gfortran.texi (Read/Write after EOF marker): New information.
775 2015-03-21 H.J. Lu <hongjiu.lu@intel.com>
777 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
780 2015-03-21 Tobias Burnus <burnus@net-b.de>
782 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
783 _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
784 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
785 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
786 _gfortran_caf_atomic_op): New sections.
788 2015-03-21 Tobias Burnus <burnus@net-b.de>
790 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
791 coindexed coarray accesses.
793 2015-03-17 Paul Thomas <pault@gcc.gnu.org>
796 * trans-types.c (gfc_get_derived_type): If an abstract derived
797 type with procedure pointer components has no other type of
798 component, return the backend_decl. Otherwise build the
799 components if any of the non-procedure pointer components have
802 2015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
805 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
806 smallest kind passed in user arguments and hardcode tesults for
807 KIND=1 or KIND=2 to indicate no clock available.
809 2015-03-16 Andre Vehreschild <vehre@gmx.de>
811 * resolve.c: Prevent segfault on illegal input.
813 2015-03-14 Mikael Morin <mikael@gcc.gnu.org>
816 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
817 field before reusing LSE.
819 2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
822 * gfortran.texi: Document behavior when opening files without
823 explicit ACTION= specifier.
825 2015-03-10 Paul Thomas <pault@gcc.gnu.org>
828 * trans-expr.c (gfc_conv_component_ref): If the component
829 backend declaration is missing and the derived type symbol is
830 available in the reference, call gfc_build_derived_type.
832 2015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
833 Tobias Burnus <burnus@net-b.de>
835 * trans.h (caf_sync_memory): New function decl tree.
836 * trans-decl.c (gfc_build_builtin_function_decls): Define it.
837 (create_main_function): Don't call sync_synchronize and leave
838 it to the CAF library.
839 * trans-stmt.c (gfc_trans_stop): Ditto.
840 (gfc_trans_sync): Ditto; add call library call for sync memory.
842 2015-03-08 Mikael Morin <mikael@gcc.gnu.org>
845 * resolve.c (resolve_symbol): Check that the symbol found by
846 name lookup really is the current symbol being resolved.
848 2015-03-02 Tobias Burnus <burnus@net-b.de>
850 * check.c (gfc_check_atomic): Properly check for coarrayness
851 and for being coindexed.
853 2015-02-26 Martin Liska <mliska@suse.cz>
855 * resolve.c: Rename enum 'comparison' to 'compare_result' as
856 solution for -Wodr issue.
858 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
861 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
863 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
864 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
865 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
866 Remove function types.
867 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
868 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
869 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
872 2015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
876 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
877 for component references to class objects.
878 (gfc_conv_procedure_call): Compare the class by name.
880 2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
883 * scanner.c (gfc_next_char_literal): For free form source,
884 check for '!' and if found, clear the comment and go back
885 and get the next character. For fixed form source, skip the
888 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
891 * trans-stmt.c (gfc_trans_deallocate): If a component array
892 expression is not a descriptor type and it is a derived type
893 that has allocatable components and is not finalizable, then
894 deallocate the allocatable components.
896 2015-02-08 Mikael Morin <mikael@gcc.gnu.org>
899 * module.c (check_for_ambiguous): Change argument type
900 from gfc_symbol to gfc_symtree. Check local (symtree) name
901 instead of original (symbol) name.
902 (read_module): Update caller.
904 2015-02-06 Paul Thomas <pault@gcc.gnu.org>
907 * gfortran.h: Add 'must finalize' field to gfc_expr and
908 prototypes for gfc_is_alloc_class_scalar_function and for
909 gfc_is_alloc_class_array_function.
910 * expr.c (gfc_is_alloc_class_scalar_function,
911 gfc_is_alloc_class_array_function): New functions.
912 * trans-array.c (gfc_add_loop_ss_code): Do not move the
913 expression for allocatable class scalar functions outside the
915 (conv_array_index_offset): Cope with deltas being NULL_TREE.
916 (build_class_array_ref): Do not return with allocatable class
917 array functions. Add code to pick out the returned class array.
918 Dereference if necessary and return if not a class object.
919 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
920 (gfc_walk_function_expr): Return an array ss for the result of
921 an allocatable class array function.
922 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
923 that the argument should be a variable. If an allocatable class
924 array function, set the offset to zero and skip the write-out
926 (gfc_conv_procedure_call): Add allocatable class array function
927 to the assert. Call gfc_conv_subref_array_arg for allocatable
928 class array function arguments with derived type formal arg..
929 Add the code for handling allocatable class functions, including
930 finalization calls to prevent memory leaks.
931 (arrayfunc_assign_needs_temporary): Return if an allocatable
932 class array function.
933 (gfc_trans_assignment_1): Set must_finalize to rhs expression
934 for allocatable class functions. Set scalar_to_array as needed
935 for scalar class allocatable functions assigned to an array.
936 Nullify the allocatable components corresponding the the lhs
937 derived type so that the finalization does not free them.
939 2015-01-29 Andre Vehreschild <vehre@gmx.de>
940 Janus Weil <janus@gcc.gnu.org>
943 Initial patch by Janus Weil
944 * resolve.c (resolve_allocate_expr): Add check for comp. only
945 when target is not unlimited polymorphic.
946 * trans-stmt.c (gfc_trans_allocate): Assign correct value to
947 _len component of unlimited polymorphic entities.
949 2015-02-05 Tobias Burnus <burnus@net-b.de>
952 * resolve.c (resolve_transfer): Also check structure
955 2015-02-05 Paul Thomas <pault@gcc.gnu.org>
958 * resolve.c (resolve_structure_cons): Obtain the rank of class
960 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
961 assignment to allocatable class array components.
962 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
963 is a class component, allocate to the _data field.
964 (gfc_trans_subcomponent_assign): If a class component with a
965 derived type expression set the _vptr field and for array
966 components, call gfc_trans_alloc_subarray_assign. For scalars,
967 the assignment is performed here.
969 2015-02-04 Jakub Jelinek <jakub@redhat.com>
971 * options.c: Include langhooks.h.
972 (gfc_post_options): Change lang_hooks.name based on
975 2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
977 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
979 2015-01-30 Andre Vehreschild <vehre@gmx.de>
981 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
982 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
983 Fixed datatype of charlen to be a 32-bit int.
985 2015-02-01 Joseph Myers <joseph@codesourcery.com>
987 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
988 char *, ...)): Remove functions.
989 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
990 (const char *, ...)): Remove declarations.
991 * arith.c, check.c, data.c, decl.c, frontend-passes.c,
992 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
993 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
994 trans-common.c, trans-const.c, trans-stmt.c: All callers of
995 gfc_warning and gfc_warning_now changed to pass 0 or option number
998 2015-01-30 Joseph Myers <joseph@codesourcery.com>
1000 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
1001 callers of fatal_error changed to pass input_location as first
1004 2015-01-28 Tobias Burnus <burnus@net-b.de>
1006 * intrinsic.texi (CO_BROADCAST): Correct argument description.
1008 2015-01-27 Tobias Burnus <burnus@net-b.de>
1011 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
1012 Fix handling for scalar coarrays.
1013 * trans-types.c (gfc_get_element_type): Add comment.
1015 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1018 * interface.c: Remove <algorithm>.
1019 (check_dummy_characteristics): Use MAX instead of std::max.
1021 2015-01-26 Paul Thomas <pault@gcc.gnu.org>
1024 * resolve.c (resolve_allocate_expr): If the default initializer
1025 is NULL, keep the original MOLD expression so that the correct
1026 typespec is available.
1028 2015-01-26 Tobias Burnus <burnus@net-b.de>
1031 * interface.c (check_dummy_characteristics): Fix coarray handling.
1033 2015-01-26 Tobias Burnus <burnus@net-b.de>
1035 * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
1037 2015-01-26 Janus Weil <janus@gcc.gnu.org>
1040 * class.c (finalize_component): New argument 'sub_ns'. Insert code to
1041 check if 'expr' is associated.
1042 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
1043 'ptr2'. Pass 'sub_ns' to finalize_component.
1045 2015-01-25 Mikael Morin <mikael@gcc.gnu.org>
1048 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
1049 * module.c (MOD_VERSION): Bump.
1050 (write_module): Don't write list of extensions.
1051 (read_module): Don't jump over list of extensions;
1052 don't load list of extensions.
1053 (load_derived_extensions, write_dt_extensions,
1054 write_derived_extensions): Remove.
1056 2015-01-24 Tobias Burnus <burnus@net-b.de>
1058 * parse.c (gfc_parse_file): Fix two-location gfc_error call.
1060 2015-01-23 Martin Liska <mliska@suse.cz>
1062 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
1063 false positive during profiledbootstrap by initializing them.
1064 * matchexp.c (match_mult_operand): Likewise.
1065 * module.c (write_atom): Likewise.
1066 (read_module): Likewise.
1068 2015-01-23 Tom de Vries <tom@codesourcery.com>
1071 * lang.opt (fopenacc): Mark as LTO option.
1073 2015-01-23 Tom de Vries <tom@codesourcery.com>
1076 * lang.opt (fopenmp): Mark as LTO option.
1078 2015-01-23 Andre Vehreschild <vehre@gmx.de>
1080 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
1081 * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
1083 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1085 * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
1087 2015-01-23 Janus Weil <janus@gcc.gnu.org>
1090 * class.c (finalize_component): Apply the check for 'fini_coarray' only
1091 to coarray components.
1093 2015-01-23 Tobias Burnus <burnus@net-b.de>
1096 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
1099 2015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1103 * trans-io.c (set_parameter_value): Delete use of has_iostat.
1104 Redefine to not generate any runtime error check calls.
1105 (set_parameter_value_chk): Rename of the former
1106 set_parameter_value with the runtime error checks and fix
1107 whitespace. (set_parameter_value_inquire): New function that
1108 builds a runtime conditional block to set the INQUIRE
1109 common parameter block unit number to -2 when unit numbers
1110 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
1111 For unit, use the renamed set_parameter_value_chk.
1112 (gfc_trans_close): Likewise use renamed function.
1113 (build_filepos): Whitespace and use renamed function.
1114 (gfc_trans_inquire): Whitespace and for unit use
1115 set_parameter_value and set_parameter_value_inquire.
1116 (gfc_trans_wait): Remove p->iostat from call to
1117 set_parameter_value. Use new set_parameter_value_chk for unit.
1118 (build_dt): Use the new set_parameter_value without p->iostat
1119 and fix whitespace. Use set_parameter_value_chk for unit.
1121 2015-01-21 Thomas Koenig <tkoenig@netcologne.de>
1124 * dependency.c (callback_dummy_intent_not_int): New function.
1125 (dummy_intent_not_in): New function.
1126 (gfc_full_array_ref_p): Use dummy_intent_not_in.
1128 2015-01-18 Andre Vehreschild <vehre@gmx.de>
1129 Janus Weil <janus@gcc.gnu.org>
1132 * class.c (gfc_get_len_component): New.
1133 (gfc_build_class_symbol): Add _len component to unlimited
1134 polymorphic entities.
1135 (find_intrinsic_vtab): Removed emitting of error message.
1136 * gfortran.h: Added prototype for gfc_get_len_component.
1137 * simplify.c (gfc_simplify_len): Use _len component where
1139 * trans-expr.c (gfc_class_len_get): New.
1140 (gfc_conv_intrinsic_to_class): Add handling for deferred
1142 (gfc_conv_structure): Treat _len component correctly.
1143 (gfc_conv_expr): Prevent bind_c handling when not required.
1144 (gfc_trans_pointer_assignment): Propagate _len component.
1145 * trans-stmt.c (class_has_len_component): New.
1146 (trans_associate_var): _len component treatment for associate
1148 (gfc_trans_allocate): Same as for trans_associate_var()
1149 * trans.h: Added prototype for gfc_class_len_get.
1151 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
1154 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
1155 for allocatable components, where the source is a variable.
1157 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
1160 * primary.c (gfc_match_varspec): Exclude dangling associate-
1161 names with dimension 0 from being counted as arrays.
1162 * resolve.c (resolve_assoc_var): Sub-strings are permissible
1163 for associate-names, so exclude characters from the test for
1165 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
1166 the hidden string length variable of their associated target.
1167 Signal this by setting 'length' to a constant, if the decl for
1168 the string length is a variable.
1170 2015-01-17 Paul Thomas <pault@gcc.gnu.org>
1173 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
1174 before reinitializing rse, to add the rse.pre to block before
1176 * trans-intrinsic.c (gfc_conv_associated): Deal with the class
1177 data being a descriptor.
1179 2015-01-17 Andre Vehreschild <vehre@gmx.de>
1182 * primary.c (build_actual_constructor): Prevent warning.
1183 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
1184 assignment): New function encapsulates treatment of allocatable
1186 (gfc_trans_subcomponent_assign): Needed to distinguish between
1187 regular assignment and initilization.
1188 (gfc_trans_structure_assign): Same.
1189 (gfc_conv_structure): Same.
1192 * gfortran.h: deferred_parameter is not needed, because
1193 it artificial does the trick completely.
1194 * primary.c (build_actual_constructor): Same.
1195 (gfc_convert_to_structure_constructor): Same.
1196 * resolve.c (resolve_fl_derived0): Same.
1197 * trans-expr.c (gfc_conv_component_ref): Prevent treating
1198 allocatable deferred length char arrays here.
1199 (gfc_trans_subcomponent_assign): Same as above.
1200 * trans-types.c (gfc_sym_type): This is done in
1201 gfc_get_derived_type already.
1203 2015-01-17 Andre Vehreschild <vehre@gmx.de>
1206 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
1207 length when the symbol is declared to be a result.
1208 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
1209 string length when functions are nested and the string length
1210 is a reference already.
1212 2015-01-16 Janus Weil <janus@gcc.gnu.org>
1215 * decl.c (match_pointer_init): Error out if resolution of init expr
1218 2015-01-15 Tobias Burnus <burnus@net-b.de>
1220 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
1221 resolve_oacc_deviceptr_clause, resolve_omp_clauses,
1222 gfc_resolve_oacc_declare): Replace '%s' by %qs.
1224 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
1225 Cesar Philippidis <cesar@codesourcery.com>
1226 James Norris <jnorris@codesourcery.com>
1227 Ilmir Usmanov <i.usmanov@samsung.com>
1228 Tobias Burnus <burnus@net-b.de>
1230 * lang.opt (fopenacc): New option.
1231 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
1232 * dump-parse-tree.c (show_omp_node): Split part of it into...
1233 (show_omp_clauses): ... this new function.
1234 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
1235 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1236 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1237 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1238 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1239 (show_namespace): Update for OpenACC.
1240 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
1241 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
1242 (DEF_GOACC_BUILTIN_COMPILER): New macros.
1243 * types.def (BT_FN_VOID_INT_INT_VAR)
1244 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
1245 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
1247 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
1248 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1249 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
1250 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
1251 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
1252 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
1253 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1255 (struct gfc_expr_list): New data type.
1256 (gfc_get_expr_list): New macro.
1257 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
1258 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
1259 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
1260 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
1261 (OMP_LIST_CACHE): New enumerators.
1262 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
1263 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
1264 wait_list, tile_list, async, gang, worker, vector, seq,
1265 independent, wait, par_auto, gang_static, and loc members.
1266 (struct gfc_namespace): Add oacc_declare_clauses member.
1267 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
1268 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
1269 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1270 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1271 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1272 (gfc_free_expr_list, gfc_resolve_oacc_directive)
1273 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
1274 (gfc_resolve_oacc_blocks): New prototypes.
1275 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
1276 EXEC_OACC_PARALLEL_LOOP.
1277 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
1278 (gfc_match_oacc_update, gfc_match_oacc_declare)
1279 (gfc_match_oacc_loop, gfc_match_oacc_host_data)
1280 (gfc_match_oacc_data, gfc_match_oacc_kernels)
1281 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
1282 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
1283 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
1285 * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
1286 (gfc_free_omp_clauses): Update for members added to struct
1288 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
1290 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
1291 (struct fortran_omp_context): Add is_openmp member.
1292 (gfc_resolve_omp_parallel_blocks): Initialize it.
1293 (gfc_resolve_do_iterator): Update for OpenACC.
1294 (gfc_resolve_omp_directive): Call
1295 resolve_omp_directive_inside_oacc_region.
1296 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
1297 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
1298 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
1299 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
1300 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
1301 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
1302 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
1303 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
1304 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
1305 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
1306 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
1307 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
1308 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
1309 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
1310 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
1311 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
1312 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
1313 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
1314 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
1315 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
1316 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
1317 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
1318 (gfc_match_omp_clauses): Handle those.
1319 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
1320 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
1321 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
1322 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
1323 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
1324 (OACC_WAIT_CLAUSES): New macros.
1325 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
1326 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
1327 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
1328 (gfc_match_oacc_kernels, gfc_match_oacc_data)
1329 (gfc_match_oacc_host_data, gfc_match_oacc_loop)
1330 (gfc_match_oacc_declare, gfc_match_oacc_update)
1331 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
1332 (gfc_match_oacc_wait, gfc_match_oacc_cache)
1333 (gfc_match_oacc_routine, oacc_is_loop)
1334 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
1335 (check_symbol_not_pointer, check_array_not_assumed)
1336 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
1337 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
1338 (omp_code_to_statement, oacc_code_to_statement)
1339 (resolve_oacc_directive_inside_omp_region)
1340 (resolve_omp_directive_inside_oacc_region)
1341 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
1342 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
1343 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
1344 (gfc_resolve_oacc_directive): New functions.
1345 * parse.c (next_free): Update for OpenACC. Move some code into...
1346 (verify_token_free): ... this new function.
1347 (next_fixed): Update for OpenACC. Move some code into...
1348 (verify_token_fixed): ... this new function.
1349 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
1350 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
1351 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
1352 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
1353 ST_OACC_KERNELS_LOOP.
1354 (case_decl): Add ST_OACC_ROUTINE.
1355 (push_state, parse_critical_block, parse_progunit): Update for
1357 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
1358 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1359 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
1360 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
1361 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
1362 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
1363 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1365 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
1366 (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
1367 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
1368 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
1369 (decode_oacc_directive, parse_oacc_structured_block)
1370 (parse_oacc_loop, is_oacc): New functions.
1371 * parse.h (struct gfc_state_data): Add oacc_declare_clauses
1373 (is_oacc): New prototype.
1374 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
1375 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
1376 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
1377 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
1378 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
1379 EXEC_OACC_EXIT_DATA.
1380 (resolve_codes): Call gfc_resolve_oacc_declare.
1381 * scanner.c (openacc_flag, openacc_locus): New variables.
1382 (skip_free_comments): Update for OpenACC. Move some code into...
1383 (skip_omp_attribute): ... this new function.
1384 (skip_oacc_attribute): New function.
1385 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
1386 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
1387 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1388 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1389 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1390 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1391 * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
1392 * trans-openmp.c: Include "gomp-constants.h".
1393 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
1394 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
1395 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
1396 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
1397 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
1398 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
1399 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
1400 independent, wait_list, num_gangs_expr, num_workers_expr,
1401 vector_length_expr, vector, vector_expr, worker, worker_expr,
1402 gang, gang_expr members.
1403 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
1404 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
1405 (gfc_trans_oacc_executable_directive)
1406 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
1407 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
1408 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
1409 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
1411 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
1412 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
1413 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
1414 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
1415 EXEC_OACC_EXIT_DATA.
1416 * gfortran.texi: Update for OpenACC.
1417 * intrinsic.texi: Likewise.
1418 * invoke.texi: Likewise.
1420 2015-01-15 Janus Weil <janus@gcc.gnu.org>
1423 * resolve.c (resolve_fl_derived0): Continue resolving next component
1426 2015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1429 * io.c (gfc_match_inquire): Generate error if unit number in
1430 inquire statement is a constant -1. All other values allowed.
1431 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
1432 (create_dummy_iostat): Delete function no longer used.
1434 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1437 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
1438 on dummy args with VALUE attribute.
1440 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1443 * interface.c (gfc_extend_expr): Look for type-bound operators before
1446 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1449 * resolve.c (resolve_fl_derived0): Set error flag if problems with the
1450 interface of a procedure-pointer component were detected.
1452 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1455 * interface.c (compare_parameter): Interface check for
1456 procedure-pointer component as actual argument.
1458 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
1460 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
1461 Runtime Library" to "GNU Offloading and Multi Processing Runtime
1463 * intrinsic.texi: Likewise.
1465 2015-01-10 Tobias Burnus <burnus@net-b.de>
1468 * invoke.texi (Wline-truncation): Document new behaviour.
1469 * lang.opt (Wline-truncation): Add Init(-1).
1470 * options.c (gfc_post_options): If -Wline-truncation is unset,
1471 enable it for free-form source files; for the latter, also use
1472 -Werror=line-truncation, unless -Wno-error has been specified.
1474 2015-01-09 Michael Collison <michael.collison@linaro.org>
1476 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1477 input.h, alias.h, symtab.h, options.h, fold-const.h,
1478 wide-int.h, and inchash.h due to flattening of tree.h.
1479 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1480 input.h, alias.h, symtab.h, fold-const.h,
1481 wide-int.h, and inchash.h due to flattening of tree.h.
1483 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1484 input.h, alias.h, symtab.h, options.h, fold-const.h,
1485 wide-int.h, and inchash.h due to flattening of tree.h.
1486 * iresolve.c: Ditto.
1487 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1488 input.h, alias.h, symtab.h, fold-const.h,
1489 wide-int.h, and inchash.h due to flattening of tree.h.
1490 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1491 input.h, alias.h, symtab.h, options.h, fold-const.h,
1492 wide-int.h, and inchash.h due to flattening of tree.h.
1494 * target-memory.c: Include hash-set.h, vec.h,
1495 double-int.h, input.h, alias.h, symtab.h, fold-const.h,
1496 wide-int.h, and inchash.h due to flattening of tree.h.
1497 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1498 input.h, alias.h, symtab.h, options.h, fold-const.h,
1499 wide-int.h, and inchash.h due to flattening of tree.h.
1500 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1501 input.h, alias.h, symtab.h, options.h, fold-const.h,
1502 wide-int.h, and inchash.h due to flattening of tree.h.
1503 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1504 input.h, alias.h, symtab.h, fold-const.h,
1505 wide-int.h, and inchash.h due to flattening of tree.h.
1506 * trans-const.c: Ditto.
1507 * trans-decl.c: Ditto.
1508 * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1509 input.h, alias.h, symtab.h, options.h, fold-const.h,
1510 wide-int.h, and inchash.h due to flattening of tree.h.
1511 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1512 input.h, alias.h, symtab.h, fold-const.h,
1513 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1514 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1515 input.h, alias.h, symtab.h, options.h, fold-const.h,
1516 wide-int.h, and inchash.h due to flattening of tree.h.
1517 * trans-openmp.c: Ditto.
1518 * trans-stmt.c: Ditto.
1519 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1520 input.h, alias.h, symtab.h, fold-const.h,
1521 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1523 2015-01-08 Tobias Burnus <burnus@net-b.de>
1525 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1526 for module coarrays with -fcoarray=lib.
1527 (get_proc_pointer_decl): As module variable, make only public
1528 when not marked as private.
1530 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1533 * dependency.h: Actually commit changes.
1535 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1538 * dependency.c: Update copyright years.
1539 (gfc_discard_nops): Add prototype.
1540 * dependency.c (discard_nops): Rename to gfc_discard_nops,
1542 (gfc_discard_nops): Use gfc_discard_nops.
1543 (gfc_dep_difference): Likewise.
1544 * frontend-passes.c Update copyright years.
1545 (realloc_strings): New function. Add prototype.
1546 (gfc_run_passes): Call realloc_strings.
1547 (realloc_string_callback): New function.
1548 (create_var): Add prototype. Handle case of a
1549 scalar character variable.
1550 (optimize_trim): Do not handle allocatable variables.
1552 2015-01-05 Jakub Jelinek <jakub@redhat.com>
1554 Update copyright years.
1556 * gfortranspec.c (lang_specific_driver): Update copyright notice
1558 * gfc-internals.texi: Bump @copying's copyright year.
1559 * gfortran.texi: Ditto.
1560 * intrinsic.texi: Ditto.
1561 * invoke.texi: Ditto.
1563 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1566 * expr.c (find_component_ref): Deal with extended types.
1568 2015-01-02 Tobias Burnus <burnus@net-b.de>
1570 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1571 for module coarrays with -fcoarray=lib.
1573 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1576 * interface.c (is_procptr_result): New function to check if an
1577 expression is a procedure-pointer result.
1578 (compare_actual_formal): Use it.
1580 Copyright (C) 2015 Free Software Foundation, Inc.
1582 Copying and distribution of this file, with or without modification,
1583 are permitted in any medium without royalty provided the copyright
1584 notice and this notice are preserved.