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