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