1 2013-10-29 Paul Thomas <pault@gcc.gnu.org>
4 * trans-types.c (gfc_typenode_for_spec): Add typenode for
5 BT_HOLLERITH. Note that the length is incorrect but unusable.
8 * target-memory.c (gfc_element_size): Add element sizes for
9 BT_VOID and BT_ASSUMED, using gfc_typenode_for_spec.
11 2013-10-24 Tobias Burnus <burnus@net-b.de>
14 * trans-stmt.c (struct forall_info): Add do_concurrent field.
15 (gfc_trans_forall_1): Set it for do concurrent.
16 (gfc_trans_forall_loop): Mark those as annot_expr_ivdep_kind.
18 2013-10-23 Tobias Burnus <burnus@net-b.de>
21 * interface.c (compare_parameter): Reject passing TYPE(*)
24 2013-10-22 Paul Thomas <pault@gcc.gnu.org>
27 * class.c : Include target-memory.h.
28 (gfc_find_intrinsic_vtab) Build a minimal expression so that
29 gfc_element_size can be used to obtain the storage size, rather
32 2013-10-21 Tobias Burnus <burnus@net-b.de>
35 * decl.c (match_ppc_decl): Prevent later
38 2013-10-17 Andrew MacLeod <amacleod@redhat.com>
40 * trans-openmp.c: Include omp-low.h.
42 2013-10-16 Tobias Burnus <burnus@net-b.de>
45 * interface.c (compare_parameter): Accept passing CLASS(*)
48 2013-10-16 Tobias Burnus <burnus@net-b.de>
50 * intrinsic.texi (OpenMP Modules): Update to OpenMPv4.
51 Document omp_proc_bind_kind.
53 2013-10-15 Tobias Burnus <burnus@net-b.de>
56 * trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling
57 of CLASS(*) variables.
59 2013-10-14 Tobias Burnus <burnus@net-b.de>
62 * expr.c (gfc_check_vardef_context): Fix pointer diagnostic
65 2013-10-11 Jakub Jelinek <jakub@redhat.com>
67 * trans-openmp.c (gfc_omp_clause_default_ctor,
68 gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
69 * f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
70 * types.def (DEF_FUNCTION_TYPE_8): Document.
71 (BT_FN_VOID_OMPFN_PTR_UINT,
72 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
73 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
74 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
75 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
76 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
77 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
78 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
79 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
80 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
81 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
83 2013-10-10 Tobias Burnus <burnus@net-b.de>
86 * options.c (gfc_get_option_string): Handle zero arg case.
88 2013-10-02 Tobias Burnus <burnus@net-b.de>
91 * trans-expr.c (gfc_conv_string_tmp): Fix obtaining
92 the byte size of a single character.
94 2013-10-01 Tobias Burnus <burnus@net-b.de>
97 * trans-expr.c (gfc_conv_string_tmp): Correctly obtain
98 the byte size of a single character.
100 2013-09-27 Janne Blomqvist <jb@gcc.gnu.org>
102 * intrinsic.texi (DATE_AND_TIME): Fix example.
104 2013-09-25 Tobias Burnus <burnus@net-b.de>
107 * class.c (generate_finalization_wrapper): Handle CLASS(*).
109 2013-09-25 Tobias Burnus <burnus@net-b.de>
113 * resolve.c (generate_component_assignments): Avoid double free
114 at runtime and freeing a still-being used expr.
116 2013-09-25 Tom Tromey <tromey@redhat.com>
118 * Make-lang.in (fortran_OBJS): Use fortran/gfortranspec.o.
119 (gfortranspec.o): Remove.
120 (CFLAGS-fortran/gfortranspec.o): New variable.
121 (GFORTRAN_D_OBJS): Update.
122 ($(F95_PARSER_OBJS), fortran/openmp.o, GFORTRAN_TRANS_DEPS)
123 (fortran/f95-lang.o, fortran/scanner.o, fortran/convert.o)
124 (fortran/frontend-passes.o, fortran/trans.o, fortran/trans-decl.o)
125 (fortran/trans-types, fortran/trans-const.o, fortran/trans-expr.o)
126 (fortran/trans-stmt.o, fortran/trans-openmp.o, fortran/trans-io.o)
127 (fortran/trans-array.o, fortran/trans-intrinsic.o)
128 (fortran/dependency.o, fortran/trans-common.o, fortran/resolve.o)
129 (fortran/data.o, fortran/options.o, fortran/cpp.o)
130 (fortran/scanner.o, fortran/module.o): Remove.
132 2013-09-25 Tom Tromey <tromey@redhat.com>
134 * Make-lang.in (gfortranspec.o): Don't use subshell.
136 2013-09-23 Janus Weil <janus@gcc.gnu.org>
139 * decl.c (check_extended_derived_type): Prevent segfault, modify error
142 2013-09-20 Janus Weil <janus@gcc.gnu.org>
145 * expr.c (gfc_check_pointer_assign): Remove second call to
146 'gfc_compare_interfaces' with swapped arguments.
147 * interface.c (gfc_compare_interfaces): Symmetrize the call to
148 'check_result_characteristics' by calling it with swapped arguments.
150 2013-09-18 Tobias Burnus <burnus@net-b.de>
152 * expr.c (gfc_check_assign_symbol): Free lvalue.ref.
154 2013-09-18 Tobias Burnus <burnus@net-b.de>
157 * primary.c (gfc_variable_attr): Also handle codimension.
158 * resolve.c (resolve_ordinary_assign): Add invalid-diagnostic for
159 polymorphic assignment.
161 2013-09-16 Tobias Burnus <burnus@net-b.de>
164 * class.c (generate_finalization_wrapper): Init proc_tree if
167 2013-09-16 Tobias Burnus <burnus@net-b.de>
170 * resolve.c (generate_component_assignments): Correctly handle the
171 case that the LHS is not allocated.
173 2013-09-15 Tobias Burnus <burnus@net-b.de>
176 * resolve.c (generate_component_assignments): Handle unallocated
177 LHS with defined assignment of components.
179 2013-09-12 Brooks Moses <bmoses@google.com>
182 * Make-lang.in: Do not install driver binaries in $(target)/bin.
184 2013-09-09 Tobias Burnus <burnus@net-b.de>
186 * invoke.texi (Error and Warning Options): Add hyphen.
188 2013-09-02 Thomas Koenig <tkoenig@gcc.gnu.org>
191 * gfortran.h: Declare gfc_do_concurrent_flag as extern.
192 * resolve.c: Rename do_concurrent_flag to gfc_do_concurrent_flag
194 (resolve_function): Use gfc_do_concurrent_flag instead of
196 (pure_subroutine): Likewise.
197 (resolve_code): Likewise.
198 (resolve_types): Likewise.
199 * intrinsic.c (gfc_intrinsic_sub_interface): Raise error for
200 non-pure intrinsic subroutines within DO CONCURRENT.
202 2013-08-29 Thomas Koenig <tkoenig@gcc.gnu.org>
205 * trans-expr.c (is_runtime_conformable): New function.
206 * gfc_trans_assignment_1: Use it.
208 2013-08-26 Thomas Koenig <tkoenig@gcc.gnu.org>
211 * array.c (gfc_ref_dimen_size): If possible, use
212 gfc_dep_difference to calculate array refrence
213 sizes. Fall back to integer code otherwise.
214 * dependency.c (discard_nops). Move up.
215 Also discarde widening integer conversions.
216 (gfc_dep_compare_expr): Use discard_nops.
218 2013-08-23 Mikael Morin <mikael@gcc.gnu.org>
221 * trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
222 gfc_set_delta): Generate preliminary code before the outermost loop.
224 2013-08-23 Janus Weil <janus@gcc.gnu.org>
227 * interface.c (gfc_extend_assign): Look for type-bound assignment
228 procedures before non-typebound.
230 2013-08-23 Mikael Morin <mikael@gcc.gnu.org>
232 * trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
234 (gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
236 2013-08-22 Janus Weil <janus@gcc.gnu.org>
239 * match.c (copy_ts_from_selector_to_associate): Only build class
240 container for polymorphic selector. Some cleanup.
242 2013-08-20 Janus Weil <janus@gcc.gnu.org>
245 * trans-decl.c (generate_local_decl): Check if type has any components.
247 2013-08-19 Janus Weil <janus@gcc.gnu.org>
250 * openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
252 2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org>
255 * gfortran.h (gfc_option_t): Add warn_zerotrip.
256 * invoke.texi (-Wzerotrip): Document option.
257 * lang.opt (Wzerotrip): Add.
258 * options.c (gfc_init_options): Initialize warn_zerotrip.
259 (set_Wall): Add handling of warn_zerotrip.
260 (gfc_handle_option): Handle OPT_Wzerotrip.
261 * resolve.c (gfc_resolve_iterator): Honor
262 gfc_option.warn_zerotrip; update error message to show
263 how to suppress the warning.
265 2013-08-09 Janus Weil <janus@gcc.gnu.org>
267 * gfortran.h (gfc_get_code): Modified prototype.
268 * class.c (finalize_component, finalization_scalarizer,
269 finalization_get_offset, finalizer_insert_packed_call,
270 generate_finalization_wrapper, gfc_find_derived_vtab,
271 gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
272 * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
273 gfc_match_inquire): Call 'gfc_get_code' with argument.
274 * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
275 gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
277 * parse.c (new_level): Ditto.
278 (add_statement): Use XCNEW.
279 * resolve.c (resolve_entries, resolve_allocate_expr,
280 resolve_select_type, build_assignment, build_init_assign): Call
281 'gfc_get_code' with argument.
282 * st.c (gfc_get_code): Add argument 'op'.
283 * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
285 * trans-stmt.c (gfc_trans_allocate): Ditto.
287 2013-08-09 Janus Weil <janus@gcc.gnu.org>
290 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
291 string, if necessary.
293 2013-08-06 Martin Jambor <mjambor@suse.cz>
296 * trans-decl.c (gfc_generate_function_code): Never call
297 cgraph_finalize_function on nested functions.
299 2013-08-06 Janus Weil <janus@gcc.gnu.org>
302 * class.c (gfc_class_null_initializer): Rename to
303 'gfc_class_initializer'. Treat non-NULL init-exprs.
304 * gfortran.h (gfc_class_null_initializer): Update prototype.
305 * trans-decl.c (gfc_get_symbol_decl): Treat class variables.
306 * trans-expr.c (gfc_conv_initializer): Ditto.
307 (gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
309 2013-07-30 Tobias Burnus <burnus@net-b.de>
312 * symbol.c (gfc_type_compatible): A type is type compatible with
313 a class if both have the same declared type.
314 * interface.c (compare_type): Reject CLASS/TYPE even if they
317 2013-07-30 Tobias Burnus <burnus@net-b.de>
320 * trans-expr.c (gfc_trans_class_assign): Handle CLASS array
322 (gfc_trans_pointer_assign): Ditto and support pointer assignment of
323 a polymorphic var to a nonpolymorphic var.
325 2013-07-22 Po Chang <pchang9@cs.wisc.edu>
327 * match.c (gfc_match_call): Exit loop after setting i.
329 * resolve.c (resolve_variable): Exit loop after setting seen.
331 * expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
333 * trans-array.c (set_loop_bounds): Exit loop after setting
336 * trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
338 2013-07-28 Thomas Koenig <tkoenig@gcc.gnu.org>
341 * expr.c (gfc_check_vardef_context): Check for same values in
342 vector expression subscripts.
344 2013-07-27 Tobias Burnus <burnus@net-b.de>
347 * interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
349 2013-07-27 Janus Weil <janus@gcc.gnu.org>
352 * check.c (dim_rank_check): Re-enable this check for CLASS arrays.
354 2013-07-25 Janus Weil <janus@gcc.gnu.org>
357 * resolve.c (resolve_typebound_function): Make sure the declared type,
358 including its type-bound procedures, is resolved before resolving the
359 actual type-bound call.
361 2013-07-25 Janus Weil <janus@gcc.gnu.org>
364 * interface.c (compare_parameter): Check for class_ok.
365 * simplify.c (gfc_simplify_same_type_as): Ditto.
367 2013-07-23 OndÅ™ej BÃlka <neleai@seznam.cz>
369 * decl.c: Fix comment typos.
370 * interface.c: Likewise.
371 * trans-array.c: Likewise.
374 2013-07-22 Tobias Burnus <burnus@net-b.de>
378 * class.c (gfc_build_class_symbol): Set coarray_comp.
379 * trans-array.c (structure_alloc_comps): For coarrays,
380 directly use the data pointer address.
382 2013-07-22 Chang <pchang9@cs.wisc.edu>
384 * trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
385 setting PACKED_PARTIAL.
387 2013-07-22 Tobias Burnus <burnus@net-b.de>
389 * trans-array.c (gfc_array_allocate): Correct memory-leak patch.
391 2013-07-22 Tobias Burnus <burnus@net-b.de>
393 * trans-array.c (gfc_array_allocate,
394 gfc_trans_deferred_array): Plug memory leak.
396 2013-07-21 OndÅ™ej BÃlka <neleai@seznam.cz>
398 * trans-decl.c: Fix comment typos.
399 * trans-expr.c: Ditto.
401 2013-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
404 * dependency.c (gfc_dep_resolver): Treat identical
405 array subscripts as identical; don't unconditionally
406 return a dependency if an array subscript is found.
408 2013-07-21 Tobias Burnus <burnus@net-b.de>
411 * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
412 GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
414 2013-07-21 Tobias Burnus <burnus@net-b.de>
417 * check.c (min_max_args): Add keyword= check.
419 2013-07-17 Mikael Morin <mikael@gcc.gnu.org>
420 Tobias Burnus <burnus@net-b.de>
423 * match.c (gfc_match_name): Ensure that the error
424 message regarding -fdollar-ok gets printed.
425 (gfc_match_common): Avoid multiple freeing.
427 2013-07-16 Tobias Burnus <burnus@net-b.de>
430 * trans-expr.c (gfc_trans_scalar_assign): Correct if
431 condition for caf realloc.
433 2013-07-15 Tobias Burnus <burnus@net-b.de>
435 * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
436 gfc_reassign_alloc_comp_caf): New prototype.
437 * trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
438 and COPY_ALLOC_COMP_CAF.
439 (structure_alloc_comps): Handle it.
440 (gfc_reassign_alloc_comp_caf,
441 gfc_deallocate_alloc_comp_no_caf): New function.
442 (gfc_alloc_allocatable_for_assignment): Call it.
443 * trans-expr.c (gfc_trans_scalar_assign,
444 gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
445 * parse.c (parse_derived): Correctly set coarray_comp.
446 * resolve.c (resolve_symbol): Improve error wording.
448 2013-07-15 Tobias Burnus <burnus@net-b.de>
451 * trans.c (gfc_add_comp_finalizer_call): New function.
452 * trans.h (gfc_add_comp_finalizer_call): New prototype.
453 * trans-array.c (structure_alloc_comps): Call it.
455 2013-07-14 Thomas Koenig <tkoenig@gcc.gnu.org>
456 Tobias Burnus <burnus@gcc.gnu.org>
459 * trans-decl.c (gfc_finish_var_decl): Move setting of
460 PRIVATE for a module variable if the module has a private
461 default or -fmodule-private is given to...
462 (gfc_create_module_variable): here. Optionally
463 warn about private module variable which is not used.
465 2013-07-08 Tobias Burnus <burnus@net-b.de>
468 * check.c (is_c_interoperable): Add special case for c_f_pointer.
469 (explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
472 2013-07-08 Tobias Burnus <burnus@net-b.de>
475 * io.c (match_inquire_element): Add missing do-var check.
477 2013-07-08 Tobias Burnus <burnus@net-b.de>
480 * simplify.c (compute_dot_product): Complex conjugate for
482 (gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
484 2013-07-08 Tobias Burnus <burnus@net-b.de>
487 * trans-decl.c (generate_local_decl): Don't warn that
488 a dummy is unused, when it is in a namelist.
490 2013-07-01 Dominique d'Humieres <dominiq@lps.ens.fr>
493 * array.c (spec_size): handle the case as==NULL.
495 2013-06-26 Tobias Burnus <burnus@net-b.de>
498 * trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
500 * trans-array.c (gfc_conv_array_ref): Update prototype.
501 * trans-expr.c (gfc_conv_variable): Update call.
503 2013-06-24 Steven G. Kargl <sgk@troutmask.apl.washington.edu>
504 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
505 Dominique d'Humieres <dominiq@lps.ens.fr>
508 * simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
510 2013-06-21 Tobias Burnus <burnus@net-b.de>
513 * trans-array.c (gfc_trans_deferred_array): Call the
514 finalizer for nonallocatable local variables.
515 * trans-decl.c (gfc_get_symbol_decl): Add local
516 finalizable vars to the deferred list.
517 (gfc_trans_deferred_vars): Call gfc_trans_deferred_array
520 2013-06-21 Tobias Burnus <burnus@net-b.de>
522 * trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
524 * trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
526 2013-06-20 Tobias Burnus <burnus@net-b.de>
528 * resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
530 2013-06-17 Tobias Burnus <burnus@net-b.de>
532 * gfortran.h (gfc_option_t): Add fpe_summary.
533 * gfortran.texi (_gfortran_set_options): Update.
534 * invoke.texi (-ffpe-summary): Add doc.
535 * lang.opt (ffpe-summary): Add flag.
536 * options.c (gfc_init_options, gfc_handle_option): Handle it.
537 (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
538 also handle fpe_summary.
539 * trans-decl.c (create_main_function): Update
540 _gfortran_set_options call.
542 2013-06-15 Mikael Morin <mikael@gcc.gnu.org>
546 * dependency.c (gfc_check_argument_var_dependency): Return 0 in the
547 array constructor case.
549 2013-06-14 Tobias Burnus <burnus@net-b.de>
552 * resolve.c (get_temp_from_expr): Don't copy function
553 result attributes to temporary.
555 2013-06-14 Tobias Burnus <burnus@net-b.de>
558 * trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
559 for nullify and deferred-strings' length variable.
561 2013-06-13 Mikael Morin <mikael@gcc.gnu.org>
564 * trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
565 Handle NULL array references.
566 (gfc_conv_procedure_call): Remove code handling NULL array references.
568 2013-06-11 Tobias Burnus <burnus@net-b.de>
571 * trans-array.c (build_class_array_ref): Fix ICE for
572 function result variables.
574 2013-06-08 Tobias Burnus <burnus@net-b.de>
577 * trans-decl.c (init_intent_out_dt): Call finalizer
580 2013-06-08 Tobias Burnus <burnus@net-b.de>
583 * simplify.c (gfc_simplify_storage_size): Handle literal
585 * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
586 Add missing fold_convert.
588 2013-06-07 Tobias Burnus <burnus@net-b.de>
591 * array.c (gfc_match_array_constructor): Call
592 gfc_match_type_spec instead of gfc_match_decl_type_spec.
593 * match.c (gfc_match_type_spec): Renamed from match_type_spec.
594 (gfc_match_type_is, gfc_match_allocate): Update call.
595 * match.h (gfc_match_type_spec): Add prototype.
597 2013-06-07 Tobias Burnus <burnus@net-b.de>
600 * trans.c (gfc_build_final_call): Init block before use.
602 2013-06-06 Tobias Burnus <burnus@net-b.de>
605 * trans.c (gfc_build_final_call): Add se.pre to the block
606 and modify the assert.
608 2013-06-04 Tobias Burnus <burnus@net-b.de>
611 * trans.h (gfc_build_final_call): Remove prototype.
612 (gfc_add_finalizer_call): Add prototype.
613 * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
614 (structure_alloc_comps): Update caller.
615 (gfc_trans_deferred_array): Call finalizer.
616 * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
617 * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
618 variables of the main program.
619 * trans-expr.c (gfc_conv_procedure_call): Support finalization.
620 * trans-openmp.c (gfc_omp_clause_dtor,
621 gfc_trans_omp_array_reduction): Update calls.
622 * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
624 * trans.c (gfc_add_finalizer_call): New function.
625 (gfc_deallocate_with_status,
626 gfc_deallocate_scalar_with_status): Call it
627 (gfc_build_final_call): Fix handling of scalar coarrays,
628 move up in the file and make static.
630 2013-06-01 Janus Weil <janus@gcc.gnu.org>
631 Mikael Morin <mikael@gcc.gnu.org>
633 * error.c (get_terminal_width): Only limit the width if we're
634 outputting to a terminal. Try to determine width via ioctl.
636 2013-06-01 Tobias Burnus <burnus@net-b.de>
638 * decl.c (add_global_entry): Take locus.
639 (gfc_match_entry): Update call.
640 (gfc_match_end): Better error location.
641 * parse.c (parse_block_data, parse_module, add_global_procedure,
642 add_global_program): Use better locus data.
644 2013-05-31 Tobias Burnus <burnus@net-b.de>
647 * trans-array.c (gfc_array_init_size): Use passed type spec,
649 (gfc_array_allocate): Pass typespec on.
650 * trans-array.h (gfc_array_allocate): Update prototype.
651 * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
653 2013-05-31 Janus Weil <janus@gcc.gnu.org>
657 * gfortran.h (gfc_terminal_width): Remove prototype.
658 * error.c (get_terminal_width): Moved here from misc.c. Renamed.
659 Try to determine terminal width from environment variable.
660 * interface.c (compare_type, compare_rank): New functions. Fix assumed
662 (compare_type_rank, check_dummy_characteristics,
663 check_result_characteristics, gfc_compare_interfaces): Use them.
664 (symbol_rank): Slightly modified and moved.
665 * misc.c (gfc_terminal_width): Moved to error.c.
667 2013-05-30 Janus Weil <janus@gcc.gnu.org>
670 * resolve.c (check_assumed_size_reference): Check for e->ref.
672 2013-05-30 Tobias Burnus <burnus@net-b.de>
675 * interface.c (compare_parameter): Update C1239/C1240 constraint
676 check for assumed-rank/TS29113.
678 2013-05-29 Tobias Burnus <burnus@net-b.de>
681 * class.c (finalize_component): Fix coarray array refs.
682 (generate_finalization_wrapper): Only gfc_convert_type_warn
683 when the kind value is different.
684 (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
685 (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
687 * module.c (MOD_VERSION): Bump.
688 (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
689 * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
691 (gfc_array_allocate, structure_alloc_comps): Don't nullify for
692 BT_CLASS allocations.
693 * trans-stmt.c (gfc_trans_allocate): Ditto.
695 2013-05-29 Tobias Burnus <burnus@net-b.de>
698 * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
700 2013-05-28 Tobias Burnus <burnus@net-b.de>
702 * trans-expr.c (gfc_conv_procedure_call): Deallocate
703 polymorphic arrays for allocatable intent(out) dummies.
704 (gfc_reset_vptr): New function, moved from trans-stmt.c
706 * trans-stmt.c (reset_vptr): Remove.
707 (gfc_trans_deallocate): Update calls.
708 * trans.h (gfc_reset_vptr): New prototype.
710 2013-05-28 Dominique d'Humieres <dominiq@lps.ens.fr>
713 * module.c (check_for_ambiguous): Avoid null pointer deref.
715 2013-05-28 Janus Weil <janus@gcc.gnu.org>
716 Tobias Burnus <burnus@net-b.de>
719 * interface.c (check_dummy_characteristics): Symmetrize type check.
721 2013-05-27 Bud Davis <jmdavis@link.com>
724 * resolve.c (resolve_formal_arglist): Detect error when an argument
725 has the same name as the function.
727 2013-05-27 Tobias Burnus <burnus@net-b.de>
729 * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
730 * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
732 2013-05-22 Tobias Burnus <burnus@net-b.de>
734 * resolve.c (get_temp_from_expr): Change mangling to
735 start always with a _.
737 2013-05-22 Tobias Burnus <burnus@net-b.de>
739 * resolve.c (get_temp_from_expr): Fix temp var mangling.
741 2013-05-22 Tobias Burnus <burnus@net-b.de>
744 * resolve.c (get_temp_from_expr): Commit created sym.
746 2013-05-22 Tobias Burnus <burnus@net-b.de>
749 * intrinsic.c (do_check): Move some checks to ...
750 (do_ts29113_check): ... this new function.
751 (check_specific, gfc_intrinsic_sub_interface): Call it.
753 2013-05-22 Janne Blomqvist <jb@gcc.gnu.org>
755 * intrinsic.texi (RANDOM_SEED): Improve example.
757 2013-05-21 Tobias Burnus <burnus@net-b.de>
760 * intrinsic.c (do_check): Add constraint check for
761 NO_ARG_CHECK, assumed rank and assumed type.
762 * gfortran.texi (NO_ARG_CHECK): Minor wording change,
763 allow PRESENT intrinsic.
765 2013-05-20 Tobias Burnus <burnus@net-b.de>
769 * decl.c (add_global_entry): Add sym_name.
770 * parse.c (add_global_procedure): Ditto.
771 * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
773 (resolve_global_procedure): Handle gsym->ns pointing to a module.
774 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
776 2013-05-20 Tobias Burnus <burnus@net-b.de>
779 * decl.c (add_global_entry): Use nonbinding name
780 only for F2003 or if no binding label exists.
781 (gfc_match_entry): Update calls.
782 * parse.c (gfc_global_used): Improve error message.
783 (add_global_procedure): Use nonbinding name
784 only for F2003 or if no binding label exists.
785 (gfc_parse_file): Update call.
786 * resolve.c (resolve_global_procedure): Use binding
788 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
790 2013-05-20 Tobias Burnus <burnus@net-b.de>
793 * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
794 * match.c (gfc_match_common): Don't add commons to gsym.
795 * resolve.c (resolve_common_blocks): Add to gsym and
797 (resolve_bind_c_comms): Remove.
798 (resolve_types): Remove call to the latter.
799 * trans-common.c (gfc_common_ns): Remove static var.
800 (gfc_map_of_all_commons): Add static var.
801 (build_common_decl): Correctly handle binding label.
803 2013-05-16 Jason Merrill <jason@redhat.com>
805 * Make-lang.in (f951$(exeext)): Use link mutex.
807 2013-05-05 Tobias Burnus <burnus@net-b.de>
809 * resolve.c (conformable_arrays): Avoid segfault
810 when ar.start[i] == NULL.
812 2013-05-05 Tobias Burnus <burnus@net-b.de>
815 * decl.c (gfc_match_null): Permit use-associated
818 2013-05-04 Tobias Burnus <burnus@net-b.de>
820 * decl.c (gfc_verify_c_interop_param): Permit allocatable
821 and pointer with -std=f2008ts.
823 2013-05-02 Tobias Burnus <burnus@net-b.de>
826 * simplify.c (gfc_simplify_size): Renamed from
827 simplify_size; fix kind=8 handling.
828 (gfc_simplify_size): New function.
829 (gfc_simplify_shape): Add range check.
830 * resolve.c (resolve_function): Fix handling
833 2013-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
835 * frontend-passes.c (optimize_power): Fix typo
838 2013-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
841 * frontend-passes.c (optimize_power): Simplify
844 2013-04-28 Tobias Burnus <burnus@net-b.de>
847 * intrinsic.texi (RANK): Correct syntax description and
850 2013-04-28 Tobias Burnus <burnus@net-b.de>
853 * trans-types.c (gfc_get_element_type): Fix handling
854 of scalar coarrays of type character.
855 * intrinsic.texi (PACK): Add missing ")".
857 2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org>
860 * frontend-passes (optimize_power): New function.
861 (optimize_op): Use it.
863 2013-04-25 Janne Blomqvist <jb@gcc.gnu.org>
866 * Make-lang.in (f951): Link in ZLIB.
867 (CFLAGS-fortran/module.o): Add zlib include directory.
869 2013-04-22 Janus Weil <janus@gcc.gnu.org>
873 * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
875 * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
876 of special treatment for EXPR_ARRAY.
877 * target-memory.h (gfc_element_size): New prototype.
878 * target-memory.c (size_array): Remove.
879 (gfc_element_size): New function.
880 (gfc_target_expr_size): Modified to always return the full size of the
883 2013-04-20 Tobias Burnus <burnus@net-b.de>
886 * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
889 2013-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
890 Mikael Morin <mikael@gcc.gnu.org>
893 * frontend-passes.c (copy_walk_reduction_arg): Change argument type
894 to gfc_constructor. If it has an iterator, wrap the copy of its
895 expression in an array constructor with that iterator. Don't special
896 case function expressions.
897 (callback_reduction): Update caller. Don't return early if there is
900 2013-04-18 Tobias Burnus <burnus@net-b.de>
902 * expr.c (find_array_element): Don't copy expr.
903 * data.c (create_character_initializer): Free expr.
904 * frontend-passes.c (combine_array_constructor): Ditto.
905 * match.c (match_typebound_call, gfc_match_select_type): Ditto.
906 * resolve.c (resolve_typebound_function): Free gfc_ref.
908 2013-04-18 Tobias Burnus <burnus@net-b.de>
911 * invoke.texi (NEAREST): S argument is not optional.
913 2013-04-17 Janus Weil <janus@gcc.gnu.org>
916 * interface.c (check_result_characteristics): Get result from interface
919 2013-04-17 Janne Blomqvist <jb@gcc.gnu.org>
922 * scanner.h: New file.
923 * Make-lang.in: Dependencies on scanner.h.
924 * scanner.c (gfc_directorylist): Move to scanner.h.
925 * module.c: Don't include md5.h, include scanner.h and zlib.h.
926 (MOD_VERSION): Add comment about backwards compatibility.
927 (module_fp): Change type to gzFile.
929 (gzopen_included_file_1): New function.
930 (gzopen_included_file): New function.
931 (gzopen_intrinsic_module): New function.
932 (write_char): Use gzputc.
933 (read_crc32_from_module_file): New function.
934 (read_md5_from_module_file): Remove.
935 (gfc_dump_module): Use gz* functions instead of stdio, check gzip
936 crc32 instead of md5.
937 (read_module_to_tmpbuf): Use gz* functions instead of stdio.
938 (gfc_use_module): Use gz* functions.
940 2013-04-16 Tobias Burnus <burnus@net-b.de>
943 * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
944 * gfortran.h (ext_attr_id_t): Ditto.
945 * gfortran.texi (GNU Fortran Compiler Directives):
947 * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
948 (compare_parameter): Ditto - and regard as unlimited polymorphic.
949 * resolve.c (resolve_symbol, resolve_variable): Add same constraint
950 checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
951 (gfc_explicit_interface_required): Require explicit interface
954 2013-04-16 Janus Weil <janus@gcc.gnu.org>
957 * expr.c (gfc_check_pointer_assign): Handle generic functions returning
960 2013-04-16 Tobias Burnus <burnus@net-b.de>
963 * intrinsic.c (gfc_intrinsic_func_interface): Don't set
964 module name to "(intrinsic)" for intrinsics from intrinsic
967 2013-04-15 Tobias Burnus <burnus@net-b.de>
969 * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
971 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
974 * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
976 2013-04-15 Tobias Burnus <burnus@net-b.de>
978 * class.c (gfc_find_intrinsic_vtab): Removed unused var.
979 * dependency.c (check_data_pointer_types): Fix check.
980 * frontend-passes.c (check_data_pointer_types): Remove
981 superfluous statement.
982 * parse.c (decode_omp_directive): Add missing break.
983 * resolve.c (resolve_typebound_subroutine: Free variable.
984 * trans-decl.c (create_function_arglist): Correct condition.
986 2013-04-14 Mikael Morin <mikael@gcc.gnu.org>
989 * match.c (gfc_match_select_type): Add syntax error. Move namespace
990 allocation and cleanup...
991 * parse.c (decode_statement): ... here.
993 2013-04-13 Janus Weil <janus@gcc.gnu.org>
996 * expr.c (gfc_simplify_expr): Branch is not unreachable.
998 2013-04-12 Janus Weil <janus@gcc.gnu.org>
1001 * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
1003 2013-04-12 Tobias Burnus <burnus@net-b.de>
1006 * trans-array.c (duplicate_allocatable): Fix handling
1009 2013-04-12 Janus Weil <janus@gcc.gnu.org>
1012 * gfortran.h (gfc_explicit_interface_required): New prototype.
1013 * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
1014 required in a proc-ptr assignment.
1015 * interface.c (check_result_characteristics): Extra check.
1016 * resolve.c (gfc_explicit_interface_required): New function.
1017 (resolve_global_procedure): Use new function
1018 'gfc_explicit_interface_required'. Do a full interface check.
1020 2013-04-12 Tobias Burnus <burnus@net-b.de>
1023 * trans-decl.c (gfc_trans_deferred_vars): Restrict
1024 static CLASS init to SAVE and -fno-automatic.
1026 2013-04-12 Tobias Burnus <burnus@net-b.de>
1029 * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
1030 allocatable static BT_CLASS.
1031 * trans-expr.c (gfc_class_set_static_fields): New function.
1032 * trans.h (gfc_class_set_static_fields): New prototype.
1034 2013-04-11 Janne Blomqvist <jb@gcc.gnu.org>
1036 * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
1037 * arith.c: Replace gfc_try with bool type.
1038 * array.c: Likewise.
1039 * check.c: Likewise.
1040 * class.c: Likewise.
1046 * error.c: Likewise.
1048 * f95-lang.c: Likewise.
1049 * interface.c: Likewise.
1050 * intrinsic.c: Likewise.
1051 * intrinsic.h: Likewise.
1053 * match.c: Likewise.
1054 * match.h: Likewise.
1055 * module.c: Likewise.
1056 * openmp.c: Likewise.
1057 * parse.c: Likewise.
1058 * parse.h: Likewise.
1059 * primary.c: Likewise.
1060 * resolve.c: Likewise.
1061 * scanner.c: Likewise.
1062 * simplify.c: Likewise.
1063 * symbol.c: Likewise.
1064 * trans-intrinsic.c: Likewise.
1065 * trans-openmp.c: Likewise.
1066 * trans-stmt.c: Likewise.
1067 * trans-types.c: Likewise.
1069 2013-04-09 Tobias Burnus <burnus@net-b.de>
1071 * gfortran.texi (KIND Type Parameters,
1072 Internal representation of LOGICAL variables): Add crossrefs.
1073 (Intrinsic Types): Mention issues with _Bool interop.
1074 (Naming and argument-passing conventions): New section.
1076 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
1079 * frontend-passes.c (callback_reduction): Don't do
1080 any simplification if there is only a single element
1081 which has an iterator.
1083 2013-04-07 Tobias Burnus <burnus@net-b.de>
1086 * iresolve.c (gfc_resolve_reshape): Set shape also
1089 2013-04-04 Janus Weil <janus@gcc.gnu.org>
1092 * match.c (gfc_match_return): Remove standard notification.
1093 * primary.c (gfc_match_actual_arglist): Add standard notification.
1095 2013-04-04 Tobias Burnus <burnus@net-b.de>
1098 * gcc/fortran/check.c (is_c_interoperable,
1099 gfc_check_c_loc): Correct c_loc array checking
1100 for Fortran 2003 and Fortran 2008.
1102 2013-04-03 Janus Weil <janus@gcc.gnu.org>
1106 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
1108 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
1110 2013-04-01 Janus Weil <janus@gcc.gnu.org>
1113 * symbol.c (gfc_set_default_type): Build class container for
1116 2013-03-31 Tobias Burnus <burnus@net-b.de>
1118 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
1119 generate_finalization_wrapper): Avoid segfault with absent SIZE=
1120 argument to TRANSFER and use correct result kind for SIZE.
1121 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
1123 * trans.c (gfc_build_final_call): Handle coarrays.
1125 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
1127 * trans-expr.c (build_memcmp_call): New function.
1128 (gfc_build_compare_string): If the strings
1129 compared have constant and equal lengths and
1130 the strings are kind=1, or, for kind=4 strings,
1131 the test is for (in)equality, use memcmp().
1133 2013-03-29 Tobias Burnus <burnus@net-b.de>
1136 * trans-decl.c (create_function_arglist): Pass hidden argument
1137 for passed-by-value optional+value dummies.
1138 * trans-expr.c (gfc_conv_expr_present,
1139 gfc_conv_procedure_call): Handle those.
1141 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
1144 * gfortran.h (gfc_dep_difference): Add prototype.
1145 * dependency.c (discard_nops): New function.
1146 (gfc_dep_difference): New function.
1147 (check_section_vs_section): Use gfc_dep_difference
1148 to calculate the difference of starting indices.
1149 * trans-expr.c (gfc_conv_substring): Use
1150 gfc_dep_difference to calculate the length of
1151 substrings where possible.
1153 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
1156 * frontend-passes.c (optimize_code): Keep track of
1157 current code to make code insertion possible.
1158 (combine_array_constructor): New function.
1159 (optimize_op): Call it.
1161 2013-03-27 Tobias Burnus <burnus@net-b.de>
1165 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
1166 gfc_check_storage_size): Update checks.
1167 * intrinsic.texi (SIZEOF): Correct class.
1168 * intrinsic.h (gfc_simplify_sizeof,
1169 gfc_simplify_storage_size): New prototypes.
1170 * intrinsic.c (add_functions): Use them.
1171 * simplify.c (gfc_simplify_sizeof,
1172 gfc_simplify_storage_size): New functions.
1174 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
1177 * module.c (module_locus): Use long for position.
1178 (module_content): New variable.
1179 (module_pos): Likewise.
1180 (prev_character): Remove.
1181 (bad_module): Free data instead of closing mod file.
1182 (set_module_locus): Use module_pos.
1183 (get_module_locus): Likewise.
1184 (module_char): use buffer rather than stdio file.
1185 (module_unget_char): Likewise.
1186 (read_module_to_tmpbuf): New function.
1187 (gfc_use_module): Call read_module_to_tmpbuf.
1189 2013-03-26 Tobias Burnus <burnus@net-b.de>
1192 * simplify.c (gfc_simplify_merge): Simplify more.
1194 2013-03-25 Tobias Burnus <burnus@net-b.de>
1214 * check.c (gfc_var_strlen): Properly handle 0-sized string.
1215 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
1216 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
1217 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
1219 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
1221 (gfc_check_pointer_assign): Refine function result check.
1222 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
1223 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
1225 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
1227 (generate_isocbinding_symbol): Update prototype.
1228 (get_iso_c_sym): Remove.
1229 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
1230 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
1231 (gfc_intrinsic_sub_interface): Use it.
1232 (add_functions, add_subroutines): Add missing C-binding intrinsics.
1233 (gfc_intrinsic_func_interface): Add special case for c_loc.
1234 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
1235 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
1236 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
1237 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
1238 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
1239 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
1241 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
1243 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
1244 * module.c (create_intrinsic_function): Support subroutines and
1245 derived-type results.
1246 (use_iso_fortran_env_module): Update calls.
1247 (import_iso_c_binding_module): Ditto; update calls to
1248 generate_isocbinding_symbol.
1249 * resolve.c (find_arglists): Skip for intrinsic symbols.
1250 (gfc_resolve_intrinsic): Find intrinsic subs via id.
1251 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
1252 set_name_and_label, gfc_iso_c_sub_interface): Remove.
1253 (resolve_function, resolve_specific_s0): Remove calls to those.
1254 (resolve_structure_cons): Fix handling.
1255 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
1257 (gen_cptr_param, gen_fptr_param, gen_shape_param,
1258 build_formal_args, get_iso_c_sym): Remove.
1259 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
1260 (generate_isocbinding_symbol): Support hidden symbols and
1261 using c_ptr/c_funptr symtrees for nullptr defs.
1262 * target-memory.c (gfc_target_encode_expr): Fix handling
1264 * trans-expr.c (conv_isocbinding_procedure): Remove.
1265 (gfc_conv_procedure_call): Remove call to it.
1266 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
1268 * trans-intrinsic.c (conv_isocbinding_function,
1269 conv_isocbinding_subroutine): New.
1270 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
1272 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
1273 * trans-types.c (gfc_typenode_for_spec,
1274 gfc_get_derived_type): Ditto.
1275 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
1277 2013-03-18 Tobias Burnus <burnus@net-b.de>
1279 * gfortran.h (gfc_option_t): Remove flag_whole_file.
1280 * invoke.texi (-fno-whole-file): Remove.
1281 * lang.opt (fwhole-file): Change to Ignore.
1282 * options.c (gfc_init_options, gfc_post_options,
1283 gfc_handle_option): Remove !flag_whole_file handling
1284 * parse.c (resolve_all_program_units, translate_all_program_units,
1285 gfc_parse_file): Ditto.
1286 * resolve.c (resolve_global_procedure): Ditto.
1287 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1288 gfc_create_module_variable): Ditto.
1289 * trans-types.c (gfc_get_derived_type): Ditto.
1291 2013-03-15 Tobias Burnus <burnus@net-b.de>
1294 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
1295 if they are not simply contiguous.
1297 2013-03-11 Tobias Burnus <burnus@net-b.de>
1299 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
1300 to convert them into derived types.
1302 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
1305 * expr.c (gfc_default_initializer): Check that a class declared
1306 type has any components.
1307 * resolve.c (resolve_fl_derived0): On failing the test for C437
1308 set the type to BT_UNKNOWN to prevent repeat error messages.
1310 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1313 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
1315 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1318 * array.c (gfc_match_array_constructor): Set a checkpoint before
1319 matching a typespec. Drop it on success, restore it otherwise.
1321 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1324 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
1325 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
1326 gfc_restore_last_undo_checkpoint): New prototypes.
1327 * symbol.c (default_undo_chgset_var): Update initialization.
1328 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
1329 free_undo_change_set_data, pop_undo_change_set,
1330 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
1332 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
1333 field's previous value is not overwritten. Clear gfc_new field.
1334 (restore_old_symbol): Restore previous old_symbol field.
1335 (gfc_restore_last_undo_checkpoint): New function, using body renamed
1336 from gfc_undo_symbols. Restore the previous change set as current one.
1337 (gfc_undo_symbols): New body.
1338 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
1339 Call enforce_single_undo_checkpoint.
1340 (gfc_symbol_done_2): Ditto. Free change set data.
1342 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1344 * symbol.c (restore_old_symbol): Fix thinko.
1346 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1348 * symbol.c (gfc_undo_symbols): Move code...
1349 (restore_old_symbol): ... here as a new function.
1351 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
1353 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
1354 * gfortran.h: Include vec.h.
1355 (gfc_undo_change_set): New struct.
1356 * symbol.c (tentative_tbp): Remove struct.
1357 (changed_syms, tentative_tbp_list): Remove variables.
1358 (default_undo_chgset_var, latest_undo_chgset): New variables.
1359 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1360 gfc_commit_symbols, gfc_commit_symbol,
1361 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
1362 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
1364 2013-03-01 Tobias Burnus <burnus@net-b.de>
1367 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
1368 * symbol.c (free_components): Free proc-pointer components.
1370 2013-03-01 Tobias Burnus <burnus@net-b.de>
1372 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
1373 * trans-io.c (build_dt): Ditto.
1375 2013-02-24 Joseph Myers <joseph@codesourcery.com>
1377 * resolve.c (generate_component_assignments): Don't use UTF-8
1378 ligature in diagnostic.
1380 2013-02-21 Janus Weil <janus@gcc.gnu.org>
1383 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
1384 components with allocatable result.
1386 2013-02-21 Tobias Burnus <burnus@net-b.de>
1389 * gfortran.texi (Part II: Language Reference, Extensions,
1390 Non-Fortran Main Program): Sort @menu to match actual section order.
1391 * intrinsic.texi (Intrinsic Procedures): Ditto.
1392 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
1394 2013-02-15 Tobias Burnus <burnus@net-b.de>
1395 Mikael Morin <mikael@gcc.gnu.org>
1398 * simplify.c (gfc_simplify_matmul): Fix result shape
1401 2013-02-15 Tobias Burnus <burnus@net-b.de>
1404 * resolve.c (apply_default_init_local): Don't create an
1405 initializer for a result variable.
1407 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1410 * gfortran.h (gfc_add_include_path): Add boolean argument
1412 * scanner.c (gfc_add_include_path): Pass along warn argument
1413 to add_path_to_list.
1414 * options.c (gfc_post_options): Add true warn argument to
1415 gfc_add_include_path.
1416 (gfc_handle_module_path_options): Likewise.
1417 (gfc_handle_option): Also gfc_add_include_path for intrinsic
1418 modules, without warning.
1420 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
1421 Tobias Burnus <burnus@net-b.de>
1424 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
1425 results for functions without extra result variable.
1428 2013-01-30 Tobias Burnus <burnus@net-b.de>
1431 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1432 results for functions without extra result variable.
1434 2013-02-12 Janus Weil <janus@gcc.gnu.org>
1437 * resolve.c (resolve_call): Do not check deferred procedures for
1440 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
1443 * check.c (array_check): It is an error if a procedure is
1446 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
1449 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
1450 to error_mark_node on entry. Detect recursive types. Build a variadic
1451 procedure type if the type is recursive. Restore the initial
1454 2013-02-07 Tobias Burnus <burnus@net-b.de>
1457 * gfortran.texi (Standards): Mention TS29113.
1458 (Varying Length Character): Mention deferred-length
1460 (Fortran 2003 Status): Add unlimited polymorphic.
1461 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
1462 (C Interop): Update the section about TS29113.
1464 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
1467 * trans-array.c (trans_array_constructor): Remove condition
1468 'dynamic' = true if the loop ubound is a VAR_DECL.
1470 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
1474 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
1475 the lhs descriptor before it is modified for reallocation. Use
1476 it to deallocate allocatable components in the reallocation
1477 block. Nullify allocatable components for newly (re)allocated
1480 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
1483 * resolve.c (resolve_typebound_procedures): Recurse through
1486 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
1490 * gfortran.h (struct gfc_symbol): New field 'resolved'.
1491 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
1492 (resolve_symbol): Skip duplicate calls. Don't check the current
1495 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1499 * decl.c (gfc_match_end): Remove half-ready namespace
1500 from parent if the end of a block is missing.
1501 * parse.c (parse_module): Do not put namespace into
1504 2013-01-30 Tobias Burnus <burnus@net-b.de>
1507 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1508 results for functions without extra result variable.
1510 2013-01-29 Janus Weil <janus@gcc.gnu.org>
1511 Mikael Morin <mikael@gcc.gnu.org>
1514 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
1515 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
1516 gfc_expr_replace_comp): Delete.
1517 (gfc_sym_get_dummy_args): New prototype.
1518 * dependency.c (gfc_check_fncall_dependency): Use
1519 'gfc_sym_get_dummy_args'.
1520 * expr.c (gfc_is_constant_expr): Ditto.
1521 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
1522 gfc_expr_replace_comp): Deleted.
1523 * frontend-passes.c (doloop_code,do_function): Use
1524 'gfc_sym_get_dummy_args'.
1525 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
1526 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
1527 gfc_check_typebound_override): Ditto.
1528 * module.c (MOD_VERSION): Bump module version.
1529 (mio_component): Do not read/write 'formal' and 'formal_ns'.
1530 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
1531 copy formal args, but just keep a pointer to the interface.
1532 (resolve_function,resolve_call,resolve_typebound_generic_call,
1533 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
1534 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
1535 resolve_typebound_procedure,check_uop_procedure): Use
1536 'gfc_sym_get_dummy_args'.
1537 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
1538 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
1539 (gfc_sym_get_dummy_args): New function.
1540 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
1541 Use 'gfc_sym_get_dummy_args'.
1542 * trans-decl.c (build_function_decl,create_function_arglist,
1543 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
1544 add_argument_checking): Ditto.
1545 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
1546 gfc_conv_statement_function): Ditto.
1547 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1548 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
1550 2013-01-28 Tobias Burnus <burnus@net-b.de>
1551 Mikael Morin <mikael@gcc.gnu.org>
1554 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
1556 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
1557 * decl.c (gfc_match_data_decl): Ditto.
1558 (variable_decl): Remove undeclared type error.
1559 (gfc_match_import): Use renamed instead of original name.
1561 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
1565 * gfortran.h : Add associate_var to symbol_attr.
1566 * resolve.c (resolve_assoc_var): Set associate_var attribute.
1567 If the target class_ok is set, set it for the associate
1569 * check.c (allocatable_check): Associate variables should not
1570 have the allocatable attribute even if their symbols do.
1571 * class.c (gfc_build_class_symbol): Symbols with associate_var
1572 set will always have a good class container.
1574 2013-01-23 Janus Weil <janus@gcc.gnu.org>
1577 * resolve.c (resolve_select): Add argument 'select_type', reject
1578 non-scalar expressions.
1579 (resolve_select_type,resolve_code): Pass new argument to
1582 2013-01-23 Jakub Jelinek <jakub@redhat.com>
1585 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1586 and DECL_IGNORED_P on select_type_temporary and don't set
1589 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1592 * scanner.c (add_path_to_list): Copy path to temporary and strip
1593 trailing directory separators before calling stat().
1595 2013-01-17 Richard Biener <rguenther@suse.de>
1597 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1598 dependent on sign of step, avoids repeated evaluation of
1599 step sign test. Avoid undefined overflow issues by using unsigned
1602 2013-01-16 Janus Weil <janus@gcc.gnu.org>
1605 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1608 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1609 Tobias Burnus <burnus@net-b.de>
1612 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1613 (fintrinsic-modules-path=): New.
1614 * options.c (gfc_handle_option, gfc_get_option_string,
1615 gfc_get_option_string): Handle the latter.
1617 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1620 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1621 and use value of countm1 before the decrement in the condition.
1623 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
1626 * expr.c (gfc_check_pointer_assign): Check for presence of
1627 's2' before using it.
1629 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1632 * frontend-passes.c (optimize_reduction): New function,
1633 including prototype.
1634 (callback_reduction): Likewise.
1635 (gfc_run_passes): Also run optimize_reduction.
1636 (copy_walk_reduction_arg): New function.
1637 (dummy_code_callback): New function.
1639 2013-01-13 Jakub Jelinek <jakub@redhat.com>
1642 * trans-expr.c (gfc_conv_structure): Call
1643 unshare_expr_without_location on the ctor elements.
1645 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
1648 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1649 and rvalue interfaces are presented to gfc_compare_interfaces.
1650 Simplify references to interface names by using the symbols
1651 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1652 changed to overcome the asymmetry of this function. Do not
1653 repeat the check for the presence of s1 and s2.
1655 2013-01-12 Janus Weil <janus@gcc.gnu.org>
1658 * trans-array.c (gfc_conv_array_parameter): No packing was done for
1659 full arrays of derived type.
1661 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1664 * class.c (get_unique_type_string): Change $tar to STAR and
1665 replace sprintf by strcpy where there is no formatting.
1666 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1668 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
1671 * module.c (check_for_ambiguous): Get the current program unit using
1674 2013-01-09 Tobias Burnus <burnus@net-b.de>
1677 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1678 in BIND(C) procedures with -std=f*.
1680 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1683 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1684 character function arguments to elemental procedures in
1685 scalarization loops.
1687 2013-01-07 Tobias Burnus <burnus@net-b.de>
1690 * gfortran.h (gfc_check_assign_symbol): Update prototype.
1691 * decl.c (add_init_expr_to_sym, do_parm): Update call.
1692 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1693 improve error location; support components.
1694 (gfc_check_pointer_assign): Handle component assignments.
1695 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1696 (resolve_values): Update call.
1697 (resolve_structure_cons): Avoid double diagnostic.
1699 2013-01-07 Tobias Burnus <burnus@net-b.de>
1700 Thomas Koenig <tkoenig@gcc.gnu.org>
1703 * expr.c (gfc_build_intrinsic_call): Avoid clashes
1704 with user's procedures.
1705 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1706 * simplify.c (gfc_simplify_size): Update call.
1707 * class.c (finalization_scalarizer, finalization_get_offset,
1708 finalizer_insert_packed_call, generate_finalization_wrapper):
1709 Clean up by using gfc_build_intrinsic_call.
1711 2013-01-07 Tobias Burnus <burnus@net-b.de>
1714 * resolve.c (resolve_select_type): Reject intrinsic types for
1715 a non-unlimited-polymorphic selector.
1717 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
1722 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1723 to see if it is GFC_CLASS_TYPE_P.
1724 * trans-expr.c (gfc_get_vptr_from_expr): The same.
1725 (gfc_conv_class_to_class): If the types are not the same,
1726 cast parmese->expr to the type of ctree.
1727 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1728 CLASS components must be set.
1730 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
1735 * module.c (read_module): Don't reuse local symtree if the associated
1736 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
1738 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1741 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
1742 Mikael Morin <mikael@gcc.gnu.org>
1745 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
1747 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
1749 2013-01-05 Tobias Burnus <burnus@net-b.de>
1751 * class.c (finalize_component): Used passed offset expr.
1752 (finalization_get_offset): New static function.
1753 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
1754 to handle noncontiguous arrays.
1756 2013-01-04 Tobias Burnus <burnus@net-b.de>
1758 * trans.c (gfc_build_final_call): New function.
1759 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
1760 New function prototypes.
1761 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
1762 conv_scalar_to_descriptor, removed static attribute.
1763 (gfc_conv_procedure_call): Honor renaming.
1765 2013-01-04 Tobias Burnus <burnus@net-b.de>
1767 * intrinsic.c (add_functions): New internal intrinsic
1768 function GFC_PREFIX ("stride").
1769 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
1770 * intrinsic.h (gfc_resolve_stride): New prototypes.
1771 * iresolve.c (gfc_resolve_stride): New function.
1772 * trans-intrinsic.c (conv_intrinsic_stride): New static
1774 (gfc_conv_intrinsic_function): Use it.
1776 2013-01-04 Tobias Burnus <burnus@net-b.de>
1778 * class.c (gfc_find_intrinsic_vtab): Add _final
1780 * decl.c (gfc_match_null): Remove superfluous
1781 variadic argument to gfc_match.
1783 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
1786 * match.c (copy_ts_from_selector_to_associate): Remove call to
1787 gfc_resolve_expr and replace it with explicit setting of the
1788 array reference type.
1789 * resolve.c (resolve_select_type): It is an error if the
1790 selector is coindexed.
1792 2013-01-04 Tobias Burnus <burnus@net-b.de>
1795 * decl.c (gfc_match_null): Parse and reject MOLD.
1797 2013-01-04 Tobias Burnus <burnus@net-b.de>
1801 * class.c (gfc_class_null_initializer): Fix finding the vtab.
1802 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
1804 2013-01-03 Janus Weil <janus@gcc.gnu.org>
1807 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
1808 of rvalue. Correct hyphenation in error message.
1810 2013-01-03 Jakub Jelinek <jakub@redhat.com>
1812 * gfortranspec.c (lang_specific_driver): Update copyright notice
1815 Copyright (C) 2013 Free Software Foundation, Inc.
1817 Copying and distribution of this file, with or without modification,
1818 are permitted in any medium without royalty provided the copyright
1819 notice and this notice are preserved.