1 2013-06-08 Tobias Burnus <burnus@net-b.de>
4 * simplify.c (gfc_simplify_storage_size): Handle literal
6 * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
7 Add missing fold_convert.
9 2013-06-07 Tobias Burnus <burnus@net-b.de>
12 * array.c (gfc_match_array_constructor): Call
13 gfc_match_type_spec instead of gfc_match_decl_type_spec.
14 * match.c (gfc_match_type_spec): Renamed from match_type_spec.
15 (gfc_match_type_is, gfc_match_allocate): Update call.
16 * match.h (gfc_match_type_spec): Add prototype.
18 2013-06-07 Tobias Burnus <burnus@net-b.de>
21 * trans.c (gfc_build_final_call): Init block before use.
23 2013-06-06 Tobias Burnus <burnus@net-b.de>
26 * trans.c (gfc_build_final_call): Add se.pre to the block
27 and modify the assert.
29 2013-06-04 Tobias Burnus <burnus@net-b.de>
32 * trans.h (gfc_build_final_call): Remove prototype.
33 (gfc_add_finalizer_call): Add prototype.
34 * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
35 (structure_alloc_comps): Update caller.
36 (gfc_trans_deferred_array): Call finalizer.
37 * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
38 * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
39 variables of the main program.
40 * trans-expr.c (gfc_conv_procedure_call): Support finalization.
41 * trans-openmp.c (gfc_omp_clause_dtor,
42 gfc_trans_omp_array_reduction): Update calls.
43 * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
45 * trans.c (gfc_add_finalizer_call): New function.
46 (gfc_deallocate_with_status,
47 gfc_deallocate_scalar_with_status): Call it
48 (gfc_build_final_call): Fix handling of scalar coarrays,
49 move up in the file and make static.
51 2013-06-01 Janus Weil <janus@gcc.gnu.org>
52 Mikael Morin <mikael@gcc.gnu.org>
54 * error.c (get_terminal_width): Only limit the width if we're
55 outputting to a terminal. Try to determine width via ioctl.
57 2013-06-01 Tobias Burnus <burnus@net-b.de>
59 * decl.c (add_global_entry): Take locus.
60 (gfc_match_entry): Update call.
61 (gfc_match_end): Better error location.
62 * parse.c (parse_block_data, parse_module, add_global_procedure,
63 add_global_program): Use better locus data.
65 2013-05-31 Tobias Burnus <burnus@net-b.de>
68 * trans-array.c (gfc_array_init_size): Use passed type spec,
70 (gfc_array_allocate): Pass typespec on.
71 * trans-array.h (gfc_array_allocate): Update prototype.
72 * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
74 2013-05-31 Janus Weil <janus@gcc.gnu.org>
78 * gfortran.h (gfc_terminal_width): Remove prototype.
79 * error.c (get_terminal_width): Moved here from misc.c. Renamed.
80 Try to determine terminal width from environment variable.
81 * interface.c (compare_type, compare_rank): New functions. Fix assumed
83 (compare_type_rank, check_dummy_characteristics,
84 check_result_characteristics, gfc_compare_interfaces): Use them.
85 (symbol_rank): Slightly modified and moved.
86 * misc.c (gfc_terminal_width): Moved to error.c.
88 2013-05-30 Janus Weil <janus@gcc.gnu.org>
91 * resolve.c (check_assumed_size_reference): Check for e->ref.
93 2013-05-30 Tobias Burnus <burnus@net-b.de>
96 * interface.c (compare_parameter): Update C1239/C1240 constraint
97 check for assumed-rank/TS29113.
99 2013-05-29 Tobias Burnus <burnus@net-b.de>
102 * class.c (finalize_component): Fix coarray array refs.
103 (generate_finalization_wrapper): Only gfc_convert_type_warn
104 when the kind value is different.
105 (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
106 (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
108 * module.c (MOD_VERSION): Bump.
109 (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
110 * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
112 (gfc_array_allocate, structure_alloc_comps): Don't nullify for
113 BT_CLASS allocations.
114 * trans-stmt.c (gfc_trans_allocate): Ditto.
116 2013-05-29 Tobias Burnus <burnus@net-b.de>
119 * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
121 2013-05-28 Tobias Burnus <burnus@net-b.de>
123 * trans-expr.c (gfc_conv_procedure_call): Deallocate
124 polymorphic arrays for allocatable intent(out) dummies.
125 (gfc_reset_vptr): New function, moved from trans-stmt.c
127 * trans-stmt.c (reset_vptr): Remove.
128 (gfc_trans_deallocate): Update calls.
129 * trans.h (gfc_reset_vptr): New prototype.
131 2013-05-28 Dominique d'Humieres <dominiq@lps.ens.fr>
134 * module.c (check_for_ambiguous): Avoid null pointer deref.
136 2013-05-28 Janus Weil <janus@gcc.gnu.org>
137 Tobias Burnus <burnus@net-b.de>
140 * interface.c (check_dummy_characteristics): Symmetrize type check.
142 2013-05-27 Bud Davis <jmdavis@link.com>
145 * resolve.c (resolve_formal_arglist): Detect error when an argument
146 has the same name as the function.
148 2013-05-27 Tobias Burnus <burnus@net-b.de>
150 * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
151 * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
153 2013-05-22 Tobias Burnus <burnus@net-b.de>
155 * resolve.c (get_temp_from_expr): Change mangling to
156 start always with a _.
158 2013-05-22 Tobias Burnus <burnus@net-b.de>
160 * resolve.c (get_temp_from_expr): Fix temp var mangling.
162 2013-05-22 Tobias Burnus <burnus@net-b.de>
165 * resolve.c (get_temp_from_expr): Commit created sym.
167 2013-05-22 Tobias Burnus <burnus@net-b.de>
170 * intrinsic.c (do_check): Move some checks to ...
171 (do_ts29113_check): ... this new function.
172 (check_specific, gfc_intrinsic_sub_interface): Call it.
174 2013-05-22 Janne Blomqvist <jb@gcc.gnu.org>
176 * intrinsic.texi (RANDOM_SEED): Improve example.
178 2013-05-21 Tobias Burnus <burnus@net-b.de>
181 * intrinsic.c (do_check): Add constraint check for
182 NO_ARG_CHECK, assumed rank and assumed type.
183 * gfortran.texi (NO_ARG_CHECK): Minor wording change,
184 allow PRESENT intrinsic.
186 2013-05-20 Tobias Burnus <burnus@net-b.de>
190 * decl.c (add_global_entry): Add sym_name.
191 * parse.c (add_global_procedure): Ditto.
192 * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
194 (resolve_global_procedure): Handle gsym->ns pointing to a module.
195 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
197 2013-05-20 Tobias Burnus <burnus@net-b.de>
200 * decl.c (add_global_entry): Use nonbinding name
201 only for F2003 or if no binding label exists.
202 (gfc_match_entry): Update calls.
203 * parse.c (gfc_global_used): Improve error message.
204 (add_global_procedure): Use nonbinding name
205 only for F2003 or if no binding label exists.
206 (gfc_parse_file): Update call.
207 * resolve.c (resolve_global_procedure): Use binding
209 * trans-decl.c (gfc_get_extern_function_decl): Ditto.
211 2013-05-20 Tobias Burnus <burnus@net-b.de>
214 * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
215 * match.c (gfc_match_common): Don't add commons to gsym.
216 * resolve.c (resolve_common_blocks): Add to gsym and
218 (resolve_bind_c_comms): Remove.
219 (resolve_types): Remove call to the latter.
220 * trans-common.c (gfc_common_ns): Remove static var.
221 (gfc_map_of_all_commons): Add static var.
222 (build_common_decl): Correctly handle binding label.
224 2013-05-16 Jason Merrill <jason@redhat.com>
226 * Make-lang.in (f951$(exeext)): Use link mutex.
228 2013-05-05 Tobias Burnus <burnus@net-b.de>
230 * resolve.c (conformable_arrays): Avoid segfault
231 when ar.start[i] == NULL.
233 2013-05-05 Tobias Burnus <burnus@net-b.de>
236 * decl.c (gfc_match_null): Permit use-associated
239 2013-05-04 Tobias Burnus <burnus@net-b.de>
241 * decl.c (gfc_verify_c_interop_param): Permit allocatable
242 and pointer with -std=f2008ts.
244 2013-05-02 Tobias Burnus <burnus@net-b.de>
247 * simplify.c (gfc_simplify_size): Renamed from
248 simplify_size; fix kind=8 handling.
249 (gfc_simplify_size): New function.
250 (gfc_simplify_shape): Add range check.
251 * resolve.c (resolve_function): Fix handling
254 2013-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
256 * frontend-passes.c (optimize_power): Fix typo
259 2013-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
262 * frontend-passes.c (optimize_power): Simplify
265 2013-04-28 Tobias Burnus <burnus@net-b.de>
268 * intrinsic.texi (RANK): Correct syntax description and
271 2013-04-28 Tobias Burnus <burnus@net-b.de>
274 * trans-types.c (gfc_get_element_type): Fix handling
275 of scalar coarrays of type character.
276 * intrinsic.texi (PACK): Add missing ")".
278 2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org>
281 * frontend-passes (optimize_power): New function.
282 (optimize_op): Use it.
284 2013-04-25 Janne Blomqvist <jb@gcc.gnu.org>
287 * Make-lang.in (f951): Link in ZLIB.
288 (CFLAGS-fortran/module.o): Add zlib include directory.
290 2013-04-22 Janus Weil <janus@gcc.gnu.org>
294 * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
296 * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
297 of special treatment for EXPR_ARRAY.
298 * target-memory.h (gfc_element_size): New prototype.
299 * target-memory.c (size_array): Remove.
300 (gfc_element_size): New function.
301 (gfc_target_expr_size): Modified to always return the full size of the
304 2013-04-20 Tobias Burnus <burnus@net-b.de>
307 * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
310 2013-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
311 Mikael Morin <mikael@gcc.gnu.org>
314 * frontend-passes.c (copy_walk_reduction_arg): Change argument type
315 to gfc_constructor. If it has an iterator, wrap the copy of its
316 expression in an array constructor with that iterator. Don't special
317 case function expressions.
318 (callback_reduction): Update caller. Don't return early if there is
321 2013-04-18 Tobias Burnus <burnus@net-b.de>
323 * expr.c (find_array_element): Don't copy expr.
324 * data.c (create_character_initializer): Free expr.
325 * frontend-passes.c (combine_array_constructor): Ditto.
326 * match.c (match_typebound_call, gfc_match_select_type): Ditto.
327 * resolve.c (resolve_typebound_function): Free gfc_ref.
329 2013-04-18 Tobias Burnus <burnus@net-b.de>
332 * invoke.texi (NEAREST): S argument is not optional.
334 2013-04-17 Janus Weil <janus@gcc.gnu.org>
337 * interface.c (check_result_characteristics): Get result from interface
340 2013-04-17 Janne Blomqvist <jb@gcc.gnu.org>
343 * scanner.h: New file.
344 * Make-lang.in: Dependencies on scanner.h.
345 * scanner.c (gfc_directorylist): Move to scanner.h.
346 * module.c: Don't include md5.h, include scanner.h and zlib.h.
347 (MOD_VERSION): Add comment about backwards compatibility.
348 (module_fp): Change type to gzFile.
350 (gzopen_included_file_1): New function.
351 (gzopen_included_file): New function.
352 (gzopen_intrinsic_module): New function.
353 (write_char): Use gzputc.
354 (read_crc32_from_module_file): New function.
355 (read_md5_from_module_file): Remove.
356 (gfc_dump_module): Use gz* functions instead of stdio, check gzip
357 crc32 instead of md5.
358 (read_module_to_tmpbuf): Use gz* functions instead of stdio.
359 (gfc_use_module): Use gz* functions.
361 2013-04-16 Tobias Burnus <burnus@net-b.de>
364 * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
365 * gfortran.h (ext_attr_id_t): Ditto.
366 * gfortran.texi (GNU Fortran Compiler Directives):
368 * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
369 (compare_parameter): Ditto - and regard as unlimited polymorphic.
370 * resolve.c (resolve_symbol, resolve_variable): Add same constraint
371 checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
372 (gfc_explicit_interface_required): Require explicit interface
375 2013-04-16 Janus Weil <janus@gcc.gnu.org>
378 * expr.c (gfc_check_pointer_assign): Handle generic functions returning
381 2013-04-16 Tobias Burnus <burnus@net-b.de>
384 * intrinsic.c (gfc_intrinsic_func_interface): Don't set
385 module name to "(intrinsic)" for intrinsics from intrinsic
388 2013-04-15 Tobias Burnus <burnus@net-b.de>
390 * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
392 2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
395 * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
397 2013-04-15 Tobias Burnus <burnus@net-b.de>
399 * class.c (gfc_find_intrinsic_vtab): Removed unused var.
400 * dependency.c (check_data_pointer_types): Fix check.
401 * frontend-passes.c (check_data_pointer_types): Remove
402 superfluous statement.
403 * parse.c (decode_omp_directive): Add missing break.
404 * resolve.c (resolve_typebound_subroutine: Free variable.
405 * trans-decl.c (create_function_arglist): Correct condition.
407 2013-04-14 Mikael Morin <mikael@gcc.gnu.org>
410 * match.c (gfc_match_select_type): Add syntax error. Move namespace
411 allocation and cleanup...
412 * parse.c (decode_statement): ... here.
414 2013-04-13 Janus Weil <janus@gcc.gnu.org>
417 * expr.c (gfc_simplify_expr): Branch is not unreachable.
419 2013-04-12 Janus Weil <janus@gcc.gnu.org>
422 * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
424 2013-04-12 Tobias Burnus <burnus@net-b.de>
427 * trans-array.c (duplicate_allocatable): Fix handling
430 2013-04-12 Janus Weil <janus@gcc.gnu.org>
433 * gfortran.h (gfc_explicit_interface_required): New prototype.
434 * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
435 required in a proc-ptr assignment.
436 * interface.c (check_result_characteristics): Extra check.
437 * resolve.c (gfc_explicit_interface_required): New function.
438 (resolve_global_procedure): Use new function
439 'gfc_explicit_interface_required'. Do a full interface check.
441 2013-04-12 Tobias Burnus <burnus@net-b.de>
444 * trans-decl.c (gfc_trans_deferred_vars): Restrict
445 static CLASS init to SAVE and -fno-automatic.
447 2013-04-12 Tobias Burnus <burnus@net-b.de>
450 * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
451 allocatable static BT_CLASS.
452 * trans-expr.c (gfc_class_set_static_fields): New function.
453 * trans.h (gfc_class_set_static_fields): New prototype.
455 2013-04-11 Janne Blomqvist <jb@gcc.gnu.org>
457 * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
458 * arith.c: Replace gfc_try with bool type.
469 * f95-lang.c: Likewise.
470 * interface.c: Likewise.
471 * intrinsic.c: Likewise.
472 * intrinsic.h: Likewise.
476 * module.c: Likewise.
477 * openmp.c: Likewise.
480 * primary.c: Likewise.
481 * resolve.c: Likewise.
482 * scanner.c: Likewise.
483 * simplify.c: Likewise.
484 * symbol.c: Likewise.
485 * trans-intrinsic.c: Likewise.
486 * trans-openmp.c: Likewise.
487 * trans-stmt.c: Likewise.
488 * trans-types.c: Likewise.
490 2013-04-09 Tobias Burnus <burnus@net-b.de>
492 * gfortran.texi (KIND Type Parameters,
493 Internal representation of LOGICAL variables): Add crossrefs.
494 (Intrinsic Types): Mention issues with _Bool interop.
495 (Naming and argument-passing conventions): New section.
497 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
500 * frontend-passes.c (callback_reduction): Dont't do
501 any simplification if there is only a single element
502 which has an iterator.
504 2013-04-07 Tobias Burnus <burnus@net-b.de>
507 * iresolve.c (gfc_resolve_reshape): Set shape also
510 2013-04-04 Janus Weil <janus@gcc.gnu.org>
513 * match.c (gfc_match_return): Remove standard notification.
514 * primary.c (gfc_match_actual_arglist): Add standard notification.
516 2013-04-04 Tobias Burnus <burnus@net-b.de>
519 * gcc/fortran/check.c (is_c_interoperable,
520 gfc_check_c_loc): Correct c_loc array checking
521 for Fortran 2003 and Fortran 2008.
523 2013-04-03 Janus Weil <janus@gcc.gnu.org>
527 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
529 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
531 2013-04-01 Janus Weil <janus@gcc.gnu.org>
534 * symbol.c (gfc_set_default_type): Build class container for
537 2013-03-31 Tobias Burnus <burnus@net-b.de>
539 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
540 generate_finalization_wrapper): Avoid segfault with absent SIZE=
541 argment to TRANSFER and use correct result kind for SIZE.
542 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
544 * trans.c (gfc_build_final_call): Handle coarrays.
546 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
548 * trans-expr.c (build_memcmp_call): New function.
549 (gfc_build_compare_string): If the strings
550 compared have constant and equal lengths and
551 the strings are kind=1, or, for kind=4 strings,
552 the test is for (in)equality, use memcmp().
554 2013-03-29 Tobias Burnus <burnus@net-b.de>
557 * trans-decl.c (create_function_arglist): Pass hidden argument
558 for passed-by-value optional+value dummies.
559 * trans-expr.c (gfc_conv_expr_present,
560 gfc_conv_procedure_call): Handle those.
562 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
565 * gfortran.h (gfc_dep_difference): Add prototype.
566 * dependency.c (discard_nops): New function.
567 (gfc_dep_difference): New function.
568 (check_section_vs_section): Use gfc_dep_difference
569 to calculate the difference of starting indices.
570 * trans-expr.c (gfc_conv_substring): Use
571 gfc_dep_difference to calculate the length of
572 substrings where possible.
574 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
577 * frontend-passes.c (optimize_code): Keep track of
578 current code to make code insertion possible.
579 (combine_array_constructor): New function.
580 (optimize_op): Call it.
582 2013-03-27 Tobias Burnus <burnus@net-b.de>
586 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
587 gfc_check_storage_size): Update checks.
588 * intrinsic.texi (SIZEOF): Correct class.
589 * intrinsic.h (gfc_simplify_sizeof,
590 gfc_simplify_storage_size): New prototypes.
591 * intrinsic.c (add_functions): Use them.
592 * simplify.c (gfc_simplify_sizeof,
593 gfc_simplify_storage_size): New functions.
595 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
598 * module.c (module_locus): Use long for position.
599 (module_content): New variable.
600 (module_pos): Likewise.
601 (prev_character): Remove.
602 (bad_module): Free data instead of closing mod file.
603 (set_module_locus): Use module_pos.
604 (get_module_locus): Likewise.
605 (module_char): use buffer rather than stdio file.
606 (module_unget_char): Likewise.
607 (read_module_to_tmpbuf): New function.
608 (gfc_use_module): Call read_module_to_tmpbuf.
610 2013-03-26 Tobias Burnus <burnus@net-b.de>
613 * simplify.c (gfc_simplify_merge): Simplify more.
615 2013-03-25 Tobias Burnus <burnus@net-b.de>
635 * check.c (gfc_var_strlen): Properly handle 0-sized string.
636 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
637 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
638 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
640 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
642 (gfc_check_pointer_assign): Refine function result check.
643 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
644 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
646 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
648 (generate_isocbinding_symbol): Update prototype.
649 (get_iso_c_sym): Remove.
650 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
651 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
652 (gfc_intrinsic_sub_interface): Use it.
653 (add_functions, add_subroutines): Add missing C-binding intrinsics.
654 (gfc_intrinsic_func_interface): Add special case for c_loc.
655 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
656 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
657 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
658 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
659 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
660 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
662 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
664 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
665 * module.c (create_intrinsic_function): Support subroutines and
666 derived-type results.
667 (use_iso_fortran_env_module): Update calls.
668 (import_iso_c_binding_module): Ditto; update calls to
669 generate_isocbinding_symbol.
670 * resolve.c (find_arglists): Skip for intrinsic symbols.
671 (gfc_resolve_intrinsic): Find intrinsic subs via id.
672 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
673 set_name_and_label, gfc_iso_c_sub_interface): Remove.
674 (resolve_function, resolve_specific_s0): Remove calls to those.
675 (resolve_structure_cons): Fix handling.
676 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
678 (gen_cptr_param, gen_fptr_param, gen_shape_param,
679 build_formal_args, get_iso_c_sym): Remove.
680 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
681 (generate_isocbinding_symbol): Support hidden symbols and
682 using c_ptr/c_funptr symtrees for nullptr defs.
683 * target-memory.c (gfc_target_encode_expr): Fix handling
685 * trans-expr.c (conv_isocbinding_procedure): Remove.
686 (gfc_conv_procedure_call): Remove call to it.
687 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
689 * trans-intrinsic.c (conv_isocbinding_function,
690 conv_isocbinding_subroutine): New.
691 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
693 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
694 * trans-types.c (gfc_typenode_for_spec,
695 gfc_get_derived_type): Ditto.
696 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
698 2013-03-18 Tobias Burnus <burnus@net-b.de>
700 * gfortran.h (gfc_option_t): Remove flag_whole_file.
701 * invoke.texi (-fno-whole-file): Remove.
702 * lang.opt (fwhole-file): Change to Ignore.
703 * options.c (gfc_init_options, gfc_post_options,
704 gfc_handle_option): Remove !flag_whole_file handling
705 * parse.c (resolve_all_program_units, translate_all_program_units,
706 gfc_parse_file): Ditto.
707 * resolve.c (resolve_global_procedure): Ditto.
708 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
709 gfc_create_module_variable): Ditto.
710 * trans-types.c (gfc_get_derived_type): Ditto.
712 2013-03-15 Tobias Burnus <burnus@net-b.de>
715 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
716 if they are not simply contiguous.
718 2013-03-11 Tobias Burnus <burnus@net-b.de>
720 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
721 to convert them into derived types.
723 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
726 * expr.c (gfc_default_initializer): Check that a class declared
727 type has any components.
728 * resolve.c (resolve_fl_derived0): On failing the test for C437
729 set the type to BT_UNKNOWN to prevent repeat error messages.
731 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
734 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
736 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
739 * array.c (gfc_match_array_constructor): Set a checkpoint before
740 matching a typespec. Drop it on success, restore it otherwise.
742 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
745 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
746 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
747 gfc_restore_last_undo_checkpoint): New prototypes.
748 * symbol.c (default_undo_chgset_var): Update initialization.
749 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
750 free_undo_change_set_data, pop_undo_change_set,
751 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
753 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
754 field's previous value is not overwritten. Clear gfc_new field.
755 (restore_old_symbol): Restore previous old_symbol field.
756 (gfc_restore_last_undo_checkpoint): New function, using body renamed
757 from gfc_undo_symbols. Restore the previous change set as current one.
758 (gfc_undo_symbols): New body.
759 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
760 Call enforce_single_undo_checkpoint.
761 (gfc_symbol_done_2): Ditto. Free change set data.
763 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
765 * symbol.c (restore_old_symbol): Fix thinko.
767 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
769 * symbol.c (gfc_undo_symbols): Move code...
770 (restore_old_symbol): ... here as a new function.
772 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
774 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
775 * gfortran.h: Include vec.h.
776 (gfc_undo_change_set): New struct.
777 * symbol.c (tentative_tbp): Remove struct.
778 (changed_syms, tentative_tbp_list): Remove variables.
779 (default_undo_chgset_var, latest_undo_chgset): New variables.
780 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
781 gfc_commit_symbols, gfc_commit_symbol,
782 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
783 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
785 2013-03-01 Tobias Burnus <burnus@net-b.de>
788 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
789 * symbol.c (free_components): Free proc-pointer components.
791 2013-03-01 Tobias Burnus <burnus@net-b.de>
793 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
794 * trans-io.c (build_dt): Ditto.
796 2013-02-24 Joseph Myers <joseph@codesourcery.com>
798 * resolve.c (generate_component_assignments): Don't use UTF-8
799 ligature in diagnostic.
801 2013-02-21 Janus Weil <janus@gcc.gnu.org>
804 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
805 components with allocatable result.
807 2013-02-21 Tobias Burnus <burnus@net-b.de>
810 * gfortran.texi (Part II: Language Reference, Extensions,
811 Non-Fortran Main Program): Sort @menu to match actual section order.
812 * intrinsic.texi (Intrinsic Procedures): Ditto.
813 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
815 2013-02-15 Tobias Burnus <burnus@net-b.de>
816 Mikael Morin <mikael@gcc.gnu.org>
819 * simplify.c (gfc_simplify_matmul): Fix result shape
822 2013-02-15 Tobias Burnus <burnus@net-b.de>
825 * resolve.c (apply_default_init_local): Don't create an
826 initializer for a result variable.
828 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
831 * gfortran.h (gfc_add_include_path): Add boolean argument
833 * scanner.c (gfc_add_include_path): Pass along warn argument
835 * options.c (gfc_post_options): Add true warn argument to
836 gfc_add_include_path.
837 (gfc_handle_module_path_options): Likewise.
838 (gfc_handle_option): Also gfc_add_include_path for intrinsic
839 modules, without warning.
841 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
842 Tobias Burnus <burnus@net-b.de>
845 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
846 results for functions without extra result variable.
849 2013-01-30 Tobias Burnus <burnus@net-b.de>
852 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
853 results for functions without extra result variable.
855 2013-02-12 Janus Weil <janus@gcc.gnu.org>
858 * resolve.c (resolve_call): Do not check deferred procedures for
861 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
864 * check.c (array_check): It is an error if a procedure is
867 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
870 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
871 to error_mark_node on entry. Detect recursive types. Build a variadic
872 procedure type if the type is recursive. Restore the initial
875 2013-02-07 Tobias Burnus <burnus@net-b.de>
878 * gfortran.texi (Standards): Mention TS29113.
879 (Varying Length Character): Mention deferred-length
881 (Fortran 2003 Status): Add unlimited polymorphic.
882 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
883 (C Interop): Update the section about TS29113.
885 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
888 * trans-array.c (trans_array_constructor): Remove condition
889 'dynamic' = true if the loop ubound is a VAR_DECL.
891 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
895 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
896 the lhs descriptor before it is modified for reallocation. Use
897 it to deallocate allocatable components in the reallocation
898 block. Nullify allocatable components for newly (re)allocated
901 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
904 * resolve.c (resolve_typebound_procedures): Recurse through
907 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
911 * gfortran.h (struct gfc_symbol): New field 'resolved'.
912 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
913 (resolve_symbol): Skip duplicate calls. Don't check the current
916 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
920 * decl.c (gfc_match_end): Remove half-ready namespace
921 from parent if the end of a block is missing.
922 * parse.c (parse_module): Do not put namespace into
925 2013-01-30 Tobias Burnus <burnus@net-b.de>
928 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
929 results for functions without extra result variable.
931 2013-01-29 Janus Weil <janus@gcc.gnu.org>
932 Mikael Morin <mikael@gcc.gnu.org>
935 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
936 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
937 gfc_expr_replace_comp): Delete.
938 (gfc_sym_get_dummy_args): New prototype.
939 * dependency.c (gfc_check_fncall_dependency): Use
940 'gfc_sym_get_dummy_args'.
941 * expr.c (gfc_is_constant_expr): Ditto.
942 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
943 gfc_expr_replace_comp): Deleted.
944 * frontend-passes.c (doloop_code,do_function): Use
945 'gfc_sym_get_dummy_args'.
946 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
947 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
948 gfc_check_typebound_override): Ditto.
949 * module.c (MOD_VERSION): Bump module version.
950 (mio_component): Do not read/write 'formal' and 'formal_ns'.
951 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
952 copy formal args, but just keep a pointer to the interface.
953 (resolve_function,resolve_call,resolve_typebound_generic_call,
954 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
955 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
956 resolve_typebound_procedure,check_uop_procedure): Use
957 'gfc_sym_get_dummy_args'.
958 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
959 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
960 (gfc_sym_get_dummy_args): New function.
961 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
962 Use 'gfc_sym_get_dummy_args'.
963 * trans-decl.c (build_function_decl,create_function_arglist,
964 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
965 add_argument_checking): Ditto.
966 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
967 gfc_conv_statement_function): Ditto.
968 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
969 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
971 2013-01-28 Tobias Burnus <burnus@net-b.de>
972 Mikael Morin <mikael@gcc.gnu.org>
975 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
977 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
978 * decl.c (gfc_match_data_decl): Ditto.
979 (variable_decl): Remove undeclared type error.
980 (gfc_match_import): Use renamed instead of original name.
982 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
986 * gfortran.h : Add associate_var to symbol_attr.
987 * resolve.c (resolve_assoc_var): Set associate_var attribute.
988 If the target class_ok is set, set it for the associate
990 * check.c (allocatable_check): Associate variables should not
991 have the allocatable attribute even if their symbols do.
992 * class.c (gfc_build_class_symbol): Symbols with associate_var
993 set will always have a good class container.
995 2013-01-23 Janus Weil <janus@gcc.gnu.org>
998 * resolve.c (resolve_select): Add argument 'select_type', reject
999 non-scalar expressions.
1000 (resolve_select_type,resolve_code): Pass new argument to
1003 2013-01-23 Jakub Jelinek <jakub@redhat.com>
1006 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1007 and DECL_IGNORED_P on select_type_temporary and don't set
1010 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1013 * scanner.c (add_path_to_list): Copy path to temporary and strip
1014 trailing directory separators before calling stat().
1016 2013-01-17 Richard Biener <rguenther@suse.de>
1018 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1019 dependent on sign of step, avoids repeated evaluation of
1020 step sign test. Avoid undefined overflow issues by using unsigned
1023 2013-01-16 Janus Weil <janus@gcc.gnu.org>
1026 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1029 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1030 Tobias Burnus <burnus@net-b.de>
1033 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1034 (fintrinsic-modules-path=): New.
1035 * options.c (gfc_handle_option, gfc_get_option_string,
1036 gfc_get_option_string): Handle the latter.
1038 2013-01-16 Jakub Jelinek <jakub@redhat.com>
1041 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1042 and use value of countm1 before the decrement in the condition.
1044 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
1047 * expr.c (gfc_check_pointer_assign): Check for presence of
1048 's2' before using it.
1050 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
1053 * frontend-passes.c (optimize_reduction): New function,
1054 including prototype.
1055 (callback_reduction): Likewise.
1056 (gfc_run_passes): Also run optimize_reduction.
1057 (copy_walk_reduction_arg): New function.
1058 (dummy_code_callback): New function.
1060 2013-01-13 Jakub Jelinek <jakub@redhat.com>
1063 * trans-expr.c (gfc_conv_structure): Call
1064 unshare_expr_without_location on the ctor elements.
1066 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
1069 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1070 and rvalue interfaces are presented to gfc_compare_interfaces.
1071 Simplify references to interface names by using the symbols
1072 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1073 changed to overcome the asymmetry of this function. Do not
1074 repeat the check for the presence of s1 and s2.
1076 2013-01-12 Janus Weil <janus@gcc.gnu.org>
1079 * trans-array.c (gfc_conv_array_parameter): No packing was done for
1080 full arrays of derived type.
1082 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1085 * class.c (get_unique_type_string): Change $tar to STAR and
1086 replace sprintf by strcpy where there is no formatting.
1087 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1089 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
1092 * module.c (check_for_ambiguous): Get the current program unit using
1095 2013-01-09 Tobias Burnus <burnus@net-b.de>
1098 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1099 in BIND(C) procedures with -std=f*.
1101 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
1104 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1105 character function arguments to elemental procedures in
1106 scalarization loops.
1108 2013-01-07 Tobias Burnus <burnus@net-b.de>
1111 * gfortran.h (gfc_check_assign_symbol): Update prototype.
1112 * decl.c (add_init_expr_to_sym, do_parm): Update call.
1113 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1114 improve error location; support components.
1115 (gfc_check_pointer_assign): Handle component assignments.
1116 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1117 (resolve_values): Update call.
1118 (resolve_structure_cons): Avoid double diagnostic.
1120 2013-01-07 Tobias Burnus <burnus@net-b.de>
1121 Thomas Koenig <tkoenig@gcc.gnu.org>
1124 * expr.c (gfc_build_intrinsic_call): Avoid clashes
1125 with user's procedures.
1126 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1127 * simplify.c (gfc_simplify_size): Update call.
1128 * class.c (finalization_scalarizer, finalization_get_offset,
1129 finalizer_insert_packed_call, generate_finalization_wrapper):
1130 Clean up by using gfc_build_intrinsic_call.
1132 2013-01-07 Tobias Burnus <burnus@net-b.de>
1135 * resolve.c (resolve_select_type): Reject intrinsic types for
1136 a non-unlimited-polymorphic selector.
1138 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
1143 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1144 to see if it is GFC_CLASS_TYPE_P.
1145 * trans-expr.c (gfc_get_vptr_from_expr): The same.
1146 (gfc_conv_class_to_class): If the types are not the same,
1147 cast parmese->expr to the type of ctree.
1148 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1149 CLASS components must be set.
1151 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
1156 * module.c (read_module): Don't reuse local symtree if the associated
1157 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
1159 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1162 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
1163 Mikael Morin <mikael@gcc.gnu.org>
1166 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
1168 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
1170 2013-01-05 Tobias Burnus <burnus@net-b.de>
1172 * class.c (finalize_component): Used passed offset expr.
1173 (finalization_get_offset): New static function.
1174 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
1175 to handle noncontiguous arrays.
1177 2013-01-04 Tobias Burnus <burnus@net-b.de>
1179 * trans.c (gfc_build_final_call): New function.
1180 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
1181 New function prototypes.
1182 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
1183 conv_scalar_to_descriptor, removed static attribute.
1184 (gfc_conv_procedure_call): Honor renaming.
1186 2013-01-04 Tobias Burnus <burnus@net-b.de>
1188 * intrinsic.c (add_functions): New internal intrinsic
1189 function GFC_PREFIX ("stride").
1190 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
1191 * intrinsic.h (gfc_resolve_stride): New prototypes.
1192 * iresolve.c (gfc_resolve_stride): New function.
1193 * trans-intrinsic.c (conv_intrinsic_stride): New static
1195 (gfc_conv_intrinsic_function): Use it.
1197 2013-01-04 Tobias Burnus <burnus@net-b.de>
1199 * class.c (gfc_find_intrinsic_vtab): Add _final
1201 * decl.c (gfc_match_null): Remove superfluous
1202 variadic argument to gfc_match.
1204 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
1207 * match.c (copy_ts_from_selector_to_associate): Remove call to
1208 gfc_resolve_expr and replace it with explicit setting of the
1209 array reference type.
1210 * resolve.c (resolve_select_type): It is an error if the
1211 selector is coindexed.
1213 2013-01-04 Tobias Burnus <burnus@net-b.de>
1216 * decl.c (gfc_match_null): Parse and reject MOLD.
1218 2013-01-04 Tobias Burnus <burnus@net-b.de>
1222 * class.c (gfc_class_null_initializer): Fix finding the vtab.
1223 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
1225 2013-01-03 Janus Weil <janus@gcc.gnu.org>
1228 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
1229 of rvalue. Correct hyphenation in error message.
1231 2013-01-03 Jakub Jelinek <jakub@redhat.com>
1233 * gfortranspec.c (lang_specific_driver): Update copyright notice
1236 Copyright (C) 2013 Free Software Foundation, Inc.
1238 Copying and distribution of this file, with or without modification,
1239 are permitted in any medium without royalty provided the copyright
1240 notice and this notice are preserved.