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