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