1 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
3 * trans-decl.c (module_hasher): Likewise.
4 * trans.h (module_decl_hasher): Likewise.
6 2015-06-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
9 * error.c (gfc_warning_check): Restore the default output_buffer
10 before calling diagnostic_action_after_output.
11 (gfc_error_check): Likewise.
12 (gfc_diagnostics_init): Add comment.
14 2015-06-23 Andre Vehreschild <vehre@gmx.de>
17 * parse.c (parse_associate): Figure the rank and as of a
18 class array in an associate early.
19 * primary.c (gfc_match_varspec): Prevent setting the
20 dimension attribute on the sym for classes.
21 * resolve.c (resolve_variable): Correct the component
22 ref's type for associated variables. Add a full array ref
23 when class array's are associated.
24 (resolve_assoc_var): Correct the type of the symbol,
25 when in the associate the expression's rank becomes scalar.
26 * trans-expr.c (gfc_conv_variable): Indirect ref needed for
27 allocatable associated objects.
29 2015-06-19 Mikael Morin <mikael@gcc.gnu.org>
32 * resolve.c (resolve_global_procedure): Don't save and restore
33 OpenMP state around the call to gfc_resolve.
34 (gfc_resolve): Save OpenMP state on entry and restore it on return.
36 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
38 * convert.c: Do not include input.h, line-map.h or is-a.h.
41 * f95-lang.c: Likewise.
42 * gfortran.h: Likewise.
43 * iresolve.c: Likewise.
46 * options.c: Likewise.
47 * target-memory.c: Likewise.
48 * trans-array.c: Likewise.
49 * trans-common.c: Likewise.
50 * trans-const.c: Likewise.
51 * trans-decl.c: Likewise.
52 * trans-expr.c: Likewise.
53 * trans-intrinsic.c: Likewise.
54 * trans-io.c: Likewise.
55 * trans-openmp.c: Likewise.
56 * trans-stmt.c: Likewise.
57 * trans-types.c: Likewise.
60 2015-06-15 Andre Vehreschild <vehre@gmx.de>
65 * gfortran.h: Extend gfc_code.ext.alloc to carry a
66 flag indicating that the array specification has to be
68 * resolve.c (resolve_allocate_expr): Add F2008 notify
69 and flag indicating source driven array spec.
70 (resolve_allocate_deallocate): Check for source driven
71 array spec, when array to allocate has no explicit
73 * trans-array.c (gfc_array_init_size): Get lower and
74 upper bound from a tree array descriptor, except when
75 the source expression is an array-constructor which is
76 fixed to be one-based.
77 (retrieve_last_ref): Extracted from gfc_array_allocate().
78 (gfc_array_allocate): Enable allocate(array, source=
79 array_expression) as specified by F2008:C633.
80 (gfc_conv_expr_descriptor): Add class tree expression
81 into the saved descriptor for class arrays.
82 * trans-array.h: Add temporary array descriptor to
83 gfc_array_allocate ().
84 * trans-expr.c (gfc_conv_procedure_call): Special handling
85 for _copy() routine translation, that comes without an
86 interface. Third and fourth argument are now passed by value.
87 * trans-stmt.c (gfc_trans_allocate): Get expr3 array
88 descriptor for temporary arrays to allow allocate(array,
89 source = array_expression) for array without array
92 2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
94 * intrinsic.texi: Change \leq to < in descrition of imaginary
95 part in argument to log.
97 2015-06-11 Paul Thomas <pault@gcc.gnu.org>
100 * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
101 function results must be freed and nullified after use. Create
102 a temporary to hold the result to prevent duplicate calls.
103 * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
104 as 'source'. Deallocate allocatable components of non-variable
107 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
109 * f95-lang.c (gfc_create_decls): Register the main translation unit
110 through the new debug hook.
112 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
114 * convert.c : Adjust include files.
117 * f95-lang.c : Likewise.
118 * gfortran.h : Likewise.
119 * iresolve.c : Likewise.
120 * match.c : Likewise.
121 * module.c : Likewise.
122 * openmp.c : Likewise.
123 * options.c : Likewise.
124 * target-memory.c : Likewise.
125 * trans-array.c : Likewise.
126 * trans-common.c : Likewise.
127 * trans-const.c : Likewise.
128 * trans-decl.c : Likewise.
129 * trans-expr.c : Likewise.
130 * trans-intrinsic.c : Likewise.
131 * trans-io.c : Likewise.
132 * trans-openmp.c : Likewise.
133 * trans-stmt.c : Likewise.
134 * trans-types.c : Likewise.
135 * trans.c : Likewise.
137 2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
140 * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
141 return type spec or derived type spec is validate.
143 2015-06-06 Thomas Koenig <tkoenig@netcologne.de>
146 * arith.c (eval_intrinsic_op): Set warn flag for
147 gfc_type_convert_binary if -Wconversion or -Wconversion-extra
149 (wprecision_real_real): New function.
150 (wprecision_int_real): New function.
151 (gfc_int2int): If -fno-range-check and -Wconversion are specified
152 and it is a narrowing conversion, warn.
153 (gfc_int2real): If there is a change in value for the conversion,
155 (gfc_int2complex): Likewise.
156 (gfc_real2int): If there is a fractional part to the real number,
157 warn with -Wconversion, otherwise warn with -Wconversion-extra.
158 (gfc_real2real): Emit warning if the constant was changed by
159 conversion with either -Wconversion or -Wconversion-extra. With
160 -Wconversion-extra, warn if no warning was issued earlier.
161 (gfc_real2complex): Likewise.
162 (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
163 there was an imaginary part, warn; otherwise, warn for change in
164 value. Warn with -Wconversion-extra if no other warning was
166 (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
167 there was an imaginary part, warn; otherwise, warn for change in
168 value. Warn with -Wconversion-extra if no other warning was
170 (gfc_complex2complex): For -Wconversion, warn if the value of
171 either the real or the imaginary part was changed. Warn for
172 -Wconversion-extra if no prior warning was issued.
173 * expr.c (gfc_check_assign): Remove check for change in value.
174 * primary.c (match_real_constant): For -Wconversion-extra, check
175 against a number in which the last non-zero digit has been
176 replaced with a zero. If the number compares equal, warn.
177 * intrinsic.c (gfc_convert_type_warn): Do not warn about constant
180 2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
183 * resolve.c (apply_default_init_local): Do not dereference a NULL
186 2015-06-05 Thomas Koenig <tkoenig@gcc.gnu.org>
189 * frontend-passes.c (combine_array_constructor): Return early if
190 inside a FORALL loop.
192 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
194 * f95-lang.c (gfc_write_global_declarations): Remove.
195 (LANG_HOOKS_WRITE_GLOBALS): Remove.
196 (gfc_write_global_declarations): Move code from here to...
197 (gfc_be_parse_file): ...here.
198 Call global_decl_processing.
199 * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
200 to early_global_decl.
202 2015-06-05 Russell Whitesides <russelldub@gmail.com>
203 Steven G. Kargl <kargl@gcc.gnu.org>
208 * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
209 from different modules. Eliminate the pruning of unused
212 2015-06-04 Thomas Koenig <tkoenig@netcologne.de>
215 * iresolve.c (gfc_resolve_adjustl): If string has a charlen,
216 copy it to the function.
217 (gfc_resolve_adjustr): Likewise.
219 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
221 * convert.c: Adjust includes for restructured coretypes.h.
224 * f95-lang.c: Likewise.
225 * iresolve.c: Likewise.
227 * module.c: Likewise.
228 * options.c: Likewise.
229 * target-memory.c: Likewise.
230 * trans-array.c: Likewise.
231 * trans-common.c: Likewise.
232 * trans-const.c: Likewise.
233 * trans-decl.c: Likewise.
234 * trans-expr.c: Likewise.
235 * trans-intrinsic.c: Likewise.
236 * trans-io.c: Likewise.
237 * trans-openmp.c: Likewise.
238 * trans-stmt.c: Likewise.
239 * trans-types.c: Likewise.
242 2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
245 * simplify.c (gfc_simplify_reshape): Convert assert into returning
246 NULL, which triggers an error condition.
248 2015-05-27 Andre Vehreschild <vehre@gmx.de>
251 * trans-stmt.c (gfc_trans_allocate): Add missing location
252 information for e3rhs.
254 2015-05-26 Paul Thomas <pault@gcc.gnu.org>
257 * trans-array.c (gfc_conv_array_parameter): Ensure that all
258 non-variable arrays with allocatable components have the
259 components deallocated after the procedure call.
261 2015-05-24 Mikael Morin <mikael@gcc.gnu.org>
264 * resolve.c (resolve_actual_arglist): Don't throw an error
265 if the argument with procedure pointer component is not a variable.
267 2015-05-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
270 * gfortran.h (struct gfc_error_buf): Rename as
271 gfc_error_buffer. Move closer to push, pop and free
272 methods. Reimplement using an output_buffer.
273 * error.c (errors, warnings, warning_buffer, cur_error_buffer):
274 Delete everywhere in this file.
275 (error_char): Delete all contents.
276 (gfc_increment_error_count): Delete.
277 (gfc_error_now): Update comment. Set error_buffer.flag.
278 (gfc_warning_check): Do not handle warning_buffer.
279 (gfc_error_1): Delete.
280 (gfc_error_now_1): Delete.
281 (gfc_error_check): Simplify.
282 (gfc_move_error_buffer_from_to): Renamed from
283 gfc_move_output_buffer_from_to.
284 (gfc_push_error): Handle only gfc_error_buffer.
285 (gfc_pop_error): Likewise.
286 (gfc_free_error): Likewise.
287 (gfc_get_errors): Remove warnings and errors.
288 (gfc_diagnostics_init): Use static error_buffer.
289 (gfc_error_1,gfc_error_now_1): Delete declarations.
290 * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
291 frontend-passes.c, resolve.c, match.c, parse.c: Replace
292 gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
294 * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
296 * primary.c (match_complex_constant): Replace gfc_error_buf and
297 output_buffer with gfc_error_buffer.
299 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
301 * Make-lang.in (check_gfortran_parallelize): Update comment.
303 2015-05-21 Thomas Koenig <tkoenig@gcc.gnu.org>
306 * frontend-passes.c (check_conjg_variable): New function.
307 (inline_matmul_assign): Use it to keep track of conjugated
310 2015-05-20 Andre Vehreschild <vehre@gmx.de>
313 * trans-stmt.c (gfc_trans_allocate): Always retrieve the
314 descriptor or a reference to a source= expression for
315 arrays and non-arrays, respectively. Use a temporary
316 symbol and gfc_trans_assignment for all source=
317 assignments to allocated objects besides for class and
320 2015-05-19 Jakub Jelinek <jakub@redhat.com>
323 * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
325 (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
328 2015-05-19 David Malcolm <dmalcolm@redhat.com>
330 * cpp.c (maybe_print_line): Strengthen local "map" from
331 const line_map * to const line_map_ordinary *.
332 (cb_file_change): Likewise for param "map" and local "from".
333 (cb_line_change): Likewise for local "map".
335 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
337 * interface.c (compare_actual_formal): Use std::swap instead of
339 * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
340 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
342 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
345 * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
346 * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
348 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
351 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
353 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
356 * gfortran.dg/storage_size_6.f90: New tests.
358 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
361 * gfortran.dg/storage_size_6.f90: New tests.
363 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
366 * decl.c(gfc_match_entry): Change a gfc_internal_error() into
369 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
372 * gfortran.dg/storage_size_6.f90: New tests.
374 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
377 * parse.c(verify_st_order): Replace a gfc_internal_error with your
380 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
383 * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
384 BACKSPACE, and ENDFILE statements
386 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
389 * symbol.c(check_conflict): Check for a conflict between a dummy
390 argument and an internal procedure name.
392 2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
395 * io.c (format_lex): Change to NONSTRING when checking for
396 possible doubled quote.
397 * scanner.c (gfc_next_char_literal): Revert change from 64506
398 and add a check for quotes and return.
400 2015-05-16 Thomas Koenig <tkoenig@gcc.gnu.org>
403 * expr.c (is_parent_of_current_ns): New function.
404 (check_restricted): Use it.
406 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
410 Replace all calls to gfc_notify_std_1 with gfc_notify_std and
411 gfc_warning_1 with gfc_warning.
412 * decl.c (gfc_verify_c_interop_param): Here.
413 * resolve.c (resolve_branch): Here.
414 (resolve_fl_derived): Here.
415 * dependency.c (gfc_check_argument_var_dependency):
416 * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
417 counter and locations before and after warning.
418 * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
420 (gfc_warning_now_at): Declare.
421 * error.c (gfc_warning_1): Delete.
422 (gfc_notify_std_1): Delete.
423 (gfc_warning_now_1): Delete.
424 (gfc_format_decoder): Handle two locations.
425 (gfc_diagnostic_build_prefix): Rename as
426 gfc_diagnostic_build_kind_prefix.
427 (gfc_diagnostic_build_locus_prefix): Take an expanded_location
428 instead of diagnostic_info.
429 (gfc_diagnostic_build_locus_prefix): Add overload that takes two
431 (gfc_diagnostic_starter): Handle two locations.
432 (gfc_warning_now_at): New.
433 (gfc_diagnostics_init): Initialize caret_chars array.
434 (gfc_diagnostics_finish): Reset caret_chars array to default.
436 2015-05-16 Mikael Morin <mikael@gcc.gnu.org>
437 Paul Thomas <pault@gcc.gnu.org>
440 * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
441 the expression component to the destination. In addition, if
442 the component has allocatable components, copy them and
443 deallocate those of the expression, if it is not a variable.
444 The expression is fixed if not a variable to prevent multiple
447 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
450 * frontend-passes.c (has_dimen_vector_ref): New function.
451 (inline_matmul_assign): Use it to return early in case
452 of unhandled vector subscripts.
454 2015-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
458 * gfortran.h (gfc_array_spec): Add field resolved.
459 * array.c (gfc_resolve_array_spec): Resolve array spec
462 2015-05-11 Mikael Morin <mikael@gcc.gnu.org>
465 * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
467 2015-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
470 * frontend-passes.c (scalarized_expr): Set correct dimension and
471 shape for the expression to be passed to lbound. Remove trailing
472 references after array refrence.
473 (inline_matmul_assign): Remove gfc_copy_expr from calls
474 to scalarized_expr().
476 2015-05-10 Mikael Morin <mikael@gcc.gnu.org>
478 * simplify.c (simplify_bound_dim): Don't check for emptyness
479 in the case of cobound simplification. Factor lower/upper
480 bound differenciation before the actual simplification.
481 (simplify_bound): Remove assumed shape specific simplification.
482 Don't give up early for the lbound of an assumed shape.
484 2015-05-09 Mikael Morin <mikael@gcc.gnu.org>
487 * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
489 * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
491 (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
493 (gfc_walk_elemental_function_args): Set the dummy_arg field.
494 * trans.h (gfc_ss_info): New subfield dummy_arg.
495 * trans-expr.c (gfc_conv_procedure_call): Revert the change
497 (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
500 2015-05-08 Mikael Morin <mikael@gcc.gnu.org>
502 * trans-array.c (gfc_walk_elemental_function_args):
503 Don't skip the advance to the next dummy argument when skipping
504 absent optional args.
506 2015-05-05 David Malcolm <dmalcolm@redhat.com>
508 * expr.c (check_inquiry): Fix indentation so that it reflects the
510 * interface.c (compare_parameter): Likewise.
511 * parse.c (parse_oacc_structured_block): Likewise.
512 * target-memory.c (expr_to_char): Likewise.
513 * trans-types.c (gfc_init_kinds): Likewise.
515 2015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
518 * invoke.texi: Remove 'no-' in '-fno-fixed-form'
520 2015-05-01 Mikael Morin <mikael@gcc.gnu.org>
522 * simplify.c (simplify_bound_dim): Tighten the check for array fullness
523 by also checking for absence of subreference.
524 (simplify_bound): Don't skip simplification if the array
526 (simplify_cobound): Same.
528 2015-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
531 * simplify.c (simplify_bound): Get constant lower bounds of one
532 from array spec for assumed and explicit shape shape arrays if
533 the lower bounds are indeed one.
535 2015-04-30 David Malcolm <dmalcolm@redhat.com>
537 * options.c (gfc_init_options): Remove spurious second
539 * trans-stmt.c (gfc_trans_allocate): Likewise.
541 2015-04-28 Andre Vehreschild <vehre@gmx.de>
543 * interface.c (gfc_compare_types): Check for unlimited
544 polymorphism flag in the correct position indepent of the _data
545 component being present or not. This prevents a segfault, when
546 the _data component is not present.
547 * symbol.c (gfc_type_compatible): Same.
549 2015-04-27 Jim Wilson <jim.wilson@linaro.org>
551 * Make-lang.in (fortran.mostlyclean): Remove gfortran and
554 2015-04-27 Andre Vehreschild <vehre@gmx.de>
558 * trans-array.c (duplicate_allocatable): Fixed deep copy of
559 allocatable components, which are liable for copy only, when
561 (gfc_duplicate_allocatable): Add deep-copy code into if
562 component allocated block. Needed interface change for that.
563 (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
564 add into if-block for checking whether a component was
566 (gfc_duplicate_allocatable_nocopy): Likewise.
567 (structure_alloc_comps): Likewise.
568 * trans-array.h: Likewise.
569 * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
570 * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
572 2015-04-23 Andre Vehreschild <vehre@gmx.de>
575 * expr.c (gfc_lval_expr_from_sym): Code to select the regular
576 or class array added.
577 * gfortran.h: Add IS_CLASS_ARRAY macro.
578 * trans-array.c (gfc_add_loop_ss_code): Treat class objects
579 to be referenced always.
580 (build_class_array_ref): Adapt retrieval of array descriptor.
581 (build_array_ref): Likewise.
582 (gfc_conv_array_ref): Hand the vptr or the descriptor to
583 build_array_ref depending whether the sym is class or not.
584 (gfc_trans_array_cobounds): Select correct gfc_array_spec for
585 regular and class arrays.
586 (gfc_trans_array_bounds): Likewise.
587 (gfc_trans_dummy_array_bias): Likewise.
588 (gfc_get_dataptr_offset): Correcting call of build_array_ref.
589 (gfc_conv_expr_descriptor): Set the array's offset to -1 when
590 lbound in inner most dim is 1 and symbol non-pointer/assoc.
591 * trans-decl.c (gfc_build_qualified_array): Select correct
592 gfc_array_spec for regular and class arrays.
593 (gfc_build_dummy_array_decl): Likewise.
594 (gfc_get_symbol_decl): Get a dummy array for class arrays.
595 (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
597 * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
598 from the correct location for class arrays.
599 (gfc_class_len_get): Likewise.
600 (gfc_conv_intrinsic_to_class): Add handling of _len component.
601 (gfc_conv_class_to_class): Prevent access to unset array data
602 when the array is an optional argument. Add handling of _len
604 (gfc_copy_class_to_class): Check that _def_init is non-NULL
605 when used in _vptr->copy()
606 (gfc_trans_class_init_assign): Ensure that the rank of
608 (gfc_conv_component_ref): Get the _vptr along with _data refs.
609 (gfc_conv_variable): Make sure the temp array descriptor is
610 returned for class arrays, too, and that class arrays are
611 dereferenced correctly.
612 (gfc_conv_procedure_call): For polymorphic type initialization
613 the initializer has to be a pointer to _def_init stored in a
614 dummy variable, which then needs to be used by value.
615 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
616 temporary array descriptor for class arrays, too.
617 (gfc_conv_intrinsic_storage_size): Likewise.
618 (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
620 * trans-stmt.c (trans_associate_var): Use a temporary array for
621 the associate variable of class arrays, too, making the array
622 one-based (lbound == 1).
623 * trans-types.c (gfc_is_nodesc_array): Use the correct
625 * trans.c (gfc_build_array_ref): Use the dummy array descriptor
627 * trans.h: Add class_vptr to gfc_se for storing a class ref's
630 2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
633 * decl.c (add_init_expr_to_sym): Set the length type parameter.
635 2015-04-10 Tobias Burnus <burnus@net-b.de>
637 * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
638 version; reject not-yet-implemented variants.
639 * trans-types.c (gfc_get_derived_type): For lock_type with
640 -fcoarray=lib, use a void pointer as type.
641 * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
642 Handle lock_type with -fcoarray=lib.
644 2015-04-10 Mikael Morin <mikael@gcc.gnu.org>
650 * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
651 former to the latter and make it non-static. Update callers.
652 * gfortran.h (gfc_save_symbol_data): New prototype.
653 * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
654 before modifying symbols 'sym' and 'dt_sym'.
656 2013-04-09 Paul Thomas <pault@gcc.gnu.org>
659 * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
660 of the index variables are untyped and errors are present.
662 2015-04-07 Andre Vehreschild <vehre@gmx.de>
665 * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
666 use conv_expr_descriptor() instead of conv_expr_reference().
668 2015-03-30 Jakub Jelinek <jakub@redhat.com>
671 * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
672 linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
673 For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
674 instead of the original step on the new iterator - count.
676 2015-03-25 Mikael Morin <mikael@gcc.gnu.org>
680 * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
681 * resolve.c (resolve_types): Return early if field 'types_resolved'
682 is set. Set 'types_resolved' at the end.
684 2015-03-24 Andre Vehreschild <vehre@gmx.de>
687 * trans-expr.c (gfc_conv_structure): Fixed indendation.
688 Using integer_zero_node now instead of explicitly
689 constructing a integer constant zero node.
690 (gfc_conv_derived_to_class): Add handling of _len component,
691 i.e., when the rhs has a string_length then assign that to
692 class' _len, else assign 0.
693 (gfc_conv_intrinsic_to_class): Likewise.
695 2015-03-24 Andre Vehreschild <vehre@gmx.de>
700 * class.c (gfc_add_component_ref): Free no longer needed
701 ref-chains to prevent memory loss.
702 (find_intrinsic_vtab): For deferred length char arrays or
703 unlimited polymorphic objects, store the size in bytes of one
704 character in the size component of the vtab.
705 * gfortran.h: Added gfc_add_len_component () define.
706 * trans-array.c (gfc_trans_create_temp_array): Switched to new
707 function name for getting a class' vtab's field.
708 (build_class_array_ref): Likewise.
709 (gfc_array_init_size): Using the size information from allocate
710 more consequently now, i.e., the typespec of the entity to
711 allocate is no longer needed. This is to address the last open
712 comment in PR fortran/57456.
713 (gfc_array_allocate): Likewise.
714 (structure_alloc_comps): gfc_copy_class_to_class () needs to
715 know whether the class is unlimited polymorphic.
716 * trans-array.h: Changed interface of gfc_array_allocate () to
717 reflect the no longer needed typespec.
718 * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
719 (gfc_reset_len): New.
720 (gfc_get_class_array_ref): Switch to new function name for
721 getting a class' vtab's field.
722 (gfc_copy_class_to_class): Added flag to know whether the class
723 to copy is unlimited polymorphic. Adding _len dependent code
724 then, which calls ->vptr->copy () with four arguments adding
725 the length information ->vptr->copy(from, to, from_len, to_cap).
726 (gfc_conv_procedure_call): Switch to new function name for
727 getting a class' vtab's field.
728 (alloc_scalar_allocatable_for_assignment): Use the string_length
729 as computed by gfc_conv_expr and not the statically backend_decl
730 which may be incorrect when ref-ing.
731 (gfc_trans_assignment_1): Use the string_length variable and
732 not the rse.string_length. The former has been computed more
734 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
735 function name for getting a class' vtab's field.
736 (gfc_conv_intrinsic_storage_size): Likewise.
737 (gfc_conv_intrinsic_transfer): Likewise.
738 * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
739 source=expr3 only once before the loop over the objects to
740 allocate, when the objects are not arrays. Doing correct _len
741 initialization and calling of vptr->copy () fixing PR 64787.
742 (gfc_trans_deallocate): Reseting _len to 0, preventing future
744 * trans.c (gfc_build_array_ref): Switch to new function name
745 for getting a class' vtab's field.
746 (gfc_add_comp_finalizer_call): Likewise.
747 * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
748 and gfc_vptr_*_get () functions.
749 Added gfc_find_and_cut_at_last_class_ref () and
750 gfc_reset_len () routine prototype. Added flag to
751 gfc_copy_class_to_class () prototype to signal an unlimited
752 polymorphic entity to copy.
754 2015-03-24 Iain Sandoe <iain@codesourcery.com>
755 Tobias Burnus <burnus@net-b.de>
757 * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
759 2015-03-23 Paul Thomas <pault@gcc.gnu.org>
760 Mikael Morin <mikael@gcc.gnu.org>
763 * gfortran.h (struct symbol_attribute) : New field
764 'array_outer_dependency'.
765 * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
766 * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
767 (attr_bits): Append same value to initializer.
768 (mio_symbol_attribute): Handle 'array_outer_dependency' attr
769 in module read and write.
770 * resolve.c (update_current_proc_outer_array_dependency): New function.
771 (resolve_function, resolve_call): Add code to update current procedure's
772 'array_outer_dependency' attribute.
773 (resolve_variable): Mark current procedure with attribute
774 array_outer_dependency if the variable is an array coming from outside
775 the current namespace.
776 (resolve_fl_procedure): Mark a procedure without body with attribute
777 'array_outer_dependency'.
778 * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
779 marked as 'array_outer_dependency' generate a temporary.
780 (gfc_walk_function_expr): If the function may reference external arrays,
781 mark the head gfc_ss with flag 'array_outer_dependency'.
783 2015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
786 * gfortran.texi (Read/Write after EOF marker): New information.
788 2015-03-21 H.J. Lu <hongjiu.lu@intel.com>
790 * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
793 2015-03-21 Tobias Burnus <burnus@net-b.de>
795 * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
796 _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
797 _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
798 _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
799 _gfortran_caf_atomic_op): New sections.
801 2015-03-21 Tobias Burnus <burnus@net-b.de>
803 * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
804 coindexed coarray accesses.
806 2015-03-17 Paul Thomas <pault@gcc.gnu.org>
809 * trans-types.c (gfc_get_derived_type): If an abstract derived
810 type with procedure pointer components has no other type of
811 component, return the backend_decl. Otherwise build the
812 components if any of the non-procedure pointer components have
815 2015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
818 *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
819 smallest kind passed in user arguments and hardcode tesults for
820 KIND=1 or KIND=2 to indicate no clock available.
822 2015-03-16 Andre Vehreschild <vehre@gmx.de>
824 * resolve.c: Prevent segfault on illegal input.
826 2015-03-14 Mikael Morin <mikael@gcc.gnu.org>
829 * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
830 field before reusing LSE.
832 2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
835 * gfortran.texi: Document behavior when opening files without
836 explicit ACTION= specifier.
838 2015-03-10 Paul Thomas <pault@gcc.gnu.org>
841 * trans-expr.c (gfc_conv_component_ref): If the component
842 backend declaration is missing and the derived type symbol is
843 available in the reference, call gfc_build_derived_type.
845 2015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
846 Tobias Burnus <burnus@net-b.de>
848 * trans.h (caf_sync_memory): New function decl tree.
849 * trans-decl.c (gfc_build_builtin_function_decls): Define it.
850 (create_main_function): Don't call sync_synchronize and leave
851 it to the CAF library.
852 * trans-stmt.c (gfc_trans_stop): Ditto.
853 (gfc_trans_sync): Ditto; add call library call for sync memory.
855 2015-03-08 Mikael Morin <mikael@gcc.gnu.org>
858 * resolve.c (resolve_symbol): Check that the symbol found by
859 name lookup really is the current symbol being resolved.
861 2015-03-02 Tobias Burnus <burnus@net-b.de>
863 * check.c (gfc_check_atomic): Properly check for coarrayness
864 and for being coindexed.
866 2015-02-26 Martin Liska <mliska@suse.cz>
868 * resolve.c: Rename enum 'comparison' to 'compare_result' as
869 solution for -Wodr issue.
871 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
874 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
876 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
877 * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
878 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
879 Remove function types.
880 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
881 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
882 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
885 2015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
889 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
890 for component references to class objects.
891 (gfc_conv_procedure_call): Compare the class by name.
893 2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
896 * scanner.c (gfc_next_char_literal): For free form source,
897 check for '!' and if found, clear the comment and go back
898 and get the next character. For fixed form source, skip the
901 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
904 * trans-stmt.c (gfc_trans_deallocate): If a component array
905 expression is not a descriptor type and it is a derived type
906 that has allocatable components and is not finalizable, then
907 deallocate the allocatable components.
909 2015-02-08 Mikael Morin <mikael@gcc.gnu.org>
912 * module.c (check_for_ambiguous): Change argument type
913 from gfc_symbol to gfc_symtree. Check local (symtree) name
914 instead of original (symbol) name.
915 (read_module): Update caller.
917 2015-02-06 Paul Thomas <pault@gcc.gnu.org>
920 * gfortran.h: Add 'must finalize' field to gfc_expr and
921 prototypes for gfc_is_alloc_class_scalar_function and for
922 gfc_is_alloc_class_array_function.
923 * expr.c (gfc_is_alloc_class_scalar_function,
924 gfc_is_alloc_class_array_function): New functions.
925 * trans-array.c (gfc_add_loop_ss_code): Do not move the
926 expression for allocatable class scalar functions outside the
928 (conv_array_index_offset): Cope with deltas being NULL_TREE.
929 (build_class_array_ref): Do not return with allocatable class
930 array functions. Add code to pick out the returned class array.
931 Dereference if necessary and return if not a class object.
932 (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
933 (gfc_walk_function_expr): Return an array ss for the result of
934 an allocatable class array function.
935 * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
936 that the argument should be a variable. If an allocatable class
937 array function, set the offset to zero and skip the write-out
939 (gfc_conv_procedure_call): Add allocatable class array function
940 to the assert. Call gfc_conv_subref_array_arg for allocatable
941 class array function arguments with derived type formal arg..
942 Add the code for handling allocatable class functions, including
943 finalization calls to prevent memory leaks.
944 (arrayfunc_assign_needs_temporary): Return if an allocatable
945 class array function.
946 (gfc_trans_assignment_1): Set must_finalize to rhs expression
947 for allocatable class functions. Set scalar_to_array as needed
948 for scalar class allocatable functions assigned to an array.
949 Nullify the allocatable components corresponding the the lhs
950 derived type so that the finalization does not free them.
952 2015-01-29 Andre Vehreschild <vehre@gmx.de>
953 Janus Weil <janus@gcc.gnu.org>
956 Initial patch by Janus Weil
957 * resolve.c (resolve_allocate_expr): Add check for comp. only
958 when target is not unlimited polymorphic.
959 * trans-stmt.c (gfc_trans_allocate): Assign correct value to
960 _len component of unlimited polymorphic entities.
962 2015-02-05 Tobias Burnus <burnus@net-b.de>
965 * resolve.c (resolve_transfer): Also check structure
968 2015-02-05 Paul Thomas <pault@gcc.gnu.org>
971 * resolve.c (resolve_structure_cons): Obtain the rank of class
973 * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
974 assignment to allocatable class array components.
975 (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
976 is a class component, allocate to the _data field.
977 (gfc_trans_subcomponent_assign): If a class component with a
978 derived type expression set the _vptr field and for array
979 components, call gfc_trans_alloc_subarray_assign. For scalars,
980 the assignment is performed here.
982 2015-02-04 Jakub Jelinek <jakub@redhat.com>
984 * options.c: Include langhooks.h.
985 (gfc_post_options): Change lang_hooks.name based on
988 2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
990 * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
992 2015-01-30 Andre Vehreschild <vehre@gmx.de>
994 * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
995 * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
996 Fixed datatype of charlen to be a 32-bit int.
998 2015-02-01 Joseph Myers <joseph@codesourcery.com>
1000 * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
1001 char *, ...)): Remove functions.
1002 * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
1003 (const char *, ...)): Remove declarations.
1004 * arith.c, check.c, data.c, decl.c, frontend-passes.c,
1005 interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
1006 options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
1007 trans-common.c, trans-const.c, trans-stmt.c: All callers of
1008 gfc_warning and gfc_warning_now changed to pass 0 or option number
1011 2015-01-30 Joseph Myers <joseph@codesourcery.com>
1013 * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
1014 callers of fatal_error changed to pass input_location as first
1017 2015-01-28 Tobias Burnus <burnus@net-b.de>
1019 * intrinsic.texi (CO_BROADCAST): Correct argument description.
1021 2015-01-27 Tobias Burnus <burnus@net-b.de>
1024 * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
1025 Fix handling for scalar coarrays.
1026 * trans-types.c (gfc_get_element_type): Add comment.
1028 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1031 * interface.c: Remove <algorithm>.
1032 (check_dummy_characteristics): Use MAX instead of std::max.
1034 2015-01-26 Paul Thomas <pault@gcc.gnu.org>
1037 * resolve.c (resolve_allocate_expr): If the default initializer
1038 is NULL, keep the original MOLD expression so that the correct
1039 typespec is available.
1041 2015-01-26 Tobias Burnus <burnus@net-b.de>
1044 * interface.c (check_dummy_characteristics): Fix coarray handling.
1046 2015-01-26 Tobias Burnus <burnus@net-b.de>
1048 * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
1050 2015-01-26 Janus Weil <janus@gcc.gnu.org>
1053 * class.c (finalize_component): New argument 'sub_ns'. Insert code to
1054 check if 'expr' is associated.
1055 (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
1056 'ptr2'. Pass 'sub_ns' to finalize_component.
1058 2015-01-25 Mikael Morin <mikael@gcc.gnu.org>
1061 * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
1062 * module.c (MOD_VERSION): Bump.
1063 (write_module): Don't write list of extensions.
1064 (read_module): Don't jump over list of extensions;
1065 don't load list of extensions.
1066 (load_derived_extensions, write_dt_extensions,
1067 write_derived_extensions): Remove.
1069 2015-01-24 Tobias Burnus <burnus@net-b.de>
1071 * parse.c (gfc_parse_file): Fix two-location gfc_error call.
1073 2015-01-23 Martin Liska <mliska@suse.cz>
1075 * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
1076 false positive during profiledbootstrap by initializing them.
1077 * matchexp.c (match_mult_operand): Likewise.
1078 * module.c (write_atom): Likewise.
1079 (read_module): Likewise.
1081 2015-01-23 Tom de Vries <tom@codesourcery.com>
1084 * lang.opt (fopenacc): Mark as LTO option.
1086 2015-01-23 Tom de Vries <tom@codesourcery.com>
1089 * lang.opt (fopenmp): Mark as LTO option.
1091 2015-01-23 Andre Vehreschild <vehre@gmx.de>
1093 * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
1094 * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
1096 2015-01-23 Jakub Jelinek <jakub@redhat.com>
1098 * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
1100 2015-01-23 Janus Weil <janus@gcc.gnu.org>
1103 * class.c (finalize_component): Apply the check for 'fini_coarray' only
1104 to coarray components.
1106 2015-01-23 Tobias Burnus <burnus@net-b.de>
1109 * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
1112 2015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1116 * trans-io.c (set_parameter_value): Delete use of has_iostat.
1117 Redefine to not generate any runtime error check calls.
1118 (set_parameter_value_chk): Rename of the former
1119 set_parameter_value with the runtime error checks and fix
1120 whitespace. (set_parameter_value_inquire): New function that
1121 builds a runtime conditional block to set the INQUIRE
1122 common parameter block unit number to -2 when unit numbers
1123 exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
1124 For unit, use the renamed set_parameter_value_chk.
1125 (gfc_trans_close): Likewise use renamed function.
1126 (build_filepos): Whitespace and use renamed function.
1127 (gfc_trans_inquire): Whitespace and for unit use
1128 set_parameter_value and set_parameter_value_inquire.
1129 (gfc_trans_wait): Remove p->iostat from call to
1130 set_parameter_value. Use new set_parameter_value_chk for unit.
1131 (build_dt): Use the new set_parameter_value without p->iostat
1132 and fix whitespace. Use set_parameter_value_chk for unit.
1134 2015-01-21 Thomas Koenig <tkoenig@netcologne.de>
1137 * dependency.c (callback_dummy_intent_not_int): New function.
1138 (dummy_intent_not_in): New function.
1139 (gfc_full_array_ref_p): Use dummy_intent_not_in.
1141 2015-01-18 Andre Vehreschild <vehre@gmx.de>
1142 Janus Weil <janus@gcc.gnu.org>
1145 * class.c (gfc_get_len_component): New.
1146 (gfc_build_class_symbol): Add _len component to unlimited
1147 polymorphic entities.
1148 (find_intrinsic_vtab): Removed emitting of error message.
1149 * gfortran.h: Added prototype for gfc_get_len_component.
1150 * simplify.c (gfc_simplify_len): Use _len component where
1152 * trans-expr.c (gfc_class_len_get): New.
1153 (gfc_conv_intrinsic_to_class): Add handling for deferred
1155 (gfc_conv_structure): Treat _len component correctly.
1156 (gfc_conv_expr): Prevent bind_c handling when not required.
1157 (gfc_trans_pointer_assignment): Propagate _len component.
1158 * trans-stmt.c (class_has_len_component): New.
1159 (trans_associate_var): _len component treatment for associate
1161 (gfc_trans_allocate): Same as for trans_associate_var()
1162 * trans.h: Added prototype for gfc_class_len_get.
1164 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
1167 * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
1168 for allocatable components, where the source is a variable.
1170 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
1173 * primary.c (gfc_match_varspec): Exclude dangling associate-
1174 names with dimension 0 from being counted as arrays.
1175 * resolve.c (resolve_assoc_var): Sub-strings are permissible
1176 for associate-names, so exclude characters from the test for
1178 * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
1179 the hidden string length variable of their associated target.
1180 Signal this by setting 'length' to a constant, if the decl for
1181 the string length is a variable.
1183 2015-01-17 Paul Thomas <pault@gcc.gnu.org>
1186 * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
1187 before reinitializing rse, to add the rse.pre to block before
1189 * trans-intrinsic.c (gfc_conv_associated): Deal with the class
1190 data being a descriptor.
1192 2015-01-17 Andre Vehreschild <vehre@gmx.de>
1195 * primary.c (build_actual_constructor): Prevent warning.
1196 * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
1197 assignment): New function encapsulates treatment of allocatable
1199 (gfc_trans_subcomponent_assign): Needed to distinguish between
1200 regular assignment and initilization.
1201 (gfc_trans_structure_assign): Same.
1202 (gfc_conv_structure): Same.
1205 * gfortran.h: deferred_parameter is not needed, because
1206 it artificial does the trick completely.
1207 * primary.c (build_actual_constructor): Same.
1208 (gfc_convert_to_structure_constructor): Same.
1209 * resolve.c (resolve_fl_derived0): Same.
1210 * trans-expr.c (gfc_conv_component_ref): Prevent treating
1211 allocatable deferred length char arrays here.
1212 (gfc_trans_subcomponent_assign): Same as above.
1213 * trans-types.c (gfc_sym_type): This is done in
1214 gfc_get_derived_type already.
1216 2015-01-17 Andre Vehreschild <vehre@gmx.de>
1219 * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
1220 length when the symbol is declared to be a result.
1221 * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
1222 string length when functions are nested and the string length
1223 is a reference already.
1225 2015-01-16 Janus Weil <janus@gcc.gnu.org>
1228 * decl.c (match_pointer_init): Error out if resolution of init expr
1231 2015-01-15 Tobias Burnus <burnus@net-b.de>
1233 * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
1234 resolve_oacc_deviceptr_clause, resolve_omp_clauses,
1235 gfc_resolve_oacc_declare): Replace '%s' by %qs.
1237 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
1238 Cesar Philippidis <cesar@codesourcery.com>
1239 James Norris <jnorris@codesourcery.com>
1240 Ilmir Usmanov <i.usmanov@samsung.com>
1241 Tobias Burnus <burnus@net-b.de>
1243 * lang.opt (fopenacc): New option.
1244 * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
1245 * dump-parse-tree.c (show_omp_node): Split part of it into...
1246 (show_omp_clauses): ... this new function.
1247 (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
1248 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1249 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1250 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1251 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1252 (show_namespace): Update for OpenACC.
1253 * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
1254 (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
1255 (DEF_GOACC_BUILTIN_COMPILER): New macros.
1256 * types.def (BT_FN_VOID_INT_INT_VAR)
1257 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
1258 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
1260 * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
1261 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1262 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
1263 ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
1264 ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
1265 ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
1266 ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1268 (struct gfc_expr_list): New data type.
1269 (gfc_get_expr_list): New macro.
1270 (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
1271 OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
1272 OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
1273 (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
1274 (OMP_LIST_CACHE): New enumerators.
1275 (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
1276 vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
1277 wait_list, tile_list, async, gang, worker, vector, seq,
1278 independent, wait, par_auto, gang_static, and loc members.
1279 (struct gfc_namespace): Add oacc_declare_clauses member.
1280 (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
1281 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
1282 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1283 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1284 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1285 (gfc_free_expr_list, gfc_resolve_oacc_directive)
1286 (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
1287 (gfc_resolve_oacc_blocks): New prototypes.
1288 * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
1289 EXEC_OACC_PARALLEL_LOOP.
1290 * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
1291 (gfc_match_oacc_update, gfc_match_oacc_declare)
1292 (gfc_match_oacc_loop, gfc_match_oacc_host_data)
1293 (gfc_match_oacc_data, gfc_match_oacc_kernels)
1294 (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
1295 (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
1296 (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
1298 * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
1299 (gfc_free_omp_clauses): Update for members added to struct
1301 (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
1303 (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
1304 (struct fortran_omp_context): Add is_openmp member.
1305 (gfc_resolve_omp_parallel_blocks): Initialize it.
1306 (gfc_resolve_do_iterator): Update for OpenACC.
1307 (gfc_resolve_omp_directive): Call
1308 resolve_omp_directive_inside_oacc_region.
1309 (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
1310 (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
1311 (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
1312 (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
1313 (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
1314 (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
1315 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
1316 (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
1317 (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
1318 (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
1319 (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
1320 (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
1321 (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
1322 (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
1323 (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
1324 (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
1325 (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
1326 (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
1327 (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
1328 (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
1329 (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
1330 (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
1331 (gfc_match_omp_clauses): Handle those.
1332 (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
1333 (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
1334 (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
1335 (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
1336 (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
1337 (OACC_WAIT_CLAUSES): New macros.
1338 (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
1339 (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
1340 (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
1341 (gfc_match_oacc_kernels, gfc_match_oacc_data)
1342 (gfc_match_oacc_host_data, gfc_match_oacc_loop)
1343 (gfc_match_oacc_declare, gfc_match_oacc_update)
1344 (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
1345 (gfc_match_oacc_wait, gfc_match_oacc_cache)
1346 (gfc_match_oacc_routine, oacc_is_loop)
1347 (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
1348 (check_symbol_not_pointer, check_array_not_assumed)
1349 (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
1350 (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
1351 (omp_code_to_statement, oacc_code_to_statement)
1352 (resolve_oacc_directive_inside_omp_region)
1353 (resolve_omp_directive_inside_oacc_region)
1354 (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
1355 (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
1356 (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
1357 (gfc_resolve_oacc_directive): New functions.
1358 * parse.c (next_free): Update for OpenACC. Move some code into...
1359 (verify_token_free): ... this new function.
1360 (next_fixed): Update for OpenACC. Move some code into...
1361 (verify_token_fixed): ... this new function.
1362 (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
1363 ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
1364 (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
1365 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
1366 ST_OACC_KERNELS_LOOP.
1367 (case_decl): Add ST_OACC_ROUTINE.
1368 (push_state, parse_critical_block, parse_progunit): Update for
1370 (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
1371 ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1372 ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
1373 ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
1374 ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
1375 ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
1376 ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1378 (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
1379 (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
1380 ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
1381 ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
1382 (decode_oacc_directive, parse_oacc_structured_block)
1383 (parse_oacc_loop, is_oacc): New functions.
1384 * parse.h (struct gfc_state_data): Add oacc_declare_clauses
1386 (is_oacc): New prototype.
1387 * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
1388 EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
1389 EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
1390 EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
1391 EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
1392 EXEC_OACC_EXIT_DATA.
1393 (resolve_codes): Call gfc_resolve_oacc_declare.
1394 * scanner.c (openacc_flag, openacc_locus): New variables.
1395 (skip_free_comments): Update for OpenACC. Move some code into...
1396 (skip_omp_attribute): ... this new function.
1397 (skip_oacc_attribute): New function.
1398 (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
1399 * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
1400 EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1401 EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1402 EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1403 EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1404 * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
1405 * trans-openmp.c: Include "gomp-constants.h".
1406 (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
1407 instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
1408 (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
1409 OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
1410 OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
1411 OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
1412 OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
1413 independent, wait_list, num_gangs_expr, num_workers_expr,
1414 vector_length_expr, vector, vector_expr, worker, worker_expr,
1415 gang, gang_expr members.
1416 (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
1417 (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
1418 (gfc_trans_oacc_executable_directive)
1419 (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
1420 (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
1421 * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
1422 * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
1424 * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
1425 EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
1426 EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
1427 EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
1428 EXEC_OACC_EXIT_DATA.
1429 * gfortran.texi: Update for OpenACC.
1430 * intrinsic.texi: Likewise.
1431 * invoke.texi: Likewise.
1433 2015-01-15 Janus Weil <janus@gcc.gnu.org>
1436 * resolve.c (resolve_fl_derived0): Continue resolving next component
1439 2015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1442 * io.c (gfc_match_inquire): Generate error if unit number in
1443 inquire statement is a constant -1. All other values allowed.
1444 * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
1445 (create_dummy_iostat): Delete function no longer used.
1447 2015-01-13 Jakub Jelinek <jakub@redhat.com>
1450 * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
1451 on dummy args with VALUE attribute.
1453 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1456 * interface.c (gfc_extend_expr): Look for type-bound operators before
1459 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1462 * resolve.c (resolve_fl_derived0): Set error flag if problems with the
1463 interface of a procedure-pointer component were detected.
1465 2015-01-11 Janus Weil <janus@gcc.gnu.org>
1468 * interface.c (compare_parameter): Interface check for
1469 procedure-pointer component as actual argument.
1471 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
1473 * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
1474 Runtime Library" to "GNU Offloading and Multi Processing Runtime
1476 * intrinsic.texi: Likewise.
1478 2015-01-10 Tobias Burnus <burnus@net-b.de>
1481 * invoke.texi (Wline-truncation): Document new behaviour.
1482 * lang.opt (Wline-truncation): Add Init(-1).
1483 * options.c (gfc_post_options): If -Wline-truncation is unset,
1484 enable it for free-form source files; for the latter, also use
1485 -Werror=line-truncation, unless -Wno-error has been specified.
1487 2015-01-09 Michael Collison <michael.collison@linaro.org>
1489 * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1490 input.h, alias.h, symtab.h, options.h, fold-const.h,
1491 wide-int.h, and inchash.h due to flattening of tree.h.
1492 * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1493 input.h, alias.h, symtab.h, fold-const.h,
1494 wide-int.h, and inchash.h due to flattening of tree.h.
1496 * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1497 input.h, alias.h, symtab.h, options.h, fold-const.h,
1498 wide-int.h, and inchash.h due to flattening of tree.h.
1499 * iresolve.c: Ditto.
1500 * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1501 input.h, alias.h, symtab.h, fold-const.h,
1502 wide-int.h, and inchash.h due to flattening of tree.h.
1503 * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1504 input.h, alias.h, symtab.h, options.h, fold-const.h,
1505 wide-int.h, and inchash.h due to flattening of tree.h.
1507 * target-memory.c: Include hash-set.h, vec.h,
1508 double-int.h, input.h, alias.h, symtab.h, fold-const.h,
1509 wide-int.h, and inchash.h due to flattening of tree.h.
1510 * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1511 input.h, alias.h, symtab.h, options.h, fold-const.h,
1512 wide-int.h, and inchash.h due to flattening of tree.h.
1513 * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1514 input.h, alias.h, symtab.h, options.h, fold-const.h,
1515 wide-int.h, and inchash.h due to flattening of tree.h.
1516 * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1517 input.h, alias.h, symtab.h, fold-const.h,
1518 wide-int.h, and inchash.h due to flattening of tree.h.
1519 * trans-const.c: Ditto.
1520 * trans-decl.c: Ditto.
1521 * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1522 input.h, alias.h, symtab.h, options.h, fold-const.h,
1523 wide-int.h, and inchash.h due to flattening of tree.h.
1524 * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1525 input.h, alias.h, symtab.h, fold-const.h,
1526 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1527 * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1528 input.h, alias.h, symtab.h, options.h, fold-const.h,
1529 wide-int.h, and inchash.h due to flattening of tree.h.
1530 * trans-openmp.c: Ditto.
1531 * trans-stmt.c: Ditto.
1532 * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1533 input.h, alias.h, symtab.h, fold-const.h,
1534 wide-int.h, inchash.h and real.h due to flattening of tree.h.
1536 2015-01-08 Tobias Burnus <burnus@net-b.de>
1538 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1539 for module coarrays with -fcoarray=lib.
1540 (get_proc_pointer_decl): As module variable, make only public
1541 when not marked as private.
1543 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1546 * dependency.h: Actually commit changes.
1548 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1551 * dependency.c: Update copyright years.
1552 (gfc_discard_nops): Add prototype.
1553 * dependency.c (discard_nops): Rename to gfc_discard_nops,
1555 (gfc_discard_nops): Use gfc_discard_nops.
1556 (gfc_dep_difference): Likewise.
1557 * frontend-passes.c Update copyright years.
1558 (realloc_strings): New function. Add prototype.
1559 (gfc_run_passes): Call realloc_strings.
1560 (realloc_string_callback): New function.
1561 (create_var): Add prototype. Handle case of a
1562 scalar character variable.
1563 (optimize_trim): Do not handle allocatable variables.
1565 2015-01-05 Jakub Jelinek <jakub@redhat.com>
1567 Update copyright years.
1569 * gfortranspec.c (lang_specific_driver): Update copyright notice
1571 * gfc-internals.texi: Bump @copying's copyright year.
1572 * gfortran.texi: Ditto.
1573 * intrinsic.texi: Ditto.
1574 * invoke.texi: Ditto.
1576 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1579 * expr.c (find_component_ref): Deal with extended types.
1581 2015-01-02 Tobias Burnus <burnus@net-b.de>
1583 * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1584 for module coarrays with -fcoarray=lib.
1586 2015-01-02 Janus Weil <janus@gcc.gnu.org>
1589 * interface.c (is_procptr_result): New function to check if an
1590 expression is a procedure-pointer result.
1591 (compare_actual_formal): Use it.
1593 Copyright (C) 2015 Free Software Foundation, Inc.
1595 Copying and distribution of this file, with or without modification,
1596 are permitted in any medium without royalty provided the copyright
1597 notice and this notice are preserved.