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