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