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