PR c/81117 - Improve buffer overflow checking in strncpy
[official-gcc.git] / gcc / fortran / ChangeLog
blob6578f7d4197a63dc3a1ff8873c9cbe9c11fbf3c1
1 2017-11-10  Martin Sebor  <msebor@redhat.com>
3         PR c/81117
4         * gcc/fortran/decl.c (build_sym): Use strcpy instead of strncpy.
6 2017-11-10  Paul Thomas  <pault@gcc.gnu.org>
8         PR fortran/82934
9         * trans-stmt.c (gfc_trans_allocate): Remove the gcc_assert on
10         null string length for assumed length typespec and set
11         expr3_esize to NULL_TREE;
13 2017-11-09  Paul Thomas  <pault@gcc.gnu.org>
15         PR fortran/78619
16         * check.c (same_type_check): Introduce a new argument 'assoc'
17         with default value false. If this is true, use the symbol type
18         spec of BT_PROCEDURE expressions.
19         (gfc_check_associated): Set 'assoc' true in the call to
20         'same_type_check'.
22 2017-11-09  Steven G. Kargl  <kargl@gcc.gnu.org>
24         PR fortran/78814
25         * interface.c (symbol_rank): Check for NULL pointer.
27 2017-11-08  Steven G. Kargl  <kargl@kgcc.gnu.org>
29         PR Fortran/82841
30         * simplify.c(gfc_simplify_transfer): Do not dereference a NULL pointer.
31         Unwrap a short line.
33 2017-11-08  Steven G. Kargl  <kargl@gcc.gnu.org>
35         PR fortran/82884
36         * arith.c (gfc_hollerith2character): Clear pad.
38 2017-11-08  Janne Blomqvist  <jb@gcc.gnu.org>
40         PR 82869
41         * convert.c (truthvalue_conversion): Use logical_type_node.
42         * trans-array.c (gfc_trans_allocate_array_storage): Likewise.
43         (gfc_trans_create_temp_array): Likewise.
44         (gfc_trans_array_ctor_element): Likewise.
45         (gfc_trans_array_constructor_value): Likewise.
46         (trans_array_constructor): Likewise.
47         (trans_array_bound_check): Likewise.
48         (gfc_conv_array_ref): Likewise.
49         (gfc_trans_scalarized_loop_end): Likewise.
50         (gfc_conv_array_extent_dim): Likewise.
51         (gfc_array_init_size): Likewise.
52         (gfc_array_allocate): Likewise.
53         (gfc_trans_array_bounds): Likewise.
54         (gfc_trans_dummy_array_bias): Likewise.
55         (gfc_conv_array_parameter): Likewise.
56         (duplicate_allocatable): Likewise.
57         (duplicate_allocatable_coarray): Likewise.
58         (structure_alloc_comps): Likewise
59         (get_std_lbound): Likewise
60         (gfc_alloc_allocatable_for_assignment): Likewise
61         * trans-decl.c (add_argument_checking): Likewise
62         (gfc_generate_function_code): Likewise
63         * trans-expr.c (gfc_copy_class_to_class): Likewise
64         (gfc_trans_class_array_init_assign): Likewise
65         (gfc_trans_class_init_assign): Likewise
66         (gfc_conv_expr_present): Likewise
67         (gfc_conv_substring): Likewise
68         (gfc_conv_cst_int_power): Likewise
69         (gfc_conv_expr_op): Likewise
70         (gfc_conv_procedure_call): Likewise
71         (fill_with_spaces): Likewise
72         (gfc_trans_string_copy): Likewise
73         (gfc_trans_alloc_subarray_assign): Likewise
74         (gfc_trans_pointer_assignment): Likewise
75         (gfc_trans_scalar_assign): Likewise
76         (fcncall_realloc_result): Likewise
77         (alloc_scalar_allocatable_for_assignment): Likewise
78         (trans_class_assignment): Likewise
79         (gfc_trans_assignment_1): Likewise
80         * trans-intrinsic.c (build_fixbound_expr): Likewise
81         (gfc_conv_intrinsic_aint): Likewise
82         (gfc_trans_same_strlen_check): Likewise
83         (conv_caf_send): Likewise
84         (trans_this_image): Likewise
85         (conv_intrinsic_image_status): Likewise
86         (trans_image_index): Likewise
87         (gfc_conv_intrinsic_bound): Likewise
88         (conv_intrinsic_cobound): Likewise
89         (gfc_conv_intrinsic_mod): Likewise
90         (gfc_conv_intrinsic_dshift): Likewise
91         (gfc_conv_intrinsic_dim): Likewise
92         (gfc_conv_intrinsic_sign): Likewise
93         (gfc_conv_intrinsic_ctime): Likewise
94         (gfc_conv_intrinsic_fdate): Likewise
95         (gfc_conv_intrinsic_ttynam): Likewise
96         (gfc_conv_intrinsic_minmax): Likewise
97         (gfc_conv_intrinsic_minmax_char): Likewise
98         (gfc_conv_intrinsic_anyall): Likewise
99         (gfc_conv_intrinsic_arith): Likewise
100         (gfc_conv_intrinsic_minmaxloc): Likewise
101         (gfc_conv_intrinsic_minmaxval): Likewise
102         (gfc_conv_intrinsic_btest): Likewise
103         (gfc_conv_intrinsic_bitcomp): Likewise
104         (gfc_conv_intrinsic_shift): Likewise
105         (gfc_conv_intrinsic_ishft): Likewise
106         (gfc_conv_intrinsic_ishftc): Likewise
107         (gfc_conv_intrinsic_leadz): Likewise
108         (gfc_conv_intrinsic_trailz): Likewise
109         (gfc_conv_intrinsic_mask): Likewise
110         (gfc_conv_intrinsic_spacing): Likewise
111         (gfc_conv_intrinsic_rrspacing): Likewise
112         (gfc_conv_intrinsic_size): Likewise
113         (gfc_conv_intrinsic_sizeof): Likewise
114         (gfc_conv_intrinsic_transfer): Likewise
115         (gfc_conv_allocated): Likewise
116         (gfc_conv_associated): Likewise
117         (gfc_conv_same_type_as): Likewise
118         (gfc_conv_intrinsic_trim): Likewise
119         (gfc_conv_intrinsic_repeat): Likewise
120         (conv_isocbinding_function): Likewise
121         (conv_intrinsic_ieee_is_normal): Likewise
122         (conv_intrinsic_ieee_is_negative): Likewise
123         (conv_intrinsic_ieee_copy_sign): Likewise
124         (conv_intrinsic_move_alloc): Likewise
125         * trans-io.c (set_parameter_value_chk): Likewise
126         (set_parameter_value_inquire): Likewise
127         (set_string): Likewise
128         * trans-openmp.c (gfc_walk_alloc_comps): Likewise
129         (gfc_omp_clause_default_ctor): Likewise
130         (gfc_omp_clause_copy_ctor): Likewise
131         (gfc_omp_clause_assign_op): Likewise
132         (gfc_omp_clause_dtor): Likewise
133         (gfc_omp_finish_clause): Likewise
134         (gfc_trans_omp_clauses): Likewise
135         (gfc_trans_omp_do): Likewise
136         * trans-stmt.c (gfc_trans_goto): Likewise
137         (gfc_trans_sync): Likewise
138         (gfc_trans_arithmetic_if): Likewise
139         (gfc_trans_simple_do): Likewise
140         (gfc_trans_do): Likewise
141         (gfc_trans_forall_loop): Likewise
142         (gfc_trans_where_2): Likewise
143         (gfc_trans_allocate): Likewise
144         (gfc_trans_deallocate): Likewise
145         * trans-types.c (gfc_init_types): Initialize logical_type_node and
146         their true/false trees.
147         (gfc_get_array_descr_info): Use logical_type_node.
148         * trans-types.h (logical_type_node): New tree.
149         (logical_true_node): Likewise.
150         (logical_false_node): Likewise.
151         * trans.c (gfc_trans_runtime_check): Use logical_type_node.
152         (gfc_call_malloc): Likewise
153         (gfc_allocate_using_malloc): Likewise
154         (gfc_allocate_allocatable): Likewise
155         (gfc_add_comp_finalizer_call): Likewise
156         (gfc_add_finalizer_call): Likewise
157         (gfc_deallocate_with_status): Likewise
158         (gfc_deallocate_scalar_with_status): Likewise
159         (gfc_call_realloc): Likewise
161 2017-11-06  Paul Thomas  <pault@gcc.gnu.org>
163         PR fortran/69739
164         * trans-expr.c (gfc_map_intrinsic_function): Return false for
165         bounds without the DIM argument instead of ICEing.
167 2017-11-06  Martin Liska  <mliska@suse.cz>
169         PR middle-end/82404
170         * options.c (gfc_post_options): Set default value of
171         -Wreturn-type to false.
173 2017-11-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
175         PR fortran/82471
176         * lang.opt (ffrontend-loop-interchange): New option.
177         (Wfrontend-loop-interchange): New option.
178         * options.c (gfc_post_options): Handle ffrontend-loop-interchange.
179         * frontend-passes.c (gfc_run_passes): Run
180         optimize_namespace if flag_frontend_optimize or
181         flag_frontend_loop_interchange are set.
182         (optimize_namespace): Run functions according to flags set;
183         also call index_interchange.
184         (ind_type): New function.
185         (has_var): New function.
186         (index_cost): New function.
187         (loop_comp): New function.
189 2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
191         PR fortran/78641
192         * resolve.c (resolve_ordinary_assign): Do not add the _data
193         component for class valued array constructors being assigned
194         to derived type arrays.
195         * trans-array.c (gfc_trans_array_ctor_element): Take the _data
196         of class valued elements for assignment to derived type arrays.
198 2017-11-05  Paul Thomas  <pault@gcc.gnu.org>
200         PR fortran/81447
201         PR fortran/82783
202         * resolve.c (resolve_component): There is no need to resolve
203         the components of a use associated vtype.
204         (resolve_fl_derived): Unconditionally generate a vtable for any
205         module derived type, as long as the standard is F2003 or later
206         and it is not a vtype or a PDT template.
208 2017-11-05  Tom de Vries  <tom@codesourcery.com>
210         PR other/82784
211         * parse.c (match, matcha, matchs, matcho, matchds, matchdo): Remove
212         semicolon after "do {} while (0)".
214 2017-11-04  Andre Vehreschild  <vehre@gcc.gnu.org>
216         * trans-expr.c (gfc_trans_assignment_1): Character kind conversion may
217         create a loop variant temporary, too.
218         * trans-intrinsic.c (conv_caf_send): Treat char arrays as arrays and
219         not as scalars.
220         * trans.c (get_array_span): Take the character kind into account when
221         doing pointer arithmetic.
223 2017-11-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
225         PR fortran/29600
226         * gfortran.h (gfc_check_f): Replace fm3l with fm4l.
227         * intrinsic.h (gfc_resolve_maxloc): Add gfc_expr * to argument
228         list in protoytpe.
229         (gfc_resolve_minloc): Likewise.
230         * check.c (gfc_check_minloc_maxloc): Handle kind argument.
231         * intrinsic.c (add_sym_3_ml): Rename to
232         (add_sym_4_ml): and handle kind argument.
233         (add_function): Replace add_sym_3ml with add_sym_4ml and add
234         extra arguments for maxloc and minloc.
235         (check_specific): Change use of check.f3ml with check.f4ml.
236         * iresolve.c (gfc_resolve_maxloc): Handle kind argument. If
237         the kind is smaller than the smallest library version available,
238         use gfc_default_integer_kind and convert afterwards.
239         (gfc_resolve_minloc): Likewise.
241 2017-11-04  Paul Thomas  <pault@gcc.gnu.org>
243         PR fortran/81735
244         * trans-decl.c (gfc_trans_deferred_vars): Do a better job of a
245         case where 'tmp' was used unititialized and remove TODO.
247 2017-11-03  Steven G. Kargl  <kargl@gcc.gnu.org>
249         PR fortran/82796
250         * resolve.c (resolve_equivalence): An entity in a common block within
251         a module cannot appear in an equivalence statement if the entity is
252         with a pure procedure.
254 2017-10-31  Jim Wilson  <wilson@tuliptree.org>
256         * parse.c (unexpected_eof): Call gcc_unreachable before return.
258 2017-10-30  Paul Thomas  <pault@gcc.gnu.org>
260         PR fortran/80850
261         * trans_expr.c (gfc_conv_procedure_call): When passing a class
262         argument to an unlimited polymorphic dummy, it is wrong to cast
263         the passed expression as unlimited, unless it is unlimited. The
264         correct way is to assign to each of the fields and set the _len
265         field to zero.
267 2017-10-30  Steven G. Kargl   <kargl@gcc.gnu.org>
269         * resolve.c (resolve_transfer): Set derived to correct symbol for
270         BT_CLASS.
272 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
274         * invoke.texi: Delete adb and sdb references.
276 2017-10-28  Andre Vehreschild  <vehre@gcc.gnu.org>
278         * check.c (gfc_check_co_reduce): Clarify error message.
280 2017-10-28  Paul Thomas  <pault@gcc.gnu.org>
282         PR fortran/81758
283         * trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr'
284         must only be set if the right hand side expression is of type
285         class.
287 2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>
289         PR fortran/82620
290         * match.c (gfc_match_allocate): Exit early on syntax error.
292 2017-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
294         PR fortran/56342
295         * simplify.c (is_constant_array_expr): If the expression is
296         a parameter array, call gfc_simplify_expr.
298 2017-10-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
300         * match.c (gfc_match_type_is): Fix typo in error message.
302 2017-10-21  Paul Thomas  <pault@gcc.gnu.org>
304         PR fortran/82586
305         * decl.c (gfc_get_pdt_instance): Remove the error message that
306         the parameter does not have a corresponding component since
307         this is now taken care of when the derived type is resolved. Go
308         straight to error return instead.
309         (gfc_match_formal_arglist): Make the PDT relevant errors
310         immediate so that parsing of the derived type can continue.
311         (gfc_match_derived_decl): Do not check the match status on
312         return from gfc_match_formal_arglist for the same reason.
313         * resolve.c (resolve_fl_derived0): Check that each type
314         parameter has a corresponding component.
316         PR fortran/82587
317         * resolve.c (resolve_generic_f): Check that the derived type
318         can be used before resolving the struture constructor.
320         PR fortran/82589
321         * symbol.c (check_conflict): Add the conflicts involving PDT
322         KIND and LEN attributes.
324 2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
326         * interface.c (check_sym_interfaces, check_uop_interfaces,
327         gfc_check_interfaces): Base interface_name buffer off
328         GFC_MAX_SYMBOL_LEN.
330 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
332         PR fortran/82568
333         * gfortran.h (gfc_resolve_do_iterator): Add a bool arg.
334         (gfc_resolve_omp_local_vars): New declaration.
335         * openmp.c (omp_current_ctx): Make static.
336         (gfc_resolve_omp_parallel_blocks): Handle EXEC_OMP_TASKLOOP
337         and EXEC_OMP_TASKLOOP_SIMD.
338         (gfc_resolve_do_iterator): Add ADD_CLAUSE argument, if false,
339         don't actually add any clause.  Move omp_current_ctx test
340         earlier.
341         (handle_local_var, gfc_resolve_omp_local_vars): New functions.
342         * resolve.c (gfc_resolve_code): Call gfc_resolve_omp_parallel_blocks
343         instead of just gfc_resolve_omp_do_blocks for EXEC_OMP_TASKLOOP
344         and EXEC_OMP_TASKLOOP_SIMD.
345         (gfc_resolve_code): Adjust gfc_resolve_do_iterator caller.
346         (resolve_codes): Call gfc_resolve_omp_local_vars.
348 2017-10-19  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
350         * gfortran.h (gfc_lookup_function_fuzzy): New declaration.
351         (gfc_closest_fuzzy_match): New declaration.
352         (vec_push): New definition.
353         * misc.c (gfc_closest_fuzzy_match): New definition.
354         * resolve.c: Include spellcheck.h.
355         (lookup_function_fuzzy_find_candidates): New static function.
356         (lookup_uop_fuzzy_find_candidates): Likewise.
357         (lookup_uop_fuzzy): Likewise.
358         (resolve_operator) <INTRINSIC_USER>: Call lookup_uop_fuzzy.
359         (gfc_lookup_function_fuzzy): New definition.
360         (resolve_unknown_f): Call gfc_lookup_function_fuzzy.
361         * interface.c (check_interface0): Likewise.
362         (lookup_arg_fuzzy_find_candidates): New static function.
363         (lookup_arg_fuzzy ): Likewise.
364         (compare_actual_formal): Call lookup_arg_fuzzy.
365         * symbol.c: Include spellcheck.h.
366         (lookup_symbol_fuzzy_find_candidates): New static function.
367         (lookup_symbol_fuzzy): Likewise.
368         (gfc_set_default_type): Call lookup_symbol_fuzzy.
369         (lookup_component_fuzzy_find_candidates): New static function.
370         (lookup_component_fuzzy): Likewise.
371         (gfc_find_component): Call lookup_component_fuzzy.
373 2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
375         PR fortran/82567
376         * frontend-passes.c (combine_array_constructor): If an array
377         constructor is all constants and has more elements than a small
378         constant, don't convert a*[b,c] to [a*b,a*c] to reduce compilation
379         times.
381 2017-10-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
383         PR fortran/79795
384         * resolve.c (resovle_symbol): Change gcc_assert to
385         sensible error message.
387 2017-10-18  Paul Thomas  <pault@gcc.gnu.org>
389         PR fortran/82550
390         * trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
391         have the 'used_in_submodule' attribute should be processed by
392         'gfc_get_extern_function_decl'.
394 2017-10-16  Fritz Reese <fritzoreese@gmail.com>
396         PR fortran/82511
397         * trans-io.c (transfer_expr): Treat BT_UNION as BT_DERIVED.
399 2017-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
401         PR fortran/82372
402         * fortran/scanner.c (last_error_char):  New global variable.
403         (gfc_scanner_init_1): Set last_error_char to NULL.
404         (gfc_gobble_whitespace): If a character not printable or
405         not newline, issue an error.
407 2017-10-13  Paul Thomas  <pault@gcc.gnu.org>
409         PR fortran/81048
410         * resolve.c (resolve_symbol): Ensure that derived type array
411         results get default initialization.
413 2017-10-11  Nathan Sidwell  <nathan@acm.org>
415         * cpp.c (gfc_cpp_add_include_path): Update incpath_e names.
416         (gfc_cpp_add_include_path_after): Likewise.
418 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
420         * target-memory.c (gfc_interpret_logical): Use wi::to_wide when
421         operating on trees as wide_ints.
422         * trans-const.c (gfc_conv_tree_to_mpz): Likewise.
423         * trans-expr.c (gfc_conv_cst_int_power): Likewise.
424         * trans-intrinsic.c (trans_this_image): Likewise.
425         (gfc_conv_intrinsic_bound): Likewise.
426         (conv_intrinsic_cobound): Likewise.
428 2017-10-08  Steven G. Kargl  <kargl@gcc.gnu.org>
430         * check.c (gfc_check_x): Remove function.
431         * intrinsic.c (add_functions): Use gfc_check_fn_r.
433 2017-10-08  Paul Thomas  <pault@gcc.gnu.org>
435         PR fortran/82375
436         * module.c : Bump up MOD_VERSION to 15.
437         (mio_component): Edit comment about PDT specification list.
438         (mio_expr, mio_symbol): Include the expression and symbol PDT
439         specification lists in the same way as in mio_component.
441 2017-10-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
443         * dump_prase_tree (show_symbol): Output list of variables in
444         NAMELIST.
445         (show_code_node): Add new line for ELSE and END DO for DO
446         CONCURRENT.
447         * invoke.texi: Document that the output of
448         -fdump-fortran-original, -fdump-fortran-optimized and
449         -fdump-parse-tree is unsable and may lead to ICEs.
451 2017-10-07  Paul Thomas  <pault@gcc.gnu.org>
453         PR fortran/82375
454         * class.c (gfc_find_derived_vtab): Return NULL for a passed
455         pdt template to prevent bad procedures from being written.
456         * decl.c (gfc_get_pdt_instance): Do not use the default
457         initializer for pointer and allocatable pdt type components. If
458         the component is allocatbale, set the 'alloc_comp' attribute of
459         'instance'.
460         * module.c : Add a prototype for 'mio_actual_arglist'. Add a
461         boolean argument 'pdt'.
462         (mio_component): Call it for the parameter list of pdt type
463         components with 'pdt' set to true.
464         (mio_actual_arg): Add the boolean 'pdt' and, if it is set, call
465         mio_integer for the 'spec_type'.
466         (mio_actual_arglist): Add the boolean 'pdt' and use it in the
467         call to mio_actual_arg.
468         (mio_expr, mio_omp_udr_expr): Call mio_actual_arglist with
469         'pdt' set false.
470         * resolve.c (get_pdt_spec_expr): Add the parameter name to the
471         KIND parameter error.
472         (get_pdt_constructor): Check that cons->expr is non-null.
473         * trans-array.c (structure_alloc_comps): For deallocation of
474         allocatable components, ensure that parameterized components
475         are deallocated first. Likewise, when parameterized components
476         are allocated, nullify allocatable components first. Do not
477         recurse into pointer or allocatable pdt components while
478         allocating or deallocating parameterized components. Test that
479         parameterized arrays or strings are allocated before freeing
480         them.
481         (gfc_trans_pointer_assignment): Call the new function. Tidy up
482         a minor whitespace issue.
483         trans-decl.c (gfc_trans_deferred_vars): Set 'tmp' to NULL_TREE
484         to prevent the expression from being used a second time.
486 2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
488         PR fortran/49232
489         * expr.c (gfc_check_pointer_assign): Error
490         for non-contiguous rhs.
492 2017-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
494         * gfortran.h (async_io_dt): Add external reference.
495         * io.c (async_io_dt): Add variable.
496         (compare_to_allowed_values): Add prototyte. Add optional argument
497         num. If present, set it to the number of the entry that was
498         matched.
499         (check_io_constraints): If this is for an asynchronous I/O
500         statement, set async_io_dt and set the asynchronous flag for
501         a SIZE tag.
502         * resolve.c (resolve_transfer): If async_io_dt is set, set
503         the asynchronous flag on the variable.
504         (resolve_fl_namelist): If async_io_dt is set, set the asynchronous
505         flag on all elements of the namelist.
507 2017-10-04  Paul Thomas  <pault@gcc.gnu.org>
509         PR fortran/60458
510         PR fortran/77296
511         * resolve.c (resolve_assoc_var): Deferred character type
512         associate names must not receive an integer conatant length.
513         * symbol.c (gfc_is_associate_pointer): Deferred character
514         length functions also require an associate pointer.
515         * trans-decl.c (gfc_get_symbol_decl): Deferred character
516         length functions or derived type components require the assoc
517         name to have variable string length.
518         * trans-stmt.c (trans_associate_var): Set the string length of
519         deferred string length associate names. The address expression
520         is not needed for allocatable, pointer or dummy targets. Change
521         the comment about defered string length targets.
523 2017-10-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
525         * io.c (match_wait_element): Correctly match END and EOR tags.
526         * dump-parse-tree.c (show_code_node): Handle EXEC_WAIT.
528 2017-10-02  Paul Thomas  <pault@gcc.gnu.org>
530         PR fortran/82312
531         * resolve.c (gfc_resolve_code): Simplify condition for class
532         pointer assignments becoming regular assignments by asserting
533         that only class valued targets are permitted.
534         * trans-expr.c (trans_class_pointer_fcn): New function using a
535         block of code from gfc_trans_pointer_assignment.
536         (gfc_trans_pointer_assignment): Call the new function. Tidy up
537         a minor whitespace issue.
539 2017-10-01  Dominique d'Humieres  <dominiq@lps.ens.fr>
541         PR fortran/61450
542         * parse.c (gfc_global_used): Replace the gfc_internal_error
543         with an error.
545 2017-09-29  Dominique d'Humieres  <dominiq@lps.ens.fr>
547         PR fortran/25071
548         * interface.c (compare_actual_formal): Change warnings to errors
549         when "Actual argument contains too few elements for dummy
550         argument", unless -std=legacy is used.
552 2017-09-27  Thomas Schwinge  <thomas@codesourcery.com>
554         * lang.opt <Wdo-subscript>: End help text with a period.
556 2017-09-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
558         * frontend-passes.c (do_subscript): Don't do anything
559         if inside an associate list.
561 2017-09-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
563         * lang.opt:  Add -Wdo-subscript.
564         * frontend-passes.c (do_t): New type.
565         (doloop_list): Use variable of do_type.
566         (if_level): Variable to track if levels.
567         (select_level): Variable to track select levels.
568         (gfc_run_passes): Initialize i_level and select_level.
569         (doloop_code): Record current level of if + select
570         level in doloop_list.  Add seen_goto if there could
571         be a branch outside the loop. Use different type for
572         doloop_list.
573         (doloop_function): Call do_intent and do_subscript; move
574         functionality of checking INTENT to do_intent.
575         (insert_index_t): New type, for callback_insert_index.
576         (callback_insert_index): New function.
577         (insert_index): New function.
578         (do_subscript): New function.
579         (do_intent): New function.
580         (gfc_code_walker): Keep track of if_level and select_level.
581         * invoke.texi: Document -Wdo-subscript.
583 2017-09-25  Janne Blomqvist  <jb@gcc.gnu.org>
585         * trans.c (gfc_unlikely): Remove unnecessary fold_convert.
586         (gfc_likely): Likewise.
588 2017-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
589             Steven G. Kargl  <kargl@gcc.gnu.org>
591         PR fortran/80118
592         * expr.c (gfc_get_full_arrayspec_from_expr): If there is
593         no symtree, set array spec to NULL.
595 2017-09-23  Janus Weil  <janus@gcc.gnu.org>
597         PR fortran/82143
598         * lang.opt: Add the options -fdefault-real-10 and -fdefault-real-16.
599         Rename flag_default_real to flag_default_real_8.
600         * invoke.texi: Add documentation.
601         * module.c (use_iso_fortran_env_module): flag_default_real is renamed.
602         * trans-types.c (gfc_init_kinds): Implement the flags
603         -fdefault-real-10 and -fdefault-real-16. Make -fdefault-double-8 work
604         without -fdefault-real-8.
606 2017-09-21  Paul Thomas  <pault@gcc.gnu.org>
608         PR fortran/52832
609         * match.c (gfc_match_associate): Before failing the association
610         try again, allowing a proc pointer selector.
612         PR fortran/80120
613         PR fortran/81903
614         PR fortran/82121
615         * primary.c (gfc_match_varspec): Introduce 'tgt_expr', which
616         points to the associate selector, if any. Go through selector
617         references, after resolution for variables, to catch any full
618         or section array references. If a class associate name does
619         not have the same declared type as the selector, resolve the
620         selector and copy the declared type to the associate name.
621         Before throwing a no implicit type error, resolve all allowed
622         selector expressions, and copy the resulting typespec.
624         PR fortran/67543
625         * resolve.c (resolve_assoc_var): Selector must cannot be the
626         NULL expression and it must have a type.
628         PR fortran/78152
629         * resolve.c (resolve_symbol): Allow associate names to be
630         coarrays.
632 2017-09-21  Cesar Philippidis  <cesar@codesourcery.com>
634         * openmp.c (gfc_match_oacc_wait): Don't restrict wait directive
635         arguments to constant integers.
637 2017-09-17  Paul Thomas  <pault@gcc.gnu.org>
639         PR fortran/82173
640         * decl.c (gfc_get_pdt_instance): Use the component initializer
641         expression for the default, rather than the parameter value.
642         * resolve.c (resolve_pdt): New function.
643         (resolve_symbol): Call it. Remove false error, prohibiting
644         deferred type parameters for dummy arguments.
646         PR fortran/60483
647         * primary.c (gfc_match_varspec): If the type of an associate
648         name is unknown and yet there is a match, try resolving the
649         target expression and using its type.
651 2017-09-15  Paul Thomas  <pault@gcc.gnu.org>
653         PR fortran/82184
654         trans-decl.c (gfc_trans_deferred_vars): Do not null the 'span'
655         field if the symbol is either implicitly or explicitly saved.
657 2017-09-13  Paul Thomas  <pault@gcc.gnu.org>
659         PR fortran/82173
660         * decl.c (match_char_kind): If the kind expression is
661         parameterized, save it in saved_kind_expr and set kind = 0.
662         (gfc_get_pdt_instance): Resolve and simplify before emitting
663         error on expression kind. Insert a missing simplification after
664         insertion of kind expressions.
666 2017-09-12  Paul Thomas  <pault@gcc.gnu.org>
668         PR fortran/82173
669         PR fortran/82168
670         * decl.c (variable_decl): Check pdt template components for
671         appearance of KIND/LEN components in the type parameter name
672         list, that components corresponding to type parameters have
673         either KIND or LEN attributes and that KIND or LEN components
674         are scalar. Copy the initializer to the parameter value.
675         (gfc_get_pdt_instance): Add a label 'error_return' and follow
676         it with repeated code, while replacing this code with a jump.
677         Check if a parameter appears as a component in the template.
678         Make sure that the parameter expressions are integer. Validate
679         KIND expressions.
680         (gfc_match_decl_type_spec): Search for pdt_types in the parent
681         namespace since they are instantiated in the template ns.
682         * expr.c (gfc_extract_int): Use a KIND parameter if it
683         appears as a component expression.
684         (gfc_check_init_expr): Allow expressions with the pdt_kind
685         attribute.
686         *primary.c (gfc_match_actual_arglist): Make sure that the first
687         keyword argument is recognised when 'pdt' is set.
689 2017-09-10  Paul Thomas  <pault@gcc.gnu.org>
691         PR fortran/34640
692         PR fortran/40737
693         PR fortran/55763
694         PR fortran/57019
695         PR fortran/57116
697         * expr.c (is_subref_array): Add class pointer array dummies
698         to the list of expressions that return true.
699         * trans-array.c: Add SPAN_FIELD and update indices for
700         subsequent fields.
701         (gfc_conv_descriptor_span, gfc_conv_descriptor_span_get,
702         gfc_conv_descriptor_span_set, is_pointer_array,
703         get_array_span): New functions.
704         (gfc_get_descriptor_offsets_for_info): New function to preserve
705         API for access to descriptor fields for trans-types.c.
706         (gfc_conv_scalarized_array_ref): If the expression is a subref
707         array, make sure that info->descriptor is a descriptor type.
708         Otherwise, if info->descriptor is a pointer array, set 'decl'
709         and fix it if it is a component reference.
710         (build_array_ref): Simplify handling of class array refs by
711         passing the vptr to gfc_build_array_ref rather than generating
712         the pointer arithmetic in this function.
713         (gfc_conv_array_ref): As in gfc_conv_scalarized_array_ref, set
714         'decl'.
715         (gfc_array_allocate): Set the span field if this is a pointer
716         array. Use the expr3 element size if it is available, so that
717         the dynamic type element size is used.
718         (gfc_conv_expr_descriptor): Set the span field for pointer
719         assignments.
720         * trans-array.h: Prototypes for gfc_conv_descriptor_span_get
721         gfc_conv_descriptor_span_set and
722         gfc_get_descriptor_offsets_for_info added.
723         trans-decl.c (gfc_get_symbol_decl): If a non-class pointer
724         array, mark the declaration as a GFC_DECL_PTR_ARRAY_P. Remove
725         the setting of GFC_DECL_SPAN.
726         (gfc_trans_deferred_vars): Set the span field to zero in thge
727         originating scope.
728         * trans-expr.c (gfc_conv_procedure_call): Do not use copy-in/
729         copy-out to pass subref expressions to a pointer dummy.
730         (gfc_trans_pointer_assignment): Remove code for setting of
731         GFC_DECL_SPAN. Set the 'span' field for non-class pointers to
732         class function results. Likewise for rank remap. In the case
733         that the target is not a whole array, use the target array ref
734         for remap and, since the 'start' indices are missing, set the
735         lbounds to one, as required by the standard.
736         * trans-intrinsic.c (conv_expr_ref_to_caf_ref): Pick up the
737         'token' offset from the field decl in the descriptor.
738         (conv_isocbinding_subroutine): Set the 'span' field.
739         * trans-io.c (gfc_trans_transfer): Always scalarize pointer
740         array io.
741         * trans-stmt.c (trans_associate_var): Set the 'span' field.
742         * trans-types.c (gfc_get_array_descriptor_base): Add the 'span'
743         field to the array descriptor.
744         (gfc_get_derived_type): Pointer array components are marked as
745         GFC_DECL_PTR_ARRAY_P.
746         (gfc_get_array_descr_info): Replaced API breaking code for
747         descriptor offset calling gfc_get_descriptor_offsets_for_info.
748         * trans.c (get_array_span): New function.
749         (gfc_build_array_ref): Simplify by calling get_array_span and
750         obtain 'span' if 'decl' or 'vptr' present.
751         * trans.h : Rename DECL_LANG_FLAG_6, GFC_DECL_SUBREF_ARRAY_P,
752         as GFC_DECL_PTR_ARRAY_P.
754 2017-09-09  Paul Thomas  <pault@gcc.gnu.org>
756         * decl.c : Add decl_type_param_list, type_param_spec_list as
757         static variables to hold PDT spec lists.
758         (build_sym): Copy 'type_param_spec_list' to symbol spec_list.
759         (build_struct): Copy the 'saved_kind_expr' to the component
760         'kind_expr'. Check that KIND or LEN components appear in the
761         decl_type_param_list. These should appear as symbols in the
762         f2k_derived namespace. If the component is itself a PDT type,
763         copy the decl_type_param_list to the component param_list.
764         (gfc_match_kind_spec): If the KIND expression is parameterized
765         set KIND to zero and store the expression in 'saved_kind_expr'.
766         (insert_parameter_exprs): New function.
767         (gfc_insert_kind_parameter_exprs): New function.
768         (gfc_insert_parameter_exprs): New function.
769         (gfc_get_pdt_instance): New function.
770         (gfc_match_decl_type_spec): Match the decl_type_spec_list if it
771         is present. If it is, call 'gfc_get_pdt_instance' to obtain the
772         specific instance of the PDT.
773         (match_attr_spec): Match KIND and LEN attributes. Check for the
774         standard and for type/kind of the parameter. They are also not
775         allowed outside a derived type definition.
776         (gfc_match_data_decl): Null the decl_type_param_list and the
777         type_param_spec_list on entry and free them on exit.
778         (gfc_match_formal_arglist): If 'typeparam' is true, add the
779         formal symbol to the f2k_derived namespace.
780         (gfc_match_derived_decl): Register the decl_type_param_list
781         if this is a PDT. If this is a type extension, gather up all
782         the type parameters and put them in the right order.
783         *dump-parse-tree.c (show_attr): Signal PDT templates and the
784         parameter attributes.
785         (show_components): Output parameter atrributes and component
786         parameter list.
787         (show_symbol): Show variable parameter lists.
788         * expr.c (expr.c): Copy the expression parameter list.
789         (gfc_is_constant_expr): Pass on symbols representing PDT
790         parameters.
791         (gfc_check_init_expr): Break on PDT KIND parameters and
792         PDT parameter expressions.
793         (gfc_check_assign): Assigning to KIND or LEN components is an
794         error.
795         (derived_parameter_expr): New function.
796         (gfc_derived_parameter_expr): New function.
797         (gfc_spec_list_type): New function.
798         * gfortran.h : Add enum gfc_param_spec_type. Add the PDT attrs
799         to the structure symbol_attr. Add the 'kind_expr' and
800         'param_list' field to the gfc_component structure. Comment on
801         the reuse of the gfc_actual_arglist structure as storage for
802         type parameter spec lists. Add the new field 'spec_type' to
803         this structure. Add 'param_list' fields to gfc_symbol and
804         gfc_expr. Add prototypes for gfc_insert_kind_parameter_exprs,
805         gfc_insert_parameter_exprs, gfc_add_kind, gfc_add_len,
806         gfc_derived_parameter_expr and gfc_spec_list_type.
807         * interface.c (gfc_compare_derived_types): Treat PDTs in the
808         same way as sequence types.
809         * match.c : Add variable 'type_param_spec_list'.
810         (gfc_op2string, gfc_match_member_sep, gfc_match_label): Remove
811         trailing whitespace.
812         (match_derived_type_spec): Match PDTs and find specific
813         instance.
814         (gfc_match_type_spec): Remove more trailing whitespace.
815         (gfc_match_allocate): Assumed or deferred parameters cannot
816         appear here. Copy the type parameter spec list to the expr for
817         the allocatable entity. Free 'type_param_spec_list'.
818         (gfc_match_common, gfc_match_namelist, gfc_match_module): Still
819         more trailing whitespace to remove.
820         (gfc_match_type_is): Allow PDT typespecs.
821         * match.h : Modify prototypes for gfc_match_formal_arglist and
822         gfc_match_actual_arglist.
823         * module.c (ab_attribute, mstring attr_bits): PDT attributes
824         added.
825         (mio_symbol_attribute): PDT attributes handled.
826         (mio_component): Deal with 'kind_expr' field.
827         (mio_full_f2k_derived): For PDT templates, transfer the formal
828         namespace symroot to the f2k_derived namespace.
829         *primary.c (match_keyword_arg, gfc_match_actual_arglist): Add
830         modifications to handle PDT spec lists. These are flagged in
831         both cases by new boolean arguments, whose prototype defaults
832         are false.
833         (gfc_match_structure_constructor, match_variable): Remove yet
834         more trailing whitespace.
835         * resolve.c (get_pdt_spec_expr, get_pdt_constructor): New
836         functions.
837         (resolve_structure_cons): If the constructor is a PDT template,
838         call get_pdt_constructor to build it using the parameter lists
839         and then get the specific instance of the PDT.
840         (resolve_component): PDT strings need a hidden string length
841         component like deferred characters.
842         (resolve_symbol): Dummy PDTs cannot have deferred parameters.
843         * symbol.c (gfc_add_kind, gfc_add_len): New functions.
844         (free_components): Free 'kind_expr' and 'param_list' fields.
845         (gfc_free_symbol): Free the 'param_list' field.
846         (gfc_find_sym_tree): If the current state is a PDT template,
847         look for the symtree in the f2k_derived namspaces.
848         trans-array.c (structure_alloc_comps): Allocate and deallocate
849         PDTs. Check dummy arguments for compliance of LEN parameters.
850         Add the new functions to the preceeding enum.
851         (gfc_allocate_pdt_comp, gfc_deallocate_pdt_comp and
852         gfc_check_pdt_dummy): New functions calling above.
853         * trans-array.h : Add prototypes for these functions.
854         trans-decl.c (gfc_get_symbol_decl): Call gfc_defer_symbol_init
855         as appropriate for PDT symbols.
856         (gfc_trans_deferred_vars): Allocate/deallocate PDT entities as
857         they come into and out of scope. Exclude pdt_types from being
858         'gcc_unreachable'.
859         (gfc_trans_subcomponent_assign): PDT array components must be
860         handles as if they are allocatable.
861         * trans-stmt.c (gfc_trans_allocate): Handle initialization of
862         PDT entities.
863         (gfc_trans_deallocate): Likewise.
864         * trans-types.c (gfc_get_derived_type): PDT templates must not
865         arrive here. PDT string components are handles as if deferred.
866         Similarly, PDT arrays are treated as if allocatable. PDT
867         strings are pointer types.
868         * trans.c (gfc_deferred_strlen): Handle PDT strings in the same
869         way as deferred characters.
871 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
873         PR c/81887
874         * parse.c (decode_omp_directive): Use matchs instead of matcho for
875         end ordered and ordered directives, except for ordered depend.  For
876         -fopenmp-simd and ordered depend, reject the stmt.
877         * trans-openmp.c (gfc_trans_omp_ordered): For -fopenmp-simd ignore
878         threads clause and if simd clause isn't present, just translate the
879         body.
881 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
882             Alan Hayward  <alan.hayward@arm.com>
883             David Sherwood  <david.sherwood@arm.com>
885         * trans-types.c (gfc_init_kinds): Use opt_scalar_int_mode for
886         the mode iterator.
888 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
889             Alan Hayward  <alan.hayward@arm.com>
890             David Sherwood  <david.sherwood@arm.com>
892         * target-memory.c (size_integer): Use SCALAR_INT_TYPE_MODE.
893         (size_logical): Likewise.
895 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
896             Alan Hayward  <alan.hayward@arm.com>
897             David Sherwood  <david.sherwood@arm.com>
899         * trans-types.c (gfc_type_for_mode): Use is_a <scalar_int_mode>.
901 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
902             Alan Hayward  <alan.hayward@arm.com>
903             David Sherwood  <david.sherwood@arm.com>
905         * trans-types.c (gfc_init_kinds): Use opt_scalar_float_mode
906         and FOR_EACH_MODE_IN_CLASS.
908 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
909             Alan Hayward  <alan.hayward@arm.com>
910             David Sherwood  <david.sherwood@arm.com>
912         * target-memory.c (size_float): Use SCALAR_FLOAT_TYPE_MODE
913         instead of TYPE_MODE.
915 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
916             Alan Hayward  <alan.hayward@arm.com>
917             David Sherwood  <david.sherwood@arm.com>
919         * trans-types.c (gfc_init_kinds): Use machine_mode instead of int
920         for "mode".
922 2017-08-28  Janus Weil  <janus@gcc.gnu.org>
924         PR fortran/81770
925         * expr.c (gfc_check_pointer_assign): Improve the check whether pointer
926         may outlive pointer target.
928 2017-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
930         PR fortran/81974
931         * frontend-passes (inline_matumul_assign):  Explicity
932         set typespec for call to CONJG.
934 2017-08-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
936         PR fortran/81296
937         * trans-io.c (get_dtio_proc): Add check for format label and set
938         formatted flag accordingly. Reorganize the code a little.
940 2017-08-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
942         PR fortran/81116
943         * frontend-passes.c (realloc_string_callback): If expression is a
944         concatenation, also check for dependency.
945         (constant_string_length): Check for presence of symtree.
947 2017-08-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
949         * gfortran.texi: Document format of unformatted sequential files.
951 2017-08-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
953         * invoke.texi:  Actually commit change about -Ofast.
955 2017-08-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
957         PR fortran/60355
958         * resolve.c (resolve_symbol): Adjust (and reformat)
959         comment.  Perform check if a BIND(C) is declared
960         at module level regardless of whether it is typed
961         implicitly or not.
963 2017-08-10  Fritz Reese <fritzoreese@gmail.com>
965         * options.c (set_dec_flags): Only set legacy standards when value
966         is not zero.
968 2017-08-10  Fritz Reese <fritzoreese@gmail.com>
970         * options.c (set_dec_flags, gfc_post_options): Only set flag_d_lines
971         with -fdec when not set by user.
973 2017-08-10  Fritz Reese <fritzoreese@gmail.com>
975         * decl.c (attr_seen): New static variable.
976         * decl.c (variable_decl): Match %FILL in STRUCTURE body.
977         * gfortran.texi: Update documentation.
979 2017-08-08  Martin Liska  <mliska@suse.cz>
981         * trans-types.c: Include header files.
983 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
985         PR fortran/68829
986         PR fortran/81701
987         * options.c: Make -Ofast honor -fmax-stack-var-size.
988         * invoke.texi: Document change.
990 2017-08-01  Thomas König  <tkoenig@gcc.gnu.org>
992         PR fortran/79312
993         * intrisic.c (gfc_convert_type_warn):  Only set typespec for
994         empty array constructors which don't have it already.
996 2017-08-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
998         PR fortran/45435
999         * lang.opt (fc-prototypes): Add option.
1000         * gfortran.h (gfc_typespec): Add interop_kind to struct.
1001         (gfc_dump_c_prototypes): Add prototype.
1002         * decl.c (gfc_match_kind_spec): Copy symbol used for kind to typespec.
1003         * parse.c (gfc_parse_file): Call gfc_dump_prototypes.
1004         * dump-parse-tree.c (gfc_dump_c_prototypes): New function.
1005         (type_return): New enum.
1006         (get_c_type_name): New function.
1007         (write_decl): New function.
1008         (write_type): New function.
1009         (write_variable): New function.
1010         (write_proc): New function.
1011         (write_interop_decl): New function.
1012         * invoke.texi: Document -fc-prototypes.
1014 2017-08-01  Dominique d'Humieres  <dominiq@lps.ens.fr>
1016         PR fortran/53542
1017         * expr.c (gfc_check_init_expr): Use the renamed name.
1019 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
1021         * check.c (gfc_check_num_images): Fix a pasto.
1023 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
1025         * trans-decl.c (gfc_trans_use_stmts): Pass false as new argument to
1026         the imported_module_or_decl debug hook.
1028 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1030         * resolve.c (find_reachable_labels): Adjust.
1032 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
1034         * ioparm.def: Use 1U << 31 instead of 1 << 31 as flags2 mask.
1036 2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1038         * dump-parse-tree.c (show_symbol):  Show binding label if present.
1040 2017-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1041             Mikael Morin  <mikael@gcc.gnu.org>
1043         PR fortran/66102
1044         * fortran/trans-array.c (gfc_conv_resolve_dependencies):
1045         Break if dependency has been found.
1047 2017-07-23  Alexander Monakov  <amonakov@ispras.ru>
1049         * interface.c (pair_cmp): Fix gfc_symbol comparison.  Adjust comment.
1051 2017-07-18  Nathan Sidwell  <nathan@acm.org>
1053         * trans.c (gfc_build_array_ref): Use TYPE_MAX_VALUE.
1055 2017-07-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
1057         PR fortran/81341
1058         * class.c (class_array_ref_detected): Remove a redundant
1059         condition.
1061 2017-07-06  Harald Anlauf  <anlauf@gmx.de>
1063         PR fortran/70071
1064         * array.c (gfc_ref_dimen_size): Handle bad subscript triplets.
1066 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
1068         PR fortran/79866
1069         * resolve.c (resolve_symbol): Fix typo.
1071 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
1073         PR fortran/79843
1074         * symbol.c (check_conflict): Add missing "conflicts".
1076 2017-06-29  Cesar Philippidis  <cesar@codesourcery.com>
1078         PR fortran/77765
1079         * openmp.c (gfc_match_oacc_routine): Check if proc_name exist before
1080         comparing the routine name against it.
1082 2017-06-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1084         PR fortran/80164
1085         * trans-stmt.c (gfc_trans_call): If no code expr, use code->loc
1086         as warning/error locus.
1088 2017-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1090         PR fortran/81160
1091         * arith.c (wprecision_int_real): Set return value before
1092         mpz_clear and then return after it.
1094 2017-06-15  Janus Weil  <janus@gcc.gnu.org>
1096         PR fortran/80983
1097         * trans-expr.c (gfc_conv_procedure_call): Deallocate the result of
1098         scalar allocatable procedure-pointer components.
1100 2017-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1102         PR fortran/80988
1103         * frontend-passes.c (traverse_io_block):  Also
1104         check for variables occurring as indices multiple
1105         time in a single implied DO loop.
1107 2017-06-05  Janus Weil  <janus@gcc.gnu.org>
1109         PR fortran/70601
1110         * trans-expr.c (gfc_conv_procedure_call): Fix detection of allocatable
1111         function results.
1113 2017-06-05  Nicolas Koenig  <koenigni@student.ethz.ch>
1115         PR fortran/35339
1116         * frontend-passes.c (traverse_io_block): New function.
1117         (simplify_io_impl_do): New function.
1118         (optimize_namespace): Invoke gfc_code_walker with
1119         simplify_io_impl_do.
1121 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
1123         PR fortran/80918
1124         * openmp.c (resolve_omp_clauses): Fix a typo.
1126 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
1128         * error.c (gfc_format_decoder): Update for new bool and
1129         const char ** params.
1131 2017-05-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1133         PR fortran/37131
1134         * frontend-passes.c (check_conjg_transpose_variable):
1135         Add prototype.
1136         (has_dimen_vector_ref):  Likewise
1137         (matmul_temp_args):  New function. Add prototype.
1138         (optimize_namespace):  Call matmul_temp_args.
1140 2017-05-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1142         * frontend-passes.c (matmul_lhs_realloc):  Correct
1143         allocation size for case A1B2.
1145 2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1147         * dump-parse-tree.c (show_expr):  Also replace
1148         with dumpfile for showing values for forgotten
1149         case.
1151 2017-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1153         * dump-parse-tree.c (show_expr):  Replace stdout
1154         with dumpfile for showing values.
1156 2017-05-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1158         PR fortran/66094
1159         * frontend-passes.c (matrix_case):  Add A2TB2.
1160         (inline_limit_check):  Handle MATMUL(TRANSPOSE(A),B)
1161         (inline_matmul_assign):  Likewise.
1163 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
1165         * openmp.c (OACC_KERNELS_CLAUSES): Add "OMP_CLAUSE_NUM_GANGS",
1166         "OMP_CLAUSE_NUM_WORKERS", "OMP_CLAUSE_VECTOR_LENGTH".
1168 2017-05-22  Janus Weil  <janus@gcc.gnu.org>
1170         PR fortran/80766
1171         * resolve.c (resolve_fl_derived): Make sure that vtype symbols are
1172         properly resolved.
1174 2017-05-19  Paul Thomas  <pault@gcc.gnu.org>
1176         PR fortran/80333
1177         * trans-io.c (nml_get_addr_expr): If we are dealing with class
1178         type data set tmp tree to get that address.
1179         (transfer_namelist_element): Set the array spec to point to the
1180         the class data.
1182 2017-05-19  David Malcolm  <dmalcolm@redhat.com>
1184         PR fortran/79852
1185         * bbt.c (insert): Remove trailing exclamation mark from message.
1186         * decl.c (gfc_match_final_decl): Likewise.
1187         * dump-parse-tree.c (show_expr): Likewise.
1188         * module.c (gfc_use_module): Likewise.
1189         * primary.c (build_actual_constructor): Likewise.
1190         (gfc_convert_to_structure_constructor): Likewise.
1192 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
1194         * gfortran.h (enum gfc_omp_default_sharing): Add
1195         "OMP_DEFAULT_PRESENT".
1196         * dump-parse-tree.c (show_omp_clauses): Handle it.
1197         * openmp.c (gfc_match_omp_clauses): Likewise.
1198         * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
1200 2017-05-18  Fritz Reese <fritzoreese@gmail.com>
1202         PR fortran/79968
1203         * decl.c (match_attr_spec, gfc_match_automatic,
1204         gfc_match_static, gfc_match_structure_decl): Unify diagnostic
1205         errors regarding -fdec options.
1206         * io.c (match_dec_etag, match_dec_vtag, match_dec_ftag): Ditto.
1208 2017-05-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1210         PR fortran/80741
1211         * trans-io.c (transfer_namelist_element): Change check from
1212         NULL_TREE to null_pointer_node.
1214 2017-05-17  Fritz Reese <fritzoreese@gmail.com>
1216         PR fortran/80668
1217         * expr.c (component_initializer): Don't generate initializers for
1218         pointer components.
1219         * invoke.texi (-finit-derived): Document.
1221 2017-05-16  Paul Thomas  <pault@gcc.gnu.org>
1223         PR fortran/80554
1224         * decl.c (build_sym): In a submodule allow overriding of host
1225         associated symbols from the ancestor module with a new
1226         declaration.
1228 2017-05-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1230         PR fortran/80674
1231         * trans-stmt.c (gfc_trans_integer_select): Remove redundant condition.
1233 2017-05-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1235         PR fortran/80752
1236         * expr.c (gfc_generate_initializer):  If type conversion fails,
1237         check for error and return NULL.
1239 2017-05-14  Nicolas Koenig  <koenigni@student.ethz.ch>
1241         PR fortran/80442
1242         * array.c (gfc_ref_dimen_size): Simplify stride
1243         expression
1244         * data.c (gfc_advance_section): Simplify start,
1245         end and stride expressions
1246         (gfc_advance_section): Simplify start and end
1247         expressions
1248         (gfc_get_section_index): Simplify start expression
1250 2017-05-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1252         * io.c (gfc_resolve_dt): Fix returns to bool type.
1254 2017-05-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1256         PR fortran/78659
1257         * io.c (dtio_procs_present): Add new function to check for DTIO
1258         procedures relative to I/O statement READ or WRITE.
1259         (gfc_resolve_dt): Add namelist checks using the new function.
1260         * resolve.c (dtio_procs_present): Remove function and related
1261         namelist checks. (resolve_fl_namelist): Add check specific to
1262         Fortran 95 restriction on namelist objects.
1264 2017-05-11  Nathan Sidwell  <nathan@acm.org>
1266         * trans-decl.c: Include dumpfile.h not tree-dump.h,
1268 2017-05-09  Janus Weil  <janus@gcc.gnu.org>
1270         PR fortran/79311
1271         * resolve.c (gfc_resolve_finalizers): Ensure that derived-type
1272         components have a their finalizers resolved, also if the superordinate
1273         type itself has a finalizer.
1275 2017-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1277         PR fortran/79930
1278         * frontend-passes.c (matmul_to_var_expr): New function,
1279         add prototype.
1280         (matmul_to_var_code):  Likewise.
1281         (optimize_namespace):  Use them from gfc_code_walker.
1283 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
1285         * cpp.c (cb_cpp_error): Replace report_diagnostic
1286         with diagnostic_report_diagnostic.
1287         * error.c (gfc_warning): Likewise.
1288         (gfc_warning_now_at): Likewise.
1289         (gfc_warning_now): Likewise.
1290         (gfc_warning_internal): Likewise.
1291         (gfc_error_now): Likewise.
1292         (gfc_fatal_error): Likewise.
1293         (gfc_error_opt): Likewise.
1294         (gfc_internal_error): Likewise.
1296 2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1298         PR fortran/37131
1299         * frontend-passes.c (inline_matmul_assign): Also check bounds
1300         for allocatable lhs and matrix-vector-multiplication.
1302 2017-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1304         PR fortran/80484
1305         * io.c (format_lex): Check for '/' and set token to FMT_SLASH.
1306         (check_format): Move FMT_DT checking code to data_desc section.
1307         * module.c (gfc_match_use): Include the case of INTERFACE_DTIO.
1309 2017-04-22  Janus Weil  <janus@gcc.gnu.org>
1311         PR fortran/80121
1312         * trans-types.c (gfc_conv_procedure_call): Deallocate the components
1313         of allocatable intent(out) arguments.
1315 2017-04-21  Janus Weil  <janus@gcc.gnu.org>
1317         PR fortran/80392
1318         * trans-types.c (gfc_get_derived_type): Prevent an infinite loop when
1319         building a derived type that includes a procedure pointer component
1320         with a polymorphic result.
1322 2017-04-17  Paul Thomas  <pault@gcc.gnu.org>
1324         PR fortran/80440
1325         * module.c (find_symtree_for_symbol): Delete.
1326         (read_module): Remove the call to the above.
1328 2017-04-14  Janus Weil  <janus@gcc.gnu.org>
1330         PR fortran/80361
1331         * class.c (generate_finalization_wrapper): Give the finalization wrapper
1332         the recursive attribute.
1334 2017-04-10  Nicolas Koenig  <koenigni@student.ethz.ch>
1335             Paul Thomas  <pault@gcc.gnu.org>
1337         PR fortran/69498
1338         * module.c (gfc_match_submodule): Add error
1339         if function is called in the wrong state.
1341 2017-04-10  Janus Weil  <janus@gcc.gnu.org>
1343         PR fortran/80046
1344         * expr.c (gfc_check_pointer_assign): Check if procedure pointer
1345         components in a pointer assignment need an explicit interface.
1347 2017-03-18  Nicolas Koenig  <koenigni@student.ethz.ch>
1349         PR fortran/69498
1350         * symbol.c (gfc_delete_symtree): If there is a period in the name, ignore
1351         everything before it.
1353 2017-03-28  Janus Weil  <janus@gcc.gnu.org>
1355         PR fortran/78661
1356         * trans-io.c (transfer_namelist_element): Perform a polymorphic call
1357         to a DTIO procedure if necessary.
1359 2017-03-25  Paul Thomas  <pault@gcc.gnu.org>
1361         PR fortran/80156
1362         PR fortran/79382
1363         * decl.c (access_attr_decl): Remove the error for an absent
1364         generic DTIO interface and ensure that symbol has the flavor
1365         FL_PROCEDURE.
1367 2017-03-22  Dominique d'Humieres  <dominiq@lps.ens.fr>
1369         PR fortran/79838
1370         * module.c: Remove trailing period.
1372 2017-03-22  Dominique d'Humieres  <dominiq@lps.ens.fr>
1374         PR fortran/79602
1375         * decl.c: Replace '%s' with %qs.
1376         * expr.c: Likewise.
1377         * interface.c: Likewise.
1378         * match.c: Likewise.
1379         * primary.c: Likewise.
1380         * resolve.c: Likewise.
1382         PR fortran/79844
1383         PR fortran/80011
1384         * io.c: Remove trailing spaces.
1385         * match.c: Likewise.
1386         * openmp.c: Likewise.
1387         * resolve.c: Likewise.
1388         * trans-intrinsic.c: Likewise.
1390         PR fortran/79853
1391         * expr.c: Remove a double spaces.
1393         PR fortran/79859
1394         * primary.c: Remove spurious quotes around %qs.
1396 2017-03-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1398         PR fortran/80142
1399         * frontend-passes.c (combine_array_constructor): Take
1400         location of new expression from constructor expression instead
1401         of constructor.
1403 2017-03-20  Nicolas Koenig  <koenigni@student.ethz.ch>
1405         PR fortran/39239
1406         * symbol.c (check_conflict): Report an error if an EQUIVALENCE
1407         object is BIND(C)
1409 2017-03-18  Nicolas Koenig  <koenigni@student.ethz.ch>
1411         PR fortran/69498
1412         * decl.c (add_hidden_procptr_result): Fixed Refs count of the
1413         created "ppr@" symbol.
1415 2017-03-18  Paul Thomas  <pault@gcc.gnu.org>
1417         PR fortran/79676
1418         * module.c (mio_symbol_attribute): Remove reset of the flag
1419         'no_module_procedures'.
1420         (check_for_module_procedures): New function. Move declaration
1421         of 'no_module_procedures' to above it.
1422         (gfc_dump_module): Traverse namespace calling new function.
1424 2017-03-18  Paul Thomas  <pault@gcc.gnu.org>
1426         PR fortran/71838
1427         * symbol.c (check_conflict): A dummy procedure in a submodule,
1428         module procedure is not an error.
1429         (gfc_add_flavor): Ditto.
1431 2017-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1433         PR fortran/79841
1434         * openmp.c (check_symbol_not_pointer): Adjust diagnostics.
1436 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
1438         PR fortran/80010
1439         * parse.c (gfc_ascii_statement): Use !$ACC for ST_OACC_ATOMIC
1440         and ST_OACC_END_ATOMIC, instead of !ACC.
1441         * trans-decl.c (finish_oacc_declare): Use !$ACC instead of $!ACC.
1442         * openmp.c (gfc_match_oacc_declare, gfc_match_oacc_wait,
1443         gfc_resolve_oacc_declare): Likewise.
1445         PR fortran/79886
1446         * error.c (gfc_format_decoder): Rename plus argument to set_locus,
1447         remove ATTRIBUTE_UNUSED from all arguments, call default_tree_printer
1448         if not a Fortran specific spec.
1449         * trans-io.c: Include options.h.
1450         (gfc_build_st_parameter): Temporarily disable -Wpadded around layout
1451         of artificial IO data structures.
1453 2017-03-15  David Malcolm  <dmalcolm@redhat.com>
1455         PR fortran/79860
1456         * resolve.c (resolve_contained_fntype): Make error messages more
1457         amenable to translation.
1459 2017-03-06  Richard Biener  <rguenther@suse.de>
1461         PR fortran/79894
1462         * trans.c (gfc_add_modify_loc): Weaken assert.
1464 2017-03-05  Andre Vehreschild  <vehre@gcc.gnu.org>,
1465             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1467         * check.c (positive_check): Add new function checking constant for
1468         being greater then zero.
1469         (gfc_check_image_status): Add checking of image_status arguments.
1470         (gfc_check_failed_or_stopped_images): Same but for failed_- and
1471         stopped_images function.
1472         * dump-parse-tree.c (show_code_node): Added output of FAIL IMAGE.
1473         * gfortran.h (enum gfc_statement): Added FAIL_IMAGE_ST.
1474         (enum gfc_isym_id): Added new intrinsic symbols.
1475         (enum gfc_exec_op): Added EXEC_FAIL_IMAGE.
1476         * gfortran.texi: Added description for the new API functions. Updated
1477         coverage of gfortran of TS18508.
1478         * intrinsic.c (add_functions): Added symbols to resolve new intrinsic
1479         functions.
1480         * intrinsic.h: Added prototypes.
1481         * iresolve.c (gfc_resolve_failed_images): Resolve the failed_images
1482         intrinsic.
1483         (gfc_resolve_image_status): Same for image_status.
1484         (gfc_resolve_stopped_images): Same for stopped_images.
1485         * libgfortran.h: Added prototypes.
1486         * match.c (gfc_match_if): Added matching of FAIL IMAGE statement.
1487         (gfc_match_fail_image): Match a FAIL IMAGE statement.
1488         * match.h: Added prototype.
1489         * parse.c (decode_statement): Added matching for FAIL IMAGE.
1490         (next_statement): Same.
1491         (gfc_ascii_statement): Same.
1492         * resolve.c: Same.
1493         * simplify.c (gfc_simplify_failed_or_stopped_images): For COARRAY=
1494         single a constant result can be returne.d
1495         (gfc_simplify_image_status): For COARRAY=single the result is constant.
1496         * st.c (gfc_free_statement): Added FAIL_IMAGE handling.
1497         * trans-decl.c (gfc_build_builtin_function_decls): Added decls of the
1498         new intrinsics.
1499         * trans-expr.c (gfc_conv_procedure_call): This is first time all
1500         arguments of a function are optional, which is now handled here
1501         correctly.
1502         * trans-intrinsic.c (conv_intrinsic_image_status): Translate
1503         image_status.
1504         (gfc_conv_intrinsic_function): Add support for image_status.
1505         (gfc_is_intrinsic_libcall): Add support for the remaining new
1506         intrinsics.
1507         * trans-stmt.c (gfc_trans_fail_image): Trans a fail image.
1508         * trans-stmt.h: Add the prototype for the above.
1509         * trans.c (trans_code): Dispatch for fail_image.
1510         * trans.h: Add the trees for the new intrinsics.
1512 2017-03-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1514         PR fortran/79841
1515         * openmp.c (check_symbol_not_pointer): Adjust diagnostic.
1517 2017-02-28  Paul Thomas  <pault@gcc.gnu.org>
1519         PR fortran/79739
1520         * resolve.c (resolve_fl_procedure): Deal with the case where
1521         'submodule_name' is NULL so that gfc_error does not ICE.
1522         Reformat the error message to make it more consistent.
1524 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
1526         * parse.c (parse_critical_block): Use cond ? G_("...") : G_("...")
1527         instead of just cond ? "..." : "...".
1528         * scanner.c (gfc_next_char_literal): Likewise.
1529         * match.c (match_exit_cycle): Likewise.
1531 2017-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1533         PR fortran/51119
1534         * options.c (gfc_post_options): Set default limit for matmul
1535         inlining to 30.
1536         * invoke.texi: Document change.
1538 2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>
1540         PR fortran/79601
1541         * interface.c (check_dtio_arg_TKR_intent): Change 'intent'
1542         to 'INTENT'.
1544 2017-02-25  Dominique d'Humieres  <dominiq@lps.ens.fr>
1546         PR fortran/79597
1547         * interface.c (gfc_match_end_interface): Remove spurious comma
1548         and space, replace 'got %s' with 'got %qs'.
1550 2017-02-20  Paul Thomas  <pault@gcc.gnu.org>
1552         PR fortran/79599
1553         * interface.c (check_dtio_arg_TKR_intent): Supply 'must'
1554         missing from error message.
1556 2017-02-20  Paul Thomas  <pault@gcc.gnu.org>
1558         PR fortran/79523
1559         * interface.c (gfc_find_typebound_dtio_proc): Guard test for
1560         flavor attribute by checking that symbol is resolved.
1562 2017-02-16  Paul Thomas  <pault@gcc.gnu.org>
1564         PR fortran/79382
1565         * decl.c (access_attr_decl): Test for presence of generic DTIO
1566         interface and emit error if not present.
1568 2017-02-20  Paul Thomas  <pault@gcc.gnu.org>
1570         PR fortran/79434
1571         * parse.c (check_component, parse_union): Whitespace.
1572         (set_syms_host_assoc): For a derived type, check if the module
1573         in which it was declared is one of the submodule ancestors. If
1574         it is, make the components public. Otherwise, reset attribute
1575         'host_assoc' and set 'use-assoc' so that encapsulation is
1576         preserved.
1578 2017-02-19  Paul Thomas  <pault@gcc.gnu.org>
1580         PR fortran/79447
1581         * decl.c (gfc_set_constant_character_len): Whitespace.
1582         (gfc_match_end): Catch case where a procedure is contained in
1583         a module procedure and ensure that 'end procedure' is the
1584         correct termination.
1586 2017-02-19  Paul Thomas  <pault@gcc.gnu.org>
1588         PR fortran/79402
1589         * resolve.c (fixup_unique_dummy): New function.
1590         (gfc_resolve_expr): Call it for dummy variables with a unique
1591         symtree name.
1593 2017-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
1595         PR fortran/79229
1596         * trans-expr.c (gfc_trans_assignment_1): Deref indirect refs when
1597         compiling with -fcheck=mem to check the pointer and not the data.
1599 2017-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>
1601         PR fortran/79335
1602         * trans-array.c (duplicate_allocatable_coarray): Ensure attributes
1603         passed are properly initialized.
1604         (structure_alloc_comps): Same.
1605         * trans-expr.c (gfc_trans_structure_assign): Same.
1607 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
1609         * trans-expr.c (gfc_conv_substring): Add missing space in diagnostics.
1611 2017-02-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1613         PR fortran/65542
1614         * intrinsic.c (gfc_intrinsic_func_interface):  Return an error
1615         for -std=f95 for disallowed transformational functions in
1616         initialization expressions.
1618 2017-02-09  Cesar Philippidis  <cesar@codesourcery.com>
1619             Joseph Myers  <joseph@codesourcery.com>
1621         * openmp.c (resolve_omp_clauses): Error on directives
1622         containing both tile and collapse clauses.
1623         (resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
1624         * trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
1625         collapsed loops.
1627 2017-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1629         * trans-types.c (gfc_get_int_kind_from_width_isofortranen):  Choose
1630         REAL type with the widest precision if two (or more) have the same
1631         storage size.
1633 2017-02-05  Andre Vehreschild  <vehre@gcc.gnu.org>
1635         PR fortran/79344
1636         * trans-stmt.c (gfc_trans_allocate): Only deallocate the components of
1637         the temporary, when a new object was created for the temporary.  Not
1638         when it is just an alias to an existing object.
1640 2017-02-05  Andre Vehreschild  <vehre@gcc.gnu.org>
1642         PR fortran/79335
1643         * trans-decl.c (generate_coarray_sym_init): Retrieve the symbol's
1644         attributes before using them.
1646 2017-02-05  Andre Vehreschild  <vehre@gcc.gnu.org>
1648         PR fortran/78958
1649         * trans-stmt.c (gfc_trans_allocate): Add the multiplying the _len
1650         component of unlimited polymorphic objects when source-allocating.
1652 2017-02-05  Andre Vehreschild  <vehre@gcc.gnu.org>
1654         PR fortran/79230
1655         * trans-array.c (structure_alloc_comps): Ignore pointer components when
1656         freeing structures.
1658 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
1660         PR lto/79061
1661         * f95-lang.c (gfc_create_decls): Include stringpool.h.
1662         Pass main_input_filename to build_translation_unit_decl.
1664 2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>
1666         * arith.c (arith_power):  If simplifying integer power expression
1667         to zero, warn if -Winteger-division is given.
1669 2017-01-22  Jakub Jelinek  <jakub@redhat.com>
1671         PR fortran/79154
1672         * parse.c (matchs, matcho, matchds, matchdo): Replace return st;
1673         with { ret = st; goto finish; }.
1674         (decode_omp_directive): Allow declare simd, declare target and
1675         simd directives in PURE/ELEMENTAL procedures.  Only call
1676         gfc_unset_implicit_pure on successful match of other procedures.
1678 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
1680         * gfc-internals.texi (Symbol Versioning): Change references
1681         to www.akkadia.org to https.
1683 2017-01-21  Jakub Jelinek  <jakub@redhat.com>
1685         * gfortran.h (gfc_extract_int): Change return type to bool.  Add
1686         int argument with = 0.
1687         * decl.c (gfc_match_kind_spec): Adjust gfc_extract_int caller, pass
1688         1 as new last argument to it, don't emit gfc_error.
1689         (match_char_kind): Likewise.
1690         (gfc_match_decl_type_spec): Use gfc_get_string ("%s", x) instead of
1691         gfc_get_string (x).
1692         (gfc_match_derived_decl, match_binding_attributes): Likewise.
1693         (gfc_match_structure_decl): Don't sprintf back to name, call
1694         get_struct_decl directly with gfc_dt_upper_string (name) result.
1695         * trans-stmt.c (gfc_trans_allocate): Use gfc_get_string ("%s", x)
1696         instead of gfc_get_string (x).
1697         * module.c (gfc_dt_lower_string, gfc_dt_upper_string,
1698         gfc_match_use, gfc_match_submodule, find_true_name, mio_pool_string,
1699         mio_symtree_ref, mio_expr, mio_omp_udr_expr, load_generic_interfaces,
1700         load_omp_udrs, load_needed, read_module, dump_module,
1701         create_intrinsic_function, import_iso_c_binding_module,
1702         create_int_parameter, create_int_parameter_array, create_derived_type,
1703         use_iso_fortran_env_module): Likewise.
1704         * error.c (gfc_diagnostic_starter, gfc_diagnostic_start_span): Use
1705         pp_verbatim (context->printer, "%s", x) instead of
1706         pp_verbatim (context->printer, x).
1707         * match.c (gfc_match_small_int): Adjust gfc_extract_int caller, pass
1708         1 as new last argument to it, don't emit gfc_error.
1709         (gfc_match_small_int_expr): Likewise.
1710         * iresolve.c (gfc_get_string): Optimize format "%s" case.
1711         (resolve_bound): Use gfc_get_string ("%s", x) instead of
1712         gfc_get_string (x).
1713         (resolve_transformational): Formatting fix.
1714         (gfc_resolve_char_achar): Change name argument to bool is_achar,
1715         use a single format string and if is_achar add "a" before "char".
1716         (gfc_resolve_achar, gfc_resolve_char): Adjust callers.
1717         * expr.c (gfc_extract_int): Change return type to bool, return true
1718         if some error occurred.  Add REPORT_ERROR argument, if non-zero
1719         call either gfc_error or gfc_error_now depending on its sign.
1720         * arith.c (arith_power): Adjust gfc_extract_int caller.
1721         * symbol.c (gfc_add_component): Use gfc_get_string ("%s", x) instead
1722         of gfc_get_string (x).
1723         (gfc_new_symtree, gfc_delete_symtree, gfc_get_uop, gfc_new_symbol,
1724         gfc_get_gsymbol, generate_isocbinding_symbol): Likewise.
1725         * openmp.c (gfc_match_omp_clauses): Adjust gfc_extract_int caller, pass
1726         -1 as new last argument to it, don't emit gfc_error_now.
1727         (gfc_match_omp_declare_reduction): Use gfc_get_string ("%s", x)
1728         instead of gfc_get_string (x).
1729         * check.c (kind_check): Adjust gfc_extract_int caller.
1730         * intrinsic.c (add_sym, find_sym, make_alias): Use
1731         gfc_get_string ("%s", x) instead of gfc_get_string (x).
1732         * simplify.c (get_kind, gfc_simplify_btest, gfc_simplify_maskr,
1733         gfc_simplify_maskl, gfc_simplify_poppar, gfc_simplify_repeat,
1734         gfc_simplify_selected_int_kind, gfc_simplify_selected_real_kind):
1735         Adjust gfc_extract_int callers.
1736         * trans-decl.c (gfc_find_module): Use gfc_get_string ("%s", x)
1737         instead of gfc_get_string (x).
1738         * matchexp.c (expression_syntax): Add const.
1739         * primary.c (match_kind_param, match_hollerith_constant,
1740         match_string_constant): Adjust gfc_extract_int callers.
1741         (match_keyword_arg): Use gfc_get_string ("%s", x) instead of
1742         gfc_get_string (x).
1743         * frontend-passes.c (optimize_minmaxloc): Likewise.
1745 2017-01-19  Andre Vehreschild  <vehre@gcc.gnu.org>
1747         PR fortran/70696
1748         * trans-decl.c (gfc_build_qualified_array): Add static decl to parent
1749         function only, when the decl-context is not the translation unit.
1751 2017-01-18  Louis Krupp  <louis.krupp@zoho.com>
1753         PR fortran/50069
1754         PR fortran/55086
1755         * trans-expr.c (gfc_conv_variable): Don't treat temporary variables
1756         as function arguments.
1757         * trans-stmt.c (forall_make_variable_temp,
1758         generate_loop_for_temp_to_lhs, gfc_trans_assign_need_temp,
1759         gfc_trans_forall_1): Don't adjust offset of forall temporary
1760         for array sections, make forall temporaries work for substring
1761         expressions, improve test coverage by adding -ftest-forall-temp
1762         option to request usage of temporary array in forall code.
1763         * lang.opt: Add -ftest-forall-temp option.
1764         * invoke.texi: Add -ftest-forall-temp option.
1766 2017-01-18  Andre Vehreschild  <vehre@gcc.gnu.org>
1768         * primary.c (caf_variable_attr): Improve figuring whether the current
1769         component is the last one refed.
1770         * trans-stmt.c (gfc_trans_allocate): Do not generate sync_all calls
1771         when allocating pointer or allocatable components.
1773 2017-01-18  Andre Vehreschild  <vehre@gcc.gnu.org>
1775         * gfortran.texi: Add missing parameters to caf-API functions.  Correct
1776         typos and clarify some descriptions.
1778 2017-01-18  Andre Vehreschild  <vehre@gcc.gnu.org>
1780         PR fortran/70696
1781         Missed some cases, here they are:
1782         * trans-decl.c (gfc_build_qualified_array): Add static tokens to the
1783         parent function's scope.
1784         * trans-expr.c (gfc_get_tree_for_caf_expr): Shorten code.  Remove
1785         unnecessary assert.
1787 2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
1789         PR fortran/70697
1790         * resolve.c (resolve_lock_unlock_event): Resolve the expression for
1791         event's until_count.
1793 2017-01-13  Andre Vehreschild  <vehre@gcc.gnu.org>
1795         PR fortran/70696
1796         * trans-expr.c (gfc_get_tree_for_caf_expr): Ensure the backend_decl
1797         is valid before accessing it.
1799 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
1801         PR translation/79019
1802         PR translation/79020
1803         * decl.c (attr_decl1): Fix spelling in translatable string.
1804         * intrinsic.texi: Fix spelling - invokation -> invocation.
1805         * lang.opt (faggressive-function-elimination, gfc_convert): Fix
1806         typos in descriptions.
1807         * openmp.c (resolve_omp_clauses): Add missing whitespace to
1808         translatable strings.
1810 2017-01-08  Martin Sebor  <msebor@redhat.com>
1812         PR tree-optimization/78913
1813         PR middle-end/77708
1814         * trans-common.c (build_equiv_decl): Increase buffer size to avoid
1815         truncation for any argument.
1816         * trans-types.c (gfc_build_logical_type): Same.
1818 2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>
1820         PR fortran/78781
1821         PR fortran/78935
1822         * expr.c (gfc_check_pointer_assign): Return the same error message for
1823         rewritten coarray pointer assignments like for plain ones.
1824         * gfortran.h: Change prototype.
1825         * primary.c (caf_variable_attr): Set attributes used ones only only
1826         ones.  Add setting of pointer_comp attribute.
1827         (gfc_caf_attr): Add setting of pointer_comp attribute.
1828         * trans-array.c (gfc_array_allocate): Add flag that the component to
1829         allocate is not an ultimate coarray component.  Add allocation of
1830         pointer arrays.
1831         (structure_alloc_comps): Extend nullify to treat pointer components in
1832         coarrays correctly.  Restructure nullify to remove redundant code.
1833         (gfc_nullify_alloc_comp): Allow setting caf_mode flags.
1834         * trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
1835         * trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
1836         derived type coarrays with pointer components.
1837         * trans-expr.c (gfc_trans_structure_assign): Also treat pointer
1838         components.
1839         (trans_caf_token_assign): Handle assignment of token of scalar pointer
1840         components.
1841         (gfc_trans_pointer_assignment): Call above routine.
1842         * trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
1843         components.
1844         (gfc_conv_intrinsic_caf_get): Likewise.
1845         (conv_caf_send): Likewise.
1846         * trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
1847         a coarray pre-register the tokens.
1848         (gfc_trans_deallocate): Simply determining the coarray type (scalar or
1849         array) and deregistering it correctly.
1850         * trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
1851         actual codim to allow lookup of array types in the cache.
1852         (gfc_build_array_type): Likewise.
1853         (gfc_get_array_descriptor_base): Likewise.
1854         (gfc_get_array_type_bounds): Likewise.
1855         (gfc_get_derived_type): Likewise.
1856         * trans-types.h: Likewise.
1857         * trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
1858         of coarray components.
1859         (gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
1860         instead of caf_deregister.
1862 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
1864         * simplify.c (simplify_transformation_to_array): Use
1865         GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
1866         #pragma GCC diagnostic {push,ignored,pop}.
1868 2017-01-06  Alexandre Oliva <aoliva@redhat.com>
1870         * simplify.c (simplify_transformation_to_array): Silence
1871         array bounds warning.  Fix whitespace.
1873 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1875         * module.c (load_omp_udrs): Initialize name.
1877 2017-01-02  Janne Blomqvist  <jb@gcc.gnu.org>
1879         PR fortran/78534
1880         * trans-expr.c (gfc_trans_string_copy): Rework string copy
1881         algorithm to avoid -Wstringop-overflow warning.
1883 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1885         Update copyright years.
1887         * gfortranspec.c (lang_specific_driver): Update copyright notice
1888         dates.
1889         * gfc-internals.texi: Bump @copying's copyright year.
1890         * gfortran.texi: Ditto.
1891         * intrinsic.texi: Ditto.
1892         * invoke.texi: Ditto.
1894 Copyright (C) 2017 Free Software Foundation, Inc.
1896 Copying and distribution of this file, with or without modification,
1897 are permitted in any medium without royalty provided the copyright
1898 notice and this notice are preserved.