1 2013-08-23 Mikael Morin <mikael@gcc.gnu.org>
4 * trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
5 gfc_set_delta): Generate preliminary code before the outermost loop.
7 2013-08-23 Janus Weil <janus@gcc.gnu.org>
10 * interface.c (gfc_extend_assign): Look for type-bound assignment
11 procedures before non-typebound.
13 2013-08-23 Mikael Morin <mikael@gcc.gnu.org>
15 * trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
17 (gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
19 2013-08-22 Janus Weil <janus@gcc.gnu.org>
22 * match.c (copy_ts_from_selector_to_associate): Only build class
23 container for polymorphic selector. Some cleanup.
25 2013-08-20 Janus Weil <janus@gcc.gnu.org>
28 * trans-decl.c (generate_local_decl): Check if type has any components.
30 2013-08-19 Janus Weil <janus@gcc.gnu.org>
33 * openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
35 2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org>
38 * gfortran.h (gfc_option_t): Add warn_zerotrip.
39 * invoke.texi (-Wzerotrip): Document option.
40 * lang.opt (Wzerotrip): Add.
41 * options.c (gfc_init_options): Initialize warn_zerotrip.
42 (set_Wall): Add handling of warn_zerotrip.
43 (gfc_handle_option): Handle OPT_Wzerotrip.
44 * resolve.c (gfc_resolve_iterator): Honor
45 gfc_option.warn_zerotrip; update error message to show
46 how to suppress the warning.
48 2013-08-09 Janus Weil <janus@gcc.gnu.org>
50 * gfortran.h (gfc_get_code): Modified prototype.
51 * class.c (finalize_component, finalization_scalarizer,
52 finalization_get_offset, finalizer_insert_packed_call,
53 generate_finalization_wrapper, gfc_find_derived_vtab,
54 gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
55 * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
56 gfc_match_inquire): Call 'gfc_get_code' with argument.
57 * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
58 gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
60 * parse.c (new_level): Ditto.
61 (add_statement): Use XCNEW.
62 * resolve.c (resolve_entries, resolve_allocate_expr,
63 resolve_select_type, build_assignment, build_init_assign): Call
64 'gfc_get_code' with argument.
65 * st.c (gfc_get_code): Add argument 'op'.
66 * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
68 * trans-stmt.c (gfc_trans_allocate): Ditto.
70 2013-08-09 Janus Weil <janus@gcc.gnu.org>
73 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
76 2013-08-06 Martin Jambor <mjambor@suse.cz>
79 * trans-decl.c (gfc_generate_function_code): Never call
80 cgraph_finalize_function on nested functions.
82 2013-08-06 Janus Weil <janus@gcc.gnu.org>
85 * class.c (gfc_class_null_initializer): Rename to
86 'gfc_class_initializer'. Treat non-NULL init-exprs.
87 * gfortran.h (gfc_class_null_initializer): Update prototype.
88 * trans-decl.c (gfc_get_symbol_decl): Treat class variables.
89 * trans-expr.c (gfc_conv_initializer): Ditto.
90 (gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
92 2013-07-30 Tobias Burnus <burnus@net-b.de>
95 * symbol.c (gfc_type_compatible): A type is type compatible with
96 a class if both have the same declared type.
97 * interface.c (compare_type): Reject CLASS/TYPE even if they
100 2013-07-30 Tobias Burnus <burnus@net-b.de>
103 * trans-expr.c (gfc_trans_class_assign): Handle CLASS array
105 (gfc_trans_pointer_assign): Ditto and support pointer assignment of
106 a polymorphic var to a nonpolymorphic var.
108 2013-07-22 Po Chang <pchang9@cs.wisc.edu>
110 * match.c (gfc_match_call): Exit loop after setting i.
112 * resolve.c (resolve_variable): Exit loop after setting seen.
114 * expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
116 * trans-array.c (set_loop_bounds): Exit loop after setting
119 * trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
121 2013-07-28 Thomas Koenig <tkoenig@gcc.gnu.org>
124 * expr.c (gfc_check_vardef_context): Check for same values in
125 vector expression subscripts.
127 2013-07-27 Tobias Burnus <burnus@net-b.de>
130 * interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
132 2013-07-27 Janus Weil <janus@gcc.gnu.org>
135 * check.c (dim_rank_check): Re-enable this check for CLASS arrays.
137 2013-07-25 Janus Weil <janus@gcc.gnu.org>
140 * resolve.c (resolve_typebound_function): Make sure the declared type,
141 including its type-bound procedures, is resolved before resolving the
142 actual type-bound call.
144 2013-07-25 Janus Weil <janus@gcc.gnu.org>
147 * interface.c (compare_parameter): Check for class_ok.
148 * simplify.c (gfc_simplify_same_type_as): Ditto.
150 2013-07-23 Ondřej Bílka <neleai@seznam.cz>
152 * decl.c: Fix comment typos.
153 * interface.c: Likewise.
154 * trans-array.c: Likewise.
157 2013-07-22 Tobias Burnus <burnus@net-b.de>
161 * class.c (gfc_build_class_symbol): Set coarray_comp.
162 * trans-array.c (structure_alloc_comps): For coarrays,
163 directly use the data pointer address.
165 2013-07-22 Chang <pchang9@cs.wisc.edu>
167 * trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
168 setting PACKED_PARTIAL.
170 2013-07-22 Tobias Burnus <burnus@net-b.de>
172 * trans-array.c (gfc_array_allocate): Correct memory-leak patch.
174 2013-07-22 Tobias Burnus <burnus@net-b.de>
176 * trans-array.c (gfc_array_allocate,
177 gfc_trans_deferred_array): Plug memory leak.
179 2013-07-21 Ondřej Bílka <neleai@seznam.cz>
181 * trans-decl.c: Fix comment typos.
182 * trans-expr.c: Ditto.
184 2013-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
187 * dependency.c (gfc_dep_resolver): Treat identical
188 array subscripts as identical; don't unconditionally
189 return a dependency if an array subscript is found.
191 2013-07-21 Tobias Burnus <burnus@net-b.de>
194 * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
195 GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
197 2013-07-21 Tobias Burnus <burnus@net-b.de>
200 * check.c (min_max_args): Add keyword= check.
202 2013-07-17 Mikael Morin <mikael@gcc.gnu.org>
203 Tobias Burnus <burnus@net-b.de>
206 * match.c (gfc_match_name): Ensure that the error
207 message regarding -fdollar-ok gets printed.
208 (gfc_match_common): Avoid multiple freeing.
210 2013-07-16 Tobias Burnus <burnus@net-b.de>
213 * trans-expr.c (gfc_trans_scalar_assign): Correct if
214 condition for caf realloc.
216 2013-07-15 Tobias Burnus <burnus@net-b.de>
218 * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
219 gfc_reassign_alloc_comp_caf): New prototype.
220 * trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
221 and COPY_ALLOC_COMP_CAF.
222 (structure_alloc_comps): Handle it.
223 (gfc_reassign_alloc_comp_caf,
224 gfc_deallocate_alloc_comp_no_caf): New function.
225 (gfc_alloc_allocatable_for_assignment): Call it.
226 * trans-expr.c (gfc_trans_scalar_assign,
227 gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
228 * parse.c (parse_derived): Correctly set coarray_comp.
229 * resolve.c (resolve_symbol): Improve error wording.
231 2013-07-15 Tobias Burnus <burnus@net-b.de>
234 * trans.c (gfc_add_comp_finalizer_call): New function.
235 * trans.h (gfc_add_comp_finalizer_call): New prototype.
236 * trans-array.c (structure_alloc_comps): Call it.
238 2013-07-14 Thomas Koenig <tkoenig@gcc.gnu.org>
239 Tobias Burnus <burnus@gcc.gnu.org>
242 * trans-decl.c (gfc_finish_var_decl): Move setting of
243 PRIVATE for a module variable if the module has a private
244 default or -fmodule-private is given to...
245 (gfc_create_module_variable): here. Optionally
246 warn about private module variable which is not used.
248 2013-07-08 Tobias Burnus <burnus@net-b.de>
251 * check.c (is_c_interoperable): Add special case for c_f_pointer.
252 (explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
255 2013-07-08 Tobias Burnus <burnus@net-b.de>
258 * io.c (match_inquire_element): Add missing do-var check.
260 2013-07-08 Tobias Burnus <burnus@net-b.de>
263 * simplify.c (compute_dot_product): Complex conjugate for
265 (gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
267 2013-07-08 Tobias Burnus <burnus@net-b.de>
270 * trans-decl.c (generate_local_decl): Don't warn that
271 a dummy is unused, when it is in a namelist.
273 2013-07-01 Dominique d'Humieres <dominiq@lps.ens.fr>
276 * array.c (spec_size): handle the case as==NULL.
278 2013-06-26 Tobias Burnus <burnus@net-b.de>
281 * trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
283 * trans-array.c (gfc_conv_array_ref): Update prototype.
284 * trans-expr.c (gfc_conv_variable): Update call.
286 2013-06-24 Steven G. Kargl <sgk@troutmask.apl.washington.edu>
287 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
288 Dominique d'Humieres <dominiq@lps.ens.fr>
291 * simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
293 2013-06-21 Tobias Burnus <burnus@net-b.de>
296 * trans-array.c (gfc_trans_deferred_array): Call the
297 finalizer for nonallocatable local variables.
298 * trans-decl.c (gfc_get_symbol_decl): Add local
299 finalizable vars to the deferred list.
300 (gfc_trans_deferred_vars): Call gfc_trans_deferred_array
303 2013-06-21 Tobias Burnus <burnus@net-b.de>
305 * trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
307 * trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
309 2013-06-20 Tobias Burnus <burnus@net-b.de>
311 * resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
313 2013-06-17 Tobias Burnus <burnus@net-b.de>
315 * gfortran.h (gfc_option_t): Add fpe_summary.
316 * gfortran.texi (_gfortran_set_options): Update.
317 * invoke.texi (-ffpe-summary): Add doc.
318 * lang.opt (ffpe-summary): Add flag.
319 * options.c (gfc_init_options, gfc_handle_option): Handle it.
320 (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
321 also handle fpe_summary.
322 * trans-decl.c (create_main_function): Update
323 _gfortran_set_options call.
325 2013-06-15 Mikael Morin <mikael@gcc.gnu.org>
329 * dependency.c (gfc_check_argument_var_dependency): Return 0 in the
330 array constructor case.
332 2013-06-14 Tobias Burnus <burnus@net-b.de>
335 * resolve.c (get_temp_from_expr): Don't copy function
336 result attributes to temporary.
338 2013-06-14 Tobias Burnus <burnus@net-b.de>
341 * trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
342 for nullify and deferred-strings' length variable.
344 2013-06-13 Mikael Morin <mikael@gcc.gnu.org>
347 * trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
348 Handle NULL array references.
349 (gfc_conv_procedure_call): Remove code handling NULL array references.
351 2013-06-11 Tobias Burnus <burnus@net-b.de>
354 * trans-array.c (build_class_array_ref): Fix ICE for
355 function result variables.
357 2013-06-08 Tobias Burnus <burnus@net-b.de>
360 * trans-decl.c (init_intent_out_dt): Call finalizer
363 2013-06-08 Tobias Burnus <burnus@net-b.de>
366 * simplify.c (gfc_simplify_storage_size): Handle literal
368 * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
369 Add missing fold_convert.
371 2013-06-07 Tobias Burnus <burnus@net-b.de>
374 * array.c (gfc_match_array_constructor): Call
375 gfc_match_type_spec instead of gfc_match_decl_type_spec.
376 * match.c (gfc_match_type_spec): Renamed from match_type_spec.
377 (gfc_match_type_is, gfc_match_allocate): Update call.
378 * match.h (gfc_match_type_spec): Add prototype.
380 2013-06-07 Tobias Burnus <burnus@net-b.de>
383 * trans.c (gfc_build_final_call): Init block before use.
385 2013-06-06 Tobias Burnus <burnus@net-b.de>
388 * trans.c (gfc_build_final_call): Add se.pre to the block
389 and modify the assert.
391 2013-06-04 Tobias Burnus <burnus@net-b.de>
394 * trans.h (gfc_build_final_call): Remove prototype.
395 (gfc_add_finalizer_call): Add prototype.
396 * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
397 (structure_alloc_comps): Update caller.
398 (gfc_trans_deferred_array): Call finalizer.
399 * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
400 * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
401 variables of the main program.
402 * trans-expr.c (gfc_conv_procedure_call): Support finalization.
403 * trans-openmp.c (gfc_omp_clause_dtor,
404 gfc_trans_omp_array_reduction): Update calls.
405 * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
407 * trans.c (gfc_add_finalizer_call): New function.
408 (gfc_deallocate_with_status,
409 gfc_deallocate_scalar_with_status): Call it
410 (gfc_build_final_call): Fix handling of scalar coarrays,
411 move up in the file and make static.
413 2013-06-01 Janus Weil <janus@gcc.gnu.org>
414 Mikael Morin <mikael@gcc.gnu.org>
416 * error.c (get_terminal_width): Only limit the width if we're
417 outputting to a terminal. Try to determine width via ioctl.
419 2013-06-01 Tobias Burnus <burnus@net-b.de>
421 * decl.c (add_global_entry): Take locus.
422 (gfc_match_entry): Update call.
423 (gfc_match_end): Better error location.
424 * parse.c (parse_block_data, parse_module, add_global_procedure,
425 add_global_program): Use better locus data.
427 2013-05-31 Tobias Burnus <burnus@net-b.de>
430 * trans-array.c (gfc_array_init_size): Use passed type spec,
432 (gfc_array_allocate): Pass typespec on.
433 * trans-array.h (gfc_array_allocate): Update prototype.
434 * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
436 2013-05-31 Janus Weil <janus@gcc.gnu.org>
440 * gfortran.h (gfc_terminal_width): Remove prototype.
441 * error.c (get_terminal_width): Moved here from misc.c. Renamed.
442 Try to determine terminal width from environment variable.
443 * interface.c (compare_type, compare_rank): New functions. Fix assumed
445 (compare_type_rank, check_dummy_characteristics,
446 check_result_characteristics, gfc_compare_interfaces): Use them.
447 (symbol_rank): Slightly modified and moved.
448 * misc.c (gfc_terminal_width): Moved to error.c.
450 2013-05-30 Janus Weil <janus@gcc.gnu.org>
453 * resolve.c (check_assumed_size_reference): Check for e->ref.
455 2013-05-30 Tobias Burnus <burnus@net-b.de>
458 * interface.c (compare_parameter): Update C1239/C1240 constraint
459 check for assumed-rank/TS29113.
461 2013-05-29 Tobias Burnus <burnus@net-b.de>
464 * class.c (finalize_component): Fix coarray array refs.
465 (generate_finalization_wrapper): Only gfc_convert_type_warn
466 when the kind value is different.
467 (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
468 (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
470 * module.c (MOD_VERSION): Bump.
471 (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
472 * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
474 (gfc_array_allocate, structure_alloc_comps): Don't nullify for
475 BT_CLASS allocations.
476 * trans-stmt.c (gfc_trans_allocate): Ditto.
478 2013-05-29 Tobias Burnus <burnus@net-b.de>
481 * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
483 2013-05-28 Tobias Burnus <burnus@net-b.de>
485 * trans-expr.c (gfc_conv_procedure_call): Deallocate
486 polymorphic arrays for allocatable intent(out) dummies.
487 (gfc_reset_vptr): New function, moved from trans-stmt.c
489 * trans-stmt.c (reset_vptr): Remove.
490 (gfc_trans_deallocate): Update calls.
491 * trans.h (gfc_reset_vptr): New prototype.
493 2013-05-28 Dominique d'Humieres <dominiq@lps.ens.fr>
496 * module.c (check_for_ambiguous): Avoid null pointer deref.
498 2013-05-28 Janus Weil <janus@gcc.gnu.org>
499 Tobias Burnus <burnus@net-b.de>
502 * interface.c (check_dummy_characteristics): Symmetrize type check.
504 2013-05-27 Bud Davis <jmdavis@link.com>
507 * resolve.c (resolve_formal_arglist): Detect error when an argument
508 has the same name as the function.
510 2013-05-27 Tobias Burnus <burnus@net-b.de>
512 * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
513 * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
515 2013-05-22 Tobias Burnus <burnus@net-b.de>
517 * resolve.c (get_temp_from_expr): Change mangling to
518 start always with a _.
520 2013-05-22 Tobias Burnus <burnus@net-b.de>
522 * resolve.c (get_temp_from_expr): Fix temp var mangling.
524 2013-05-22 Tobias Burnus <burnus@net-b.de>
527 * resolve.c (get_temp_from_expr): Commit created sym.
529 2013-05-22 Tobias Burnus <burnus@net-b.de>
532 * intrinsic.c (do_check): Move some checks to ...
533 (do_ts29113_check): ... this new function.
534 (check_specific, gfc_intrinsic_sub_interface): Call it.
536 2013-05-22 Janne Blomqvist <jb@gcc.gnu.org>
538 * intrinsic.texi (RANDOM_SEED): Improve example.
540 2013-05-21 Tobias Burnus <burnus@net-b.de>
543 * intrinsic.c (do_check): Add constraint check for
544 NO_ARG_CHECK, assumed rank and assumed type.
545 * gfortran.texi (NO_ARG_CHECK): Minor wording change,
546 allow PRESENT intrinsic.
548 2013-05-20 Tobias Burnus <burnus@net-b.de>
552 * decl.c (add_global_entry): Add sym_name.
553 * parse.c (add_global_procedure): Ditto.
554 * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
556 (resolve_global_procedure): Handle gsym->ns pointing to a module.
557 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
559 2013-05-20 Tobias Burnus <burnus@net-b.de>
562 * decl.c (add_global_entry): Use nonbinding name
563 only for F2003 or if no binding label exists.
564 (gfc_match_entry): Update calls.
565 * parse.c (gfc_global_used): Improve error message.
566 (add_global_procedure): Use nonbinding name
567 only for F2003 or if no binding label exists.
568 (gfc_parse_file): Update call.
569 * resolve.c (resolve_global_procedure): Use binding
571 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
573 2013-05-20 Tobias Burnus <burnus@net-b.de>
576 * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
577 * match.c (gfc_match_common): Don't add commons to gsym.
578 * resolve.c (resolve_common_blocks): Add to gsym and
580 (resolve_bind_c_comms): Remove.
581 (resolve_types): Remove call to the latter.
582 * trans-common.c (gfc_common_ns): Remove static var.
583 (gfc_map_of_all_commons): Add static var.
584 (build_common_decl): Correctly handle binding label.
586 2013-05-16 Jason Merrill <jason@redhat.com>
588 * Make-lang.in (f951$(exeext)): Use link mutex.
590 2013-05-05 Tobias Burnus <burnus@net-b.de>
592 * resolve.c (conformable_arrays): Avoid segfault
593 when ar.start[i] == NULL.
595 2013-05-05 Tobias Burnus <burnus@net-b.de>
598 * decl.c (gfc_match_null): Permit use-associated
601 2013-05-04 Tobias Burnus <burnus@net-b.de>
603 * decl.c (gfc_verify_c_interop_param): Permit allocatable
604 and pointer with -std=f2008ts.
606 2013-05-02 Tobias Burnus <burnus@net-b.de>
609 * simplify.c (gfc_simplify_size): Renamed from
610 simplify_size; fix kind=8 handling.
611 (gfc_simplify_size): New function.
612 (gfc_simplify_shape): Add range check.
613 * resolve.c (resolve_function): Fix handling
616 2013-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
618 * frontend-passes.c (optimize_power): Fix typo
621 2013-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
624 * frontend-passes.c (optimize_power): Simplify
627 2013-04-28 Tobias Burnus <burnus@net-b.de>
630 * intrinsic.texi (RANK): Correct syntax description and
633 2013-04-28 Tobias Burnus <burnus@net-b.de>
636 * trans-types.c (gfc_get_element_type): Fix handling
637 of scalar coarrays of type character.
638 * intrinsic.texi (PACK): Add missing ")".
640 2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org>
643 * frontend-passes (optimize_power): New function.
644 (optimize_op): Use it.
646 2013-04-25 Janne Blomqvist <jb@gcc.gnu.org>
649 * Make-lang.in (f951): Link in ZLIB.
650 (CFLAGS-fortran/module.o): Add zlib include directory.
652 2013-04-22 Janus Weil <janus@gcc.gnu.org>
656 * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
658 * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
659 of special treatment for EXPR_ARRAY.
660 * target-memory.h (gfc_element_size): New prototype.
661 * target-memory.c (size_array): Remove.
662 (gfc_element_size): New function.
663 (gfc_target_expr_size): Modified to always return the full size of the
666 2013-04-20 Tobias Burnus <burnus@net-b.de>
669 * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
672 2013-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
673 Mikael Morin <mikael@gcc.gnu.org>
676 * frontend-passes.c (copy_walk_reduction_arg): Change argument type
677 to gfc_constructor. If it has an iterator, wrap the copy of its
678 expression in an array constructor with that iterator. Don't special
679 case function expressions.
680 (callback_reduction): Update caller. Don't return early if there is
683 2013-04-18 Tobias Burnus <burnus@net-b.de>
685 * expr.c (find_array_element): Don't copy expr.
686 * data.c (create_character_initializer): Free expr.
687 * frontend-passes.c (combine_array_constructor): Ditto.
688 * match.c (match_typebound_call, gfc_match_select_type): Ditto.
689 * resolve.c (resolve_typebound_function): Free gfc_ref.
691 2013-04-18 Tobias Burnus <burnus@net-b.de>
694 * invoke.texi (NEAREST): S argument is not optional.
696 2013-04-17 Janus Weil <janus@gcc.gnu.org>
699 * interface.c (check_result_characteristics): Get result from interface
702 2013-04-17 Janne Blomqvist <jb@gcc.gnu.org>
705 * scanner.h: New file.
706 * Make-lang.in: Dependencies on scanner.h.
707 * scanner.c (gfc_directorylist): Move to scanner.h.
708 * module.c: Don't include md5.h, include scanner.h and zlib.h.
709 (MOD_VERSION): Add comment about backwards compatibility.
710 (module_fp): Change type to gzFile.
712 (gzopen_included_file_1): New function.
713 (gzopen_included_file): New function.
714 (gzopen_intrinsic_module): New function.
715 (write_char): Use gzputc.
716 (read_crc32_from_module_file): New function.
717 (read_md5_from_module_file): Remove.
718 (gfc_dump_module): Use gz* functions instead of stdio, check gzip
719 crc32 instead of md5.
720 (read_module_to_tmpbuf): Use gz* functions instead of stdio.
721 (gfc_use_module): Use gz* functions.
723 2013-04-16 Tobias Burnus <burnus@net-b.de>
726 * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
727 * gfortran.h (ext_attr_id_t): Ditto.
728 * gfortran.texi (GNU Fortran Compiler Directives):
730 * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
731 (compare_parameter): Ditto - and regard as unlimited polymorphic.
732 * resolve.c (resolve_symbol, resolve_variable): Add same constraint
733 checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
734 (gfc_explicit_interface_required): Require explicit interface
737 2013-04-16 Janus Weil <janus@gcc.gnu.org>
740 * expr.c (gfc_check_pointer_assign): Handle generic functions returning
743 2013-04-16 Tobias Burnus <burnus@net-b.de>
746 * intrinsic.c (gfc_intrinsic_func_interface): Don't set
747 module name to "(intrinsic)" for intrinsics from intrinsic
750 2013-04-15 Tobias Burnus <burnus@net-b.de>
752 * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
754 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
757 * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
759 2013-04-15 Tobias Burnus <burnus@net-b.de>
761 * class.c (gfc_find_intrinsic_vtab): Removed unused var.
762 * dependency.c (check_data_pointer_types): Fix check.
763 * frontend-passes.c (check_data_pointer_types): Remove
764 superfluous statement.
765 * parse.c (decode_omp_directive): Add missing break.
766 * resolve.c (resolve_typebound_subroutine: Free variable.
767 * trans-decl.c (create_function_arglist): Correct condition.
769 2013-04-14 Mikael Morin <mikael@gcc.gnu.org>
772 * match.c (gfc_match_select_type): Add syntax error. Move namespace
773 allocation and cleanup...
774 * parse.c (decode_statement): ... here.
776 2013-04-13 Janus Weil <janus@gcc.gnu.org>
779 * expr.c (gfc_simplify_expr): Branch is not unreachable.
781 2013-04-12 Janus Weil <janus@gcc.gnu.org>
784 * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
786 2013-04-12 Tobias Burnus <burnus@net-b.de>
789 * trans-array.c (duplicate_allocatable): Fix handling
792 2013-04-12 Janus Weil <janus@gcc.gnu.org>
795 * gfortran.h (gfc_explicit_interface_required): New prototype.
796 * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
797 required in a proc-ptr assignment.
798 * interface.c (check_result_characteristics): Extra check.
799 * resolve.c (gfc_explicit_interface_required): New function.
800 (resolve_global_procedure): Use new function
801 'gfc_explicit_interface_required'. Do a full interface check.
803 2013-04-12 Tobias Burnus <burnus@net-b.de>
806 * trans-decl.c (gfc_trans_deferred_vars): Restrict
807 static CLASS init to SAVE and -fno-automatic.
809 2013-04-12 Tobias Burnus <burnus@net-b.de>
812 * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
813 allocatable static BT_CLASS.
814 * trans-expr.c (gfc_class_set_static_fields): New function.
815 * trans.h (gfc_class_set_static_fields): New prototype.
817 2013-04-11 Janne Blomqvist <jb@gcc.gnu.org>
819 * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
820 * arith.c: Replace gfc_try with bool type.
831 * f95-lang.c: Likewise.
832 * interface.c: Likewise.
833 * intrinsic.c: Likewise.
834 * intrinsic.h: Likewise.
838 * module.c: Likewise.
839 * openmp.c: Likewise.
842 * primary.c: Likewise.
843 * resolve.c: Likewise.
844 * scanner.c: Likewise.
845 * simplify.c: Likewise.
846 * symbol.c: Likewise.
847 * trans-intrinsic.c: Likewise.
848 * trans-openmp.c: Likewise.
849 * trans-stmt.c: Likewise.
850 * trans-types.c: Likewise.
852 2013-04-09 Tobias Burnus <burnus@net-b.de>
854 * gfortran.texi (KIND Type Parameters,
855 Internal representation of LOGICAL variables): Add crossrefs.
856 (Intrinsic Types): Mention issues with _Bool interop.
857 (Naming and argument-passing conventions): New section.
859 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
862 * frontend-passes.c (callback_reduction): Don't do
863 any simplification if there is only a single element
864 which has an iterator.
866 2013-04-07 Tobias Burnus <burnus@net-b.de>
869 * iresolve.c (gfc_resolve_reshape): Set shape also
872 2013-04-04 Janus Weil <janus@gcc.gnu.org>
875 * match.c (gfc_match_return): Remove standard notification.
876 * primary.c (gfc_match_actual_arglist): Add standard notification.
878 2013-04-04 Tobias Burnus <burnus@net-b.de>
881 * gcc/fortran/check.c (is_c_interoperable,
882 gfc_check_c_loc): Correct c_loc array checking
883 for Fortran 2003 and Fortran 2008.
885 2013-04-03 Janus Weil <janus@gcc.gnu.org>
889 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
891 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
893 2013-04-01 Janus Weil <janus@gcc.gnu.org>
896 * symbol.c (gfc_set_default_type): Build class container for
899 2013-03-31 Tobias Burnus <burnus@net-b.de>
901 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
902 generate_finalization_wrapper): Avoid segfault with absent SIZE=
903 argument to TRANSFER and use correct result kind for SIZE.
904 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
906 * trans.c (gfc_build_final_call): Handle coarrays.
908 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
910 * trans-expr.c (build_memcmp_call): New function.
911 (gfc_build_compare_string): If the strings
912 compared have constant and equal lengths and
913 the strings are kind=1, or, for kind=4 strings,
914 the test is for (in)equality, use memcmp().
916 2013-03-29 Tobias Burnus <burnus@net-b.de>
919 * trans-decl.c (create_function_arglist): Pass hidden argument
920 for passed-by-value optional+value dummies.
921 * trans-expr.c (gfc_conv_expr_present,
922 gfc_conv_procedure_call): Handle those.
924 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
927 * gfortran.h (gfc_dep_difference): Add prototype.
928 * dependency.c (discard_nops): New function.
929 (gfc_dep_difference): New function.
930 (check_section_vs_section): Use gfc_dep_difference
931 to calculate the difference of starting indices.
932 * trans-expr.c (gfc_conv_substring): Use
933 gfc_dep_difference to calculate the length of
934 substrings where possible.
936 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
939 * frontend-passes.c (optimize_code): Keep track of
940 current code to make code insertion possible.
941 (combine_array_constructor): New function.
942 (optimize_op): Call it.
944 2013-03-27 Tobias Burnus <burnus@net-b.de>
948 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
949 gfc_check_storage_size): Update checks.
950 * intrinsic.texi (SIZEOF): Correct class.
951 * intrinsic.h (gfc_simplify_sizeof,
952 gfc_simplify_storage_size): New prototypes.
953 * intrinsic.c (add_functions): Use them.
954 * simplify.c (gfc_simplify_sizeof,
955 gfc_simplify_storage_size): New functions.
957 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
960 * module.c (module_locus): Use long for position.
961 (module_content): New variable.
962 (module_pos): Likewise.
963 (prev_character): Remove.
964 (bad_module): Free data instead of closing mod file.
965 (set_module_locus): Use module_pos.
966 (get_module_locus): Likewise.
967 (module_char): use buffer rather than stdio file.
968 (module_unget_char): Likewise.
969 (read_module_to_tmpbuf): New function.
970 (gfc_use_module): Call read_module_to_tmpbuf.
972 2013-03-26 Tobias Burnus <burnus@net-b.de>
975 * simplify.c (gfc_simplify_merge): Simplify more.
977 2013-03-25 Tobias Burnus <burnus@net-b.de>
997 * check.c (gfc_var_strlen): Properly handle 0-sized string.
998 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
999 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
1000 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
1002 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
1004 (gfc_check_pointer_assign): Refine function result check.
1005 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
1006 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
1008 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
1010 (generate_isocbinding_symbol): Update prototype.
1011 (get_iso_c_sym): Remove.
1012 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
1013 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
1014 (gfc_intrinsic_sub_interface): Use it.
1015 (add_functions, add_subroutines): Add missing C-binding intrinsics.
1016 (gfc_intrinsic_func_interface): Add special case for c_loc.
1017 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
1018 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
1019 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
1020 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
1021 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
1022 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
1024 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
1026 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
1027 * module.c (create_intrinsic_function): Support subroutines and
1028 derived-type results.
1029 (use_iso_fortran_env_module): Update calls.
1030 (import_iso_c_binding_module): Ditto; update calls to
1031 generate_isocbinding_symbol.
1032 * resolve.c (find_arglists): Skip for intrinsic symbols.
1033 (gfc_resolve_intrinsic): Find intrinsic subs via id.
1034 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
1035 set_name_and_label, gfc_iso_c_sub_interface): Remove.
1036 (resolve_function, resolve_specific_s0): Remove calls to those.
1037 (resolve_structure_cons): Fix handling.
1038 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
1040 (gen_cptr_param, gen_fptr_param, gen_shape_param,
1041 build_formal_args, get_iso_c_sym): Remove.
1042 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
1043 (generate_isocbinding_symbol): Support hidden symbols and
1044 using c_ptr/c_funptr symtrees for nullptr defs.
1045 * target-memory.c (gfc_target_encode_expr): Fix handling
1047 * trans-expr.c (conv_isocbinding_procedure): Remove.
1048 (gfc_conv_procedure_call): Remove call to it.
1049 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
1051 * trans-intrinsic.c (conv_isocbinding_function,
1052 conv_isocbinding_subroutine): New.
1053 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
1055 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
1056 * trans-types.c (gfc_typenode_for_spec,
1057 gfc_get_derived_type): Ditto.
1058 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
1060 2013-03-18 Tobias Burnus <burnus@net-b.de>
1062 * gfortran.h (gfc_option_t): Remove flag_whole_file.
1063 * invoke.texi (-fno-whole-file): Remove.
1064 * lang.opt (fwhole-file): Change to Ignore.
1065 * options.c (gfc_init_options, gfc_post_options,
1066 gfc_handle_option): Remove !flag_whole_file handling
1067 * parse.c (resolve_all_program_units, translate_all_program_units,
1068 gfc_parse_file): Ditto.
1069 * resolve.c (resolve_global_procedure): Ditto.
1070 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1071 gfc_create_module_variable): Ditto.
1072 * trans-types.c (gfc_get_derived_type): Ditto.
1074 2013-03-15 Tobias Burnus <burnus@net-b.de>
1077 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
1078 if they are not simply contiguous.
1080 2013-03-11 Tobias Burnus <burnus@net-b.de>
1082 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
1083 to convert them into derived types.
1085 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
1088 * expr.c (gfc_default_initializer): Check that a class declared
1089 type has any components.
1090 * resolve.c (resolve_fl_derived0): On failing the test for C437
1091 set the type to BT_UNKNOWN to prevent repeat error messages.
1093 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1096 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
1098 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1101 * array.c (gfc_match_array_constructor): Set a checkpoint before
1102 matching a typespec. Drop it on success, restore it otherwise.
1104 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1107 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
1108 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
1109 gfc_restore_last_undo_checkpoint): New prototypes.
1110 * symbol.c (default_undo_chgset_var): Update initialization.
1111 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
1112 free_undo_change_set_data, pop_undo_change_set,
1113 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
1115 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
1116 field's previous value is not overwritten. Clear gfc_new field.
1117 (restore_old_symbol): Restore previous old_symbol field.
1118 (gfc_restore_last_undo_checkpoint): New function, using body renamed
1119 from gfc_undo_symbols. Restore the previous change set as current one.
1120 (gfc_undo_symbols): New body.
1121 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
1122 Call enforce_single_undo_checkpoint.
1123 (gfc_symbol_done_2): Ditto. Free change set data.
1125 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1127 * symbol.c (restore_old_symbol): Fix thinko.
1129 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1131 * symbol.c (gfc_undo_symbols): Move code...
1132 (restore_old_symbol): ... here as a new function.
1134 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1136 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
1137 * gfortran.h: Include vec.h.
1138 (gfc_undo_change_set): New struct.
1139 * symbol.c (tentative_tbp): Remove struct.
1140 (changed_syms, tentative_tbp_list): Remove variables.
1141 (default_undo_chgset_var, latest_undo_chgset): New variables.
1142 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1143 gfc_commit_symbols, gfc_commit_symbol,
1144 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
1145 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
1147 2013-03-01 Tobias Burnus <burnus@net-b.de>
1150 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
1151 * symbol.c (free_components): Free proc-pointer components.
1153 2013-03-01 Tobias Burnus <burnus@net-b.de>
1155 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
1156 * trans-io.c (build_dt): Ditto.
1158 2013-02-24 Joseph Myers <joseph@codesourcery.com>
1160 * resolve.c (generate_component_assignments): Don't use UTF-8
1161 ligature in diagnostic.
1163 2013-02-21 Janus Weil <janus@gcc.gnu.org>
1166 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
1167 components with allocatable result.
1169 2013-02-21 Tobias Burnus <burnus@net-b.de>
1172 * gfortran.texi (Part II: Language Reference, Extensions,
1173 Non-Fortran Main Program): Sort @menu to match actual section order.
1174 * intrinsic.texi (Intrinsic Procedures): Ditto.
1175 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
1177 2013-02-15 Tobias Burnus <burnus@net-b.de>
1178 Mikael Morin <mikael@gcc.gnu.org>
1181 * simplify.c (gfc_simplify_matmul): Fix result shape
1184 2013-02-15 Tobias Burnus <burnus@net-b.de>
1187 * resolve.c (apply_default_init_local): Don't create an
1188 initializer for a result variable.
1190 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1193 * gfortran.h (gfc_add_include_path): Add boolean argument
1195 * scanner.c (gfc_add_include_path): Pass along warn argument
1196 to add_path_to_list.
1197 * options.c (gfc_post_options): Add true warn argument to
1198 gfc_add_include_path.
1199 (gfc_handle_module_path_options): Likewise.
1200 (gfc_handle_option): Also gfc_add_include_path for intrinsic
1201 modules, without warning.
1203 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
1204 Tobias Burnus <burnus@net-b.de>
1207 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
1208 results for functions without extra result variable.
1211 2013-01-30 Tobias Burnus <burnus@net-b.de>
1214 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1215 results for functions without extra result variable.
1217 2013-02-12 Janus Weil <janus@gcc.gnu.org>
1220 * resolve.c (resolve_call): Do not check deferred procedures for
1223 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
1226 * check.c (array_check): It is an error if a procedure is
1229 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
1232 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
1233 to error_mark_node on entry. Detect recursive types. Build a variadic
1234 procedure type if the type is recursive. Restore the initial
1237 2013-02-07 Tobias Burnus <burnus@net-b.de>
1240 * gfortran.texi (Standards): Mention TS29113.
1241 (Varying Length Character): Mention deferred-length
1243 (Fortran 2003 Status): Add unlimited polymorphic.
1244 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
1245 (C Interop): Update the section about TS29113.
1247 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
1250 * trans-array.c (trans_array_constructor): Remove condition
1251 'dynamic' = true if the loop ubound is a VAR_DECL.
1253 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
1257 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
1258 the lhs descriptor before it is modified for reallocation. Use
1259 it to deallocate allocatable components in the reallocation
1260 block. Nullify allocatable components for newly (re)allocated
1263 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
1266 * resolve.c (resolve_typebound_procedures): Recurse through
1269 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
1273 * gfortran.h (struct gfc_symbol): New field 'resolved'.
1274 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
1275 (resolve_symbol): Skip duplicate calls. Don't check the current
1278 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1282 * decl.c (gfc_match_end): Remove half-ready namespace
1283 from parent if the end of a block is missing.
1284 * parse.c (parse_module): Do not put namespace into
1287 2013-01-30 Tobias Burnus <burnus@net-b.de>
1290 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1291 results for functions without extra result variable.
1293 2013-01-29 Janus Weil <janus@gcc.gnu.org>
1294 Mikael Morin <mikael@gcc.gnu.org>
1297 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
1298 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
1299 gfc_expr_replace_comp): Delete.
1300 (gfc_sym_get_dummy_args): New prototype.
1301 * dependency.c (gfc_check_fncall_dependency): Use
1302 'gfc_sym_get_dummy_args'.
1303 * expr.c (gfc_is_constant_expr): Ditto.
1304 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
1305 gfc_expr_replace_comp): Deleted.
1306 * frontend-passes.c (doloop_code,do_function): Use
1307 'gfc_sym_get_dummy_args'.
1308 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
1309 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
1310 gfc_check_typebound_override): Ditto.
1311 * module.c (MOD_VERSION): Bump module version.
1312 (mio_component): Do not read/write 'formal' and 'formal_ns'.
1313 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
1314 copy formal args, but just keep a pointer to the interface.
1315 (resolve_function,resolve_call,resolve_typebound_generic_call,
1316 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
1317 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
1318 resolve_typebound_procedure,check_uop_procedure): Use
1319 'gfc_sym_get_dummy_args'.
1320 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
1321 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
1322 (gfc_sym_get_dummy_args): New function.
1323 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
1324 Use 'gfc_sym_get_dummy_args'.
1325 * trans-decl.c (build_function_decl,create_function_arglist,
1326 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
1327 add_argument_checking): Ditto.
1328 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
1329 gfc_conv_statement_function): Ditto.
1330 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1331 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
1333 2013-01-28 Tobias Burnus <burnus@net-b.de>
1334 Mikael Morin <mikael@gcc.gnu.org>
1337 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
1339 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
1340 * decl.c (gfc_match_data_decl): Ditto.
1341 (variable_decl): Remove undeclared type error.
1342 (gfc_match_import): Use renamed instead of original name.
1344 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
1348 * gfortran.h : Add associate_var to symbol_attr.
1349 * resolve.c (resolve_assoc_var): Set associate_var attribute.
1350 If the target class_ok is set, set it for the associate
1352 * check.c (allocatable_check): Associate variables should not
1353 have the allocatable attribute even if their symbols do.
1354 * class.c (gfc_build_class_symbol): Symbols with associate_var
1355 set will always have a good class container.
1357 2013-01-23 Janus Weil <janus@gcc.gnu.org>
1360 * resolve.c (resolve_select): Add argument 'select_type', reject
1361 non-scalar expressions.
1362 (resolve_select_type,resolve_code): Pass new argument to
1365 2013-01-23 Jakub Jelinek <jakub@redhat.com>
1368 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1369 and DECL_IGNORED_P on select_type_temporary and don't set
1372 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1375 * scanner.c (add_path_to_list): Copy path to temporary and strip
1376 trailing directory separators before calling stat().
1378 2013-01-17 Richard Biener <rguenther@suse.de>
1380 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1381 dependent on sign of step, avoids repeated evaluation of
1382 step sign test. Avoid undefined overflow issues by using unsigned
1385 2013-01-16 Janus Weil <janus@gcc.gnu.org>
1388 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1391 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1392 Tobias Burnus <burnus@net-b.de>
1395 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1396 (fintrinsic-modules-path=): New.
1397 * options.c (gfc_handle_option, gfc_get_option_string,
1398 gfc_get_option_string): Handle the latter.
1400 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1403 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1404 and use value of countm1 before the decrement in the condition.
1406 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
1409 * expr.c (gfc_check_pointer_assign): Check for presence of
1410 's2' before using it.
1412 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1415 * frontend-passes.c (optimize_reduction): New function,
1416 including prototype.
1417 (callback_reduction): Likewise.
1418 (gfc_run_passes): Also run optimize_reduction.
1419 (copy_walk_reduction_arg): New function.
1420 (dummy_code_callback): New function.
1422 2013-01-13 Jakub Jelinek <jakub@redhat.com>
1425 * trans-expr.c (gfc_conv_structure): Call
1426 unshare_expr_without_location on the ctor elements.
1428 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
1431 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1432 and rvalue interfaces are presented to gfc_compare_interfaces.
1433 Simplify references to interface names by using the symbols
1434 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1435 changed to overcome the asymmetry of this function. Do not
1436 repeat the check for the presence of s1 and s2.
1438 2013-01-12 Janus Weil <janus@gcc.gnu.org>
1441 * trans-array.c (gfc_conv_array_parameter): No packing was done for
1442 full arrays of derived type.
1444 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1447 * class.c (get_unique_type_string): Change $tar to STAR and
1448 replace sprintf by strcpy where there is no formatting.
1449 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1451 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
1454 * module.c (check_for_ambiguous): Get the current program unit using
1457 2013-01-09 Tobias Burnus <burnus@net-b.de>
1460 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1461 in BIND(C) procedures with -std=f*.
1463 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1466 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1467 character function arguments to elemental procedures in
1468 scalarization loops.
1470 2013-01-07 Tobias Burnus <burnus@net-b.de>
1473 * gfortran.h (gfc_check_assign_symbol): Update prototype.
1474 * decl.c (add_init_expr_to_sym, do_parm): Update call.
1475 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1476 improve error location; support components.
1477 (gfc_check_pointer_assign): Handle component assignments.
1478 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1479 (resolve_values): Update call.
1480 (resolve_structure_cons): Avoid double diagnostic.
1482 2013-01-07 Tobias Burnus <burnus@net-b.de>
1483 Thomas Koenig <tkoenig@gcc.gnu.org>
1486 * expr.c (gfc_build_intrinsic_call): Avoid clashes
1487 with user's procedures.
1488 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1489 * simplify.c (gfc_simplify_size): Update call.
1490 * class.c (finalization_scalarizer, finalization_get_offset,
1491 finalizer_insert_packed_call, generate_finalization_wrapper):
1492 Clean up by using gfc_build_intrinsic_call.
1494 2013-01-07 Tobias Burnus <burnus@net-b.de>
1497 * resolve.c (resolve_select_type): Reject intrinsic types for
1498 a non-unlimited-polymorphic selector.
1500 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
1505 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1506 to see if it is GFC_CLASS_TYPE_P.
1507 * trans-expr.c (gfc_get_vptr_from_expr): The same.
1508 (gfc_conv_class_to_class): If the types are not the same,
1509 cast parmese->expr to the type of ctree.
1510 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1511 CLASS components must be set.
1513 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
1518 * module.c (read_module): Don't reuse local symtree if the associated
1519 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
1521 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1524 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
1525 Mikael Morin <mikael@gcc.gnu.org>
1528 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
1530 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
1532 2013-01-05 Tobias Burnus <burnus@net-b.de>
1534 * class.c (finalize_component): Used passed offset expr.
1535 (finalization_get_offset): New static function.
1536 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
1537 to handle noncontiguous arrays.
1539 2013-01-04 Tobias Burnus <burnus@net-b.de>
1541 * trans.c (gfc_build_final_call): New function.
1542 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
1543 New function prototypes.
1544 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
1545 conv_scalar_to_descriptor, removed static attribute.
1546 (gfc_conv_procedure_call): Honor renaming.
1548 2013-01-04 Tobias Burnus <burnus@net-b.de>
1550 * intrinsic.c (add_functions): New internal intrinsic
1551 function GFC_PREFIX ("stride").
1552 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
1553 * intrinsic.h (gfc_resolve_stride): New prototypes.
1554 * iresolve.c (gfc_resolve_stride): New function.
1555 * trans-intrinsic.c (conv_intrinsic_stride): New static
1557 (gfc_conv_intrinsic_function): Use it.
1559 2013-01-04 Tobias Burnus <burnus@net-b.de>
1561 * class.c (gfc_find_intrinsic_vtab): Add _final
1563 * decl.c (gfc_match_null): Remove superfluous
1564 variadic argument to gfc_match.
1566 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
1569 * match.c (copy_ts_from_selector_to_associate): Remove call to
1570 gfc_resolve_expr and replace it with explicit setting of the
1571 array reference type.
1572 * resolve.c (resolve_select_type): It is an error if the
1573 selector is coindexed.
1575 2013-01-04 Tobias Burnus <burnus@net-b.de>
1578 * decl.c (gfc_match_null): Parse and reject MOLD.
1580 2013-01-04 Tobias Burnus <burnus@net-b.de>
1584 * class.c (gfc_class_null_initializer): Fix finding the vtab.
1585 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
1587 2013-01-03 Janus Weil <janus@gcc.gnu.org>
1590 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
1591 of rvalue. Correct hyphenation in error message.
1593 2013-01-03 Jakub Jelinek <jakub@redhat.com>
1595 * gfortranspec.c (lang_specific_driver): Update copyright notice
1598 Copyright (C) 2013 Free Software Foundation, Inc.
1600 Copying and distribution of this file, with or without modification,
1601 are permitted in any medium without royalty provided the copyright
1602 notice and this notice are preserved.