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