2013-12-29 Janus Weil <janus@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob60922b8645015df219a617b8be2c71e0ca5e971f
1 2013-12-29  Janus Weil  <janus@gcc.gnu.org>
3         PR fortran/59612
4         * dump-parse-tree.c (show_typespec): Check for charlen.
5         * invoke.texi: Fix documentation of -fdump-fortran-optimized and
6         -fdump-parse-tree.
8 2013-12-18  Janus Weil  <janus@gcc.gnu.org>
10         PR fortran/59493
11         * gfortran.h (gfc_find_intrinsic_vtab): Removed prototype.
12         (gfc_find_vtab): New prototype.
13         * class.c (gfc_find_intrinsic_vtab): Rename to 'find_intrinsic_vtab' and
14         make static. Minor modifications.
15         (gfc_find_vtab): New function.
16         (gfc_class_initializer): Use new function 'gfc_find_vtab'.
17         * check.c (gfc_check_move_alloc): Ditto.
18         * expr.c (gfc_check_pointer_assign): Ditto.
19         * interface.c (compare_actual_formal): Ditto.
20         * resolve.c (resolve_allocate_expr, resolve_select_type): Ditto.
21         * trans-expr.c (gfc_conv_intrinsic_to_class, gfc_trans_class_assign):
22         Ditto.
23         * trans-intrinsic.c (conv_intrinsic_move_alloc): Ditto.
24         * trans-stmt.c (gfc_trans_allocate): Ditto.
26 2013-12-16  Janus Weil  <janus@gcc.gnu.org>
28         PR fortran/54949
29         * symbol.c (check_conflict): Forbid abstract procedure pointers.
30         (gfc_add_abstract): Check for attribute conflicts.
32 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
34         PR libgomp/59337
35         * openmp.c (resolve_omp_atomic): Adjust error message.
37 2013-12-15  Janus Weil  <janus@gcc.gnu.org>
39         PR fortran/59493
40         * class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS.
42 2013-12-14  Janus Weil  <janus@gcc.gnu.org>
44         PR fortran/59502
45         * primary.c (gfc_match_varspec): Check for 'class_ok'.
47 2013-12-14  Janus Weil  <janus@gcc.gnu.org>
49         PR fortran/59450
50         * module.c (mio_expr): Handle type-bound function expressions.
52 2013-12-12  Tobias Burnus  <burnus@net-b.de>
54         PR fortran/59440
55         * trans-decl.c (generate_namelist_decl): Ensure debug DIE
56         is created by setting DECL_IGNORED_P to 0.
58 2013-12-11  Janus Weil  <janus@gcc.gnu.org>
60         PR fortran/58916
61         * resolve.c (conformable_arrays): Treat scalar 'e2'.
62         (resolve_allocate_expr): Check rank also for unlimited-polymorphic
63         variables.
65 2013-12-10  Janus Weil  <janus@gcc.gnu.org>
67         PR fortran/35831
68         * interface.c (check_dummy_characteristics): Add checks for several
69         attributes.
71 2013-12-10  Janus Weil  <janus@gcc.gnu.org>
73         * gfortran.texi: Add possible kind values (and default) for
74         DOUBLE PRECISION.
75         * invoke.texi: Correct documentation of -fdefault-integer-8,
76         -fdefault-real-8 and -fdefault-double-8.
78 2013-12-10  Janus Weil  <janus@gcc.gnu.org>
80         * gfortran.texi: Modify documentation of kind type parameters.
81         * invoke.texi: Extend documentation of -fdefault-integer-8 and
82         -fdefault-real-8.
84 2013-12-10  Janus Weil  <janus@gcc.gnu.org>
86         * invoke.texi: Add -freal-4-real-16. Rearrange kind promotion options.
88 2013-12-08  Tobias Burnus  <burnus@net-b.de>
89             Janus Weil  <janus@gcc.gnu.org>
91         PR fortran/58099
92         PR fortran/58676
93         PR fortran/41724
94         * resolve.c (gfc_resolve_intrinsic): Set elemental/pure.
95         (resolve_fl_procedure): Reject pure dummy procedures/procedure
96         pointers.
97         (gfc_explicit_interface_required): Don't require a
98         match of ELEMENTAL for intrinsics.
100 2013-12-07  Janus Weil  <janus@gcc.gnu.org>
102         PR fortran/59414
103         * resolve.c (resolve_specific_f0): Handle CLASS-valued functions.
105 2013-12-04  Tobias Burnus  <burnus@net-b.de>
107         PR debug/37132
108         * trans-decl.c (generate_namelist_decl, create_module_nml_decl):
109         New static functions.
110         (gfc_generate_module_vars, generate_local_vars): Call them.
111         (gfc_trans_use_stmts): Handle namelists for debug genertion.
113 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
115         PR fortran/57354
116         * trans-array.c (gfc_conv_resolve_dependencies): For other than
117         SS_SECTION, do a dependency check if the lhs is liable to be
118         reallocated.
120 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
122         PR fortran/58410
123         * trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
124         use the array bounds of an unallocated array but set its size
125         to zero instead.
127 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
129         PR fortran/34547
130         * resolve.c (resolve_transfer): EXPR_NULL is always in an
131         invalid context in a transfer statement.
133 2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>
135         * lang.opt (Wopenmp-simd): New.
137 2013-11-25  Janus Weil  <janus@gcc.gnu.org>
139         PR fortran/59143
140         * interface.c (get_expr_storage_size): Handle array-valued type-bound
141         procedures.
143 2013-11-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
145         * scanner.c (gfc_open_intrinsic_module): Remove function.
146         * gfortran.h (gfc_open_intrinsic_module): Remove prototype.
148 2013-11-23  Janus Weil  <janus@gcc.gnu.org>
150         PR fortran/59228
151         * interface.c (compare_parameter): Check for array spec.
153 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
155         * trans.c: Add required include files from gimple.h.
156         * trans-expr.c: Likewise
157         * trans-openmp.c: Likewise
159 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
161         * trans.c (trans_runtime_error_vararg): Remove use of input_line
162         macro.
164 2013-11-17  Andrew MacLeod  <amacleod@redhat.com>
166         * fortran/trans-intrinsic.c: Include tree-nested.h.
168 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
170         * trans-expr.c: Include only gimplify.h and gimple.h as needed.
171         * trans-openmp.c: Likewise.
173 2013-11-14  Diego Novillo  <dnovillo@google.com>
175         * decl.c: Include stringpool.h.
176         * iresolve.c: Include stringpool.h.
177         * match.c: Include stringpool.h.
178         * module.c: Include stringpool.h.
179         * target-memory.c: Include stor-layout.h.
180         * trans-common.c: Include stringpool.h.
181         Include stor-layout.h.
182         Include varasm.h.
183         * trans-const.c: Include stor-layout.h.
184         * trans-decl.c: Include stringpool.h.
185         Include stor-layout.h.
186         Include varasm.h.
187         Include attribs.h.
188         * trans-expr.c: Include stringpool.h.
189         * trans-intrinsic.c: Include stringpool.h.
190         Include tree-nested.h.
191         Include stor-layout.h.
192         * trans-io.c: Include stringpool.h.
193         Include stor-layout.h.
194         * trans-openmp.c: Include stringpool.h.
195         * trans-stmt.c: Include stringpool.h.
196         * trans-types.c: Include stor-layout.h.
197         Include stringpool.h.
198         * trans.c: Include stringpool.h.
200 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
202         * f95-lang.c: Don't include gimple.h.
203         * trans-array.c: Include gimple-expr.h instead of gimple.h.
204         * trans.c: Likewise.
205         * trans-decl.c: Likewise.
206         * trans-expr.c: Include gimplify.h.
207         * trans-openmp.c: Likewise.
209 2013-11-07  Janus Weil  <janus@gcc.gnu.org>
211         PR fortran/58471
212         * primary.c (gfc_expr_attr): Check for result symbol.
214 2013-11-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
216         * gfortran.texi: Fix typo.
218 2013-11-05  Tobias Burnus  <burnus@net-b.de>
220         * lang.opt (-Wdate-time): New option
221         * cpp.c (gfc_cpp_option_data): Add warn_date_time.
222         (gfc_cpp_init_options, gfc_cpp_handle_option,
223         gfc_cpp_post_options): Handle it and pass on to libcpp.
225 2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
227         PR fortran/58989
228         * check.c (gfc_check_reshape): ensure that shape is a constant
229         expression.
231 2013-11-05  Tobias Burnus  <burnus@net-b.de>
233         * lang.opt (fopenmp-simd): New option.
234         * gfortran.h (gfc_option_t): Add gfc_flag_openmp_simd.
235         * options.c (gfc_handle_option): Handle it.
237 2013-11-04  Ian Lance Taylor  <iant@google.com>
239         * f95-lang.c (ATTR_LEAF_LIST): Define.
241 2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
243         PR fortran/58771
244         * trans-io.c (transfer_expr): If the backend_decl for a derived
245         type is missing, build it with gfc_typenode_for_spec.
247 2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
249         PR fortran/57445
250         * trans-expr.c (gfc_conv_class_to_class): Remove spurious
251         assert.
253 2013-10-29  Tobias Burnus  <burnus@net-b.de>
255         PR fortran/44350
256         * parse.c (parse_spec): Add C1116 constraint
257         check for BLOCK DATA.
259 2013-10-29  Paul Thomas  <pault@gcc.gnu.org>
261         PR fortran/58793
262         * trans-types.c (gfc_typenode_for_spec): Add typenode for
263         BT_HOLLERITH. Note that the length is incorrect but unusable.
265         PR fortran/58858
266         * target-memory.c (gfc_element_size): Add element sizes for
267         BT_VOID and BT_ASSUMED, using gfc_typenode_for_spec.
269 2013-10-24  Tobias Burnus  <burnus@net-b.de>
271         PR fortran/44646
272         * trans-stmt.c (struct forall_info): Add do_concurrent field.
273         (gfc_trans_forall_1): Set it for do concurrent.
274         (gfc_trans_forall_loop): Mark those as annot_expr_ivdep_kind.
276 2013-10-23  Tobias Burnus  <burnus@net-b.de>
278         PR fortran/58793
279         * interface.c (compare_parameter): Reject passing TYPE(*)
280         to CLASS(*).
282 2013-10-22  Paul Thomas  <pault@gcc.gnu.org>
284         PR fortran 57893
285         * class.c : Include target-memory.h.
286         (gfc_find_intrinsic_vtab) Build a minimal expression so that
287         gfc_element_size can be used to obtain the storage size, rather
288         that the kind value.
290 2013-10-21  Tobias Burnus  <burnus@net-b.de>
292         PR fortran/58803
293         * decl.c (match_ppc_decl): Prevent later
294         double free.
296 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
298         * trans-openmp.c: Include omp-low.h.
300 2013-10-16  Tobias Burnus  <burnus@net-b.de>
302         PR fortran/58652
303         * interface.c (compare_parameter): Accept passing CLASS(*)
304         to CLASS(*).
306 2013-10-16  Tobias Burnus  <burnus@net-b.de>
308         * intrinsic.texi (OpenMP Modules): Update to OpenMPv4.
309         Document omp_proc_bind_kind.
311 2013-10-15  Tobias Burnus  <burnus@net-b.de>
313         PR fortran/58652
314         * trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling
315         of CLASS(*) variables.
317 2013-10-14  Tobias Burnus  <burnus@net-b.de>
319         PR fortran/58658
320         * expr.c (gfc_check_vardef_context): Fix pointer diagnostic
321         for CLASS(*).
323 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
325         * trans-openmp.c (gfc_omp_clause_default_ctor,
326         gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
327         * f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
328         * types.def (DEF_FUNCTION_TYPE_8): Document.
329         (BT_FN_VOID_OMPFN_PTR_UINT,
330         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
331         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
332         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
333         (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
334         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
335         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
336         BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
337         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
338         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
339         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
341 2013-10-10  Tobias Burnus  <burnus@net-b.de>
343         PR fortran/58226
344         * options.c (gfc_get_option_string): Handle zero arg case.
346 2013-10-02  Tobias Burnus  <burnus@net-b.de>
348         PR fortran/58593
349         * trans-expr.c (gfc_conv_string_tmp): Fix obtaining
350         the byte size of a single character.
352 2013-10-01  Tobias Burnus  <burnus@net-b.de>
354         PR fortran/58579
355         * trans-expr.c (gfc_conv_string_tmp): Correctly obtain
356         the byte size of a single character.
358 2013-09-27  Janne Blomqvist  <jb@gcc.gnu.org>
360         * intrinsic.texi (DATE_AND_TIME): Fix example.
362 2013-09-25  Tobias Burnus  <burnus@net-b.de>
364         PR fortran/58436
365         * class.c (generate_finalization_wrapper): Handle CLASS(*).
367 2013-09-25  Tobias Burnus  <burnus@net-b.de>
369         PR fortran/57697
370         PR fortran/58469
371         * resolve.c (generate_component_assignments): Avoid double free
372         at runtime and freeing a still-being used expr.
374 2013-09-25  Tom Tromey  <tromey@redhat.com>
376         * Make-lang.in (fortran_OBJS): Use fortran/gfortranspec.o.
377         (gfortranspec.o): Remove.
378         (CFLAGS-fortran/gfortranspec.o): New variable.
379         (GFORTRAN_D_OBJS): Update.
380         ($(F95_PARSER_OBJS), fortran/openmp.o, GFORTRAN_TRANS_DEPS)
381         (fortran/f95-lang.o, fortran/scanner.o, fortran/convert.o)
382         (fortran/frontend-passes.o, fortran/trans.o, fortran/trans-decl.o)
383         (fortran/trans-types, fortran/trans-const.o, fortran/trans-expr.o)
384         (fortran/trans-stmt.o, fortran/trans-openmp.o, fortran/trans-io.o)
385         (fortran/trans-array.o, fortran/trans-intrinsic.o)
386         (fortran/dependency.o, fortran/trans-common.o, fortran/resolve.o)
387         (fortran/data.o, fortran/options.o, fortran/cpp.o)
388         (fortran/scanner.o, fortran/module.o): Remove.
390 2013-09-25  Tom Tromey  <tromey@redhat.com>
392         * Make-lang.in (gfortranspec.o): Don't use subshell.
394 2013-09-23  Janus Weil  <janus@gcc.gnu.org>
396         PR fortran/58355
397         * decl.c (check_extended_derived_type): Prevent segfault, modify error
398         message.
400 2013-09-20  Janus Weil  <janus@gcc.gnu.org>
402         PR fortran/58099
403         * expr.c (gfc_check_pointer_assign): Remove second call to
404         'gfc_compare_interfaces' with swapped arguments.
405         * interface.c (gfc_compare_interfaces): Symmetrize the call to
406         'check_result_characteristics' by calling it with swapped arguments.
408 2013-09-18  Tobias Burnus  <burnus@net-b.de>
410         * expr.c (gfc_check_assign_symbol): Free lvalue.ref.
412 2013-09-18  Tobias Burnus  <burnus@net-b.de>
414         PR fortran/43366
415         * primary.c (gfc_variable_attr): Also handle codimension.
416         * resolve.c (resolve_ordinary_assign): Add invalid-diagnostic for
417         polymorphic assignment.
419 2013-09-16  Tobias Burnus  <burnus@net-b.de>
421         PR fortran/58356
422         * class.c (generate_finalization_wrapper): Init proc_tree if
423         not yet resolved.
425 2013-09-16  Tobias Burnus  <burnus@net-b.de>
427         PR fortran/57697
428         * resolve.c (generate_component_assignments): Correctly handle the
429         case that the LHS is not allocated.
431 2013-09-15  Tobias Burnus  <burnus@net-b.de>
433         PR fortran/57697
434         * resolve.c (generate_component_assignments): Handle unallocated
435         LHS with defined assignment of components.
437 2013-09-12  Brooks Moses  <bmoses@google.com>
439         PR driver/42955
440         * Make-lang.in: Do not install driver binaries in $(target)/bin.
442 2013-09-09  Tobias Burnus  <burnus@net-b.de>
444         * invoke.texi (Error and Warning Options): Add hyphen.
446 2013-09-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
448         PR fortran/PR56519
449         * gfortran.h:  Declare gfc_do_concurrent_flag as extern.
450         * resolve.c:  Rename do_concurrent_flag to gfc_do_concurrent_flag
451         and make non-static.
452         (resolve_function):  Use gfc_do_concurrent_flag instead of
453         do_concurrent_flag.
454         (pure_subroutine):  Likewise.
455         (resolve_code):  Likewise.
456         (resolve_types):  Likewise.
457         * intrinsic.c (gfc_intrinsic_sub_interface):  Raise error for
458         non-pure intrinsic subroutines within DO CONCURRENT.
460 2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
462         PR fortran/52243
463         * trans-expr.c (is_runtime_conformable):  New function.
464         * gfc_trans_assignment_1:  Use it.
466 2013-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
468         PR fortran/58146
469         * array.c (gfc_ref_dimen_size):  If possible, use
470         gfc_dep_difference to calculate array refrence
471         sizes.  Fall back to integer code otherwise.
472         * dependency.c (discard_nops).  Move up.
473         Also discarde widening integer conversions.
474         (gfc_dep_compare_expr):  Use discard_nops.
476 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
478         PR fortran/57798
479         * trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
480         gfc_set_delta): Generate preliminary code before the outermost loop.
482 2013-08-23  Janus Weil  <janus@gcc.gnu.org>
484         PR fortran/57843
485         * interface.c (gfc_extend_assign): Look for type-bound assignment
486         procedures before non-typebound.
488 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
490         * trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
491         to the callers.
492         (gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
494 2013-08-22  Janus Weil  <janus@gcc.gnu.org>
496         PR fortran/58185
497         * match.c (copy_ts_from_selector_to_associate): Only build class
498         container for polymorphic selector. Some cleanup.
500 2013-08-20  Janus Weil  <janus@gcc.gnu.org>
502         PR fortran/53655
503         * trans-decl.c (generate_local_decl): Check if type has any components.
505 2013-08-19  Janus Weil  <janus@gcc.gnu.org>
507         PR fortran/46271
508         * openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
510 2013-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
512         PR fortran/56666
513         * gfortran.h (gfc_option_t):  Add warn_zerotrip.
514         * invoke.texi (-Wzerotrip):  Document option.
515         * lang.opt (Wzerotrip):  Add.
516         * options.c (gfc_init_options):  Initialize warn_zerotrip.
517         (set_Wall): Add handling of warn_zerotrip.
518         (gfc_handle_option):  Handle OPT_Wzerotrip.
519         * resolve.c (gfc_resolve_iterator): Honor
520         gfc_option.warn_zerotrip; update error message to show
521         how to suppress the warning.
523 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
525         * gfortran.h (gfc_get_code): Modified prototype.
526         * class.c (finalize_component, finalization_scalarizer,
527         finalization_get_offset, finalizer_insert_packed_call,
528         generate_finalization_wrapper, gfc_find_derived_vtab,
529         gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
530         * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
531         gfc_match_inquire): Call 'gfc_get_code' with argument.
532         * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
533         gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
534         Ditto.
535         * parse.c (new_level): Ditto.
536         (add_statement): Use XCNEW.
537         * resolve.c (resolve_entries, resolve_allocate_expr,
538         resolve_select_type, build_assignment, build_init_assign): Call
539         'gfc_get_code' with argument.
540         * st.c (gfc_get_code): Add argument 'op'.
541         * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
542         with argument.
543         * trans-stmt.c (gfc_trans_allocate): Ditto.
545 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
547         PR fortran/58058
548         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
549         string, if necessary.
551 2013-08-06  Martin Jambor  <mjambor@suse.cz>
553         PR fortran/57987
554         * trans-decl.c (gfc_generate_function_code): Never call
555         cgraph_finalize_function on nested functions.
557 2013-08-06  Janus Weil  <janus@gcc.gnu.org>
559         PR fortran/57306
560         * class.c (gfc_class_null_initializer): Rename to
561         'gfc_class_initializer'. Treat non-NULL init-exprs.
562         * gfortran.h (gfc_class_null_initializer): Update prototype.
563         * trans-decl.c (gfc_get_symbol_decl): Treat class variables.
564         * trans-expr.c (gfc_conv_initializer): Ditto.
565         (gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
567 2013-07-30  Tobias Burnus  <burnus@net-b.de>
569         PR fortran/57530
570         * symbol.c (gfc_type_compatible): A type is type compatible with
571         a class if both have the same declared type.
572         * interface.c (compare_type): Reject CLASS/TYPE even if they
573         are type compatible.
575 2013-07-30  Tobias Burnus  <burnus@net-b.de>
577         PR fortran/57530
578         * trans-expr.c (gfc_trans_class_assign): Handle CLASS array
579         functions.
580         (gfc_trans_pointer_assign): Ditto and support pointer assignment of
581         a polymorphic var to a nonpolymorphic var.
583 2013-07-22  Po Chang  <pchang9@cs.wisc.edu>
585         * match.c (gfc_match_call): Exit loop after setting i.
587         * resolve.c (resolve_variable): Exit loop after setting seen.
589         * expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
591         * trans-array.c (set_loop_bounds): Exit loop after setting
592         nonoptional_arr.
594         * trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
596 2013-07-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
598         PR fortran/58009
599         * expr.c (gfc_check_vardef_context):  Check for same values in
600         vector expression subscripts.
602 2013-07-27  Tobias Burnus  <burnus@net-b.de>
604         PR fortran/57991
605         * interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
607 2013-07-27  Janus Weil  <janus@gcc.gnu.org>
609         PR fortran/57285
610         * check.c (dim_rank_check): Re-enable this check for CLASS arrays.
612 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
614         PR fortran/57966
615         * resolve.c (resolve_typebound_function): Make sure the declared type,
616         including its type-bound procedures, is resolved before resolving the
617         actual type-bound call.
619 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
621         PR fortran/57639
622         * interface.c (compare_parameter): Check for class_ok.
623         * simplify.c (gfc_simplify_same_type_as): Ditto.
625 2013-07-23   OndÅ™ej Bílka  <neleai@seznam.cz>
627         * decl.c: Fix comment typos.
628         * interface.c: Likewise.
629         * trans-array.c: Likewise.
630         * trans.c: Likewise.
632 2013-07-22  Tobias Burnus  <burnus@net-b.de>
634         PR fortran/57906
635         PR fortran/52052
636         * class.c (gfc_build_class_symbol): Set coarray_comp.
637         * trans-array.c (structure_alloc_comps): For coarrays,
638         directly use the data pointer address.
640 2013-07-22  Chang  <pchang9@cs.wisc.edu>
642         * trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
643         setting PACKED_PARTIAL.
645 2013-07-22  Tobias Burnus  <burnus@net-b.de>
647         * trans-array.c (gfc_array_allocate): Correct memory-leak patch.
649 2013-07-22  Tobias Burnus  <burnus@net-b.de>
651         * trans-array.c (gfc_array_allocate,
652         gfc_trans_deferred_array): Plug memory leak.
654 2013-07-21  OndÅ™ej Bílka  <neleai@seznam.cz>
656         * trans-decl.c: Fix comment typos.
657         * trans-expr.c: Ditto.
659 2013-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
661         PR fortran/56937
662         * dependency.c (gfc_dep_resolver):  Treat identical
663         array subscripts as identical; don't unconditionally
664         return a dependency if an array subscript is found.
666 2013-07-21  Tobias Burnus  <burnus@net-b.de>
668         PR fortran/35862
669         * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
670         GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
672 2013-07-21  Tobias Burnus  <burnus@net-b.de>
674         PR fortran/57894
675         * check.c (min_max_args): Add keyword= check.
677 2013-07-17  Mikael Morin  <mikael@gcc.gnu.org>
678             Tobias Burnus  <burnus@net-b.de>
680         PR fortran/57895
681         * match.c (gfc_match_name): Ensure that the error
682         message regarding -fdollar-ok gets printed.
683         (gfc_match_common): Avoid multiple freeing.
685 2013-07-16  Tobias Burnus  <burnus@net-b.de>
687         PR fortran/57912
688         * trans-expr.c (gfc_trans_scalar_assign): Correct if
689         condition for caf realloc.
691 2013-07-15  Tobias Burnus  <burnus@net-b.de>
693         * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
694         gfc_reassign_alloc_comp_caf): New prototype.
695         * trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
696         and COPY_ALLOC_COMP_CAF.
697         (structure_alloc_comps): Handle it.
698         (gfc_reassign_alloc_comp_caf,
699         gfc_deallocate_alloc_comp_no_caf): New function.
700         (gfc_alloc_allocatable_for_assignment): Call it.
701         * trans-expr.c (gfc_trans_scalar_assign,
702         gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
703         * parse.c (parse_derived): Correctly set coarray_comp.
704         * resolve.c (resolve_symbol): Improve error wording.
706 2013-07-15  Tobias Burnus  <burnus@net-b.de>
708         PR fortran/37336
709         * trans.c (gfc_add_comp_finalizer_call): New function.
710         * trans.h (gfc_add_comp_finalizer_call): New prototype.
711         * trans-array.c (structure_alloc_comps): Call it.
713 2013-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
714             Tobias Burnus  <burnus@gcc.gnu.org>
716         PR fortran/52669
717         * trans-decl.c (gfc_finish_var_decl):  Move setting of
718         PRIVATE for a module variable if the module has a private
719         default or -fmodule-private is given to...
720         (gfc_create_module_variable): here. Optionally
721         warn about private module variable which is not used.
723 2013-07-08  Tobias Burnus  <burnus@net-b.de>
725         PR fortran/57834
726         * check.c (is_c_interoperable): Add special case for c_f_pointer.
727         (explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
728         call.
730 2013-07-08  Tobias Burnus  <burnus@net-b.de>
732         PR fortran/50554
733         * io.c (match_inquire_element): Add missing do-var check.
735 2013-07-08  Tobias Burnus  <burnus@net-b.de>
737         PR fortran/57785
738         * simplify.c (compute_dot_product): Complex conjugate for
739         dot_product.
740         (gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
742 2013-07-08  Tobias Burnus  <burnus@net-b.de>
744         PR fortran/57469
745         * trans-decl.c (generate_local_decl): Don't warn that
746         a dummy is unused, when it is in a namelist.
748 2013-07-01  Dominique d'Humieres  <dominiq@lps.ens.fr>
750         PR fortran/54788
751         * array.c (spec_size): handle the case as==NULL.
753 2013-06-26  Tobias Burnus  <burnus@net-b.de>
755         PR fortran/29800
756         * trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
757         diagnostic message.
758         * trans-array.c (gfc_conv_array_ref): Update prototype.
759         * trans-expr.c (gfc_conv_variable): Update call.
761 2013-06-24  Steven G. Kargl  <sgk@troutmask.apl.washington.edu>
762             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
763             Dominique d'Humieres  <dominiq@lps.ens.fr>
765         PR fortran/52413
766         * simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
768 2013-06-21  Tobias Burnus  <burnus@net-b.de>
770         PR fortran/37336
771         * trans-array.c (gfc_trans_deferred_array): Call the
772         finalizer for nonallocatable local variables.
773         * trans-decl.c (gfc_get_symbol_decl): Add local
774         finalizable vars to the deferred list.
775         (gfc_trans_deferred_vars): Call gfc_trans_deferred_array
776         for those.
778 2013-06-21  Tobias Burnus  <burnus@net-b.de>
780         * trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
781         at least one byte.
782         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
784 2013-06-20  Tobias Burnus  <burnus@net-b.de>
786         * resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
788 2013-06-17  Tobias Burnus  <burnus@net-b.de>
790         * gfortran.h (gfc_option_t): Add fpe_summary.
791         * gfortran.texi (_gfortran_set_options): Update.
792         * invoke.texi (-ffpe-summary): Add doc.
793         * lang.opt (ffpe-summary): Add flag.
794         * options.c (gfc_init_options, gfc_handle_option): Handle it.
795         (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
796         also handle fpe_summary.
797         * trans-decl.c (create_main_function): Update
798         _gfortran_set_options call.
800 2013-06-15  Mikael Morin  <mikael@gcc.gnu.org>
802         PR fortran/49074
803         PR fortran/56136
804         * dependency.c (gfc_check_argument_var_dependency): Return 0 in the
805         array constructor case.
807 2013-06-14  Tobias Burnus  <burnus@net-b.de>
809         PR fortran/57508
810         * resolve.c (get_temp_from_expr): Don't copy function
811         result attributes to temporary.
813 2013-06-14  Tobias Burnus  <burnus@net-b.de>
815         PR fortran/57596
816         * trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
817         for nullify and deferred-strings' length variable.
819 2013-06-13  Mikael Morin  <mikael@gcc.gnu.org>
821         PR fortran/49074
822         * trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
823         Handle NULL array references.
824         (gfc_conv_procedure_call): Remove code handling NULL array references.
826 2013-06-11  Tobias Burnus  <burnus@net-b.de>
828         PR fortran/57535
829         * trans-array.c (build_class_array_ref): Fix ICE for
830         function result variables.
832 2013-06-08  Tobias Burnus  <burnus@net-b.de>
834         PR fortran/37336
835         * trans-decl.c (init_intent_out_dt): Call finalizer
836         when appropriate.
838 2013-06-08  Tobias Burnus  <burnus@net-b.de>
840         PR fortran/57553
841         * simplify.c (gfc_simplify_storage_size): Handle literal
842         strings.
843         * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
844         Add missing fold_convert.
846 2013-06-07  Tobias Burnus  <burnus@net-b.de>
848         PR fortran/57549
849         * array.c (gfc_match_array_constructor): Call
850         gfc_match_type_spec instead of gfc_match_decl_type_spec.
851         * match.c (gfc_match_type_spec): Renamed from match_type_spec.
852         (gfc_match_type_is, gfc_match_allocate): Update call.
853         * match.h (gfc_match_type_spec): Add prototype.
855 2013-06-07  Tobias Burnus  <burnus@net-b.de>
857         PR fortran/57556
858         * trans.c (gfc_build_final_call): Init block before use.
860 2013-06-06  Tobias Burnus  <burnus@net-b.de>
862         PR fortran/57542
863         * trans.c (gfc_build_final_call): Add se.pre to the block
864         and modify the assert.
866 2013-06-04  Tobias Burnus  <burnus@net-b.de>
868         PR fortran/37336
869         * trans.h (gfc_build_final_call): Remove prototype.
870         (gfc_add_finalizer_call): Add prototype.
871         * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
872         (structure_alloc_comps): Update caller.
873         (gfc_trans_deferred_array): Call finalizer.
874         * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
875         * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
876         variables of the main program.
877         * trans-expr.c (gfc_conv_procedure_call): Support finalization.
878         * trans-openmp.c (gfc_omp_clause_dtor,
879         gfc_trans_omp_array_reduction): Update calls.
880         * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
881         of alloc components.
882         * trans.c (gfc_add_finalizer_call): New function.
883         (gfc_deallocate_with_status,
884         gfc_deallocate_scalar_with_status): Call it
885         (gfc_build_final_call): Fix handling of scalar coarrays,
886         move up in the file and make static.
888 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
889             Mikael Morin  <mikael@gcc.gnu.org>
891         * error.c (get_terminal_width): Only limit the width if we're
892         outputting to a terminal. Try to determine width via ioctl.
894 2013-06-01  Tobias Burnus  <burnus@net-b.de>
896         * decl.c (add_global_entry): Take locus.
897         (gfc_match_entry): Update call.
898         (gfc_match_end): Better error location.
899         * parse.c (parse_block_data, parse_module, add_global_procedure,
900         add_global_program): Use better locus data.
902 2013-05-31  Tobias Burnus  <burnus@net-b.de>
904         PR fortran/57456
905         * trans-array.c (gfc_array_init_size): Use passed type spec,
906         when available.
907         (gfc_array_allocate): Pass typespec on.
908         * trans-array.h (gfc_array_allocate): Update prototype.
909         * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
911 2013-05-31  Janus Weil  <janus@gcc.gnu.org>
913         PR fortran/54190
914         PR fortran/57217
915         * gfortran.h (gfc_terminal_width): Remove prototype.
916         * error.c (get_terminal_width): Moved here from misc.c. Renamed.
917         Try to determine terminal width from environment variable.
918         * interface.c (compare_type, compare_rank): New functions. Fix assumed
919         type/rank handling.
920         (compare_type_rank, check_dummy_characteristics,
921         check_result_characteristics, gfc_compare_interfaces): Use them.
922         (symbol_rank): Slightly modified and moved.
923         * misc.c (gfc_terminal_width): Moved to error.c.
925 2013-05-30  Janus Weil  <janus@gcc.gnu.org>
927         PR fortran/54189
928         * resolve.c (check_assumed_size_reference): Check for e->ref.
930 2013-05-30  Tobias Burnus  <burnus@net-b.de>
932         PR fortran/57458
933         * interface.c (compare_parameter): Update C1239/C1240 constraint
934         check for assumed-rank/TS29113.
936 2013-05-29  Tobias Burnus  <burnus@net-b.de>
938         PR fortran/37336
939         * class.c (finalize_component): Fix coarray array refs.
940         (generate_finalization_wrapper): Only gfc_convert_type_warn
941         when the kind value is different.
942         (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
943         (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
944         generation.
945         * module.c (MOD_VERSION): Bump.
946         (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
947         * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
948         void pointer.
949         (gfc_array_allocate, structure_alloc_comps): Don't nullify for
950         BT_CLASS allocations.
951         * trans-stmt.c (gfc_trans_allocate): Ditto.
953 2013-05-29  Tobias Burnus  <burnus@net-b.de>
955         PR fortran/37336
956         * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
958 2013-05-28  Tobias Burnus  <burnus@net-b.de>
960         * trans-expr.c (gfc_conv_procedure_call): Deallocate
961         polymorphic arrays for allocatable intent(out) dummies.
962         (gfc_reset_vptr): New function, moved from trans-stmt.c
963         and extended.
964         * trans-stmt.c (reset_vptr): Remove.
965         (gfc_trans_deallocate): Update calls.
966         * trans.h (gfc_reset_vptr): New prototype.
968 2013-05-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
970         PR fortran/57435
971         * module.c (check_for_ambiguous): Avoid null pointer deref.
973 2013-05-28  Janus Weil  <janus@gcc.gnu.org>
974             Tobias Burnus  <burnus@net-b.de>
976         PR fortran/57217
977         * interface.c (check_dummy_characteristics): Symmetrize type check.
979 2013-05-27  Bud Davis  <jmdavis@link.com>
981         PR fortran/50405
982         * resolve.c (resolve_formal_arglist): Detect error when an argument
983         has the same name as the function.
985 2013-05-27  Tobias Burnus  <burnus@net-b.de>
987         * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
988         * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
990 2013-05-22  Tobias Burnus  <burnus@net-b.de>
992         * resolve.c (get_temp_from_expr): Change mangling to
993         start always with a _.
995 2013-05-22  Tobias Burnus  <burnus@net-b.de>
997         * resolve.c (get_temp_from_expr): Fix temp var mangling.
999 2013-05-22  Tobias Burnus  <burnus@net-b.de>
1001         PR fortran/57364
1002         * resolve.c (get_temp_from_expr): Commit created sym.
1004 2013-05-22  Tobias Burnus  <burnus@net-b.de>
1006         PR fortran/57338
1007         * intrinsic.c (do_check): Move some checks to ...
1008         (do_ts29113_check): ... this new function.
1009         (check_specific, gfc_intrinsic_sub_interface): Call it.
1011 2013-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
1013         * intrinsic.texi (RANDOM_SEED): Improve example.
1015 2013-05-21  Tobias Burnus  <burnus@net-b.de>
1017         PR fortran/57035
1018         * intrinsic.c (do_check): Add constraint check for
1019         NO_ARG_CHECK, assumed rank and assumed type.
1020         * gfortran.texi (NO_ARG_CHECK): Minor wording change,
1021         allow PRESENT intrinsic.
1023 2013-05-20  Tobias Burnus  <burnus@net-b.de>
1025         PR fortran/48858
1026         PR fortran/55465
1027         * decl.c (add_global_entry): Add sym_name.
1028         * parse.c (add_global_procedure): Ditto.
1029         * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
1030         a procedure.
1031         (resolve_global_procedure): Handle gsym->ns pointing to a module.
1032         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
1034 2013-05-20  Tobias Burnus  <burnus@net-b.de>
1036         PR fortran/48858
1037         * decl.c (add_global_entry): Use nonbinding name
1038         only for F2003 or if no binding label exists.
1039         (gfc_match_entry): Update calls.
1040         * parse.c (gfc_global_used): Improve error message.
1041         (add_global_procedure): Use nonbinding name
1042         only for F2003 or if no binding label exists.
1043         (gfc_parse_file): Update call.
1044         * resolve.c (resolve_global_procedure): Use binding
1045         name when available.
1046         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
1048 2013-05-20  Tobias Burnus  <burnus@net-b.de>
1050         PR fortran/48858
1051         * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
1052         * match.c (gfc_match_common): Don't add commons to gsym.
1053         * resolve.c (resolve_common_blocks): Add to gsym and
1054         add checks.
1055         (resolve_bind_c_comms): Remove.
1056         (resolve_types): Remove call to the latter.
1057         * trans-common.c (gfc_common_ns): Remove static var.
1058         (gfc_map_of_all_commons): Add static var.
1059         (build_common_decl): Correctly handle binding label.
1061 2013-05-16  Jason Merrill  <jason@redhat.com>
1063         * Make-lang.in (f951$(exeext)): Use link mutex.
1065 2013-05-05  Tobias Burnus  <burnus@net-b.de>
1067         * resolve.c (conformable_arrays): Avoid segfault
1068         when ar.start[i] == NULL.
1070 2013-05-05  Tobias Burnus  <burnus@net-b.de>
1072         PR fortran/57141
1073         * decl.c (gfc_match_null): Permit use-associated
1074         NULL intrinsic.
1076 2013-05-04  Tobias Burnus  <burnus@net-b.de>
1078         * decl.c (gfc_verify_c_interop_param): Permit allocatable
1079         and pointer with -std=f2008ts.
1081 2013-05-02  Tobias Burnus  <burnus@net-b.de>
1083         PR fortran/57142
1084         * simplify.c (gfc_simplify_size): Renamed from
1085         simplify_size; fix kind=8 handling.
1086         (gfc_simplify_size): New function.
1087         (gfc_simplify_shape): Add range check.
1088         * resolve.c (resolve_function): Fix handling
1089         for ISYM_SIZE.
1091 2013-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1093         * frontend-passes.c (optimize_power):  Fix typo
1094         in comment.
1096 2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1098         PR fortran/57071
1099         * frontend-passes.c (optimize_power):  Simplify
1100         1**k to 1.
1102 2013-04-28  Tobias Burnus  <burnus@net-b.de>
1104         PR fortran/57114
1105         * intrinsic.texi (RANK): Correct syntax description and
1106         expected result.
1108 2013-04-28  Tobias Burnus  <burnus@net-b.de>
1110         PR fortran/57093
1111         * trans-types.c (gfc_get_element_type): Fix handling
1112         of scalar coarrays of type character.
1113         * intrinsic.texi (PACK): Add missing ")".
1115 2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1117         PR fortran/57071
1118         * frontend-passes (optimize_power):  New function.
1119         (optimize_op):  Use it.
1121 2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
1123         PR bootstrap/57028
1124         * Make-lang.in (f951): Link in ZLIB.
1125         (CFLAGS-fortran/module.o): Add zlib include directory.
1127 2013-04-22  Janus Weil  <janus@gcc.gnu.org>
1129         PR fortran/53685
1130         PR fortran/57022
1131         * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
1132         expressions.
1133         * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
1134         of special treatment for EXPR_ARRAY.
1135         * target-memory.h (gfc_element_size): New prototype.
1136         * target-memory.c (size_array): Remove.
1137         (gfc_element_size): New function.
1138         (gfc_target_expr_size): Modified to always return the full size of the
1139         expression.
1141 2013-04-20  Tobias Burnus  <burnus@net-b.de>
1143         PR fortran/56907
1144         * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
1145         passed to C_LOC
1147 2013-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1148             Mikael Morin  <mikael@gcc.gnu.org>
1150         PR fortran/56872
1151         * frontend-passes.c (copy_walk_reduction_arg): Change argument type
1152         to gfc_constructor.  If it has an iterator, wrap the copy of its
1153         expression in an array constructor with that iterator.  Don't special
1154         case function expressions.
1155         (callback_reduction): Update caller.  Don't return early if there is
1156         an iterator.
1158 2013-04-18  Tobias Burnus  <burnus@net-b.de>
1160         * expr.c (find_array_element): Don't copy expr.
1161         * data.c (create_character_initializer): Free expr.
1162         * frontend-passes.c (combine_array_constructor): Ditto.
1163         * match.c (match_typebound_call, gfc_match_select_type): Ditto.
1164         * resolve.c (resolve_typebound_function): Free gfc_ref.
1166 2013-04-18  Tobias Burnus  <burnus@net-b.de>
1168         PR fortran/56994
1169         * invoke.texi (NEAREST): S argument is not optional.
1171 2013-04-17  Janus Weil  <janus@gcc.gnu.org>
1173         PR fortran/56814
1174         * interface.c (check_result_characteristics): Get result from interface
1175         if present.
1177 2013-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1179         PR fortran/40958
1180         * scanner.h: New file.
1181         * Make-lang.in: Dependencies on scanner.h.
1182         * scanner.c (gfc_directorylist): Move to scanner.h.
1183         * module.c: Don't include md5.h, include scanner.h and zlib.h.
1184         (MOD_VERSION): Add comment about backwards compatibility.
1185         (module_fp): Change type to gzFile.
1186         (ctx): Remove.
1187         (gzopen_included_file_1): New function.
1188         (gzopen_included_file): New function.
1189         (gzopen_intrinsic_module): New function.
1190         (write_char): Use gzputc.
1191         (read_crc32_from_module_file): New function.
1192         (read_md5_from_module_file): Remove.
1193         (gfc_dump_module): Use gz* functions instead of stdio, check gzip
1194         crc32 instead of md5.
1195         (read_module_to_tmpbuf): Use gz* functions instead of stdio.
1196         (gfc_use_module): Use gz* functions.
1198 2013-04-16  Tobias Burnus  <burnus@net-b.de>
1200         PR fortran/39505
1201         * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
1202         * gfortran.h (ext_attr_id_t): Ditto.
1203         * gfortran.texi (GNU Fortran Compiler Directives):
1204         Document it.
1205         * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
1206         (compare_parameter): Ditto - and regard as unlimited polymorphic.
1207         * resolve.c (resolve_symbol, resolve_variable): Add same constraint
1208         checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
1209         (gfc_explicit_interface_required): Require explicit interface
1210         for NO_ARG_CHECK.
1212 2013-04-16  Janus Weil  <janus@gcc.gnu.org>
1214         PR fortran/56968
1215         * expr.c (gfc_check_pointer_assign): Handle generic functions returning
1216         procedure pointers.
1218 2013-04-16  Tobias Burnus  <burnus@net-b.de>
1220         PR fortran/56969
1221         * intrinsic.c (gfc_intrinsic_func_interface): Don't set
1222         module name to "(intrinsic)" for intrinsics from intrinsic
1223         modules.
1225 2013-04-15  Tobias Burnus  <burnus@net-b.de>
1227         * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
1229 2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1231         PR fortran/56919
1232         * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
1234 2013-04-15  Tobias Burnus  <burnus@net-b.de>
1236         * class.c (gfc_find_intrinsic_vtab): Removed unused var.
1237         * dependency.c (check_data_pointer_types): Fix check.
1238         * frontend-passes.c (check_data_pointer_types): Remove
1239         superfluous statement.
1240         * parse.c (decode_omp_directive): Add missing break.
1241         * resolve.c (resolve_typebound_subroutine: Free variable.
1242         * trans-decl.c (create_function_arglist): Correct condition.
1244 2013-04-14  Mikael Morin  <mikael@gcc.gnu.org>
1246         PR fortran/56816
1247         * match.c (gfc_match_select_type): Add syntax error. Move namespace
1248         allocation and cleanup...
1249         * parse.c (decode_statement): ... here.
1251 2013-04-13  Janus Weil  <janus@gcc.gnu.org>
1253         PR fortran/55959
1254         * expr.c (gfc_simplify_expr): Branch is not unreachable.
1256 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
1258         PR fortran/56266
1259         * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
1261 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1263         PR fortran/56929
1264         * trans-array.c (duplicate_allocatable): Fix handling
1265         of scalar coarrays.
1267 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
1269         PR fortran/56261
1270         * gfortran.h (gfc_explicit_interface_required): New prototype.
1271         * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
1272         required in a proc-ptr assignment.
1273         * interface.c (check_result_characteristics): Extra check.
1274         * resolve.c (gfc_explicit_interface_required): New function.
1275         (resolve_global_procedure): Use new function
1276         'gfc_explicit_interface_required'. Do a full interface check.
1278 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1280         PR fortran/56845
1281         * trans-decl.c (gfc_trans_deferred_vars): Restrict
1282         static CLASS init to SAVE and -fno-automatic.
1284 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1286         PR fortran/56845
1287         * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
1288         allocatable static BT_CLASS.
1289         * trans-expr.c (gfc_class_set_static_fields): New function.
1290         * trans.h (gfc_class_set_static_fields): New prototype.
1292 2013-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
1294         * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
1295         * arith.c: Replace gfc_try with bool type.
1296         * array.c: Likewise.
1297         * check.c: Likewise.
1298         * class.c: Likewise.
1299         * cpp.c: Likewise.
1300         * cpp.h: Likewise.
1301         * data.c: Likewise.
1302         * data.h: Likewise.
1303         * decl.c: Likewise.
1304         * error.c: Likewise.
1305         * expr.c: Likewise.
1306         * f95-lang.c: Likewise.
1307         * interface.c: Likewise.
1308         * intrinsic.c: Likewise.
1309         * intrinsic.h: Likewise.
1310         * io.c: Likewise.
1311         * match.c: Likewise.
1312         * match.h: Likewise.
1313         * module.c: Likewise.
1314         * openmp.c: Likewise.
1315         * parse.c: Likewise.
1316         * parse.h: Likewise.
1317         * primary.c: Likewise.
1318         * resolve.c: Likewise.
1319         * scanner.c: Likewise.
1320         * simplify.c: Likewise.
1321         * symbol.c: Likewise.
1322         * trans-intrinsic.c: Likewise.
1323         * trans-openmp.c: Likewise.
1324         * trans-stmt.c: Likewise.
1325         * trans-types.c: Likewise.
1327 2013-04-09  Tobias Burnus  <burnus@net-b.de>
1329         * gfortran.texi (KIND Type Parameters,
1330         Internal representation of LOGICAL variables): Add crossrefs.
1331         (Intrinsic Types): Mention issues with _Bool interop.
1332         (Naming and argument-passing conventions): New section.
1334 2013-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1336         PR fortran/56782
1337         * frontend-passes.c (callback_reduction):  Don't do
1338         any simplification if there is only a single element
1339         which has an iterator.
1341 2013-04-07  Tobias Burnus  <burnus@net-b.de>
1343         PR fortran/56849
1344         * iresolve.c (gfc_resolve_reshape): Set shape also
1345         with order=.
1347 2013-04-04  Janus Weil  <janus@gcc.gnu.org>
1349         PR fortran/40881
1350         * match.c (gfc_match_return): Remove standard notification.
1351         * primary.c (gfc_match_actual_arglist): Add standard notification.
1353 2013-04-04  Tobias Burnus  <burnus@net-b.de>
1355         PR fortran/50269
1356         * gcc/fortran/check.c (is_c_interoperable,
1357         gfc_check_c_loc): Correct c_loc array checking
1358         for Fortran 2003 and Fortran 2008.
1360 2013-04-03  Janus Weil  <janus@gcc.gnu.org>
1362         PR fortran/56284
1363         PR fortran/40881
1364         * decl.c (gfc_match_formal_arglist): Warn about alternate-return
1365         arguments.
1366         * interface.c (check_dummy_characteristics): Return if symbols are NULL.
1368 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
1370         PR fortran/56500
1371         * symbol.c (gfc_set_default_type): Build class container for
1372         IMPLICIT CLASS.
1374 2013-03-31  Tobias Burnus  <burnus@net-b.de>
1376         * class.c (finalization_scalarizer, finalizer_insert_packed_call,
1377         generate_finalization_wrapper): Avoid segfault with absent SIZE=
1378         argument to TRANSFER and use correct result kind for SIZE.
1379         * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
1380         nonmodules.
1381         * trans.c (gfc_build_final_call): Handle coarrays.
1383 2013-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1385         * trans-expr.c (build_memcmp_call):  New function.
1386         (gfc_build_compare_string):  If the strings
1387         compared have constant and equal lengths and
1388         the strings are kind=1, or, for kind=4 strings,
1389         the test is for (in)equality, use memcmp().
1391 2013-03-29  Tobias Burnus  <burnus@net-b.de>
1393         PR fortran/35203
1394         * trans-decl.c (create_function_arglist): Pass hidden argument
1395         for passed-by-value optional+value dummies.
1396         * trans-expr.c (gfc_conv_expr_present,
1397         gfc_conv_procedure_call): Handle those.
1399 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1401         PR fortran/45159
1402         * gfortran.h (gfc_dep_difference):  Add prototype.
1403         * dependency.c (discard_nops):  New function.
1404         (gfc_dep_difference):  New function.
1405         (check_section_vs_section):  Use gfc_dep_difference
1406         to calculate the difference of starting indices.
1407         * trans-expr.c (gfc_conv_substring):  Use
1408         gfc_dep_difference to calculate the length of
1409         substrings where possible.
1411 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1413         PR fortran/55806
1414         * frontend-passes.c (optimize_code):  Keep track of
1415         current code to make code insertion possible.
1416         (combine_array_constructor):  New function.
1417         (optimize_op):  Call it.
1419 2013-03-27  Tobias Burnus  <burnus@net-b.de>
1421         PR fortran/56650
1422         PR fortran/36437
1423         * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
1424         gfc_check_storage_size): Update checks.
1425         * intrinsic.texi (SIZEOF): Correct class.
1426         * intrinsic.h (gfc_simplify_sizeof,
1427         gfc_simplify_storage_size): New prototypes.
1428         * intrinsic.c (add_functions): Use them.
1429         * simplify.c (gfc_simplify_sizeof,
1430         gfc_simplify_storage_size): New functions.
1432 2013-03-27  Janne Blomqvist  <jb@gcc.gnu.org>
1434         PR fortran/25708
1435         * module.c (module_locus): Use long for position.
1436         (module_content): New variable.
1437         (module_pos): Likewise.
1438         (prev_character): Remove.
1439         (bad_module): Free data instead of closing mod file.
1440         (set_module_locus): Use module_pos.
1441         (get_module_locus): Likewise.
1442         (module_char): use buffer rather than stdio file.
1443         (module_unget_char): Likewise.
1444         (read_module_to_tmpbuf): New function.
1445         (gfc_use_module): Call read_module_to_tmpbuf.
1447 2013-03-26  Tobias Burnus  <burnus@net-b.de>
1449         PR fortran/56649
1450         * simplify.c (gfc_simplify_merge): Simplify more.
1452 2013-03-25  Tobias Burnus  <burnus@net-b.de>
1454         PR fortran/38536
1455         PR fortran/38813
1456         PR fortran/38894
1457         PR fortran/39288
1458         PR fortran/40963
1459         PR fortran/45824
1460         PR fortran/47023
1461         PR fortran/47034
1462         PR fortran/49023
1463         PR fortran/50269
1464         PR fortran/50612
1465         PR fortran/52426
1466         PR fortran/54263
1467         PR fortran/55343
1468         PR fortran/55444
1469         PR fortran/55574
1470         PR fortran/56079
1471         PR fortran/56378
1472         * check.c (gfc_var_strlen): Properly handle 0-sized string.
1473         (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
1474         (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
1475         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
1476         functions.
1477         * expr.c (check_inquiry): Add c_sizeof, compiler_version and
1478         compiler_options.
1479         (gfc_check_pointer_assign): Refine function result check.
1480         gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
1481         GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
1482         GFC_ISYM_C_LOC.
1483         (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
1484         NAMED_SUBROUTINE.
1485         (generate_isocbinding_symbol): Update prototype.
1486         (get_iso_c_sym): Remove.
1487         (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
1488         * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
1489         (gfc_intrinsic_sub_interface): Use it.
1490         (add_functions, add_subroutines): Add missing C-binding intrinsics.
1491         (gfc_intrinsic_func_interface): Add special case for c_loc.
1492         gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
1493         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
1494         * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
1495         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
1496         gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
1497         * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
1498         functions.
1499         * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
1500         NAMED_FUNCTION.
1501         * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
1502         * module.c (create_intrinsic_function): Support subroutines and
1503         derived-type results.
1504         (use_iso_fortran_env_module): Update calls.
1505         (import_iso_c_binding_module): Ditto; update calls to
1506         generate_isocbinding_symbol.
1507         * resolve.c (find_arglists): Skip for intrinsic symbols.
1508         (gfc_resolve_intrinsic): Find intrinsic subs via id.
1509         (is_scalar_expr_ptr, gfc_iso_c_func_interface,
1510         set_name_and_label, gfc_iso_c_sub_interface): Remove.
1511         (resolve_function, resolve_specific_s0): Remove calls to those.
1512         (resolve_structure_cons): Fix handling.
1513         * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
1514         generation.
1515         (gen_cptr_param, gen_fptr_param, gen_shape_param,
1516         build_formal_args, get_iso_c_sym): Remove.
1517         (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
1518         (generate_isocbinding_symbol): Support hidden symbols and
1519         using c_ptr/c_funptr symtrees for nullptr defs.
1520         * target-memory.c (gfc_target_encode_expr): Fix handling
1521         of c_ptr/c_funptr.
1522         * trans-expr.c (conv_isocbinding_procedure): Remove.
1523         (gfc_conv_procedure_call): Remove call to it.
1524         (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
1525         of c_ptr/c_funptr.
1526         * trans-intrinsic.c (conv_isocbinding_function,
1527         conv_isocbinding_subroutine): New.
1528         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
1529         Call them.
1530         * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
1531         * trans-types.c (gfc_typenode_for_spec,
1532         gfc_get_derived_type): Ditto.
1533         (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
1535 2013-03-18  Tobias Burnus  <burnus@net-b.de>
1537         * gfortran.h (gfc_option_t): Remove flag_whole_file.
1538         * invoke.texi (-fno-whole-file): Remove.
1539         * lang.opt (fwhole-file): Change to Ignore.
1540         * options.c (gfc_init_options, gfc_post_options,
1541         gfc_handle_option): Remove !flag_whole_file handling
1542         * parse.c (resolve_all_program_units, translate_all_program_units,
1543         gfc_parse_file): Ditto.
1544         * resolve.c (resolve_global_procedure): Ditto.
1545         * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1546         gfc_create_module_variable): Ditto.
1547         * trans-types.c (gfc_get_derived_type): Ditto.
1549 2013-03-15  Tobias Burnus  <burnus@net-b.de>
1551         PR fortran/56615
1552         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
1553         if they are not simply contiguous.
1555 2013-03-11  Tobias Burnus  <burnus@net-b.de>
1557         * gfortran.texi (STRUCTURE and RECORD): State more clearly how
1558         to convert them into derived types.
1560 2013-03-10  Paul Thomas  <pault@gcc.gnu.org>
1562         PR fortran/56575
1563         * expr.c (gfc_default_initializer): Check that a class declared
1564         type has any components.
1565         * resolve.c (resolve_fl_derived0): On failing the test for C437
1566         set the type to BT_UNKNOWN to prevent repeat error messages.
1568 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1570         PR fortran/56477
1571         * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
1573 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1575         PR fortran/54730
1576         * array.c (gfc_match_array_constructor): Set a checkpoint before
1577         matching a typespec.  Drop it on success, restore it otherwise.
1579 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1581         PR fortran/54730
1582         * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
1583         (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
1584         gfc_restore_last_undo_checkpoint): New prototypes.
1585         * symbol.c (default_undo_chgset_var): Update initialization.
1586         (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
1587         free_undo_change_set_data, pop_undo_change_set,
1588         gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
1589         New functions.
1590         (save_symbol_data): Handle multiple change sets.  Make sure old_symbol
1591         field's previous value is not overwritten.  Clear gfc_new field.
1592         (restore_old_symbol): Restore previous old_symbol field.
1593         (gfc_restore_last_undo_checkpoint): New function, using body renamed
1594         from gfc_undo_symbols.  Restore the previous change set as current one.
1595         (gfc_undo_symbols): New body.
1596         (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
1597         Call enforce_single_undo_checkpoint.
1598         (gfc_symbol_done_2): Ditto.  Free change set data.
1600 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1602         * symbol.c (restore_old_symbol): Fix thinko.
1604 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1606         * symbol.c (gfc_undo_symbols): Move code...
1607         (restore_old_symbol): ... here as a new function.
1609 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1611         * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
1612         * gfortran.h: Include vec.h.
1613         (gfc_undo_change_set): New struct.
1614         * symbol.c (tentative_tbp): Remove struct.
1615         (changed_syms, tentative_tbp_list): Remove variables.
1616         (default_undo_chgset_var, latest_undo_chgset): New variables.
1617         (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1618         gfc_commit_symbols, gfc_commit_symbol,
1619         gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
1620         Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
1622 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1624         PR fortran/56491
1625         * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
1626         * symbol.c (free_components): Free proc-pointer components.
1628 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1630         * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
1631         * trans-io.c (build_dt): Ditto.
1633 2013-02-24  Joseph Myers  <joseph@codesourcery.com>
1635         * resolve.c (generate_component_assignments): Don't use UTF-8
1636         ligature in diagnostic.
1638 2013-02-21  Janus Weil  <janus@gcc.gnu.org>
1640         PR fortran/56385
1641         * trans-array.c (structure_alloc_comps): Handle procedure-pointer
1642         components with allocatable result.
1644 2013-02-21  Tobias Burnus  <burnus@net-b.de>
1646         PR fortran/56416
1647         * gfortran.texi (Part II: Language Reference, Extensions,
1648         Non-Fortran Main Program): Sort @menu to match actual section order.
1649         * intrinsic.texi (Intrinsic Procedures): Ditto.
1650         (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
1652 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1653             Mikael Morin  <mikael@gcc.gnu.org>
1655         PR fortran/56318
1656         * simplify.c (gfc_simplify_matmul): Fix result shape
1657         and matmul result.
1659 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1661         PR fortran/53818
1662         * resolve.c (apply_default_init_local): Don't create an
1663         initializer for a result variable.
1665 2013-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1667         PR fortran/56224
1668         * gfortran.h (gfc_add_include_path):  Add boolean argument
1669         for warn.
1670         * scanner.c (gfc_add_include_path):  Pass along warn argument
1671         to add_path_to_list.
1672         * options.c (gfc_post_options):  Add true warn argument to
1673         gfc_add_include_path.
1674         (gfc_handle_module_path_options):  Likewise.
1675         (gfc_handle_option): Also gfc_add_include_path for intrinsic
1676         modules, without warning.
1678 2013-02-14  Paul Thomas  <pault@gcc.gnu.org>
1679             Tobias Burnus  <burnus@net-b.de>
1681         PR testsuite/56138
1682         * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
1683         results for functions without extra result variable.
1685         Revert:
1686         2013-01-30  Tobias Burnus  <burnus@net-b.de>
1688         PR fortran/56138
1689         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1690         results for functions without extra result variable.
1692 2013-02-12  Janus Weil  <janus@gcc.gnu.org>
1694         PR fortran/46952
1695         * resolve.c (resolve_call): Do not check deferred procedures for
1696         recursiveness.
1698 2013-02-09  Paul Thomas  <pault@gcc.gnu.org>
1700         PR fortran/55362
1701         * check.c (array_check): It is an error if a procedure is
1702         passed.
1704 2013-02-08  Mikael Morin  <mikael@gcc.gnu.org>
1706         PR fortran/54107
1707         * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
1708         to error_mark_node on entry.  Detect recursive types.  Build a variadic
1709         procedure type if the type is recursive.  Restore the initial
1710         backend_decl.
1712 2013-02-07  Tobias Burnus  <burnus@net-b.de>
1714         PR fortran/54339
1715         * gfortran.texi (Standards): Mention TS29113.
1716         (Varying Length Character): Mention deferred-length
1717         strings.
1718         (Fortran 2003 Status): Add unlimited polymorphic.
1719         (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
1720         (C Interop): Update the section about TS29113.
1722 2013-02-06  Paul Thomas  <pault@gcc.gnu.org>
1724         PR fortran/55789
1725         * trans-array.c (trans_array_constructor): Remove condition
1726         'dynamic' = true if the loop ubound is a VAR_DECL.
1728 2013-02-04  Paul Thomas  <pault@gcc.gnu.org>
1730         PR fortran/56008
1731         PR fortran/47517
1732         * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
1733         the lhs descriptor before it is modified for reallocation. Use
1734         it to deallocate allocatable components in the reallocation
1735         block.  Nullify allocatable components for newly (re)allocated
1736         arrays.
1738 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1740         PR fortran/54195
1741         * resolve.c (resolve_typebound_procedures): Recurse through
1742         resolve_symbol.
1744 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1746         PR fortran/54107
1747         PR fortran/54195
1748         * gfortran.h (struct gfc_symbol): New field 'resolved'.
1749         * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
1750         (resolve_symbol): Skip duplicate calls.  Don't check the current
1751         namespace.
1753 2013-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1755         PR fortran/50627
1756         PR fortran/56054
1757         * decl.c (gfc_match_end):  Remove half-ready namespace
1758         from parent if the end of a block is missing.
1759         * parse.c (parse_module):  Do not put namespace into
1760         gsymbol on error.
1762 2013-01-30  Tobias Burnus  <burnus@net-b.de>
1764         PR fortran/56138
1765         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1766         results for functions without extra result variable.
1768 2013-01-29  Janus Weil  <janus@gcc.gnu.org>
1769             Mikael Morin  <mikael@gcc.gnu.org>
1771         PR fortran/54107
1772         * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
1773         (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
1774         gfc_expr_replace_comp): Delete.
1775         (gfc_sym_get_dummy_args): New prototype.
1776         * dependency.c (gfc_check_fncall_dependency): Use
1777         'gfc_sym_get_dummy_args'.
1778         * expr.c (gfc_is_constant_expr): Ditto.
1779         (replace_symbol,gfc_expr_replace_symbols,replace_comp,
1780         gfc_expr_replace_comp): Deleted.
1781         * frontend-passes.c (doloop_code,do_function): Use
1782         'gfc_sym_get_dummy_args'.
1783         * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
1784         gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
1785         gfc_check_typebound_override): Ditto.
1786         * module.c (MOD_VERSION): Bump module version.
1787         (mio_component): Do not read/write 'formal' and 'formal_ns'.
1788         * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
1789         copy formal args, but just keep a pointer to the interface.
1790         (resolve_function,resolve_call,resolve_typebound_generic_call,
1791         resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
1792         resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
1793         resolve_typebound_procedure,check_uop_procedure): Use
1794         'gfc_sym_get_dummy_args'.
1795         * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
1796         (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
1797         (gfc_sym_get_dummy_args): New function.
1798         * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
1799         Use 'gfc_sym_get_dummy_args'.
1800         * trans-decl.c (build_function_decl,create_function_arglist,
1801         build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
1802         add_argument_checking): Ditto.
1803         * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
1804         gfc_conv_statement_function): Ditto.
1805         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1806         * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
1808 2013-01-28  Tobias Burnus  <burnus@net-b.de>
1809             Mikael Morin  <mikael@gcc.gnu.org>
1811         PR fortran/53537
1812         * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
1813         interface block.
1814         (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
1815         * decl.c (gfc_match_data_decl): Ditto.
1816         (variable_decl): Remove undeclared type error.
1817         (gfc_match_import): Use renamed instead of original name.
1819 2013-01-27  Paul Thomas  <pault@gcc.gnu.org>
1821         PR fortran/55984
1822         PR fortran/56047
1823         * gfortran.h : Add associate_var to symbol_attr.
1824         * resolve.c (resolve_assoc_var): Set associate_var attribute.
1825         If the target class_ok is set, set it for the associate
1826         variable.
1827         * check.c (allocatable_check): Associate variables should not
1828         have the allocatable attribute even if their symbols do.
1829         * class.c (gfc_build_class_symbol): Symbols with associate_var
1830         set will always have a good class container.
1832 2013-01-23  Janus Weil  <janus@gcc.gnu.org>
1834         PR fortran/56081
1835         * resolve.c (resolve_select): Add argument 'select_type', reject
1836         non-scalar expressions.
1837         (resolve_select_type,resolve_code): Pass new argument to
1838         'resolve_select'.
1840 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
1842         PR fortran/56052
1843         * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1844         and DECL_IGNORED_P on select_type_temporary and don't set
1845         DECL_BY_REFERENCE.
1847 2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1849         PR fortran/55919
1850         * scanner.c (add_path_to_list): Copy path to temporary and strip
1851         trailing directory separators before calling stat().
1853 2013-01-17  Richard Biener  <rguenther@suse.de>
1855         * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1856         dependent on sign of step, avoids repeated evaluation of
1857         step sign test.  Avoid undefined overflow issues by using unsigned
1858         arithmetic.
1860 2013-01-16  Janus Weil  <janus@gcc.gnu.org>
1862         PR fortran/55983
1863         * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1864         asserting it.
1866 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1867             Tobias Burnus  <burnus@net-b.de>
1869         PR driver/55884
1870         * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1871         (fintrinsic-modules-path=): New.
1872         * options.c (gfc_handle_option, gfc_get_option_string,
1873         gfc_get_option_string): Handle the latter.
1875 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1877         PR fortran/52865
1878         * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1879         and use value of countm1 before the decrement in the condition.
1881 2013-01-15  Paul Thomas  <pault@gcc.gnu.org>
1883         PR fortran/54286
1884         * expr.c (gfc_check_pointer_assign): Check for presence of
1885         's2' before using it.
1887 2013-01-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1889         PR fortran/55806
1890         * frontend-passes.c (optimize_reduction):  New function,
1891         including prototype.
1892         (callback_reduction):  Likewise.
1893         (gfc_run_passes):  Also run optimize_reduction.
1894         (copy_walk_reduction_arg):  New function.
1895         (dummy_code_callback):  New function.
1897 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
1899         PR fortran/55935
1900         * trans-expr.c (gfc_conv_structure): Call
1901         unshare_expr_without_location on the ctor elements.
1903 2013-01-13  Paul Thomas  <pault@gcc.gnu.org>
1905         PR fortran/54286
1906         * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1907         and rvalue interfaces are presented to gfc_compare_interfaces.
1908         Simplify references to interface names by using the symbols
1909         themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1910         changed to overcome the asymmetry of this function. Do not
1911         repeat the check for the presence of s1 and s2.
1913 2013-01-12  Janus Weil  <janus@gcc.gnu.org>
1915         PR fortran/55072
1916         * trans-array.c (gfc_conv_array_parameter): No packing was done for
1917         full arrays of derived type.
1919 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1921         PR fortran/55868
1922         * class.c (get_unique_type_string): Change $tar to STAR and
1923         replace sprintf by strcpy where there is no formatting.
1924         * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1926 2013-01-09  Mikael Morin  <mikael@gcc.gnu.org>
1928         PR fortran/47203
1929         * module.c (check_for_ambiguous): Get the current program unit using
1930         gfc_current_ns.
1932 2013-01-09  Tobias Burnus  <burnus@net-b.de>
1934         PR fortran/55758
1935         * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1936         in BIND(C) procedures with -std=f*.
1938 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1940         PR fortran/55618
1941         * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1942         character function arguments to elemental procedures in
1943         scalarization loops.
1945 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1947         PR fortran/55763
1948         * gfortran.h (gfc_check_assign_symbol): Update prototype.
1949         * decl.c (add_init_expr_to_sym, do_parm): Update call.
1950         * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1951         improve error location; support components.
1952         (gfc_check_pointer_assign): Handle component assignments.
1953         * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1954         (resolve_values): Update call.
1955         (resolve_structure_cons): Avoid double diagnostic.
1957 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1958             Thomas Koenig  <tkoenig@gcc.gnu.org>
1960         PR fortran/55852
1961         * expr.c (gfc_build_intrinsic_call): Avoid clashes
1962         with user's procedures.
1963         * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1964         * simplify.c (gfc_simplify_size): Update call.
1965         * class.c (finalization_scalarizer, finalization_get_offset,
1966         finalizer_insert_packed_call, generate_finalization_wrapper):
1967         Clean up by using gfc_build_intrinsic_call.
1969 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1971         PR fortran/55763
1972         * resolve.c (resolve_select_type): Reject intrinsic types for
1973         a non-unlimited-polymorphic selector.
1975 2013-01-06  Paul Thomas  <pault@gcc.gnu.org>
1977         PR fortran/53876
1978         PR fortran/54990
1979         PR fortran/54992
1980         * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1981         to see if it is GFC_CLASS_TYPE_P.
1982         * trans-expr.c (gfc_get_vptr_from_expr): The same.
1983         (gfc_conv_class_to_class): If the types are not the same,
1984         cast parmese->expr to the type of ctree.
1985         * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1986         CLASS components must be set.
1988 2013-01-06  Mikael Morin  <mikael@gcc.gnu.org>
1990         PR fortran/42769
1991         PR fortran/45836
1992         PR fortran/45900
1993         * module.c (read_module): Don't reuse local symtree if the associated
1994         symbol isn't exactly the one wanted.  Don't reuse local symtree if it is
1995         ambiguous.
1996         * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1997         lookup the symtree.
1999 2013-01-05  Steven G. Kargl  <kargl@gcc.gnu.org>
2000             Mikael Morin  <mikael@gcc.gnu.org>
2002         PR fortran/55827
2003         * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
2004         e->symtree == NULL.
2005         * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
2007 2013-01-05  Tobias Burnus  <burnus@net-b.de>
2009         * class.c (finalize_component): Used passed offset expr.
2010         (finalization_get_offset): New static function.
2011         (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
2012         to handle noncontiguous arrays.
2014 2013-01-04  Tobias Burnus  <burnus@net-b.de>
2016         * trans.c (gfc_build_final_call): New function.
2017         * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
2018         New function prototypes.
2019         * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
2020         conv_scalar_to_descriptor, removed static attribute.
2021         (gfc_conv_procedure_call): Honor renaming.
2023 2013-01-04  Tobias Burnus  <burnus@net-b.de>
2025         * intrinsic.c (add_functions): New internal intrinsic
2026         function GFC_PREFIX ("stride").
2027         * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
2028         * intrinsic.h (gfc_resolve_stride): New prototypes.
2029         * iresolve.c (gfc_resolve_stride): New function.
2030         * trans-intrinsic.c (conv_intrinsic_stride): New static
2031         function.
2032         (gfc_conv_intrinsic_function): Use it.
2034 2013-01-04  Tobias Burnus  <burnus@net-b.de>
2036         * class.c (gfc_find_intrinsic_vtab): Add _final
2037         component.
2038         * decl.c (gfc_match_null): Remove superfluous
2039         variadic argument to gfc_match.
2041 2013-01-04  Paul Thomas  <pault@gcc.gnu.org>
2043         PR fortran/55172
2044         * match.c (copy_ts_from_selector_to_associate): Remove call to
2045         gfc_resolve_expr and replace it with explicit setting of the
2046         array reference type.
2047         * resolve.c (resolve_select_type): It is an error if the
2048         selector is coindexed.
2050 2013-01-04  Tobias Burnus  <burnus@net-b.de>
2052         PR fortran/55763
2053         * decl.c (gfc_match_null): Parse and reject MOLD.
2055 2013-01-04  Tobias Burnus  <burnus@net-b.de>
2057         PR fortran/55854
2058         PR fortran/55763
2059         * class.c (gfc_class_null_initializer): Fix finding the vtab.
2060         (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
2062 2013-01-03  Janus Weil  <janus@gcc.gnu.org>
2064         PR fortran/55855
2065         * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
2066         of rvalue. Correct hyphenation in error message.
2068 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
2070         * gfortranspec.c (lang_specific_driver): Update copyright notice
2071         dates.
2073 Copyright (C) 2013 Free Software Foundation, Inc.
2075 Copying and distribution of this file, with or without modification,
2076 are permitted in any medium without royalty provided the copyright
2077 notice and this notice are preserved.