1 2013-04-28 Tobias Burnus <burnus@net-b.de>
4 * trans-types.c (gfc_get_element_type): Fix handling
5 of scalar coarrays of type character.
6 * intrinsic.texi (PACK): Add missing ")".
8 2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org>
11 * frontend-passes (optimize_power): New function.
12 (optimize_op): Use it.
14 2013-04-25 Janne Blomqvist <jb@gcc.gnu.org>
17 * Make-lang.in (f951): Link in ZLIB.
18 (CFLAGS-fortran/module.o): Add zlib include directory.
20 2013-04-22 Janus Weil <janus@gcc.gnu.org>
24 * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
26 * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
27 of special treatment for EXPR_ARRAY.
28 * target-memory.h (gfc_element_size): New prototype.
29 * target-memory.c (size_array): Remove.
30 (gfc_element_size): New function.
31 (gfc_target_expr_size): Modified to always return the full size of the
34 2013-04-20 Tobias Burnus <burnus@net-b.de>
37 * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
40 2013-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
41 Mikael Morin <mikael@gcc.gnu.org>
44 * frontend-passes.c (copy_walk_reduction_arg): Change argument type
45 to gfc_constructor. If it has an iterator, wrap the copy of its
46 expression in an array constructor with that iterator. Don't special
47 case function expressions.
48 (callback_reduction): Update caller. Don't return early if there is
51 2013-04-18 Tobias Burnus <burnus@net-b.de>
53 * expr.c (find_array_element): Don't copy expr.
54 * data.c (create_character_initializer): Free expr.
55 * frontend-passes.c (combine_array_constructor): Ditto.
56 * match.c (match_typebound_call, gfc_match_select_type): Ditto.
57 * resolve.c (resolve_typebound_function): Free gfc_ref.
59 2013-04-18 Tobias Burnus <burnus@net-b.de>
62 * invoke.texi (NEAREST): S argument is not optional.
64 2013-04-17 Janus Weil <janus@gcc.gnu.org>
67 * interface.c (check_result_characteristics): Get result from interface
70 2013-04-17 Janne Blomqvist <jb@gcc.gnu.org>
73 * scanner.h: New file.
74 * Make-lang.in: Dependencies on scanner.h.
75 * scanner.c (gfc_directorylist): Move to scanner.h.
76 * module.c: Don't include md5.h, include scanner.h and zlib.h.
77 (MOD_VERSION): Add comment about backwards compatibility.
78 (module_fp): Change type to gzFile.
80 (gzopen_included_file_1): New function.
81 (gzopen_included_file): New function.
82 (gzopen_intrinsic_module): New function.
83 (write_char): Use gzputc.
84 (read_crc32_from_module_file): New function.
85 (read_md5_from_module_file): Remove.
86 (gfc_dump_module): Use gz* functions instead of stdio, check gzip
88 (read_module_to_tmpbuf): Use gz* functions instead of stdio.
89 (gfc_use_module): Use gz* functions.
91 2013-04-16 Tobias Burnus <burnus@net-b.de>
94 * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
95 * gfortran.h (ext_attr_id_t): Ditto.
96 * gfortran.texi (GNU Fortran Compiler Directives):
98 * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
99 (compare_parameter): Ditto - and regard as unlimited polymorphic.
100 * resolve.c (resolve_symbol, resolve_variable): Add same constraint
101 checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
102 (gfc_explicit_interface_required): Require explicit interface
105 2013-04-16 Janus Weil <janus@gcc.gnu.org>
108 * expr.c (gfc_check_pointer_assign): Handle generic functions returning
111 2013-04-16 Tobias Burnus <burnus@net-b.de>
114 * intrinsic.c (gfc_intrinsic_func_interface): Don't set
115 module name to "(intrinsic)" for intrinsics from intrinsic
118 2013-04-15 Tobias Burnus <burnus@net-b.de>
120 * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
122 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
125 * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
127 2013-04-15 Tobias Burnus <burnus@net-b.de>
129 * class.c (gfc_find_intrinsic_vtab): Removed unused var.
130 * dependency.c (check_data_pointer_types): Fix check.
131 * frontend-passes.c (check_data_pointer_types): Remove
132 superfluous statement.
133 * parse.c (decode_omp_directive): Add missing break.
134 * resolve.c (resolve_typebound_subroutine: Free variable.
135 * trans-decl.c (create_function_arglist): Correct condition.
137 2013-04-14 Mikael Morin <mikael@gcc.gnu.org>
140 * match.c (gfc_match_select_type): Add syntax error. Move namespace
141 allocation and cleanup...
142 * parse.c (decode_statement): ... here.
144 2013-04-13 Janus Weil <janus@gcc.gnu.org>
147 * expr.c (gfc_simplify_expr): Branch is not unreachable.
149 2013-04-12 Janus Weil <janus@gcc.gnu.org>
152 * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
154 2013-04-12 Tobias Burnus <burnus@net-b.de>
157 * trans-array.c (duplicate_allocatable): Fix handling
160 2013-04-12 Janus Weil <janus@gcc.gnu.org>
163 * gfortran.h (gfc_explicit_interface_required): New prototype.
164 * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
165 required in a proc-ptr assignment.
166 * interface.c (check_result_characteristics): Extra check.
167 * resolve.c (gfc_explicit_interface_required): New function.
168 (resolve_global_procedure): Use new function
169 'gfc_explicit_interface_required'. Do a full interface check.
171 2013-04-12 Tobias Burnus <burnus@net-b.de>
174 * trans-decl.c (gfc_trans_deferred_vars): Restrict
175 static CLASS init to SAVE and -fno-automatic.
177 2013-04-12 Tobias Burnus <burnus@net-b.de>
180 * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
181 allocatable static BT_CLASS.
182 * trans-expr.c (gfc_class_set_static_fields): New function.
183 * trans.h (gfc_class_set_static_fields): New prototype.
185 2013-04-11 Janne Blomqvist <jb@gcc.gnu.org>
187 * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
188 * arith.c: Replace gfc_try with bool type.
199 * f95-lang.c: Likewise.
200 * interface.c: Likewise.
201 * intrinsic.c: Likewise.
202 * intrinsic.h: Likewise.
206 * module.c: Likewise.
207 * openmp.c: Likewise.
210 * primary.c: Likewise.
211 * resolve.c: Likewise.
212 * scanner.c: Likewise.
213 * simplify.c: Likewise.
214 * symbol.c: Likewise.
215 * trans-intrinsic.c: Likewise.
216 * trans-openmp.c: Likewise.
217 * trans-stmt.c: Likewise.
218 * trans-types.c: Likewise.
220 2013-04-09 Tobias Burnus <burnus@net-b.de>
222 * gfortran.texi (KIND Type Parameters,
223 Internal representation of LOGICAL variables): Add crossrefs.
224 (Intrinsic Types): Mention issues with _Bool interop.
225 (Naming and argument-passing conventions): New section.
227 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
230 * frontend-passes.c (callback_reduction): Dont't do
231 any simplification if there is only a single element
232 which has an iterator.
234 2013-04-07 Tobias Burnus <burnus@net-b.de>
237 * iresolve.c (gfc_resolve_reshape): Set shape also
240 2013-04-04 Janus Weil <janus@gcc.gnu.org>
243 * match.c (gfc_match_return): Remove standard notification.
244 * primary.c (gfc_match_actual_arglist): Add standard notification.
246 2013-04-04 Tobias Burnus <burnus@net-b.de>
249 * gcc/fortran/check.c (is_c_interoperable,
250 gfc_check_c_loc): Correct c_loc array checking
251 for Fortran 2003 and Fortran 2008.
253 2013-04-03 Janus Weil <janus@gcc.gnu.org>
257 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
259 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
261 2013-04-01 Janus Weil <janus@gcc.gnu.org>
264 * symbol.c (gfc_set_default_type): Build class container for
267 2013-03-31 Tobias Burnus <burnus@net-b.de>
269 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
270 generate_finalization_wrapper): Avoid segfault with absent SIZE=
271 argment to TRANSFER and use correct result kind for SIZE.
272 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
274 * trans.c (gfc_build_final_call): Handle coarrays.
276 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
278 * trans-expr.c (build_memcmp_call): New function.
279 (gfc_build_compare_string): If the strings
280 compared have constant and equal lengths and
281 the strings are kind=1, or, for kind=4 strings,
282 the test is for (in)equality, use memcmp().
284 2013-03-29 Tobias Burnus <burnus@net-b.de>
287 * trans-decl.c (create_function_arglist): Pass hidden argument
288 for passed-by-value optional+value dummies.
289 * trans-expr.c (gfc_conv_expr_present,
290 gfc_conv_procedure_call): Handle those.
292 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
295 * gfortran.h (gfc_dep_difference): Add prototype.
296 * dependency.c (discard_nops): New function.
297 (gfc_dep_difference): New function.
298 (check_section_vs_section): Use gfc_dep_difference
299 to calculate the difference of starting indices.
300 * trans-expr.c (gfc_conv_substring): Use
301 gfc_dep_difference to calculate the length of
302 substrings where possible.
304 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
307 * frontend-passes.c (optimize_code): Keep track of
308 current code to make code insertion possible.
309 (combine_array_constructor): New function.
310 (optimize_op): Call it.
312 2013-03-27 Tobias Burnus <burnus@net-b.de>
316 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
317 gfc_check_storage_size): Update checks.
318 * intrinsic.texi (SIZEOF): Correct class.
319 * intrinsic.h (gfc_simplify_sizeof,
320 gfc_simplify_storage_size): New prototypes.
321 * intrinsic.c (add_functions): Use them.
322 * simplify.c (gfc_simplify_sizeof,
323 gfc_simplify_storage_size): New functions.
325 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
328 * module.c (module_locus): Use long for position.
329 (module_content): New variable.
330 (module_pos): Likewise.
331 (prev_character): Remove.
332 (bad_module): Free data instead of closing mod file.
333 (set_module_locus): Use module_pos.
334 (get_module_locus): Likewise.
335 (module_char): use buffer rather than stdio file.
336 (module_unget_char): Likewise.
337 (read_module_to_tmpbuf): New function.
338 (gfc_use_module): Call read_module_to_tmpbuf.
340 2013-03-26 Tobias Burnus <burnus@net-b.de>
343 * simplify.c (gfc_simplify_merge): Simplify more.
345 2013-03-25 Tobias Burnus <burnus@net-b.de>
365 * check.c (gfc_var_strlen): Properly handle 0-sized string.
366 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
367 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
368 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
370 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
372 (gfc_check_pointer_assign): Refine function result check.
373 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
374 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
376 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
378 (generate_isocbinding_symbol): Update prototype.
379 (get_iso_c_sym): Remove.
380 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
381 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
382 (gfc_intrinsic_sub_interface): Use it.
383 (add_functions, add_subroutines): Add missing C-binding intrinsics.
384 (gfc_intrinsic_func_interface): Add special case for c_loc.
385 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
386 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
387 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
388 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
389 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
390 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
392 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
394 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
395 * module.c (create_intrinsic_function): Support subroutines and
396 derived-type results.
397 (use_iso_fortran_env_module): Update calls.
398 (import_iso_c_binding_module): Ditto; update calls to
399 generate_isocbinding_symbol.
400 * resolve.c (find_arglists): Skip for intrinsic symbols.
401 (gfc_resolve_intrinsic): Find intrinsic subs via id.
402 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
403 set_name_and_label, gfc_iso_c_sub_interface): Remove.
404 (resolve_function, resolve_specific_s0): Remove calls to those.
405 (resolve_structure_cons): Fix handling.
406 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
408 (gen_cptr_param, gen_fptr_param, gen_shape_param,
409 build_formal_args, get_iso_c_sym): Remove.
410 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
411 (generate_isocbinding_symbol): Support hidden symbols and
412 using c_ptr/c_funptr symtrees for nullptr defs.
413 * target-memory.c (gfc_target_encode_expr): Fix handling
415 * trans-expr.c (conv_isocbinding_procedure): Remove.
416 (gfc_conv_procedure_call): Remove call to it.
417 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
419 * trans-intrinsic.c (conv_isocbinding_function,
420 conv_isocbinding_subroutine): New.
421 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
423 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
424 * trans-types.c (gfc_typenode_for_spec,
425 gfc_get_derived_type): Ditto.
426 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
428 2013-03-18 Tobias Burnus <burnus@net-b.de>
430 * gfortran.h (gfc_option_t): Remove flag_whole_file.
431 * invoke.texi (-fno-whole-file): Remove.
432 * lang.opt (fwhole-file): Change to Ignore.
433 * options.c (gfc_init_options, gfc_post_options,
434 gfc_handle_option): Remove !flag_whole_file handling
435 * parse.c (resolve_all_program_units, translate_all_program_units,
436 gfc_parse_file): Ditto.
437 * resolve.c (resolve_global_procedure): Ditto.
438 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
439 gfc_create_module_variable): Ditto.
440 * trans-types.c (gfc_get_derived_type): Ditto.
442 2013-03-15 Tobias Burnus <burnus@net-b.de>
445 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
446 if they are not simply contiguous.
448 2013-03-11 Tobias Burnus <burnus@net-b.de>
450 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
451 to convert them into derived types.
453 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
456 * expr.c (gfc_default_initializer): Check that a class declared
457 type has any components.
458 * resolve.c (resolve_fl_derived0): On failing the test for C437
459 set the type to BT_UNKNOWN to prevent repeat error messages.
461 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
464 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
466 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
469 * array.c (gfc_match_array_constructor): Set a checkpoint before
470 matching a typespec. Drop it on success, restore it otherwise.
472 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
475 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
476 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
477 gfc_restore_last_undo_checkpoint): New prototypes.
478 * symbol.c (default_undo_chgset_var): Update initialization.
479 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
480 free_undo_change_set_data, pop_undo_change_set,
481 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
483 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
484 field's previous value is not overwritten. Clear gfc_new field.
485 (restore_old_symbol): Restore previous old_symbol field.
486 (gfc_restore_last_undo_checkpoint): New function, using body renamed
487 from gfc_undo_symbols. Restore the previous change set as current one.
488 (gfc_undo_symbols): New body.
489 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
490 Call enforce_single_undo_checkpoint.
491 (gfc_symbol_done_2): Ditto. Free change set data.
493 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
495 * symbol.c (restore_old_symbol): Fix thinko.
497 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
499 * symbol.c (gfc_undo_symbols): Move code...
500 (restore_old_symbol): ... here as a new function.
502 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
504 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
505 * gfortran.h: Include vec.h.
506 (gfc_undo_change_set): New struct.
507 * symbol.c (tentative_tbp): Remove struct.
508 (changed_syms, tentative_tbp_list): Remove variables.
509 (default_undo_chgset_var, latest_undo_chgset): New variables.
510 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
511 gfc_commit_symbols, gfc_commit_symbol,
512 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
513 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
515 2013-03-01 Tobias Burnus <burnus@net-b.de>
518 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
519 * symbol.c (free_components): Free proc-pointer components.
521 2013-03-01 Tobias Burnus <burnus@net-b.de>
523 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
524 * trans-io.c (build_dt): Ditto.
526 2013-02-24 Joseph Myers <joseph@codesourcery.com>
528 * resolve.c (generate_component_assignments): Don't use UTF-8
529 ligature in diagnostic.
531 2013-02-21 Janus Weil <janus@gcc.gnu.org>
534 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
535 components with allocatable result.
537 2013-02-21 Tobias Burnus <burnus@net-b.de>
540 * gfortran.texi (Part II: Language Reference, Extensions,
541 Non-Fortran Main Program): Sort @menu to match actual section order.
542 * intrinsic.texi (Intrinsic Procedures): Ditto.
543 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
545 2013-02-15 Tobias Burnus <burnus@net-b.de>
546 Mikael Morin <mikael@gcc.gnu.org>
549 * simplify.c (gfc_simplify_matmul): Fix result shape
552 2013-02-15 Tobias Burnus <burnus@net-b.de>
555 * resolve.c (apply_default_init_local): Don't create an
556 initializer for a result variable.
558 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
561 * gfortran.h (gfc_add_include_path): Add boolean argument
563 * scanner.c (gfc_add_include_path): Pass along warn argument
565 * options.c (gfc_post_options): Add true warn argument to
566 gfc_add_include_path.
567 (gfc_handle_module_path_options): Likewise.
568 (gfc_handle_option): Also gfc_add_include_path for intrinsic
569 modules, without warning.
571 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
572 Tobias Burnus <burnus@net-b.de>
575 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
576 results for functions without extra result variable.
579 2013-01-30 Tobias Burnus <burnus@net-b.de>
582 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
583 results for functions without extra result variable.
585 2013-02-12 Janus Weil <janus@gcc.gnu.org>
588 * resolve.c (resolve_call): Do not check deferred procedures for
591 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
594 * check.c (array_check): It is an error if a procedure is
597 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
600 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
601 to error_mark_node on entry. Detect recursive types. Build a variadic
602 procedure type if the type is recursive. Restore the initial
605 2013-02-07 Tobias Burnus <burnus@net-b.de>
608 * gfortran.texi (Standards): Mention TS29113.
609 (Varying Length Character): Mention deferred-length
611 (Fortran 2003 Status): Add unlimited polymorphic.
612 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
613 (C Interop): Update the section about TS29113.
615 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
618 * trans-array.c (trans_array_constructor): Remove condition
619 'dynamic' = true if the loop ubound is a VAR_DECL.
621 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
625 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
626 the lhs descriptor before it is modified for reallocation. Use
627 it to deallocate allocatable components in the reallocation
628 block. Nullify allocatable components for newly (re)allocated
631 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
634 * resolve.c (resolve_typebound_procedures): Recurse through
637 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
641 * gfortran.h (struct gfc_symbol): New field 'resolved'.
642 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
643 (resolve_symbol): Skip duplicate calls. Don't check the current
646 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
650 * decl.c (gfc_match_end): Remove half-ready namespace
651 from parent if the end of a block is missing.
652 * parse.c (parse_module): Do not put namespace into
655 2013-01-30 Tobias Burnus <burnus@net-b.de>
658 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
659 results for functions without extra result variable.
661 2013-01-29 Janus Weil <janus@gcc.gnu.org>
662 Mikael Morin <mikael@gcc.gnu.org>
665 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
666 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
667 gfc_expr_replace_comp): Delete.
668 (gfc_sym_get_dummy_args): New prototype.
669 * dependency.c (gfc_check_fncall_dependency): Use
670 'gfc_sym_get_dummy_args'.
671 * expr.c (gfc_is_constant_expr): Ditto.
672 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
673 gfc_expr_replace_comp): Deleted.
674 * frontend-passes.c (doloop_code,do_function): Use
675 'gfc_sym_get_dummy_args'.
676 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
677 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
678 gfc_check_typebound_override): Ditto.
679 * module.c (MOD_VERSION): Bump module version.
680 (mio_component): Do not read/write 'formal' and 'formal_ns'.
681 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
682 copy formal args, but just keep a pointer to the interface.
683 (resolve_function,resolve_call,resolve_typebound_generic_call,
684 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
685 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
686 resolve_typebound_procedure,check_uop_procedure): Use
687 'gfc_sym_get_dummy_args'.
688 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
689 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
690 (gfc_sym_get_dummy_args): New function.
691 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
692 Use 'gfc_sym_get_dummy_args'.
693 * trans-decl.c (build_function_decl,create_function_arglist,
694 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
695 add_argument_checking): Ditto.
696 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
697 gfc_conv_statement_function): Ditto.
698 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
699 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
701 2013-01-28 Tobias Burnus <burnus@net-b.de>
702 Mikael Morin <mikael@gcc.gnu.org>
705 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
707 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
708 * decl.c (gfc_match_data_decl): Ditto.
709 (variable_decl): Remove undeclared type error.
710 (gfc_match_import): Use renamed instead of original name.
712 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
716 * gfortran.h : Add associate_var to symbol_attr.
717 * resolve.c (resolve_assoc_var): Set associate_var attribute.
718 If the target class_ok is set, set it for the associate
720 * check.c (allocatable_check): Associate variables should not
721 have the allocatable attribute even if their symbols do.
722 * class.c (gfc_build_class_symbol): Symbols with associate_var
723 set will always have a good class container.
725 2013-01-23 Janus Weil <janus@gcc.gnu.org>
728 * resolve.c (resolve_select): Add argument 'select_type', reject
729 non-scalar expressions.
730 (resolve_select_type,resolve_code): Pass new argument to
733 2013-01-23 Jakub Jelinek <jakub@redhat.com>
736 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
737 and DECL_IGNORED_P on select_type_temporary and don't set
740 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
743 * scanner.c (add_path_to_list): Copy path to temporary and strip
744 trailing directory separators before calling stat().
746 2013-01-17 Richard Biener <rguenther@suse.de>
748 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
749 dependent on sign of step, avoids repeated evaluation of
750 step sign test. Avoid undefined overflow issues by using unsigned
753 2013-01-16 Janus Weil <janus@gcc.gnu.org>
756 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
759 2013-01-16 Jakub Jelinek <jakub@redhat.com>
760 Tobias Burnus <burnus@net-b.de>
763 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
764 (fintrinsic-modules-path=): New.
765 * options.c (gfc_handle_option, gfc_get_option_string,
766 gfc_get_option_string): Handle the latter.
768 2013-01-16 Jakub Jelinek <jakub@redhat.com>
771 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
772 and use value of countm1 before the decrement in the condition.
774 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
777 * expr.c (gfc_check_pointer_assign): Check for presence of
778 's2' before using it.
780 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
783 * frontend-passes.c (optimize_reduction): New function,
785 (callback_reduction): Likewise.
786 (gfc_run_passes): Also run optimize_reduction.
787 (copy_walk_reduction_arg): New function.
788 (dummy_code_callback): New function.
790 2013-01-13 Jakub Jelinek <jakub@redhat.com>
793 * trans-expr.c (gfc_conv_structure): Call
794 unshare_expr_without_location on the ctor elements.
796 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
799 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
800 and rvalue interfaces are presented to gfc_compare_interfaces.
801 Simplify references to interface names by using the symbols
802 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
803 changed to overcome the asymmetry of this function. Do not
804 repeat the check for the presence of s1 and s2.
806 2013-01-12 Janus Weil <janus@gcc.gnu.org>
809 * trans-array.c (gfc_conv_array_parameter): No packing was done for
810 full arrays of derived type.
812 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
815 * class.c (get_unique_type_string): Change $tar to STAR and
816 replace sprintf by strcpy where there is no formatting.
817 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
819 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
822 * module.c (check_for_ambiguous): Get the current program unit using
825 2013-01-09 Tobias Burnus <burnus@net-b.de>
828 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
829 in BIND(C) procedures with -std=f*.
831 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
834 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
835 character function arguments to elemental procedures in
838 2013-01-07 Tobias Burnus <burnus@net-b.de>
841 * gfortran.h (gfc_check_assign_symbol): Update prototype.
842 * decl.c (add_init_expr_to_sym, do_parm): Update call.
843 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
844 improve error location; support components.
845 (gfc_check_pointer_assign): Handle component assignments.
846 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
847 (resolve_values): Update call.
848 (resolve_structure_cons): Avoid double diagnostic.
850 2013-01-07 Tobias Burnus <burnus@net-b.de>
851 Thomas Koenig <tkoenig@gcc.gnu.org>
854 * expr.c (gfc_build_intrinsic_call): Avoid clashes
855 with user's procedures.
856 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
857 * simplify.c (gfc_simplify_size): Update call.
858 * class.c (finalization_scalarizer, finalization_get_offset,
859 finalizer_insert_packed_call, generate_finalization_wrapper):
860 Clean up by using gfc_build_intrinsic_call.
862 2013-01-07 Tobias Burnus <burnus@net-b.de>
865 * resolve.c (resolve_select_type): Reject intrinsic types for
866 a non-unlimited-polymorphic selector.
868 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
873 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
874 to see if it is GFC_CLASS_TYPE_P.
875 * trans-expr.c (gfc_get_vptr_from_expr): The same.
876 (gfc_conv_class_to_class): If the types are not the same,
877 cast parmese->expr to the type of ctree.
878 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
879 CLASS components must be set.
881 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
886 * module.c (read_module): Don't reuse local symtree if the associated
887 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
889 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
892 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
893 Mikael Morin <mikael@gcc.gnu.org>
896 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
898 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
900 2013-01-05 Tobias Burnus <burnus@net-b.de>
902 * class.c (finalize_component): Used passed offset expr.
903 (finalization_get_offset): New static function.
904 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
905 to handle noncontiguous arrays.
907 2013-01-04 Tobias Burnus <burnus@net-b.de>
909 * trans.c (gfc_build_final_call): New function.
910 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
911 New function prototypes.
912 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
913 conv_scalar_to_descriptor, removed static attribute.
914 (gfc_conv_procedure_call): Honor renaming.
916 2013-01-04 Tobias Burnus <burnus@net-b.de>
918 * intrinsic.c (add_functions): New internal intrinsic
919 function GFC_PREFIX ("stride").
920 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
921 * intrinsic.h (gfc_resolve_stride): New prototypes.
922 * iresolve.c (gfc_resolve_stride): New function.
923 * trans-intrinsic.c (conv_intrinsic_stride): New static
925 (gfc_conv_intrinsic_function): Use it.
927 2013-01-04 Tobias Burnus <burnus@net-b.de>
929 * class.c (gfc_find_intrinsic_vtab): Add _final
931 * decl.c (gfc_match_null): Remove superfluous
932 variadic argument to gfc_match.
934 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
937 * match.c (copy_ts_from_selector_to_associate): Remove call to
938 gfc_resolve_expr and replace it with explicit setting of the
939 array reference type.
940 * resolve.c (resolve_select_type): It is an error if the
941 selector is coindexed.
943 2013-01-04 Tobias Burnus <burnus@net-b.de>
946 * decl.c (gfc_match_null): Parse and reject MOLD.
948 2013-01-04 Tobias Burnus <burnus@net-b.de>
952 * class.c (gfc_class_null_initializer): Fix finding the vtab.
953 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
955 2013-01-03 Janus Weil <janus@gcc.gnu.org>
958 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
959 of rvalue. Correct hyphenation in error message.
961 2013-01-03 Jakub Jelinek <jakub@redhat.com>
963 * gfortranspec.c (lang_specific_driver): Update copyright notice
966 Copyright (C) 2013 Free Software Foundation, Inc.
968 Copying and distribution of this file, with or without modification,
969 are permitted in any medium without royalty provided the copyright
970 notice and this notice are preserved.