Daily bump.
[official-gcc.git] / gcc / fortran / ChangeLog
blob5536f5d5eca44d39024b83f7e5e9a2cb914fba69
1 2013-04-28  Tobias Burnus  <burnus@net-b.de>
3         PR fortran/57093
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>
10         PR fortran/57071
11         * frontend-passes (optimize_power):  New function.
12         (optimize_op):  Use it.
14 2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
16         PR bootstrap/57028
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>
22         PR fortran/53685
23         PR fortran/57022
24         * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
25         expressions.
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
32         expression.
34 2013-04-20  Tobias Burnus  <burnus@net-b.de>
36         PR fortran/56907
37         * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
38         passed to C_LOC
40 2013-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
41             Mikael Morin  <mikael@gcc.gnu.org>
43         PR fortran/56872
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
49         an iterator.
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>
61         PR fortran/56994
62         * invoke.texi (NEAREST): S argument is not optional.
64 2013-04-17  Janus Weil  <janus@gcc.gnu.org>
66         PR fortran/56814
67         * interface.c (check_result_characteristics): Get result from interface
68         if present.
70 2013-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
72         PR fortran/40958
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.
79         (ctx): Remove.
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
87         crc32 instead of md5.
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>
93         PR fortran/39505
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):
97         Document it.
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
103         for NO_ARG_CHECK.
105 2013-04-16  Janus Weil  <janus@gcc.gnu.org>
107         PR fortran/56968
108         * expr.c (gfc_check_pointer_assign): Handle generic functions returning
109         procedure pointers.
111 2013-04-16  Tobias Burnus  <burnus@net-b.de>
113         PR fortran/56969
114         * intrinsic.c (gfc_intrinsic_func_interface): Don't set
115         module name to "(intrinsic)" for intrinsics from intrinsic
116         modules.
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>
124         PR fortran/56919
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>
139         PR fortran/56816
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>
146         PR fortran/55959
147         * expr.c (gfc_simplify_expr): Branch is not unreachable.
149 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
151         PR fortran/56266
152         * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
154 2013-04-12  Tobias Burnus  <burnus@net-b.de>
156         PR fortran/56929
157         * trans-array.c (duplicate_allocatable): Fix handling
158         of scalar coarrays.
160 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
162         PR fortran/56261
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>
173         PR fortran/56845
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>
179         PR fortran/56845
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.
189         * array.c: Likewise.
190         * check.c: Likewise.
191         * class.c: Likewise.
192         * cpp.c: Likewise.
193         * cpp.h: Likewise.
194         * data.c: Likewise.
195         * data.h: Likewise.
196         * decl.c: Likewise.
197         * error.c: Likewise.
198         * expr.c: Likewise.
199         * f95-lang.c: Likewise.
200         * interface.c: Likewise.
201         * intrinsic.c: Likewise.
202         * intrinsic.h: Likewise.
203         * io.c: Likewise.
204         * match.c: Likewise.
205         * match.h: Likewise.
206         * module.c: Likewise.
207         * openmp.c: Likewise.
208         * parse.c: Likewise.
209         * parse.h: 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>
229         PR fortran/56782
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>
236         PR fortran/56849
237         * iresolve.c (gfc_resolve_reshape): Set shape also
238         with order=.
240 2013-04-04  Janus Weil  <janus@gcc.gnu.org>
242         PR fortran/40881
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>
248         PR fortran/50269
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>
255         PR fortran/56284
256         PR fortran/40881
257         * decl.c (gfc_match_formal_arglist): Warn about alternate-return
258         arguments.
259         * interface.c (check_dummy_characteristics): Return if symbols are NULL.
261 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
263         PR fortran/56500
264         * symbol.c (gfc_set_default_type): Build class container for
265         IMPLICIT CLASS.
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
273         nonmodules.
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>
286         PR fortran/35203
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>
294         PR fortran/45159
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>
306         PR fortran/55806
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>
314         PR fortran/56650
315         PR fortran/36437
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>
327         PR fortran/25708
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>
342         PR fortran/56649
343         * simplify.c (gfc_simplify_merge): Simplify more.
345 2013-03-25  Tobias Burnus  <burnus@net-b.de>
347         PR fortran/38536
348         PR fortran/38813
349         PR fortran/38894
350         PR fortran/39288
351         PR fortran/40963
352         PR fortran/45824
353         PR fortran/47023
354         PR fortran/47034
355         PR fortran/49023
356         PR fortran/50269
357         PR fortran/50612
358         PR fortran/52426
359         PR fortran/54263
360         PR fortran/55343
361         PR fortran/55444
362         PR fortran/55574
363         PR fortran/56079
364         PR fortran/56378
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
369         functions.
370         * expr.c (check_inquiry): Add c_sizeof, compiler_version and
371         compiler_options.
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,
375         GFC_ISYM_C_LOC.
376         (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
377         NAMED_SUBROUTINE.
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
391         functions.
392         * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
393         NAMED_FUNCTION.
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
407         generation.
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
414         of c_ptr/c_funptr.
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
418         of c_ptr/c_funptr.
419         * trans-intrinsic.c (conv_isocbinding_function,
420         conv_isocbinding_subroutine): New.
421         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
422         Call them.
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>
444         PR fortran/56615
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>
455         PR fortran/56575
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>
463         PR fortran/56477
464         * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
466 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
468         PR fortran/54730
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>
474         PR fortran/54730
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):
482         New functions.
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>
517         PR fortran/56491
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>
533         PR fortran/56385
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>
539         PR fortran/56416
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>
548         PR fortran/56318
549         * simplify.c (gfc_simplify_matmul): Fix result shape
550         and matmul result.
552 2013-02-15  Tobias Burnus  <burnus@net-b.de>
554         PR fortran/53818
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>
560         PR fortran/56224
561         * gfortran.h (gfc_add_include_path):  Add boolean argument
562         for warn.
563         * scanner.c (gfc_add_include_path):  Pass along warn argument
564         to add_path_to_list.
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>
574         PR testsuite/56138
575         * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
576         results for functions without extra result variable.
578         Revert:
579         2013-01-30  Tobias Burnus  <burnus@net-b.de>
581         PR fortran/56138
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>
587         PR fortran/46952
588         * resolve.c (resolve_call): Do not check deferred procedures for
589         recursiveness.
591 2013-02-09  Paul Thomas  <pault@gcc.gnu.org>
593         PR fortran/55362
594         * check.c (array_check): It is an error if a procedure is
595         passed.
597 2013-02-08  Mikael Morin  <mikael@gcc.gnu.org>
599         PR fortran/54107
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
603         backend_decl.
605 2013-02-07  Tobias Burnus  <burnus@net-b.de>
607         PR fortran/54339
608         * gfortran.texi (Standards): Mention TS29113.
609         (Varying Length Character): Mention deferred-length
610         strings.
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>
617         PR fortran/55789
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>
623         PR fortran/56008
624         PR fortran/47517
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
629         arrays.
631 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
633         PR fortran/54195
634         * resolve.c (resolve_typebound_procedures): Recurse through
635         resolve_symbol.
637 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
639         PR fortran/54107
640         PR fortran/54195
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
644         namespace.
646 2013-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
648         PR fortran/50627
649         PR fortran/56054
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
653         gsymbol on error.
655 2013-01-30  Tobias Burnus  <burnus@net-b.de>
657         PR fortran/56138
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>
664         PR fortran/54107
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>
704         PR fortran/53537
705         * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
706         interface block.
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>
714         PR fortran/55984
715         PR fortran/56047
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
719         variable.
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>
727         PR fortran/56081
728         * resolve.c (resolve_select): Add argument 'select_type', reject
729         non-scalar expressions.
730         (resolve_select_type,resolve_code): Pass new argument to
731         'resolve_select'.
733 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
735         PR fortran/56052
736         * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
737         and DECL_IGNORED_P on select_type_temporary and don't set
738         DECL_BY_REFERENCE.
740 2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
742         PR fortran/55919
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
751         arithmetic.
753 2013-01-16  Janus Weil  <janus@gcc.gnu.org>
755         PR fortran/55983
756         * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
757         asserting it.
759 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
760             Tobias Burnus  <burnus@net-b.de>
762         PR driver/55884
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>
770         PR fortran/52865
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>
776         PR fortran/54286
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>
782         PR fortran/55806
783         * frontend-passes.c (optimize_reduction):  New function,
784         including prototype.
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>
792         PR fortran/55935
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>
798         PR fortran/54286
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>
808         PR fortran/55072
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>
814         PR fortran/55868
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>
821         PR fortran/47203
822         * module.c (check_for_ambiguous): Get the current program unit using
823         gfc_current_ns.
825 2013-01-09  Tobias Burnus  <burnus@net-b.de>
827         PR fortran/55758
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>
833         PR fortran/55618
834         * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
835         character function arguments to elemental procedures in
836         scalarization loops.
838 2013-01-07  Tobias Burnus  <burnus@net-b.de>
840         PR fortran/55763
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>
853         PR fortran/55852
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>
864         PR fortran/55763
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>
870         PR fortran/53876
871         PR fortran/54990
872         PR fortran/54992
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>
883         PR fortran/42769
884         PR fortran/45836
885         PR fortran/45900
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
888         ambiguous.
889         * resolve.c (resolve_call): Use symtree's name instead of symbol's to
890         lookup the symtree.
892 2013-01-05  Steven G. Kargl  <kargl@gcc.gnu.org>
893             Mikael Morin  <mikael@gcc.gnu.org>
895         PR fortran/55827
896         * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
897         e->symtree == NULL.
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
924         function.
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
930         component.
931         * decl.c (gfc_match_null): Remove superfluous
932         variadic argument to gfc_match.
934 2013-01-04  Paul Thomas  <pault@gcc.gnu.org>
936         PR fortran/55172
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>
945         PR fortran/55763
946         * decl.c (gfc_match_null): Parse and reject MOLD.
948 2013-01-04  Tobias Burnus  <burnus@net-b.de>
950         PR fortran/55854
951         PR fortran/55763
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>
957         PR fortran/55855
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
964         dates.
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.