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