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