simplify.c (gfc_simplify_modulo): Re-arrange code to test whether 'P' is zero and...
[gcc.git] / gcc / fortran / ChangeLog
1 2018-09-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2
3 * simplify.c (gfc_simplify_modulo): Re-arrange code to test whether
4 'P' is zero and issue an error if it is.
5
6 2018-08-31 Paul Thomas <pault@gcc.gnu.org>
7
8 PR fortran/86328
9 PR fortran/86760
10 * trans-array.c (gfc_conv_scalarized_array_ref): Do not fix
11 info->descriptor but pass it directly to gfc_build_array_ref.
12 (gfc_conv_array_ref): Likewise for se->expr.
13 * trans.c (gfc_build_array_ref): If 'decl' is a COMPONENT_REF
14 obtain the span field directly from it.
15
16 2017-08-28 Paul Thomas <pault@gcc.gnu.org>
17
18 PR fortran/80477
19 * trans-expr.c (gfc_conv_procedure_call): Allocatable class
20 scalar results being passed to a derived type formal argument
21 are finalized if possible. Otherwise, rely on existing code for
22 deallocation. Make the deallocation of allocatable result
23 components conditional on finalization not taking place. Make
24 the freeing of data components after finalization conditional
25 on the data being NULL.
26 (gfc_trans_arrayfunc_assign): Change the gcc_assert to a
27 condition to return NULL_TREE.
28 (gfc_trans_assignment_1): If the assignment is class to class
29 and the rhs expression must be finalized but the assignment
30 is not marked as a polymorphic assignment, use the vptr copy
31 function instead of gfc_trans_scalar_assign.
32
33 PR fortran/86481
34 * trans-expr.c (gfc_conv_expr_reference): Do not add the post
35 block to the pre block if the expression is to be finalized.
36 * trans-stmt.c (gfc_trans_allocate): If the expr3 must be
37 finalized, load the post block into a finalization block and
38 add it right at the end of the allocation block.
39
40 2018-08-27 David Malcolm <dmalcolm@redhat.com>
41
42 PR 87091
43 * error.c (gfc_format_decoder): Update for conversion of
44 show_caret_p to a tri-state.
45
46 2018-08-25 Janus Weil <janus@gcc.gnu.org>
47
48 PR fortran/86545
49 * resolve.c (resolve_transfer): Correctly determine typespec for
50 generic function calls, in order to throw a proper error.
51
52 2018-08-24 Thomas Koenig <tkoenig@gcc.gnu.org>
53
54 PR fortran/86837
55 * frontend-passes.c (var_in_expr_callback): New function.
56 (var_in_expr): New function.
57 (traverse_io_block): Use var_in_expr instead of
58 gfc_check_dependency for checking if the variable depends on the
59 previous interators.
60
61 2018-08-23 Janne Blomqvist <blomqvist.janne@gmail.com>
62
63 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Delete
64 HONOR_SIGNED_ZEROS checks.
65
66 2018-08-23 Paul Thomas <pault@gcc.gnu.org>
67
68 PR fortran/86863
69 * resolve.c (resolve_typebound_call): If the TBP is not marked
70 as a subroutine, check the specific symbol.
71
72 2018-08-22 Thomas Koenig <tkoenig@gcc.gnu.org>
73
74 * gfortran.texi: Mention that asynchronous I/O does
75 not work on systems which lack condition variables, such
76 as AIX.
77
78 2018-08-22 Janus Weil <janus@gcc.gnu.org>
79
80 PR fortran/86935
81 * match.c (gfc_match_associate): Improve diagnostics for the ASSOCIATE
82 statement.
83
84 2018-08-22 Andrew Benson <abensonca@gmail.com>
85
86 * module.c (load_generic_interfaces): Move call to find_symbol()
87 so that only occurs if actually needed.
88
89 2018-08-22 Janus Weil <janus@gcc.gnu.org>
90
91 PR fortran/86888
92 * decl.c (gfc_match_data_decl): Allow allocatable components of
93 indirectly recursive type.
94 * resolve.c (resolve_component): Remove two errors messages ...
95 (resolve_fl_derived): ... and replace them by a new one.
96
97 2018-08-21 Janne Blomqvist <jb@gcc.gnu.org>
98
99 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Use
100 MAX_EXPR/MIN_EXPR unconditionally for real arguments.
101 * gfortran.texi (Compiler Characteristics): Document MAX/MIN
102 behavior wrt NaN.
103
104 2018-08-21 Nicolas Koenig <koenigni@gcc.gnu.org>
105 Thomas Koenig <tkoenig@gcc.gnu.org>
106
107 PR fortran/25829
108 * gfortran.texi: Add description of asynchronous I/O.
109 * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
110 as volatile.
111 * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
112 st_wait_async and change argument spec from ".X" to ".w".
113 (gfc_trans_wait): Pass ID argument via reference.
114
115 2018-08-16 Nathan Sidwell <nathan@acm.org>
116
117 * cpp.c (dump_macro): Use cpp_user_macro_p.
118
119 2018-08-14 Janus Weil <janus@gcc.gnu.org>
120
121 PR fortran/86116
122 * interface.c (compare_type): Remove a CLASS/TYPE check.
123 (compare_type_characteristics): New function that behaves like the old
124 'compare_type'.
125 (gfc_check_dummy_characteristics, gfc_check_result_characteristics):
126 Call 'compare_type_characteristics' instead of 'compare_type'.
127
128 2018-08-12 Paul Thomas <pault@gcc.gnu.org>
129
130 PR fortran/66679
131 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Class array
132 elements are returned as references to the data element. Get
133 the class expression by stripping back the references. Use this
134 for the element size.
135
136 2018-08-12 Paul Thomas <pault@gcc.gnu.org>
137
138 PR fortran/86906
139 * resolve.c (resolve_fl_variable_derived): Check if the derived
140 type is use associated before checking for the host association
141 error.
142
143 2018-08-10 Janus Weil <janus@gcc.gnu.org>
144
145 PR fortran/57160
146 * invoke.texi (frontend-optimize): Mention short-circuiting.
147 * options.c (gfc_post_options): Disable -ffrontend-optimize with -Og.
148 * resolve.c (resolve_operator): Warn about short-circuiting only with
149 -ffrontend-optimize.
150 * trans-expr.c (gfc_conv_expr_op): Use short-circuiting operators only
151 with -ffrontend-optimize. Without that flag, make sure that both
152 operands are evaluated.
153
154 2018-08-08 Nathan Sidwell <nathan@acm.org>
155
156 * cpp.c (cb_file_change): Use linemap_included_from.
157
158 2018-08-07 Cesar Philippidis <cesar@codesourcery.com>
159
160 * trans-stmt.h: Remove stale reference to trans-openacc.c.
161
162 2018-08-04 Janus Weil <janus@gcc.gnu.org>
163
164 PR fortran/45521
165 * interface.c (gfc_compare_interfaces): Apply additional
166 distinguishability criteria of F08 to operator interfaces.
167
168 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
169
170 Revert 'AsyncI/O patch committed'
171 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org>
172 Thomas Koenig <tkoenig@gcc.gnu.org>
173
174 PR fortran/25829
175 * gfortran.texi: Add description of asynchronous I/O.
176 * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
177 as volatile.
178 * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
179 st_wait_async and change argument spec from ".X" to ".w".
180 (gfc_trans_wait): Pass ID argument via reference.
181
182 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org>
183 Thomas Koenig <tkoenig@gcc.gnu.org>
184
185 PR fortran/25829
186 * gfortran.texi: Add description of asynchronous I/O.
187 * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables
188 as volatile.
189 * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to
190 st_wait_async and change argument spec from ".X" to ".w".
191 (gfc_trans_wait): Pass ID argument via reference.
192
193 2018-07-20 Martin Sebor <msebor@redhat.com>
194
195 PR middle-end/82063
196 * gfortran.h (gfc_handle_option): Change function argument
197 to HOST_WIDE_INT.
198 * options.c (gfc_handle_option): Same.
199
200 2018-07-20 Andrew Benson <abenson@carnegiescience.edu>
201
202 * gfortran.h (gfc_symbol): Add pointer to next derived type.
203 (gfc_dt_list, gfc_get_dt_list): Remove.
204 (gfc_namespace): Replace gfc_dt_list with gfc_symbol.
205 * parse.c (resolve_all_program_units): Replace gfc_free_dt_list() with
206 simple nullification of gfc_derived_types.
207 * resolve.c (resolve_global_procedure): Replace gfc_dt_list with
208 gfc_symbol.
209 (add_dt_to_dt_list): Change derived type linked list insertion to
210 utilize dt_next pointers in gfc_symbol.
211 * symbol.c (gfc_new_symbol, gfc_free_dt_list, gfc_symbol_done2)
212 (get_iso_c_binding_dt, generate_isocbinding_symbol): Remove
213 gfc_free_dt_list as gfc_dt_list is obsoleted. Change derived type
214 linked list search/insertion to utilize dt_next pointers in gfc_symbol.
215 * trans-types.c (gfc_get_derived_type): Change derived type linked
216 list search to utilize dt_next pointers in gfc_symbol.
217
218 2018-07-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
219
220 * trans-intrinsic.c: (gfc_conv_intrinsic_minmax): Emit MIN_MAX_EXPR
221 or IFN_FMIN/FMAX sequence to calculate the min/max when possible.
222
223 2018-07-18 Janus Weil <janus@gcc.gnu.org>
224 Thomas Koenig <tkoenig@gcc.gnu.org>
225
226 PR fortran/85599
227 * dump-parse-tree.c (show_attr): Add handling of implicit_pure.
228 * frontend-passes.c (do_warn_function_elimination): Do not warn for
229 pure functions.
230 * gfortran.h: Add prototypes for gfc_pure_function and
231 gfc_implicit_pure_function.
232 * gfortran.texi: Add chapter on evaluation of logical expressions.
233 * invoke.texi: Mention that -Wfunction-elimination is implied
234 by -Wextra.
235 * lang.opt: Make -Wextra imply -Wfunction-elimination.
236 * resolve.c (pure_function): Rename to gfc_pure_function.
237 (gfc_implicit_pure_function): New function.
238 (check_pure_function): Use it here.
239 (impure_function_callback): New function.
240 (resolve_operator): Call it via gfc_expr_walker.
241
242 2018-07-16 Fritz Reese <fritzoreese@gmail.com>
243
244 PR fortran/83184
245 * decl.c (match_old_style_init): Initialize locus of variable expr when
246 creating a data variable.
247 (match_clist_expr): Verify array is explicit shape/size before
248 attempting to allocate constant array constructor.
249
250 2018-07-16 Fritz Reese <fritzoreese@gmail.com>
251
252 PR fortran/86417
253 * module.c (mio_component): Set component->loc when loading from module.
254
255 2018-07-10 Jakub Jelinek <jakub@redhat.com>
256
257 PR fortran/86421
258 * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and
259 _UVAL suffixes.
260 (mio_omp_declare_simd): Save and restore ref, val and uval modifiers
261 on linear clauses. Initialize n->where to gfc_current_locus.
262
263 2018-07-05 Paul Thomas <pault@gcc.gnu.org>
264
265 PR fortran/86408
266 * resolve.c.c (resolve_contained_fntype): Reference to C418 is
267 in F2008 and not F2003.
268 (resolve_function): Ditto in error message. Also, exclude
269 deferred character length results from the error.
270
271 2018-07-05 Fritz Reese <fritzoreese@gmail.com>
272
273 PR fortran/83183
274 PR fortran/86325
275 * expr.c (class_allocatable, class_pointer, comp_allocatable,
276 comp_pointer): New helpers.
277 (component_initializer): Generate EXPR_NULL for allocatable or pointer
278 components. Do not generate initializers for components within BT_CLASS.
279 Do not assign to comp->initializer.
280 (gfc_generate_initializer): Use new helpers; move code to generate
281 EXPR_NULL for class allocatable components into component_initializer().
282
283 2018-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
284
285 PR fortran/82009
286 * trans-decl.c (gfc_process_block_locals): Delete assert and set
287 saved_local_decls = NULL_TREE.
288
289 2018-07-02 Richard Biener <rguenther@suse.de>
290
291 PR lto/86321
292 * trans-types.c (gfc_get_array_type_bounds): Unshare TYPE_FIELDs
293 for the distinct type copy.
294
295 2018-07-02 Paul Thomas <pault@gcc.gnu.org>
296
297 PR fortran/82969
298 PR fortran/86242
299 * trans-array.c (structure_alloc_comps): Do not explicitly copy
300 procedure pointer components.
301
302 2018-07-02 Paul Thomas <pault@gcc.gnu.org>
303
304 PR fortran/45305
305 * expr.c : Add a prototype for scalarize_intrinsic_call.
306 (gfc_simplify_expr): Use scalarize_intrinsic_call for elemental
307 intrinsic function calls.
308 (scalarize_intrinsic_call): Add 'init_flag' argument. Check if
309 the expression or any of the actual argument expressions are
310 NULL. Before calling gfc_check_init_expr, check 'init_flag'.
311 Only simplify the scalarized expressions if there are no errors
312 on the stack.
313 (gfc_check_init_expr): Set 'init_flag' true in the call to
314 scalarize_intrinsic_call.
315
316 2018-06-28 Fritz Reese <fritzoreese@gmail.com>
317
318 PR fortran/82865
319 * decl.c (gfc_match_type): Refactor and check for PDT declarations.
320
321 2018-06-28 Martin Liska <mliska@suse.cz>
322
323 * gfortranspec.c: Include opt-suggestions.h.
324
325 2018-06-25 Fritz Reese <fritzoreese@gmail.com>
326
327 PR fortran/82972
328 PR fortran/83088
329 PR fortran/85851
330 * expr.c (component_initializer): Assign init expr to c->initializer.
331 (generate_isocbinding_initializer): New.
332 (gfc_generate_initializer): Call generate_isocbinding_initializer to
333 generate initializers for c_ptr and c_funptr with -finit-derived.
334
335 2018-06-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
336
337 PR fortran/85983
338 * interface.c (check_dtio_interface1): Delete assert.
339
340 2018-06-22 Paul Thomas <pault@gcc.gnu.org>
341 Rainer Orth <ro@gcc.gnu.org>
342
343 PR fortran/86281
344 * resolve.c (resolve_contained_fntype): Check for the charlen
345 before testing the length.
346
347 2018-06-21 Paul Thomas <pault@gcc.gnu.org>
348
349 PR fortran/49630
350 * resolve.c (resolve_contained_fntype): Change standard ref.
351 from F95 to F2003: C418. Correct a spelling error in a comment.
352 It is an error for an abstract interface to have an assumed
353 character length result.
354 * trans-expr.c (gfc_conv_procedure_call): Likewise change the
355 standard reference.
356
357 2018-06-21 Paul Thomas <pault@gcc.gnu.org>
358
359 PR fortran/83118
360 * resolve.c (resolve_ordinary_assign): Force the creation of a
361 vtable for assignment of non-polymorphic expressions to an
362 unlimited polymorphic object.
363 * trans-array.c (gfc_alloc_allocatable_for_assignment): Use the
364 size of the rhs type for such assignments. Set the dtype, _len
365 and vptrs appropriately.
366 * trans-expr.c (gfc_trans_assignment): Force the use of the
367 _copy function for these assignments.
368
369 2018-06-20 Chung-Lin Tang <cltang@codesourcery.com>
370 Thomas Schwinge <thomas@codesourcery.com>
371 Cesar Philippidis <cesar@codesourcery.com>
372
373 * gfortran.h (gfc_omp_clauses): Add unsigned if_present, finalize
374 bitfields.
375 * openmp.c (enum omp_mask2): Remove OMP_CLAUSE_PRESENT_OR_*. Add
376 OMP_CLAUSE_{IF_PRESENT,FINALIZE}.
377 (gfc_match_omp_clauses): Update handling of copy, copyin, copyout,
378 create, deviceptr, present_of_*. Add support for finalize and
379 if_present.
380 (OACC_PARALLEL_CLAUSES): Remove PRESENT_OR_* clauses.
381 (OACC_KERNELS_CLAUSES): Likewise.
382 (OACC_DATA_CLAUSES): Likewise.
383 (OACC_DECLARE_CLAUSES): Likewise.
384 (OACC_UPDATE_CLAUSES): Add IF_PRESENT clause.
385 (OACC_ENTER_DATA_CLAUSES): Remove PRESENT_OR_* clauses.
386 (OACC_EXIT_DATA_CLAUSES): Add FINALIZE clause.
387 (gfc_match_oacc_declare): Update to OpenACC 2.5 semantics.
388 * trans-openmp.c (gfc_trans_omp_clauses): Add support for IF_PRESENT
389 and FINALIZE.
390
391 2018-06-18 Eric Botcazou <ebotcazou@adacore.com>
392
393 * trans-decl.c (gfc_get_fake_result_decl): Revert latest change.
394
395 2018-06-17 Eric Botcazou <ebotcazou@adacore.com>
396
397 * trans-decl.c (nonlocal_dummy_decl_pset): Delete.
398 (nonlocal_dummy_decls): Likewise.
399 (gfc_nonlocal_dummy_array_decl): Likewise.
400 (gfc_get_symbol_decl): Do not call gfc_nonlocal_dummy_array_decl.
401 (gfc_get_fake_result_decl): Do not generate a new DECL if simply
402 reusing the result of a recursive call.
403 (gfc_generate_function_code): Do not create, insert and destroy
404 nonlocal_dummy_decls.
405
406 2018-06-13 Steven G. Kargl <kargl@gcc.gnu.org>
407
408 PR fortran/86110
409 * array.c (gfc_resolve_character_array_constructor): Avoid NULL
410 pointer dereference.
411
412 2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
413
414 PR fortran/85703
415 * parse.c (decode_oacc_directive): Set gfc_matching_function
416 to false.
417 (decode_omp_directive): Likewise.
418
419 2018-06-13 Cesar Philippidis <cesar@codesourcery.com>
420
421 PR fortran/85702
422 * openmp.c (gfc_match_oacc_wait): Use %C to report error location.
423
424 2018-06-12 David Malcolm <dmalcolm@redhat.com>
425
426 PR other/69968
427 * misc.c (gfc_closest_fuzzy_match): Update for renaming of
428 levenshtein_distance to get_edit_distance.
429
430 2018-06-12 Steven G. Kargl <kargl@gcc.gnu.org>
431
432 PR fortran/44491
433 * expr.c (gfc_check_assign): Select non-NULL locus.
434
435 2018-06-11 Janus Weil <janus@gcc.gnu.org>
436
437 PR fortran/45521
438 * interface.c (compare_ptr_alloc): New function.
439 (generic_correspondence): Call it.
440
441 2018-06-10 Thomas Koenig <tkoenig@gcc.gnu.org>
442
443 * gfortran.h (gfc_expr): Add no_bounds_check field.
444 * frontend-passes.c (get_array_inq_function): Set no_bounds_check
445 on function and function argument.
446 (inline_matmul_assign): Set no_bounds_check on zero expression
447 and on lhs of zero expression.
448 Also handle A1B2 case if realloc on assigment is active.
449 * trans-array.c (gfc_conv_array_ref): Don't do range checking
450 if expr has no_bounds_check set.
451 (gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr
452 has it set.
453 * trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check
454 on lss and lss if the corresponding expressions have it set.
455
456 2018-06-10 Dominique d'Humieres <dominiq@gcc.gnu.org>
457
458 PR fortran/79854
459 * trans-const.c: Remove include "diagnostic-core.h".
460 (gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable.
461
462 2018-06-10 Janus Weil <janus@gcc.gnu.org>
463
464 PR fortran/85088
465 * decl.c (match_attr_spec): Synchronize the DECL_* enum values with the
466 INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec'
467 and remove a TODO note.
468 * gfortran.h: Add a comment to sym_intent.
469
470 2018-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
471
472 PR fortran/38351
473 * resolve.c (resolve_operator): Provide better error message for
474 derived type entity used in an binary intrinsic numeric operator.
475
476 2018-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
477
478 PR fortran/85138
479 PR fortran/85996
480 PR fortran/86051
481 * decl.c (gfc_match_char_spec): Use private namespace in attempt to
482 reduce a charlen to a constant.
483
484 2018-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
485
486 PR fortran/78278
487 * data.c (gfc_assign_data_value): Re-arrange code to allow for
488 an error for double initialization of CHARACTER entities.
489
490 2018-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
491
492 PR fortran/63514
493 * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.
494
495 2018-06-08 Thomas Koenig <tkoenig@gcc.gnu.org>
496
497 PR fortran/85631
498 * trans.h (gfc_ss): Add field no_bounds_check.
499 * trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
500 ss->no_bounds_check is set, do not use runtime checks.
501 * trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
502 for reallocatable lhs.
503
504 2018-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
505
506 PR fortran/86059
507 * array.c (match_array_cons_element): NULL() cannot be in an
508 array constructor.
509
510 2018-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
511
512 PR fortran/78571
513 * data.c (create_character_initializer): Return early if type is
514 incompatible with CHARACTER.
515
516 2018-06-07 Steven G. Kargl <kargl@gcc.gnu.org>
517
518 PR fortran/86045
519 * simplify.c (gfc_simplify_mod): Re-arrange code to test whether
520 'P' is zero and issue an error if it is.
521
522 2018-06-06 Thomas Koenig <tkoenig@gcc.gnu.org>
523
524 PR fortran/85641
525 * frontend-passes.c (is_fe_temp): Add prototype.
526 (realloc_string_callback): Early return for frontend-generated
527 temporary.
528
529 2018-06-05 Cesar Philippidis <cesar@codesourcery.com>
530
531 PR fortran/85701
532
533 * openmp.c (gfc_resolve_oacc_declare): Error on functions and
534 subroutine data clause arguments.
535
536 2018-06-04 Steven G. Kargl <kargl@gcc.gnu.org>
537
538 PR fortran/85981
539 * resolve.c (resolve_allocate_deallocate): Check errmsg is default
540 character kind.
541
542 2018-06-03 Paul Thomas <pault@gcc.gnu.org>
543
544 PR fortran/36497
545 * decl.c (variable_decl): Use gfc_add_type for cray pointees.
546
547 2018-06-01 Steven G. Kargl <kargl@gcc.gnu.org>
548
549 PR fortran/63570
550 * check.c (gfc_check_random_init): New function. Check arguments of
551 RANDOM_INIT.
552 * gfortran.h (GFC_ISYM_RANDOM_INIT): New enum token.
553 * intrinsic.c (add_subroutines): Add RANDOM_INIT to list of
554 subroutines.
555 (gfc_check_intrinsic_standard): Introduce Fortran 2018 check.
556 * intrinsic.h: Add prototypes for gfc_check_random_init and
557 gfc_resolve_random_init
558 * intrinsic.texi: Document new intrinsic subprogram.
559 * iresolve.c (gfc_resolve_random_init): Resolve routine name.
560 * trans-decl.c: Declare gfor_fndecl_random_init
561 * trans-intrinsic.c (conv_intrinsic_random_init): New function.
562 Translate call to RANDOM_INIT.
563 (gfc_conv_intrinsic_subroutine): Call it.
564 * trans.h: Declare gfor_fndecl_random_init
565
566 2018-05-27 Steven G. Kargl <kargl@gcc.gnu.org>
567
568 * decl.c (match_data_constant): Fortran 2018 allows pointer
569 initialization in a data statement.
570
571 2018-05-25 Janus Weil <janus@gcc.gnu.org>
572
573 PR fortran/85839
574 * match.c (gfc_match_block_data): Call gfc_notify_std to warn about
575 an obsolescent feature in Fortran 2018.
576 (gfc_match_equivalence): Ditto.
577 * resolve.c (resolve_common_blocks): Ditto.
578 (gfc_resolve_forall): Ditto.
579 * symbol.c (gfc_define_st_label): Ditto.
580
581 2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
582
583 PR fortran/85543
584 * resolve.c (update_current_proc_array_outer_dependency): Avoid NULL
585 pointer dereference.
586
587 2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
588
589 PR fortran/85780
590 * resolve.c (resolve_fl_procedure): Avoid NULL dereference.
591
592 2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
593
594 PR fortran/85779
595 * decl.c (gfc_match_derived_decl): Fix NULL point dereference.
596
597 2018-05-24 Steven G. Kargl <kargl@gcc.gnu.org>
598
599 PR fortran/85895
600 * resolve.c (resolve_sync): Resolve expression before checking for
601 an error.
602
603 2018-05-22 Janus Weil <janus@gcc.gnu.org>
604
605 PR fortran/85841
606 * libgfortran.h: Remove the macros GFC_STD_F2008_TS and
607 GFC_STD_OPT_F08TS.
608 * error.c (notify_std_msg): Remove GFC_STD_F2008_TS.
609 * options.c (set_default_std_flags): Ditto.
610 (gfc_handle_option): Make -std=f2008ts an alias for -std=f2018.
611 * array.c (gfc_match_array_spec): Replace GFC_STD_F2008_TS by
612 GFC_STD_F2018.
613 * check.c (gfc_check_atomic, gfc_check_event_query,
614 gfc_check_c_f_pointer, gfc_check_c_f_procpointer, gfc_check_c_funloc,
615 gfc_check_c_loc, gfc_check_num_images, gfc_check_this_image): Ditto.
616 * decl.c (gfc_verify_c_interop_param, gfc_match_decl_type_spec): Ditto.
617 * intrinsic.c (add_functions, add_subroutines,
618 gfc_check_intrinsic_standard): Ditto.
619 * iso-c-binding.def: Ditto.
620 * iso-fortran-env.def: Ditto.
621 * match.c (gfc_match_event_post, gfc_match_event_wait,
622 gfc_match_fail_image, gfc_match_form_team, gfc_match_change_team,
623 gfc_match_end_team, gfc_match_sync_team): Ditto.
624 * gfortran.texi: Remove mention of -std=f2008ts.
625 Move TSs into F2018 section.
626 * invoke.texi: Update documentation of -std=f2008ts.
627
628 2018-05-21 Janus Weil <janus@gcc.gnu.org>
629
630 PR fortran/85841
631 * libgfortran.h: New macros GFC_STD_OPT_*.
632 * error.c (notify_std_msg): New function.
633 (gfc_notify_std): Adjust such that it can handle combinations of
634 GFC_STD_* flags in the 'std' argument, not just a single one.
635 * match.c (match_arithmetic_if, gfc_match_if): Reject arithmetic if
636 in Fortran 2018.
637 (gfc_match_stopcode): Use GFC_STD_OPT_* macros.
638 * options.c (set_default_std_flags): Warn for F2018 deleted features
639 by default.
640 (gfc_handle_option): F2018 deleted features are allowed in earlier
641 standards.
642 * symbol.c (gfc_define_st_label, gfc_reference_st_label): Reject
643 nonblock do constructs in Fortran 2018.
644
645 2018-05-20 Paul Thomas <pault@gcc.gnu.org>
646
647 PR fortran/80657
648 * resolve.c (flag_fn_result_spec): Use the 'sym' argument to
649 test for self refs to the function result in the character len
650 expression. If a self reference is found, emit an error and
651 return true.
652 (resolve_fntype): Use the function symbol in the calls to the
653 above.
654
655 2018-05-20 Paul Thomas <pault@gcc.gnu.org>
656
657 PR fortran/49636
658 * trans-array.c (gfc_get_array_span): Renamed from
659 'get_array_span'.
660 (gfc_conv_expr_descriptor): Change references to above.
661 * trans-array.h : Add prototype for 'gfc_get_array_span'.
662 * trans-intrinsic.c (gfc_conv_associated): Add pre and post
663 blocks for 'arg1'.
664 * trans-stmt.c (trans_associate_var): If the associate name is
665 a subref array pointer, use gfc_get_array_span for the span.
666
667 2018-05-20 Paul Thomas <pault@gcc.gnu.org>
668
669 PR fortran/82275
670 * match.c (gfc_match_type_spec): Go through the array ref and
671 decrement 'rank' for every dimension that is an element.
672
673 2018-05-19 Paul Thomas <pault@gcc.gnu.org>
674
675 PR fortran/82923
676 PR fortran/66694
677 PR fortran/82617
678 * trans-array.c (gfc_alloc_allocatable_for_assignment): Set the
679 charlen backend_decl of the rhs expr to ss->info->string_length
680 so that the value in the current scope is used.
681
682 2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
683
684 PR fortran/63529
685 * gfortran.texi: Clarify documentation for Cray pointer and
686 assumed-sized array.
687
688 2018-05-13 Paul Thomas <pault@gcc.gnu.org>
689
690 PR fortran/85742
691 * trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
692 of 'size'. If the element type is a pointer use the size of the
693 TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
694 case, set the size to zero.
695
696 2018-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
697
698 * gfortran.h: Remove prototype.
699 * symbol.c (gfc_new_undo_checkpoint): Remove unused function.
700
701 2018-05-11 Steven G. Kargl <kargl@gcc.gnu.org>
702
703 PR fortran/85542
704 * expr.c (check_inquiry): Avoid NULL pointer dereference.
705
706 2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
707
708 PR fortran/85687
709 * check.c (gfc_check_rank): Check that the argument is a data object.
710
711 2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
712
713 PR fortran/85521
714 * array.c (gfc_resolve_character_array_constructor): Substrings
715 with upper bound smaller than lower bound are zero length strings.
716
717 2018-05-10 Steven G. Kargl <kargl@gcc.gnu.org>
718
719 PR fortran/70870
720 * data.c (gfc_assign_data_value): Check that a data object does
721 not also have default initialization.
722
723 2018-05-10 Marek Polacek <polacek@redhat.com>
724
725 PR fortran/85735
726 * options.c (gfc_post_options): Set main_input_filename.
727
728 2018-05-10 Thomas Koenig <tkoenig@gcc.gnu.org>
729
730 PR fortran/54613
731 * intrinsic.texi: Document BACK for MINLOC and MAXLOC.
732
733 2018-05-10 Paul Thomas <pault@gcc.gnu.org>
734
735 PR fortran/68846
736 PR fortran/70864
737 * resolve.c (get_temp_from_expr): The temporary must not have
738 dummy or intent attributes.
739
740 2018-05-08 Thomas Koenig <tkoenig@gcc.gnu.org>
741
742 PR fortran/54613
743 * check.c (gfc_check_minmaxloc): Remove error for BACK not being
744 implemented. Use gfc_logical_4_kind for BACK.
745 * simplify.c (min_max_choose): Add optional argument back_val.
746 Handle it.
747 (simplify_minmaxloc_to_scalar): Add argument back_val. Pass
748 back_val to min_max_choose.
749 (simplify_minmaxloc_to_nodim): Likewise.
750 (simplify_minmaxloc_to_array): Likewise.
751 (gfc_simplify_minmaxloc): Add argument back, handle it.
752 Pass back_val to specific simplification functions.
753 (gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
754 pass it on to gfc_simplify_minmaxloc.
755 (gfc_simplify_maxloc): Likewise.
756 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
757 comment. If BACK is true, use greater or equal (or lesser or
758 equal) insteal of greater (or lesser). Mark the condition of
759 having found a value which exceeds the limit as unlikely.
760
761 2018-05-07 Jeff Law <law@redhat.comg>
762
763 * scanner.c (preprocessor_line): Call linemap_add after a line
764 directive that changes the current filename.
765
766 2018-05-06 Andre Vehreschild <vehre@gcc.gnu.org>
767
768 PR fortran/85507
769 * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension
770 introduced by r259385.
771 * trans-intrinsic.c (conv_caf_send): Always report a dependency for
772 same variables in coarray assignments.
773
774 2018-05-02 Tom de Vries <tom@codesourcery.com>
775
776 PR libgomp/82428
777 * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define.
778
779 2018-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
780
781 PR fortran/85520
782 * decl.c (gfc_match_char_spec): Check for negative length and set to 0.
783
784 2018-04-14 Andre Vehreschild <vehre@gcc.gnu.org>
785
786 PR fortran/81773
787 PR fortran/83606
788 * dependency.c (gfc_dep_resolver): Coarray indexes are to be ignored
789 during dependency computation. They define no data dependency.
790 * trans-array.c (conv_array_index_offset): The stride can not be set
791 here, prevent fail.
792 * trans-intrinsic.c (conv_caf_send): Add creation of temporary array
793 for caf_get's result and copying to the array with vectorial
794 indexing.
795
796 2018-04-14 Thomas Koenig <tkoenig@gcc.gnu.org>
797
798 PR fortran/85387
799 * frontend-passes.c (traverse_io_block): Check for start, end or
800 stride being defined by an outer implied DO loop.
801
802 2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org>
803
804 PR fortran/83064
805 PR testsuite/85346
806 * trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
807 for annotation and remove dependence on -ftree-parallelize-loops.
808
809 2018-04-10 Jakub Jelinek <jakub@redhat.com>
810
811 PR fortran/85313
812 * openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
813 (resolve_oacc_nested_loops): Likewise. Formatting fix.
814
815 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
816
817 PR fortran/83064
818 * trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
819 parallell processing of DO CONCURRENT -ftree-parallelize-loops
820 is set.
821
822 2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
823
824 PR fortran/51260
825 * resolve.c (resolve_variable): Simplify cases where access to a
826 parameter array results in a single constant.
827
828 2018-04-02 Thomas Koenig <tkoenig@gcc.gnu.org>
829
830 PR fortran/85102
831 * decl.c (variable_decl): If upper or lower bounds simplify
832 to a constant, use that.
833
834 2018-03-30 Paul Thomas <pault@gcc.gnu.org>
835
836 PR fortran/84931
837 * simplify.c (gfc_convert_constant): Handle case of array
838 constructors within an array that has no iterator and improve
839 the conciseness of this section of code.
840
841 2017-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
842
843 PR fortran/85111
844 * array.c (gfc_resolve_character_array_constructor): Early
845 exit for zero-size arrays.
846 * simplify.c (simplify_transformation_to_array): Exit early
847 if the result size is zero.
848 (simplify_minmaxloc_to_array): Likewise.
849
850 2018-03-28 Mikael Morin <mikael@gcc.gnu.org>
851
852 PR fortran/69497
853 * symbol.c (gfc_symbol_done_2): Start freeing namespaces
854 from the root.
855 (gfc_free_namespace): Restore assert (revert r258839).
856
857 2018-03-28 Jakub Jelinek <jakub@redhat.com>
858
859 * gfortran.h (gfc_dt): Rename default_exp field to dec_ext.
860 * ioparm.def (IOPARM_dt_default_exp): Rename to ...
861 (IOPARM_dt_dec_ext): ... this.
862 * trans-io.c (build_dt): Adjust for default_exp renaming to
863 dec_ext and IOPARM_dt_default_exp renaming to IOPARM_dt_dec_ext.
864 * io.c (match_io): Likewise.
865
866 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
867
868 PR fortran/85084
869 * frontend-passes.c (gfc_run_passes): Do not run front-end
870 optimizations if a previous error occurred.
871
872 2018-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
873 Harald Anlauf <anlauf@gmx.de>
874
875 PR fortran/85083
876 * primary.c (gfc_convert_to_structure_constructor): Check
877 conformance of argument types in structure constructor.
878
879 2018-03-26 Thomas Koenig <tkoenig@gcc.gnu.org>
880
881 PR fortran/66709
882 * io.c: Include constructor.h.
883 (resolve_tag_format): For a constant character array, concatenate
884 into a single character expression.
885
886 2018-03-25 Seth Johnson <johnsonsr@ornl.gov>
887 Dominique d'Humieres <dominiq@gcc.gnu.org>
888
889 PR fortran/84924
890 * check.c (gfc_check_c_f_pointer): Allow scalar noninteroperable
891 scalar derived type with -std=f2003 and -std=f2008.
892
893 2018-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
894 Dominique d'Humieres <dominiq@gcc.gnu.org>
895
896 PR fortran/69497
897 * symbol.c (gfc_free_namespace): Delete the assert and only if
898 refs count is equals zero, free the namespace. Otherwise,
899 something is halfway and other errors will resound.
900
901 2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
902
903 PR fortran/70068
904 * expr.c (find_substring_ref): Change types of start, end
905 and length variables to gfc_charlen_t. Set length to zero
906 for empty substring.
907
908 2018-03-24 Steven G. Kargl <kargl@gcc.gnu.org>
909
910 PR fortran/42651
911 * decl.c (check_function_name): Improved error message
912 (gfc_match_volatile, gfc_match_asynchronous) Use check_function_name.
913
914 2018-03-22 Steven G. Kargl <kargl@gcc.gnu.org>
915
916 PR fortran/84922
917 * decl.c (get_proc_name): If the MODULE prefix appears in interface
918 body, then it must appear on the contained subroutine or function.
919 While here, fix nearby mis-indented code.
920
921 2018-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
922 Harald Anlauf <anlauf@gmx.de>
923
924 PR fortran/84957
925 * trans-types.c (gfc_sym_type): Do not dereference NULL pointer.
926
927 2018-03-21 Janne Blomqvist <jb@gcc.gnu.org>
928
929 PR fortran/84615
930 * trans-expr.c (gfc_conv_procedure_call): Convert charlen to
931 gfc_charlen_type_node when calling procedure.
932
933 2018-03-20 Steven G. Kargl <kargl@gcc.gnu.org>
934
935 PR fortran/85001
936 * interface.c (symbol_rank): Remove bogus null pointer check that
937 crept in when translating a ternary operator into an if-else
938 constructor.
939
940 2018-03-19 Thomas Koenig <tkoenig@gcc.gnu.org>
941
942 PR fortran/84931
943 * simplify.c (gfc_convert_constant): Correctly handle iterators
944 for type conversion.
945
946 2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
947
948 PR fortran/77414
949 * decl.c (get_proc_name): Check for a subroutine re-defined in
950 the contain portion of a subroutine. Change language of existing
951 error message to better describe the issue. While here fix whitespace
952 issues.
953
954 2018-03-18 Steven G. Kargl <kargl@gcc.gnu.org>
955
956 PR fortran/65453
957 * decl.c (get_proc_name): Catch clash between a procedure statement
958 and a contained subprogram
959
960 2018-03-16 Steven G. Kargl <kargl@gcc.gnu.org>
961
962 PR fortran/69395
963 * decl.c (merge_array_spec): Correct the error condition.
964
965 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
966
967 PR fortran/78741
968 * decl.c (get_proc_name): Check for clash of entry name with
969 subroutine name.
970
971 2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
972
973 PR fortran/69395
974 * decl.c (merge_array_spec): Limit the merging to maximum allowed
975 dimensions, and issue error message if limit is exceeded.
976
977 2018-03-13 Steven G. Kargl <kargl@gcc.gnu.org>
978
979 * check.c (gfc_check_kill_sub): Remove check for INTEGER(4) or (8).
980 * intrinsic.c (add_functions): Remove reference to gfc_resolve_kill.
981 (add_subroutines): Remove reference to gfc_resolve_kill_sub.
982 * intrinsic.texi: Update documentation.
983 * iresolve.c (gfc_resolve_kill, gfc_resolve_kill_sub): Remove.
984 * trans-decl.c (gfc_build_intrinsic_function_decls): Add
985 gfor_fndecl_kill and gfor_fndecl_kill_sub
986 * trans-intrinsic.c (conv_intrinsic_kill, conv_intrinsic_kill_sub): new
987 functions.
988 (gfc_conv_intrinsic_function): Use conv_intrinsic_kill.
989 (gfc_conv_intrinsic_subroutine): Use conv_intrinsic_kill_sub.
990 * trans.h: Declare gfor_fndecl_kill and gfor_fndecl_kill_sub.
991
992 2018-03-11 Paul Thomas <pault@gcc.gnu.org>
993
994 PR fortran/84546
995 * trans-array.c (structure_alloc_comps): Make sure that the
996 vptr is copied and that the unlimited polymorphic _len is used
997 to compute the size to be allocated.
998 * trans-expr.c (gfc_get_class_array_ref): If unlimited, use the
999 unlimited polymorphic _len for the offset to the element.
1000 (gfc_copy_class_to_class): Set the new 'unlimited' argument.
1001 * trans.h : Add the boolean 'unlimited' to the prototype.
1002
1003 2018-03-11 Steven G. Kargl <kargl@gcc.gnu.org>
1004
1005 PR fortran/83939
1006 * resolve.c (resolve_fl_procedure): Enforce F2018:C15100.
1007
1008 2018-03-11 Steven G. Kargl <kargls@gcc.gnu.org>
1009
1010 * check.c (gfc_check_kill): Check pid and sig are scalar.
1011 (gfc_check_kill_sub): Restrict kind to 4 and 8.
1012 * intrinsic.c (add_function): Sort keyword list. Add pid and sig
1013 keywords for KILL. Remove redundant *back="back" in favor of the
1014 original *bck="back".
1015 (add_subroutines): Sort keyword list. Add pid and sig keywords
1016 for KILL.
1017 * intrinsic.texi: Fix documentation to consistently use pid and sig.
1018 * iresolve.c (gfc_resolve_kill): Kind can only be 4 or 8. Choose the
1019 correct function.
1020 (gfc_resolve_rename_sub): Add comment.
1021
1022 2018-03-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1023
1024 PR fortran/66128
1025 * simplify.c (simplify_transformation): Return default result for
1026 empty array argument.
1027 (gfc_simplify_all): Remove special-case handling for zerosize.
1028 (gfc_simplify_any): Likewise.
1029 (gfc_simplify_count): Likewise.
1030 (gfc_simplify_iall): Likewise.
1031 (gfc_simplify_iany): Likewise.
1032 (gfc_simplify_iparity): Likewise.
1033 (gfc_simplify_minval): Likewise.
1034 (gfc_simplify_maxval): Likewise.
1035 (gfc_simplify_norm2): Likewise.
1036 (gfc_simplify_product): Likewise.
1037 (gfc_simplify_sum): Likewise.
1038
1039 2018-03-10 Steven G. Kargl <kargl@gcc.gnu.org>
1040
1041 PR fortran/84734
1042 * arith.c (check_result, eval_intrinsic): If result overflows, pass
1043 the expression up the chain instead of a NULL pointer.
1044
1045 2018-03-07 Steven G. Kargl <kargl@gcc.gnu.org>
1046
1047 PR fortran/64124
1048 PR fortran/70409
1049 * decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.
1050
1051 2017-03-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1052
1053 PR fortran/84697
1054 PR fortran/66128
1055 * expr.c (simplify_parameter_variable): If p is a size zero array
1056 and not an ARRAY_EXPR insert an empty array constructor and
1057 return.
1058 * gfortran.h: Add prototype for gfc_is_size_zero_array.
1059 * simplify.c (is_size_zero_array): Make non-static and rename into
1060 (gfc_is_size_zero_array): Check for parameter arrays of zero
1061 size by comparing shape and absence of constructor.
1062 (gfc_simplify_all): Use gfc_is_size_zero_array instead of
1063 is_size_zero_array.
1064 (gfc_simplify_count): Likewise.
1065 (gfc_simplify_iall): Likewise.
1066 (gfc_simplify_iany): Likewise.
1067 (gfc_simplify_iparity): Likewise.
1068 (gfc_simplify_minval): Likewise.
1069 (gfc_simplify_maxval): Likewise.
1070 (gfc_simplify_product): Likewise.
1071 (gfc_simplify_sum): Likewise.
1072
1073 2018-03-06 Steven G. Kargl <kargl@gcc.gnu.org>
1074
1075 PR fortran/56667
1076 * primary.c (match_sym_complex_part): Give the matcher for an implied
1077 do-loop a chance to run.
1078
1079 2018-03-03 Harald Anlauf <anlauf@gmx.de>
1080
1081 PR fortran/71085
1082 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
1083 dereference NULL pointer.
1084
1085 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
1086
1087 PR fortran/66128
1088 * simplify.c (is_size_zero_array): New function to check for size
1089 zero array.
1090 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1091 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1092 gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
1093 gfc_simplify_product, gfc_simplify_sum): Use it, and implement
1094 requirements from F2018.
1095
1096 2018-03-03 Steven G. Kargl <kargl@gcc.gnu.org>
1097
1098 PR fortran/51434
1099 * simplify.c (gfc_simplify_transfer): Resolve mold.
1100
1101 2018-03-03 Paul Thomas <pault@gcc.gnu.org>
1102
1103 PR fortran/80965
1104 * resolve.c (build_loc_call): Change symtree name from 'loc' to
1105 '_loc'.
1106
1107 2018-03-01 Paul Thomas <pault@gcc.gnu.org>
1108
1109 PR fortran/84219
1110 * target-memory.c (gfc_interpret_derived): Assert that BT_VOID
1111 components are caf tokens.
1112 (gfc_target_interpret_expr): Treat BT_VOID expressions as
1113 integers.
1114
1115 2018-03-01 Paul Thomas <pault@gcc.gnu.org>
1116
1117 PR fortran/84538
1118 * class.c (class_array_ref_detected): Remove the condition that
1119 there be no reference after the array reference.
1120 (find_intrinsic_vtab): Remove excess whitespace.
1121 * trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
1122 as 'base and call build_class_array_ref earlier.
1123
1124 2018-02-28 Paul Thomas <pault@gcc.gnu.org>
1125
1126 PR fortran/83901
1127 * trans-stmt.c (trans_associate_var): Make sure that the se
1128 expression is a pointer type before converting it to the symbol
1129 backend_decl type.
1130
1131 2018-02-25 Steven G. Kargl <kargl@gcc.gnu.org>
1132
1133 PR fortran/83633
1134 * decl.c (variable_decl): Check that an explicit-shape-array with
1135 nonconstant bounds is allowed.
1136
1137 2018-02-25 Paul Thomas <pault@gcc.gnu.org>
1138
1139 PR fortran/84523
1140 * trans-intrinsic.c (gfc_conv_allocated): If the argument se
1141 has a pre block, add it to the expression pre block.
1142
1143 2018-02-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1144
1145 PR fortran/78238
1146 * gfortran.h (gfc_integer_4_kind): Define.
1147 * resolve.c (resolve_select_type): Make sure that the
1148 kind of c->high is gfc_integer_4_kind.
1149
1150 2018-02-24 Steven G. Kargl <kargl@gcc.gnu.org>
1151
1152 PR fortran/30792
1153 * decl.c (gfc_match_data): Check for invalid substring in
1154 data-implied-do
1155
1156 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
1157
1158 * intrinsic.texi: Arguments to MATMUL cannot both be rank one.
1159
1160 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
1161
1162 PR fortran/84511
1163 * trans-io.c (transfer_expr): Deal with C_LOC in transfer statement.
1164
1165 2018-02-23 Steven G. Kargl <kargl@gcc.gnu.org>
1166
1167 PR fortran/84346
1168 * interface.c (compare_actual_formal): Issue error if keyword is
1169 used in a statement function.
1170
1171 2018-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1172
1173 PR fortran/84506
1174 * trans-io.c (set_parameter_value_inquire): Adjust range check of
1175 negative unit values for kind=8 units to the kind=4 negative limit.
1176
1177 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
1178
1179 PR fortran/83149
1180 * trans-types.c (gfc_sym_type): Test sym->ns->proc_name before
1181 accessing its components.
1182
1183 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
1184
1185 PR fortran/83149
1186 * trans-decl.c (gfc_finish_var_decl): Test sym->ns->proc_name
1187 before accessing its components.
1188
1189 2018-02-23 Paul Thomas <pault@gcc.gnu.org>
1190
1191 PR fortran/83148
1192 * trans-const.c : Clean up some whitespace issues.
1193 * trans-expr.c (gfc_conv_initializer): If an iso_c_binding
1194 derived type has a kind value of zero, set it to the default
1195 integer kind.
1196
1197 2018-02-23 Janne Blomqvist <jb@gcc.gnu.org>
1198
1199 PR fortran/84519
1200 * trans-decl.c (gfc_build_builtin_function_decls): Add bool
1201 argument to stop and error stop decls.
1202 * trans-stmt.c (gfc_trans_stop): Add false value to argument
1203 lists.
1204
1205 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
1206
1207 PR 78534
1208 PR 84509
1209 * trans-decl.c (gfc_build_builtin_function_decls): Pass
1210 gfc_int8_type node to pause_numeric, size_type_node to
1211 pause_string.
1212 * trans-stmt.c (gfc_trans_pause): Likewise.
1213
1214 2018-02-22 Janne Blomqvist <jb@gcc.gnu.org>
1215
1216 * gfortran.texi: Update Coarray API description.
1217 * trans-decl.c (gfc_build_builtin_function_decls): Use size_t for
1218 character lengths, int for exit codes.
1219 (generate_coarray_sym_init): Use size_t for character length.
1220 * trans-intrinsic.c (conv_co_collective): Likewise.
1221 * trans-stmt.c (gfc_trans_lock_unlock): Likewise.
1222 (gfc_trans_event_post_wait): Likewise.
1223 (gfc_trans_sync): Likewise.
1224 (gfc_trans_stop): Use size_t for character lengths, int for exit
1225 codes.
1226
1227 2018-02-20 Thomas Koenig <tkoenig@gcc.gnu.org>
1228
1229 PR fortran/48890
1230 PR fortran/83823
1231 * primary.c (gfc_convert_to_structure_constructor):
1232 For a constant string constructor, make sure the length
1233 is correct.
1234
1235 2018-02-19 Paul Thomas <pault@gcc.gnu.org>
1236
1237 PR fortran/83344
1238 PR fortran/83975
1239 * resolve.c (resolve_assoc_var): Rearrange the logic for the
1240 determination of the character length of associate names. If
1241 the associate name is missing a length expression or the length
1242 expression is not a constant and the target is not a variable,
1243 make the associate name allocatable and deferred length.
1244 * trans-decl.c (gfc_get_symbol_decl): Null the character length
1245 backend_decl for deferred length associate names that are not
1246 variables. Set 'length' to gfc_index_zero_node for character
1247 associate names, whose character length is a PARM_DECL.
1248
1249 2018-02-19 Thomas Koenig <tkoenig@gcc.gnu.org>
1250
1251 PR fortran/35339
1252 * frontend-passes.c (traverse_io_block): Remove workaround for
1253 PR 80945.
1254
1255 2018-02-19 Andre Vehreschild <vehre@gcc.gnu.org>
1256
1257 * gfortran.texi: Document additional src/dst_type. Fix some typos.
1258 * trans-decl.c (gfc_build_builtin_function_decls): Declare the new
1259 argument of _caf_*_by_ref () with * e { get, send, sendget }.
1260 * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Add the type of the
1261 data referenced when generating a call to caf_get_by_ref ().
1262 (conv_caf_send): Same but for caf_send_by_ref () and
1263 caf_sendget_by_ref ().
1264
1265 2018-02-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1266
1267 PR fortran/84389
1268 * io.c (check_format): Allow FMT_COLON.
1269
1270 2018-02-18 Paul Thomas <pault@gcc.gnu.org>
1271
1272 PR fortran/80945
1273 * trans-array.c (gfc_conv_expr_descriptor): Set parmtype from
1274 the typenode in the case of deferred length characters.
1275
1276 2018-02-17 Thomas Koenig <tkoenig@gcc.gnu.org>
1277
1278 PR fortran/84270
1279 * frontend-passes (scalarized_expr): If the expression
1280 is an assumed size array, leave in the last reference
1281 and pass AR_SECTION instead of AR_FULL to gfc_resolve
1282 in order to avoid an error.
1283
1284 2018-02-17 Paul Thomas <pault@gcc.gnu.org>
1285
1286 PR fortran/84115
1287 * resolve.c (resolve_assoc_var): If a non-constant target expr.
1288 has no string length expression, make the associate variable
1289 into a deferred length, allocatable symbol.
1290 * trans-decl.c (gfc_is_reallocatable_lhs): Add and use a ptr to
1291 the symbol.
1292 * trans-stmt.c (trans_associate_var): Null and free scalar
1293 associate names that are allocatable. After assignment, remove
1294 the allocatable attribute to prevent reallocation.
1295
1296 2018-02-16 Jakub Jelinek <jakub@redhat.com>
1297
1298 PR fortran/84418
1299 * trans-openmp.c (gfc_trans_omp_clauses): For OMP_CLAUSE_LINEAR_REF
1300 kind set OMP_CLAUSE_LINEAR_STEP to TYPE_SIZE_UNIT times last_step.
1301
1302 2018-02-16 Dominique d'Humieres <dominiq@gcc.gnu.org>
1303
1304 PR fortran/84354
1305 * decl.c (gfc_get_pdt_instance): Replace '%qs' with %qs.
1306
1307 2018-02-15 Janus Weil <janus@gcc.gnu.org>
1308
1309 PR fortran/84409
1310 * interface.c (check_dtio_arg_TKR_intent): Add a check for character
1311 length.
1312
1313 2018-02-14 Janus Weil <janus@gcc.gnu.org>
1314
1315 PR fortran/84385
1316 * match.c (gfc_match_select_type): Fix check for selector in
1317 SELECT TYPE statement.
1318
1319 2018-02-13 Janus Weil <janus@gcc.gnu.org>
1320
1321 PR fortran/84313
1322 * symbol.c (check_conflict): Reject procedure pointers in common blocks.
1323
1324 2018-02-13 Alastair McKinstry <alastair.mckinstry@sceal.ie>
1325 Janne Blomqvist <jb@gcc.gnu.org>
1326
1327 * module.c (dump_module): Use lbasename to ensure that module
1328 files are reproducible.
1329
1330 2018-02-12 Janus Weil <janus@gcc.gnu.org>
1331
1332 PR fortran/84273
1333 * resolve.c (resolve_component): Fix checks of passed argument in
1334 procedure-pointer components.
1335
1336 2018-02-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1337
1338 PR fortran/35299
1339 * resolve.c (resolve_formal_arglist): Update error message.
1340
1341 2018-02-11 Andre Vehreschild <vehre@gcc.gnu.org>
1342
1343 * gfortran.texi: Fix typos in documentation of caf_register ().
1344 * trans-array.c (structure_alloc_comps): Only register a component of
1345 a derived typed corray, not of an ultimate component coarray.
1346
1347 2018-02-11 Steven G. Kargl <kargl@gcc.gnu.org>
1348
1349 PR fortran/54223
1350 PR fortran/84276
1351 * interface.c (compare_actual_formal): Add in_statement_function
1352 bool parameter. Skip check of INTENT attribute for statement
1353 functions. Arguments to a statement function cannot be optional,
1354 issue error for missing argument.
1355 (gfc_procedure_use, gfc_ppc_use, gfc_arglist_matches_symbol): Use
1356 in_statement_function.
1357
1358 2018-02-11 Paul Thomas <pault@gcc.gnu.org>
1359
1360 PR fortran/84074
1361 * trans-expr.c (gfc_conv_derived_to_class): Set the use_offset
1362 flag. If the is a vector subscript or the expression is not a
1363 variable, make the descriptor one-based.
1364
1365 2018-02-10 Paul Thomas <pault@gcc.gnu.org>
1366
1367 PR fortran/84141
1368 PR fortran/84155
1369 * trans-array.c (gfc_array_init_size): Revert the change made
1370 in revision 257356 setting the dtype.
1371 * trans-types.c (gfc_get_dtype): Do not use the cached dtype.
1372 Call gfc_get_dtype_rank_type every time.
1373
1374 PR fortran/56691
1375 * trans-array.c (gfc_conv_expr_descriptor): If the source array
1376 is a descriptor type, use its offset, removing the condition
1377 that is be a class expression.
1378
1379 2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org>
1380
1381 PR fortran/82994
1382 * match.c (gfc_match_deallocate): Check for NULL pointer.
1383
1384 2018-02-07 Thomas Koenig <tkoenig@gcc.gnu.org>
1385
1386 PR fortran/68560
1387 * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
1388 (gfc_conv_intrinsic_function): Call it.
1389
1390 2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org>
1391
1392 PR fortran/82049
1393 * match.c (gfc_match_type_spec): If the charlen is non-NULL, then
1394 try to resolve it. While here return early if possible.
1395
1396 2018-02-04 Paul Thomas <pault@gcc.gnu.org>
1397
1398 PR fortran/84115
1399 * trans-decl.c (gfc_get_symbol_decl): Do not finish the decl of
1400 'length' if the symbol charlen backend_decl is an indirect ref.
1401
1402 2018-02-03 Paul Thomas <pault@gcc.gnu.org>
1403
1404 PR fortran/84141
1405 PR fortran/84155
1406 * trans-array.c (gfc_array_init_size): Instead of gfc_get_dtype
1407 use gfc_get_dtype_rank_type.
1408
1409 2018-02-01 Janne Blomqvist <jb@gcc.gnu.org>
1410
1411 PR 83975
1412 PR 83344
1413 * resolve.c (resolve_assoc_var): Generate an error if
1414 target length unknown.
1415
1416 2018-02-01 Janne Blomqvist <jb@gcc.gnu.org>
1417
1418 PR fortran/83705
1419 * simplify.c (gfc_simplify_repeat): Increase limit for deferring
1420 to runtime, print a warning message.
1421
1422 2018-01-31 Jakub Jelinek <jakub@redhat.com>
1423
1424 PR fortran/84116
1425 * openmp.c (gfc_match_omp_clauses): If all the linear
1426 gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
1427 nor set *head = NULL. Formatting fixes.
1428
1429 2018-01-31 Paul Thomas <pault@gcc.gnu.org>
1430
1431 PR fortran/84088
1432 * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
1433 an address expression passed to an assumed rank dummy, convert
1434 to an indirect reference.
1435
1436 2018-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1437
1438 * dump-parse-tree.c (write_proc): Use sym_name (which may
1439 be sym->binding_label) instead of sym->name.
1440
1441 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org>
1442
1443 * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
1444 of int for slen.
1445
1446 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org>
1447
1448 PR fortran/78534
1449 * trans-expr.c (fill_with_spaces): Use memset instead of
1450 generating loop.
1451 (gfc_trans_string_copy): Improve opportunity to use builtins with
1452 constant lengths.
1453
1454 2018-01-30 Jakub Jelinek <jakub@redhat.com>
1455
1456 PR debug/84131
1457 * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
1458 to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
1459
1460 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1461
1462 PR fortran/84134
1463 * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is
1464 zero, return false.
1465
1466 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1467
1468 PR fortran/84133
1469 * frontend-passes (matmul_to_var_expr): Return early if
1470 in association list.
1471 (inline_matmul_assign): Likewise.
1472
1473 2017-01-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1474
1475 PR fortran/84073
1476 * resolve.c (resolve_component): Ensure BIND(C) character
1477 components have length one.
1478 (resolve_symbol): Likewise for variables.
1479
1480 2018-01-27 Jakub Jelinek <jakub@redhat.com>
1481
1482 PR fortran/84065
1483 * decl.c (add_init_expr_to_sym): Ignore initializers for too large
1484 lengths.
1485
1486 2018-01-26 Damian Rouson <damian@sourceryinstitute.org>
1487 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1488 Soren Rasmussen <s.c.rasmussen@gmail.com>
1489
1490 Partial support for Fortran 2018 teams features.
1491
1492 * array.c (gfc_match_array_ref): add team attribute in coarray
1493 transfers.
1494 * check.c (gfc_check_get_team, gfc_check_team_number): add new
1495 functions for get_team and team_number.
1496 * dump-parse-tree.c (show_code_node): add new statements: form team,
1497 change team, end team, and sync team.
1498 * expr.c (gfc_find_team_co): add new function.
1499 * gfortran.h: add new statements.
1500 * intrinsic.c (add_functions): add get_team and team_number functions.
1501 * intrinsic.h: add get_team and team_number prototypes for check,
1502 simplify, and resolve.
1503 * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
1504 functions.
1505 * iso-fortran-env.def: add the team_type derived type.
1506 * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
1507 (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
1508 add change team, end team, form team, sync team match and functions.
1509 * match.h: add new prototypes for change team, end team, form team,
1510 and sync team.
1511 * parse.c (decode_statement): add cases for change team, end team,
1512 form team, and sync team.
1513 * resolve.c: add cases for exec form team, change team, end team, and
1514 sync team.
1515 * simplify.c (gfc_simplify_get_team): add new function for get team.
1516 * st.c (gfc_free_statement): add cases exec for change team, end team,
1517 form team, sync team.
1518 * trans-decl.c (gfor_fndecl_caf_form_team)
1519 (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
1520 (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
1521 (gfor_fndecl_caf_team_number): add functions and definitions.
1522 * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
1523 new function and team_type argument support.
1524 * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
1525 (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
1526 * trans-stmt.h: add new prototypes.
1527 * trans-types.c (gfc_get_derived_type): check condition for team_type.
1528 * trans.c (trans_code): new exec cases for form team, change team, end
1529 team, and sync team.
1530 * trans.h: add new prototypes.
1531
1532 2018-01-26 Steven G. Kargl <kargl@gcc.gnu.org>
1533
1534 PR fortran/83998
1535 * simplify.c (compute_dot_product): Initialize result to INTEGER(1) 0
1536 or .false. The summation does the correct type conversion.
1537 (gfc_simplify_dot_product): Special case zero-sized arrays.
1538
1539 2018-25-01 Paul Thomas <pault@gcc.gnu.org>
1540
1541 PR fortran/37577
1542 * array.c (gfc_match_array_ref): If standard earlier than F2008
1543 it is an error if the reference dimension is greater than 7.
1544 libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
1545 dtype masks and shifts accordingly.
1546 * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
1547 type node to check the field.
1548 (gfc_conv_descriptor_dtype): Access the rank field of dtype.
1549 (duplicate_allocatable_coarray): Access the rank field of the
1550 dtype descriptor rather than the dtype itself.
1551 * trans-expr.c (get_scalar_to_descriptor_type): Store the type
1552 of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
1553 (ie. a character).
1554 (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
1555 get_scalar_to_descriptor_type if the actual expression is a
1556 constant.
1557 (gfc_trans_structure_assign): Assign the rank directly to the
1558 dtype rank field.
1559 * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
1560 to default integer kind.
1561 (gfc_conv_intrinsic_sizeof): Obtain the element size from the
1562 'elem_len' field of the dtype.
1563 * trans-io.c (gfc_build_io_library_fndecls): Replace
1564 gfc_int4_type_node with dtype_type_node where necessary.
1565 (transfer_namelist_element): Use gfc_get_dtype_rank_type for
1566 scalars.
1567 * trans-types.c : Provide 'get_dtype_type_node' to acces the
1568 dtype_type_node and, if necessary, build it.
1569 The maximum size of an array element is now determined by the
1570 maximum value of size_t.
1571 Update the description of the array descriptor, including the
1572 type def for the dtype_type.
1573 (gfc_get_dtype_rank_type): Build a constructor for the dtype.
1574 Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
1575 (gfc_get_array_descriptor_base): Change the type of the dtype
1576 field to dtype_type_node.
1577 (gfc_get_array_descr_info): Get the offset to the rank field of
1578 the dtype.
1579 * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
1580 * trans.h : Define the indices of the dtype fields.
1581
1582 2018-23-01 Paul Thomas <pault@gcc.gnu.org>
1583
1584 PR fortran/83866
1585 * decl.c (gfc_match_derived_decl): If eos not matched, recover
1586 and emit error about garbage after declaration.
1587
1588 2018-23-01 Paul Thomas <pault@gcc.gnu.org>
1589
1590 PR fortran/83898
1591 * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
1592 for characters.
1593
1594 2018-01-22 Janne Blomqvist <jb@gcc.gnu.org>
1595
1596 PR 78534
1597 PR 83704
1598 * arith.c (gfc_arith_concat): Use size_t for string length.
1599 (gfc_compare_string): Likewise.
1600 (gfc_compare_with_Cstring): Likewise.
1601 * array.c (gfc_resolve_character_array_constructor): Use
1602 HOST_WIDE_INT, gfc_mpz_get_hwi.
1603 * check.c (gfc_check_fe_runtime_error): Use size_t.
1604 * data.c (create_character_initializer): Use HOST_WIDE_INT,
1605 gfc_extract_hwi.
1606 * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
1607 (add_init_expr_to_sym): Use HOST_WIDE_INT.
1608 * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
1609 gfc_extract_hwi.
1610 (gfc_apply_init): Likewise.
1611 * match.h (gfc_set_constant_character_len): Update prototype.
1612 * primary.c (match_string_constant): Use size_t.
1613 * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
1614 gfc_mpz_get_hwi.
1615 * simplify.c (init_result_expr): Likewise.
1616 (gfc_simplify_len_trim): Use size_t.
1617 * target-memory.c (gfc_encode_character): Use size_t.
1618 (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
1619 (interpret_array): Use size_t.
1620 (gfc_interpret_character): Likewise.
1621 * target-memory.h (gfc_encode_character): Update prototype.
1622 (gfc_interpret_character): Likewise.
1623 (gfc_target_interpret_expr): Likewise.
1624 * trans-const.c (gfc_build_string_const): Use size_t for length
1625 argument.
1626 (gfc_build_wide_string_const): Likewise.
1627 * trans-const.h (gfc_build_string_const): Likewise.
1628 (gfc_build_wide_string_const): Likewise.
1629
1630 2018-01-20 Steven G. Kargl <kargl@gcc.gnu.org>
1631
1632 PR fortran/83900
1633 * simplify.c (gfc_simplify_matmul): Set return type correctly.
1634
1635 2018-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
1636
1637 PR fortran/83900
1638 * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
1639
1640 2018-01-17 Harald Anlauf <anlauf@gmx.de>
1641
1642 PR fortran/83864
1643 * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1644
1645 2018-01-17 Harald Anlauf <anlauf@gmx.de>
1646
1647 PR fortran/83874
1648 * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
1649
1650 2018-01-15 Louis Krupp <louis.krupp@zoho.com>
1651
1652 PR fortran/82257
1653 * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
1654 from symbol marked unlimited polymorphic.
1655 * resolve.c (resolve_structure_cons): Likewise.
1656 * misc.c (gfc_typename): Don't dereference derived->components
1657 if it's NULL.
1658
1659 2018-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
1660
1661 PR fortran/54613
1662 * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
1663 (gfc_logical_4_kind): New macro
1664 * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
1665 (gfc_simplify_maxloc): Likewise.
1666 (gfc_resolve_maxloc): Likewise.
1667 (gfc_resolve_minloc): Likewise.
1668 * check.c (gfc_check_minloc_maxloc): Add checking for "back"
1669 argument; also raise error if it is used (for now). Add it
1670 if it isn't present.
1671 * intrinsic.c (add_sym_4ml): Rename to
1672 (add_sym_5ml), adjust for extra argument.
1673 (add_functions): Add "back" constant. Adjust maxloc and minloc
1674 for back argument.
1675 * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
1676 not of gfc_logical_4_kind, convert.
1677 (gfc_resolve_minloc): Likewise.
1678 * simplify.c (gfc_simplify_minloc): Add back argument.
1679 (gfc_simplify_maxloc): Likewise.
1680 * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
1681 argument to %VAL to ensure passing by value.
1682 (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
1683 also for library calls.
1684
1685 2018-01-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1686
1687 PR fortran/82007
1688 * resolve.c (resolve_transfer): Delete code looking for 'DT'
1689 format specifiers in format strings. Set formatted to true if a
1690 format string or format label is present.
1691 * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
1692 whitespace.
1693
1694 2018-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
1695
1696 PR fortran/83744
1697 * dump-parse-tree.c (get_c_type_name): Remove extra line.
1698 Change for loop to use declaration in for loop. Handle BT_LOGICAL
1699 and BT_CHARACTER.
1700 (write_decl): Add where argument. Fix indentation. Replace
1701 assert with error message. Add typename to warning
1702 in comment.
1703 (write_type): Adjust locus to call of write_decl.
1704 (write_variable): Likewise.
1705 (write_proc): Likewise. Replace assert with error message.
1706
1707 2018-01-13 Paul Thomas <pault@gcc.gnu.org>
1708
1709 PR fortran/52162
1710 * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
1711 the rhs expression is neither an elemental nor a conversion
1712 function.
1713
1714 PR fortran/83622
1715 * trans-array.c (is_pointer_array): Remove unconditional return
1716 of false for -fopenmp.
1717
1718 2018-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
1719 <emsr@gcc.gnu.org>
1720
1721 PR fortran/83803
1722 * dump-parse-tree.c (write_proc): Always emit closing parenthesis
1723 for functions.
1724
1725 2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
1726
1727 PR fortran/82367
1728 * resolve.c (resolve_allocate_expr): Check for NULL pointer.
1729
1730 2018-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
1731
1732 PR fortran/83093
1733 * resolve.c (resolve_charlen): Check the type of cl->length
1734 after resolution.
1735
1736 2018-01-10 Janne Blomqvist <jb@gcc.gnu.org>
1737
1738 PR fortran/83740
1739 * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
1740
1741 2018-01-10 Janne Blomqvist <jb@gcc.gnu.org>
1742
1743 PR fortran/83740
1744 * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
1745 LHS type when assigning.
1746
1747 2018-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
1748
1749 PR fortran/83742
1750 * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
1751
1752 2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org>
1753
1754 * match.c (gfc_match_allocate): Check for NULL pointer.
1755
1756 2018-01-08 Steven G. Kargl <kargl@gcc.gnu.org>
1757
1758 * expr.c (gfc_check_pointer_assign): Fix typo in comment.
1759
1760 2018-01-08 Paul Thomas <pault@gcc.gnu.org>
1761
1762 PR fortran/83611
1763 * decl.c (gfc_get_pdt_instance): If parameterized arrays have
1764 an initializer, convert the kind parameters and add to the
1765 component if the instance.
1766 * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
1767 use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
1768 for parameterized arrays. Clean up typos in comments. Convert
1769 parameterized array initializers and copy into the array.
1770 * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
1771 parameterized types.
1772 *trans-stmt.c (trans_associate_var): Deallocate associate vars
1773 as necessary, when they are PDT function results for example.
1774
1775 PR fortran/83731
1776 * trans-array.c (structure_alloc_comps): Only compare len parms
1777 when they are declared explicitly.
1778
1779 2018-01-06 Janne Blomqvist <jb@gcc.gnu.org>
1780
1781 PR fortran/50892
1782 * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
1783 lhs type.
1784
1785 2018-01-05 Janne Blomqvist <jb@gcc.gnu.org>
1786
1787 PR fortran/78534
1788 PR fortran/66310
1789 * array.c (got_charlen): Use gfc_charlen_int_kind.
1790 * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
1791 hardcoded kind.
1792 (find_intrinsic_vtab): Likewise.
1793 * decl.c (match_char_length): Use gfc_charlen_int_kind.
1794 (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
1795 (gfc_match_implicit): Use gfc_charlen_int_kind.
1796 * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
1797 (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
1798 * expr.c (gfc_get_character_expr): Length parameter of type
1799 gfc_charlen_t.
1800 (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
1801 (gfc_extract_hwi): New function.
1802 (simplify_const_ref): Make string_len of type gfc_charlen_t.
1803 (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
1804 * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
1805 * gfortran.h (gfc_mpz_get_hwi): New prototype.
1806 (gfc_mpz_set_hwi): Likewise.
1807 (gfc_charlen_t): New typedef.
1808 (gfc_expr): Use gfc_charlen_t for character lengths.
1809 (gfc_size_kind): New extern variable.
1810 (gfc_extract_hwi): New prototype.
1811 (gfc_get_character_expr): Use gfc_charlen_t for character length.
1812 (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
1813 * gfortran.texi: Update description of hidden string length argument.
1814 * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
1815 (gfc_resolve_char_achar): Likewise.
1816 (gfc_resolve_repeat): Pass string length directly without
1817 temporary, use gfc_charlen_int_kind.
1818 (gfc_resolve_transfer): Use gfc_charlen_int_kind.
1819 * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
1820 * misc.c (gfc_mpz_get_hwi): New function.
1821 (gfc_mpz_set_hwi): New function.
1822 * module.c (atom_int): Change type from int to HOST_WIDE_INT.
1823 (parse_integer): Don't complain about large integers.
1824 (write_atom): Use HOST_WIDE_INT for integers.
1825 (mio_integer): Handle integer type mismatch.
1826 (mio_hwi): New function.
1827 (mio_intrinsic_op): Use HOST_WIDE_INT.
1828 (mio_array_ref): Likewise.
1829 (mio_expr): Likewise.
1830 * primary.c (match_substring): Use gfc_charlen_int_kind.
1831 * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
1832 (resolve_character_operator): Likewise.
1833 (resolve_assoc_var): Likewise.
1834 (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
1835 (resolve_charlen): Use mpz_sgn to determine sign.
1836 * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
1837 instead of long.
1838 * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
1839 * target-memory.c (size_character): Length argument of type
1840 gfc_charlen_t.
1841 (gfc_encode_character): Likewise.
1842 (gfc_interpret_character): Use gfc_charlen_t.
1843 * target-memory.h (gfc_encode_character): Modify prototype.
1844 * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
1845 (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
1846 (trans_array_constructor): Use existing type.
1847 (get_array_charlen): Likewise.
1848 * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
1849 * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
1850 * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
1851 (add_argument_checking): Likewise.
1852 * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
1853 gfc_charlen_type_node.
1854 (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
1855 4, fold_convert to correct type.
1856 (gfc_conv_class_to_class): Build const of type size_type_node for
1857 size.
1858 (gfc_copy_class_to_class): Likewise.
1859 (gfc_conv_string_length): Use same type in expression.
1860 (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
1861 (gfc_conv_string_tmp): Make sure len is of the right type.
1862 (gfc_conv_concat_op): Use same type in expression.
1863 (gfc_conv_procedure_call): Likewise.
1864 (fill_with_spaces): Comment out memset() block due to spurious
1865 -Wstringop-overflow warnings.
1866 (gfc_trans_string_copy): Use gfc_charlen_type_node.
1867 (alloc_scalar_allocatable_for_subcomponent_assignment):
1868 fold_convert to right type.
1869 (gfc_trans_subcomponent_assign): Likewise.
1870 (trans_class_vptr_len_assignment): Build const of correct type.
1871 (gfc_trans_pointer_assignment): Likewise.
1872 (alloc_scalar_allocatable_for_assignment): fold_convert to right
1873 type in expr.
1874 (trans_class_assignment): Build const of correct type.
1875 * trans-intrinsic.c (gfc_conv_associated): Likewise.
1876 (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
1877 * trans-io.c (gfc_build_io_library_fndecls): Use
1878 gfc_charlen_type_node for character lengths.
1879 (set_string): Convert to right type in assignment.
1880 * trans-stmt.c (gfc_trans_label_assign): Build const of
1881 gfc_charlen_type_node.
1882 (trans_associate_var): Likewise.
1883 (gfc_trans_character_select): Likewise.
1884 (gfc_trans_allocate): Likewise, don't typecast strlen result.
1885 (gfc_trans_deallocate): Don't typecast strlen result.
1886 * trans-types.c (gfc_size_kind): New variable.
1887 (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
1888 from size_type_node.
1889 * trans-types.h: Fix comment.
1890
1891 2018-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
1892
1893 PR fortran/83683
1894 PR fortran/45689
1895 * check.c (gfc_check_eoshift): Check for string length and
1896 for conformance of boundary.
1897 * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
1898 * intrinsic.h: Add prototype for gfc_simplify_eoshift.
1899 * simplify.c (gfc_simplify_eoshift): New function.
1900
1901 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
1902 Alan Hayward <alan.hayward@arm.com>
1903 David Sherwood <david.sherwood@arm.com>
1904
1905 * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
1906
1907 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
1908 Alan Hayward <alan.hayward@arm.com>
1909 David Sherwood <david.sherwood@arm.com>
1910
1911 * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
1912
1913 2018-01-03 Thomas Koenig <tkoenig@gcc.gnu.org>
1914
1915 PR fortran/83664
1916 * check.c (gfc_check_eoshift): Error for missing boundary if array
1917 is not one of the standard types.
1918
1919 2018-01-03 Jakub Jelinek <jakub@redhat.com>
1920
1921 Update copyright years.
1922
1923 * gfortranspec.c (lang_specific_driver): Update copyright notice
1924 dates.
1925 * gfc-internals.texi: Bump @copying's copyright year.
1926 * gfortran.texi: Ditto.
1927 * intrinsic.texi: Ditto.
1928 * invoke.texi: Ditto.
1929
1930 2017-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1931
1932 PR fortran/45689
1933 * intrinsic.c (add_function): Add gfc_simplify_maxloc and
1934 gfc_simplify_minloc to maxloc and minloc, respectively.
1935 * intrinsic.h: Add prototypes for gfc_simplify_minloc
1936 and gfc_simplify_maxloc.
1937 * simplify.c (min_max_chose): Adjust prototype. Modify function
1938 to have a return value which indicates if the extremum was found.
1939 (is_constant_array_expr): Fix typo in comment.
1940 (simplify_minmaxloc_to_scalar): New function.
1941 (simplify_minmaxloc_nodim): New function.
1942 (new_array): New function.
1943 (simplify_minmaxloc_to_array): New function.
1944 (gfc_simplify_minmaxloc): New function.
1945 (simplify_minloc): New function.
1946 (simplify_maxloc): New function.
1947
1948 2018-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1949
1950 PR fortran/45689
1951 PR fortran/83650
1952 * simplify.c (gfc_simplify_cshift): Re-implement to allow full
1953 range of arguments.
1954
1955 2018-01-01 Paul Thomas <pault@gcc.gnu.org>
1956
1957 PR fortran/83076
1958 * resolve.c (resolve_fl_derived0): Add caf_token fields for
1959 allocatable and pointer scalars, when -fcoarray selected.
1960 * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
1961 field as well as the backend_decl.
1962 (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
1963 derived types that are not vtypes. Components with caf_token
1964 attribute are pvoid types. For a component requiring it, find
1965 the caf_token field and have the component token field point to
1966 its backend_decl.
1967
1968 PR fortran/83319
1969 *trans-types.c (gfc_get_array_descriptor_base): Add the token
1970 field to the descriptor even when codimen not set.
1971 \f
1972 Copyright (C) 2018 Free Software Foundation, Inc.
1973
1974 Copying and distribution of this file, with or without modification,
1975 are permitted in any medium without royalty provided the copyright
1976 notice and this notice are preserved.