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