1 2013-04-25 Janne Blomqvist <jb@gcc.gnu.org>
4 * Make-lang.in (f951): Link in ZLIB.
5 (CFLAGS-fortran/module.o): Add zlib include directory.
7 2013-04-22 Janus Weil <janus@gcc.gnu.org>
11 * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
13 * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
14 of special treatment for EXPR_ARRAY.
15 * target-memory.h (gfc_element_size): New prototype.
16 * target-memory.c (size_array): Remove.
17 (gfc_element_size): New function.
18 (gfc_target_expr_size): Modified to always return the full size of the
21 2013-04-20 Tobias Burnus <burnus@net-b.de>
24 * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
27 2013-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
28 Mikael Morin <mikael@gcc.gnu.org>
31 * frontend-passes.c (copy_walk_reduction_arg): Change argument type
32 to gfc_constructor. If it has an iterator, wrap the copy of its
33 expression in an array constructor with that iterator. Don't special
34 case function expressions.
35 (callback_reduction): Update caller. Don't return early if there is
38 2013-04-18 Tobias Burnus <burnus@net-b.de>
40 * expr.c (find_array_element): Don't copy expr.
41 * data.c (create_character_initializer): Free expr.
42 * frontend-passes.c (combine_array_constructor): Ditto.
43 * match.c (match_typebound_call, gfc_match_select_type): Ditto.
44 * resolve.c (resolve_typebound_function): Free gfc_ref.
46 2013-04-18 Tobias Burnus <burnus@net-b.de>
49 * invoke.texi (NEAREST): S argument is not optional.
51 2013-04-17 Janus Weil <janus@gcc.gnu.org>
54 * interface.c (check_result_characteristics): Get result from interface
57 2013-04-17 Janne Blomqvist <jb@gcc.gnu.org>
60 * scanner.h: New file.
61 * Make-lang.in: Dependencies on scanner.h.
62 * scanner.c (gfc_directorylist): Move to scanner.h.
63 * module.c: Don't include md5.h, include scanner.h and zlib.h.
64 (MOD_VERSION): Add comment about backwards compatibility.
65 (module_fp): Change type to gzFile.
67 (gzopen_included_file_1): New function.
68 (gzopen_included_file): New function.
69 (gzopen_intrinsic_module): New function.
70 (write_char): Use gzputc.
71 (read_crc32_from_module_file): New function.
72 (read_md5_from_module_file): Remove.
73 (gfc_dump_module): Use gz* functions instead of stdio, check gzip
75 (read_module_to_tmpbuf): Use gz* functions instead of stdio.
76 (gfc_use_module): Use gz* functions.
78 2013-04-16 Tobias Burnus <burnus@net-b.de>
81 * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
82 * gfortran.h (ext_attr_id_t): Ditto.
83 * gfortran.texi (GNU Fortran Compiler Directives):
85 * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
86 (compare_parameter): Ditto - and regard as unlimited polymorphic.
87 * resolve.c (resolve_symbol, resolve_variable): Add same constraint
88 checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
89 (gfc_explicit_interface_required): Require explicit interface
92 2013-04-16 Janus Weil <janus@gcc.gnu.org>
95 * expr.c (gfc_check_pointer_assign): Handle generic functions returning
98 2013-04-16 Tobias Burnus <burnus@net-b.de>
101 * intrinsic.c (gfc_intrinsic_func_interface): Don't set
102 module name to "(intrinsic)" for intrinsics from intrinsic
105 2013-04-15 Tobias Burnus <burnus@net-b.de>
107 * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
109 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
112 * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
114 2013-04-15 Tobias Burnus <burnus@net-b.de>
116 * class.c (gfc_find_intrinsic_vtab): Removed unused var.
117 * dependency.c (check_data_pointer_types): Fix check.
118 * frontend-passes.c (check_data_pointer_types): Remove
119 superfluous statement.
120 * parse.c (decode_omp_directive): Add missing break.
121 * resolve.c (resolve_typebound_subroutine: Free variable.
122 * trans-decl.c (create_function_arglist): Correct condition.
124 2013-04-14 Mikael Morin <mikael@gcc.gnu.org>
127 * match.c (gfc_match_select_type): Add syntax error. Move namespace
128 allocation and cleanup...
129 * parse.c (decode_statement): ... here.
131 2013-04-13 Janus Weil <janus@gcc.gnu.org>
134 * expr.c (gfc_simplify_expr): Branch is not unreachable.
136 2013-04-12 Janus Weil <janus@gcc.gnu.org>
139 * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
141 2013-04-12 Tobias Burnus <burnus@net-b.de>
144 * trans-array.c (duplicate_allocatable): Fix handling
147 2013-04-12 Janus Weil <janus@gcc.gnu.org>
150 * gfortran.h (gfc_explicit_interface_required): New prototype.
151 * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
152 required in a proc-ptr assignment.
153 * interface.c (check_result_characteristics): Extra check.
154 * resolve.c (gfc_explicit_interface_required): New function.
155 (resolve_global_procedure): Use new function
156 'gfc_explicit_interface_required'. Do a full interface check.
158 2013-04-12 Tobias Burnus <burnus@net-b.de>
161 * trans-decl.c (gfc_trans_deferred_vars): Restrict
162 static CLASS init to SAVE and -fno-automatic.
164 2013-04-12 Tobias Burnus <burnus@net-b.de>
167 * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
168 allocatable static BT_CLASS.
169 * trans-expr.c (gfc_class_set_static_fields): New function.
170 * trans.h (gfc_class_set_static_fields): New prototype.
172 2013-04-11 Janne Blomqvist <jb@gcc.gnu.org>
174 * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
175 * arith.c: Replace gfc_try with bool type.
186 * f95-lang.c: Likewise.
187 * interface.c: Likewise.
188 * intrinsic.c: Likewise.
189 * intrinsic.h: Likewise.
193 * module.c: Likewise.
194 * openmp.c: Likewise.
197 * primary.c: Likewise.
198 * resolve.c: Likewise.
199 * scanner.c: Likewise.
200 * simplify.c: Likewise.
201 * symbol.c: Likewise.
202 * trans-intrinsic.c: Likewise.
203 * trans-openmp.c: Likewise.
204 * trans-stmt.c: Likewise.
205 * trans-types.c: Likewise.
207 2013-04-09 Tobias Burnus <burnus@net-b.de>
209 * gfortran.texi (KIND Type Parameters,
210 Internal representation of LOGICAL variables): Add crossrefs.
211 (Intrinsic Types): Mention issues with _Bool interop.
212 (Naming and argument-passing conventions): New section.
214 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
217 * frontend-passes.c (callback_reduction): Dont't do
218 any simplification if there is only a single element
219 which has an iterator.
221 2013-04-07 Tobias Burnus <burnus@net-b.de>
224 * iresolve.c (gfc_resolve_reshape): Set shape also
227 2013-04-04 Janus Weil <janus@gcc.gnu.org>
230 * match.c (gfc_match_return): Remove standard notification.
231 * primary.c (gfc_match_actual_arglist): Add standard notification.
233 2013-04-04 Tobias Burnus <burnus@net-b.de>
236 * gcc/fortran/check.c (is_c_interoperable,
237 gfc_check_c_loc): Correct c_loc array checking
238 for Fortran 2003 and Fortran 2008.
240 2013-04-03 Janus Weil <janus@gcc.gnu.org>
244 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
246 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
248 2013-04-01 Janus Weil <janus@gcc.gnu.org>
251 * symbol.c (gfc_set_default_type): Build class container for
254 2013-03-31 Tobias Burnus <burnus@net-b.de>
256 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
257 generate_finalization_wrapper): Avoid segfault with absent SIZE=
258 argment to TRANSFER and use correct result kind for SIZE.
259 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
261 * trans.c (gfc_build_final_call): Handle coarrays.
263 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
265 * trans-expr.c (build_memcmp_call): New function.
266 (gfc_build_compare_string): If the strings
267 compared have constant and equal lengths and
268 the strings are kind=1, or, for kind=4 strings,
269 the test is for (in)equality, use memcmp().
271 2013-03-29 Tobias Burnus <burnus@net-b.de>
274 * trans-decl.c (create_function_arglist): Pass hidden argument
275 for passed-by-value optional+value dummies.
276 * trans-expr.c (gfc_conv_expr_present,
277 gfc_conv_procedure_call): Handle those.
279 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
282 * gfortran.h (gfc_dep_difference): Add prototype.
283 * dependency.c (discard_nops): New function.
284 (gfc_dep_difference): New function.
285 (check_section_vs_section): Use gfc_dep_difference
286 to calculate the difference of starting indices.
287 * trans-expr.c (gfc_conv_substring): Use
288 gfc_dep_difference to calculate the length of
289 substrings where possible.
291 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
294 * frontend-passes.c (optimize_code): Keep track of
295 current code to make code insertion possible.
296 (combine_array_constructor): New function.
297 (optimize_op): Call it.
299 2013-03-27 Tobias Burnus <burnus@net-b.de>
303 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
304 gfc_check_storage_size): Update checks.
305 * intrinsic.texi (SIZEOF): Correct class.
306 * intrinsic.h (gfc_simplify_sizeof,
307 gfc_simplify_storage_size): New prototypes.
308 * intrinsic.c (add_functions): Use them.
309 * simplify.c (gfc_simplify_sizeof,
310 gfc_simplify_storage_size): New functions.
312 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
315 * module.c (module_locus): Use long for position.
316 (module_content): New variable.
317 (module_pos): Likewise.
318 (prev_character): Remove.
319 (bad_module): Free data instead of closing mod file.
320 (set_module_locus): Use module_pos.
321 (get_module_locus): Likewise.
322 (module_char): use buffer rather than stdio file.
323 (module_unget_char): Likewise.
324 (read_module_to_tmpbuf): New function.
325 (gfc_use_module): Call read_module_to_tmpbuf.
327 2013-03-26 Tobias Burnus <burnus@net-b.de>
330 * simplify.c (gfc_simplify_merge): Simplify more.
332 2013-03-25 Tobias Burnus <burnus@net-b.de>
352 * check.c (gfc_var_strlen): Properly handle 0-sized string.
353 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
354 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
355 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
357 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
359 (gfc_check_pointer_assign): Refine function result check.
360 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
361 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
363 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
365 (generate_isocbinding_symbol): Update prototype.
366 (get_iso_c_sym): Remove.
367 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
368 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
369 (gfc_intrinsic_sub_interface): Use it.
370 (add_functions, add_subroutines): Add missing C-binding intrinsics.
371 (gfc_intrinsic_func_interface): Add special case for c_loc.
372 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
373 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
374 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
375 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
376 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
377 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
379 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
381 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
382 * module.c (create_intrinsic_function): Support subroutines and
383 derived-type results.
384 (use_iso_fortran_env_module): Update calls.
385 (import_iso_c_binding_module): Ditto; update calls to
386 generate_isocbinding_symbol.
387 * resolve.c (find_arglists): Skip for intrinsic symbols.
388 (gfc_resolve_intrinsic): Find intrinsic subs via id.
389 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
390 set_name_and_label, gfc_iso_c_sub_interface): Remove.
391 (resolve_function, resolve_specific_s0): Remove calls to those.
392 (resolve_structure_cons): Fix handling.
393 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
395 (gen_cptr_param, gen_fptr_param, gen_shape_param,
396 build_formal_args, get_iso_c_sym): Remove.
397 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
398 (generate_isocbinding_symbol): Support hidden symbols and
399 using c_ptr/c_funptr symtrees for nullptr defs.
400 * target-memory.c (gfc_target_encode_expr): Fix handling
402 * trans-expr.c (conv_isocbinding_procedure): Remove.
403 (gfc_conv_procedure_call): Remove call to it.
404 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
406 * trans-intrinsic.c (conv_isocbinding_function,
407 conv_isocbinding_subroutine): New.
408 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
410 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
411 * trans-types.c (gfc_typenode_for_spec,
412 gfc_get_derived_type): Ditto.
413 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
415 2013-03-18 Tobias Burnus <burnus@net-b.de>
417 * gfortran.h (gfc_option_t): Remove flag_whole_file.
418 * invoke.texi (-fno-whole-file): Remove.
419 * lang.opt (fwhole-file): Change to Ignore.
420 * options.c (gfc_init_options, gfc_post_options,
421 gfc_handle_option): Remove !flag_whole_file handling
422 * parse.c (resolve_all_program_units, translate_all_program_units,
423 gfc_parse_file): Ditto.
424 * resolve.c (resolve_global_procedure): Ditto.
425 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
426 gfc_create_module_variable): Ditto.
427 * trans-types.c (gfc_get_derived_type): Ditto.
429 2013-03-15 Tobias Burnus <burnus@net-b.de>
432 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
433 if they are not simply contiguous.
435 2013-03-11 Tobias Burnus <burnus@net-b.de>
437 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
438 to convert them into derived types.
440 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
443 * expr.c (gfc_default_initializer): Check that a class declared
444 type has any components.
445 * resolve.c (resolve_fl_derived0): On failing the test for C437
446 set the type to BT_UNKNOWN to prevent repeat error messages.
448 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
451 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
453 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
456 * array.c (gfc_match_array_constructor): Set a checkpoint before
457 matching a typespec. Drop it on success, restore it otherwise.
459 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
462 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
463 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
464 gfc_restore_last_undo_checkpoint): New prototypes.
465 * symbol.c (default_undo_chgset_var): Update initialization.
466 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
467 free_undo_change_set_data, pop_undo_change_set,
468 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
470 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
471 field's previous value is not overwritten. Clear gfc_new field.
472 (restore_old_symbol): Restore previous old_symbol field.
473 (gfc_restore_last_undo_checkpoint): New function, using body renamed
474 from gfc_undo_symbols. Restore the previous change set as current one.
475 (gfc_undo_symbols): New body.
476 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
477 Call enforce_single_undo_checkpoint.
478 (gfc_symbol_done_2): Ditto. Free change set data.
480 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
482 * symbol.c (restore_old_symbol): Fix thinko.
484 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
486 * symbol.c (gfc_undo_symbols): Move code...
487 (restore_old_symbol): ... here as a new function.
489 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
491 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
492 * gfortran.h: Include vec.h.
493 (gfc_undo_change_set): New struct.
494 * symbol.c (tentative_tbp): Remove struct.
495 (changed_syms, tentative_tbp_list): Remove variables.
496 (default_undo_chgset_var, latest_undo_chgset): New variables.
497 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
498 gfc_commit_symbols, gfc_commit_symbol,
499 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
500 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
502 2013-03-01 Tobias Burnus <burnus@net-b.de>
505 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
506 * symbol.c (free_components): Free proc-pointer components.
508 2013-03-01 Tobias Burnus <burnus@net-b.de>
510 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
511 * trans-io.c (build_dt): Ditto.
513 2013-02-24 Joseph Myers <joseph@codesourcery.com>
515 * resolve.c (generate_component_assignments): Don't use UTF-8
516 ligature in diagnostic.
518 2013-02-21 Janus Weil <janus@gcc.gnu.org>
521 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
522 components with allocatable result.
524 2013-02-21 Tobias Burnus <burnus@net-b.de>
527 * gfortran.texi (Part II: Language Reference, Extensions,
528 Non-Fortran Main Program): Sort @menu to match actual section order.
529 * intrinsic.texi (Intrinsic Procedures): Ditto.
530 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
532 2013-02-15 Tobias Burnus <burnus@net-b.de>
533 Mikael Morin <mikael@gcc.gnu.org>
536 * simplify.c (gfc_simplify_matmul): Fix result shape
539 2013-02-15 Tobias Burnus <burnus@net-b.de>
542 * resolve.c (apply_default_init_local): Don't create an
543 initializer for a result variable.
545 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
548 * gfortran.h (gfc_add_include_path): Add boolean argument
550 * scanner.c (gfc_add_include_path): Pass along warn argument
552 * options.c (gfc_post_options): Add true warn argument to
553 gfc_add_include_path.
554 (gfc_handle_module_path_options): Likewise.
555 (gfc_handle_option): Also gfc_add_include_path for intrinsic
556 modules, without warning.
558 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
559 Tobias Burnus <burnus@net-b.de>
562 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
563 results for functions without extra result variable.
566 2013-01-30 Tobias Burnus <burnus@net-b.de>
569 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
570 results for functions without extra result variable.
572 2013-02-12 Janus Weil <janus@gcc.gnu.org>
575 * resolve.c (resolve_call): Do not check deferred procedures for
578 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
581 * check.c (array_check): It is an error if a procedure is
584 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
587 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
588 to error_mark_node on entry. Detect recursive types. Build a variadic
589 procedure type if the type is recursive. Restore the initial
592 2013-02-07 Tobias Burnus <burnus@net-b.de>
595 * gfortran.texi (Standards): Mention TS29113.
596 (Varying Length Character): Mention deferred-length
598 (Fortran 2003 Status): Add unlimited polymorphic.
599 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
600 (C Interop): Update the section about TS29113.
602 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
605 * trans-array.c (trans_array_constructor): Remove condition
606 'dynamic' = true if the loop ubound is a VAR_DECL.
608 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
612 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
613 the lhs descriptor before it is modified for reallocation. Use
614 it to deallocate allocatable components in the reallocation
615 block. Nullify allocatable components for newly (re)allocated
618 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
621 * resolve.c (resolve_typebound_procedures): Recurse through
624 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
628 * gfortran.h (struct gfc_symbol): New field 'resolved'.
629 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
630 (resolve_symbol): Skip duplicate calls. Don't check the current
633 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
637 * decl.c (gfc_match_end): Remove half-ready namespace
638 from parent if the end of a block is missing.
639 * parse.c (parse_module): Do not put namespace into
642 2013-01-30 Tobias Burnus <burnus@net-b.de>
645 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
646 results for functions without extra result variable.
648 2013-01-29 Janus Weil <janus@gcc.gnu.org>
649 Mikael Morin <mikael@gcc.gnu.org>
652 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
653 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
654 gfc_expr_replace_comp): Delete.
655 (gfc_sym_get_dummy_args): New prototype.
656 * dependency.c (gfc_check_fncall_dependency): Use
657 'gfc_sym_get_dummy_args'.
658 * expr.c (gfc_is_constant_expr): Ditto.
659 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
660 gfc_expr_replace_comp): Deleted.
661 * frontend-passes.c (doloop_code,do_function): Use
662 'gfc_sym_get_dummy_args'.
663 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
664 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
665 gfc_check_typebound_override): Ditto.
666 * module.c (MOD_VERSION): Bump module version.
667 (mio_component): Do not read/write 'formal' and 'formal_ns'.
668 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
669 copy formal args, but just keep a pointer to the interface.
670 (resolve_function,resolve_call,resolve_typebound_generic_call,
671 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
672 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
673 resolve_typebound_procedure,check_uop_procedure): Use
674 'gfc_sym_get_dummy_args'.
675 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
676 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
677 (gfc_sym_get_dummy_args): New function.
678 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
679 Use 'gfc_sym_get_dummy_args'.
680 * trans-decl.c (build_function_decl,create_function_arglist,
681 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
682 add_argument_checking): Ditto.
683 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
684 gfc_conv_statement_function): Ditto.
685 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
686 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
688 2013-01-28 Tobias Burnus <burnus@net-b.de>
689 Mikael Morin <mikael@gcc.gnu.org>
692 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
694 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
695 * decl.c (gfc_match_data_decl): Ditto.
696 (variable_decl): Remove undeclared type error.
697 (gfc_match_import): Use renamed instead of original name.
699 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
703 * gfortran.h : Add associate_var to symbol_attr.
704 * resolve.c (resolve_assoc_var): Set associate_var attribute.
705 If the target class_ok is set, set it for the associate
707 * check.c (allocatable_check): Associate variables should not
708 have the allocatable attribute even if their symbols do.
709 * class.c (gfc_build_class_symbol): Symbols with associate_var
710 set will always have a good class container.
712 2013-01-23 Janus Weil <janus@gcc.gnu.org>
715 * resolve.c (resolve_select): Add argument 'select_type', reject
716 non-scalar expressions.
717 (resolve_select_type,resolve_code): Pass new argument to
720 2013-01-23 Jakub Jelinek <jakub@redhat.com>
723 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
724 and DECL_IGNORED_P on select_type_temporary and don't set
727 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
730 * scanner.c (add_path_to_list): Copy path to temporary and strip
731 trailing directory separators before calling stat().
733 2013-01-17 Richard Biener <rguenther@suse.de>
735 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
736 dependent on sign of step, avoids repeated evaluation of
737 step sign test. Avoid undefined overflow issues by using unsigned
740 2013-01-16 Janus Weil <janus@gcc.gnu.org>
743 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
746 2013-01-16 Jakub Jelinek <jakub@redhat.com>
747 Tobias Burnus <burnus@net-b.de>
750 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
751 (fintrinsic-modules-path=): New.
752 * options.c (gfc_handle_option, gfc_get_option_string,
753 gfc_get_option_string): Handle the latter.
755 2013-01-16 Jakub Jelinek <jakub@redhat.com>
758 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
759 and use value of countm1 before the decrement in the condition.
761 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
764 * expr.c (gfc_check_pointer_assign): Check for presence of
765 's2' before using it.
767 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
770 * frontend-passes.c (optimize_reduction): New function,
772 (callback_reduction): Likewise.
773 (gfc_run_passes): Also run optimize_reduction.
774 (copy_walk_reduction_arg): New function.
775 (dummy_code_callback): New function.
777 2013-01-13 Jakub Jelinek <jakub@redhat.com>
780 * trans-expr.c (gfc_conv_structure): Call
781 unshare_expr_without_location on the ctor elements.
783 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
786 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
787 and rvalue interfaces are presented to gfc_compare_interfaces.
788 Simplify references to interface names by using the symbols
789 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
790 changed to overcome the asymmetry of this function. Do not
791 repeat the check for the presence of s1 and s2.
793 2013-01-12 Janus Weil <janus@gcc.gnu.org>
796 * trans-array.c (gfc_conv_array_parameter): No packing was done for
797 full arrays of derived type.
799 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
802 * class.c (get_unique_type_string): Change $tar to STAR and
803 replace sprintf by strcpy where there is no formatting.
804 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
806 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
809 * module.c (check_for_ambiguous): Get the current program unit using
812 2013-01-09 Tobias Burnus <burnus@net-b.de>
815 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
816 in BIND(C) procedures with -std=f*.
818 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
821 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
822 character function arguments to elemental procedures in
825 2013-01-07 Tobias Burnus <burnus@net-b.de>
828 * gfortran.h (gfc_check_assign_symbol): Update prototype.
829 * decl.c (add_init_expr_to_sym, do_parm): Update call.
830 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
831 improve error location; support components.
832 (gfc_check_pointer_assign): Handle component assignments.
833 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
834 (resolve_values): Update call.
835 (resolve_structure_cons): Avoid double diagnostic.
837 2013-01-07 Tobias Burnus <burnus@net-b.de>
838 Thomas Koenig <tkoenig@gcc.gnu.org>
841 * expr.c (gfc_build_intrinsic_call): Avoid clashes
842 with user's procedures.
843 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
844 * simplify.c (gfc_simplify_size): Update call.
845 * class.c (finalization_scalarizer, finalization_get_offset,
846 finalizer_insert_packed_call, generate_finalization_wrapper):
847 Clean up by using gfc_build_intrinsic_call.
849 2013-01-07 Tobias Burnus <burnus@net-b.de>
852 * resolve.c (resolve_select_type): Reject intrinsic types for
853 a non-unlimited-polymorphic selector.
855 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
860 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
861 to see if it is GFC_CLASS_TYPE_P.
862 * trans-expr.c (gfc_get_vptr_from_expr): The same.
863 (gfc_conv_class_to_class): If the types are not the same,
864 cast parmese->expr to the type of ctree.
865 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
866 CLASS components must be set.
868 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
873 * module.c (read_module): Don't reuse local symtree if the associated
874 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
876 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
879 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
880 Mikael Morin <mikael@gcc.gnu.org>
883 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
885 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
887 2013-01-05 Tobias Burnus <burnus@net-b.de>
889 * class.c (finalize_component): Used passed offset expr.
890 (finalization_get_offset): New static function.
891 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
892 to handle noncontiguous arrays.
894 2013-01-04 Tobias Burnus <burnus@net-b.de>
896 * trans.c (gfc_build_final_call): New function.
897 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
898 New function prototypes.
899 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
900 conv_scalar_to_descriptor, removed static attribute.
901 (gfc_conv_procedure_call): Honor renaming.
903 2013-01-04 Tobias Burnus <burnus@net-b.de>
905 * intrinsic.c (add_functions): New internal intrinsic
906 function GFC_PREFIX ("stride").
907 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
908 * intrinsic.h (gfc_resolve_stride): New prototypes.
909 * iresolve.c (gfc_resolve_stride): New function.
910 * trans-intrinsic.c (conv_intrinsic_stride): New static
912 (gfc_conv_intrinsic_function): Use it.
914 2013-01-04 Tobias Burnus <burnus@net-b.de>
916 * class.c (gfc_find_intrinsic_vtab): Add _final
918 * decl.c (gfc_match_null): Remove superfluous
919 variadic argument to gfc_match.
921 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
924 * match.c (copy_ts_from_selector_to_associate): Remove call to
925 gfc_resolve_expr and replace it with explicit setting of the
926 array reference type.
927 * resolve.c (resolve_select_type): It is an error if the
928 selector is coindexed.
930 2013-01-04 Tobias Burnus <burnus@net-b.de>
933 * decl.c (gfc_match_null): Parse and reject MOLD.
935 2013-01-04 Tobias Burnus <burnus@net-b.de>
939 * class.c (gfc_class_null_initializer): Fix finding the vtab.
940 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
942 2013-01-03 Janus Weil <janus@gcc.gnu.org>
945 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
946 of rvalue. Correct hyphenation in error message.
948 2013-01-03 Jakub Jelinek <jakub@redhat.com>
950 * gfortranspec.c (lang_specific_driver): Update copyright notice
953 Copyright (C) 2013 Free Software Foundation, Inc.
955 Copying and distribution of this file, with or without modification,
956 are permitted in any medium without royalty provided the copyright
957 notice and this notice are preserved.