2013-12-01 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
bloba92561cf5653447c9fc3ba347beaa1617e99ba0d
1 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/57354
4         * trans-array.c (gfc_conv_resolve_dependencies): For other than
5         SS_SECTION, do a dependency check if the lhs is liable to be
6         reallocated.
8 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
10         PR fortran/58410
11         * trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
12         use the array bounds of an unallocated array but set its size
13         to zero instead.
15 2013-12-01  Paul Thomas  <pault@gcc.gnu.org>
17         PR fortran/34547
18         * resolve.c (resolve_transfer): EXPR_NULL is always in an
19         invalid context in a transfer statement.
21 2013-11-28  Sergey Ostanevich  <sergos.gnu@gmail.com>
23         * lang.opt (Wopenmp-simd): New.
25 2013-11-25  Janus Weil  <janus@gcc.gnu.org>
27         PR fortran/59143
28         * interface.c (get_expr_storage_size): Handle array-valued type-bound
29         procedures.
31 2013-11-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33         * scanner.c (gfc_open_intrinsic_module): Remove function.
34         * gfortran.h (gfc_open_intrinsic_module): Remove prototype.
36 2013-11-23  Janus Weil  <janus@gcc.gnu.org>
38         PR fortran/59228
39         * interface.c (compare_parameter): Check for array spec.
41 2013-11-22  Andrew MacLeod  <amacleod@redhat.com>
43         * trans.c: Add required include files from gimple.h.
44         * trans-expr.c: Likewise
45         * trans-openmp.c: Likewise
47 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
49         * trans.c (trans_runtime_error_vararg): Remove use of input_line
50         macro.
52 2013-11-17  Andrew MacLeod  <amacleod@redhat.com>
54         * fortran/trans-intrinsic.c: Include tree-nested.h.
56 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
58         * trans-expr.c: Include only gimplify.h and gimple.h as needed.
59         * trans-openmp.c: Likewise.
61 2013-11-14  Diego Novillo  <dnovillo@google.com>
63         * decl.c: Include stringpool.h.
64         * iresolve.c: Include stringpool.h.
65         * match.c: Include stringpool.h.
66         * module.c: Include stringpool.h.
67         * target-memory.c: Include stor-layout.h.
68         * trans-common.c: Include stringpool.h.
69         Include stor-layout.h.
70         Include varasm.h.
71         * trans-const.c: Include stor-layout.h.
72         * trans-decl.c: Include stringpool.h.
73         Include stor-layout.h.
74         Include varasm.h.
75         Include attribs.h.
76         * trans-expr.c: Include stringpool.h.
77         * trans-intrinsic.c: Include stringpool.h.
78         Include tree-nested.h.
79         Include stor-layout.h.
80         * trans-io.c: Include stringpool.h.
81         Include stor-layout.h.
82         * trans-openmp.c: Include stringpool.h.
83         * trans-stmt.c: Include stringpool.h.
84         * trans-types.c: Include stor-layout.h.
85         Include stringpool.h.
86         * trans.c: Include stringpool.h.
88 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
90         * f95-lang.c: Don't include gimple.h.
91         * trans-array.c: Include gimple-expr.h instead of gimple.h.
92         * trans.c: Likewise.
93         * trans-decl.c: Likewise.
94         * trans-expr.c: Include gimplify.h.
95         * trans-openmp.c: Likewise.
97 2013-11-07  Janus Weil  <janus@gcc.gnu.org>
99         PR fortran/58471
100         * primary.c (gfc_expr_attr): Check for result symbol.
102 2013-11-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
104         * gfortran.texi: Fix typo.
106 2013-11-05  Tobias Burnus  <burnus@net-b.de>
108         * lang.opt (-Wdate-time): New option
109         * cpp.c (gfc_cpp_option_data): Add warn_date_time.
110         (gfc_cpp_init_options, gfc_cpp_handle_option,
111         gfc_cpp_post_options): Handle it and pass on to libcpp.
113 2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
115         PR fortran/58989
116         * check.c (gfc_check_reshape): ensure that shape is a constant
117         expression.
119 2013-11-05  Tobias Burnus  <burnus@net-b.de>
121         * lang.opt (fopenmp-simd): New option.
122         * gfortran.h (gfc_option_t): Add gfc_flag_openmp_simd.
123         * options.c (gfc_handle_option): Handle it.
125 2013-11-04  Ian Lance Taylor  <iant@google.com>
127         * f95-lang.c (ATTR_LEAF_LIST): Define.
129 2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
131         PR fortran/58771
132         * trans-io.c (transfer_expr): If the backend_decl for a derived
133         type is missing, build it with gfc_typenode_for_spec.
135 2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
137         PR fortran/57445
138         * trans-expr.c (gfc_conv_class_to_class): Remove spurious
139         assert.
141 2013-10-29  Tobias Burnus  <burnus@net-b.de>
143         PR fortran/44350
144         * parse.c (parse_spec): Add C1116 constraint
145         check for BLOCK DATA.
147 2013-10-29  Paul Thomas  <pault@gcc.gnu.org>
149         PR fortran/58793
150         * trans-types.c (gfc_typenode_for_spec): Add typenode for
151         BT_HOLLERITH. Note that the length is incorrect but unusable.
153         PR fortran/58858
154         * target-memory.c (gfc_element_size): Add element sizes for
155         BT_VOID and BT_ASSUMED, using gfc_typenode_for_spec.
157 2013-10-24  Tobias Burnus  <burnus@net-b.de>
159         PR fortran/44646
160         * trans-stmt.c (struct forall_info): Add do_concurrent field.
161         (gfc_trans_forall_1): Set it for do concurrent.
162         (gfc_trans_forall_loop): Mark those as annot_expr_ivdep_kind.
164 2013-10-23  Tobias Burnus  <burnus@net-b.de>
166         PR fortran/58793
167         * interface.c (compare_parameter): Reject passing TYPE(*)
168         to CLASS(*).
170 2013-10-22  Paul Thomas  <pault@gcc.gnu.org>
172         PR fortran 57893
173         * class.c : Include target-memory.h.
174         (gfc_find_intrinsic_vtab) Build a minimal expression so that
175         gfc_element_size can be used to obtain the storage size, rather
176         that the kind value.
178 2013-10-21  Tobias Burnus  <burnus@net-b.de>
180         PR fortran/58803
181         * decl.c (match_ppc_decl): Prevent later
182         double free.
184 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
186         * trans-openmp.c: Include omp-low.h.
188 2013-10-16  Tobias Burnus  <burnus@net-b.de>
190         PR fortran/58652
191         * interface.c (compare_parameter): Accept passing CLASS(*)
192         to CLASS(*).
194 2013-10-16  Tobias Burnus  <burnus@net-b.de>
196         * intrinsic.texi (OpenMP Modules): Update to OpenMPv4.
197         Document omp_proc_bind_kind.
199 2013-10-15  Tobias Burnus  <burnus@net-b.de>
201         PR fortran/58652
202         * trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling
203         of CLASS(*) variables.
205 2013-10-14  Tobias Burnus  <burnus@net-b.de>
207         PR fortran/58658
208         * expr.c (gfc_check_vardef_context): Fix pointer diagnostic
209         for CLASS(*).
211 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
213         * trans-openmp.c (gfc_omp_clause_default_ctor,
214         gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
215         * f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
216         * types.def (DEF_FUNCTION_TYPE_8): Document.
217         (BT_FN_VOID_OMPFN_PTR_UINT,
218         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
219         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
220         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
221         (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
222         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
223         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
224         BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
225         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
226         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
227         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
229 2013-10-10  Tobias Burnus  <burnus@net-b.de>
231         PR fortran/58226
232         * options.c (gfc_get_option_string): Handle zero arg case.
234 2013-10-02  Tobias Burnus  <burnus@net-b.de>
236         PR fortran/58593
237         * trans-expr.c (gfc_conv_string_tmp): Fix obtaining
238         the byte size of a single character.
240 2013-10-01  Tobias Burnus  <burnus@net-b.de>
242         PR fortran/58579
243         * trans-expr.c (gfc_conv_string_tmp): Correctly obtain
244         the byte size of a single character.
246 2013-09-27  Janne Blomqvist  <jb@gcc.gnu.org>
248         * intrinsic.texi (DATE_AND_TIME): Fix example.
250 2013-09-25  Tobias Burnus  <burnus@net-b.de>
252         PR fortran/58436
253         * class.c (generate_finalization_wrapper): Handle CLASS(*).
255 2013-09-25  Tobias Burnus  <burnus@net-b.de>
257         PR fortran/57697
258         PR fortran/58469
259         * resolve.c (generate_component_assignments): Avoid double free
260         at runtime and freeing a still-being used expr.
262 2013-09-25  Tom Tromey  <tromey@redhat.com>
264         * Make-lang.in (fortran_OBJS): Use fortran/gfortranspec.o.
265         (gfortranspec.o): Remove.
266         (CFLAGS-fortran/gfortranspec.o): New variable.
267         (GFORTRAN_D_OBJS): Update.
268         ($(F95_PARSER_OBJS), fortran/openmp.o, GFORTRAN_TRANS_DEPS)
269         (fortran/f95-lang.o, fortran/scanner.o, fortran/convert.o)
270         (fortran/frontend-passes.o, fortran/trans.o, fortran/trans-decl.o)
271         (fortran/trans-types, fortran/trans-const.o, fortran/trans-expr.o)
272         (fortran/trans-stmt.o, fortran/trans-openmp.o, fortran/trans-io.o)
273         (fortran/trans-array.o, fortran/trans-intrinsic.o)
274         (fortran/dependency.o, fortran/trans-common.o, fortran/resolve.o)
275         (fortran/data.o, fortran/options.o, fortran/cpp.o)
276         (fortran/scanner.o, fortran/module.o): Remove.
278 2013-09-25  Tom Tromey  <tromey@redhat.com>
280         * Make-lang.in (gfortranspec.o): Don't use subshell.
282 2013-09-23  Janus Weil  <janus@gcc.gnu.org>
284         PR fortran/58355
285         * decl.c (check_extended_derived_type): Prevent segfault, modify error
286         message.
288 2013-09-20  Janus Weil  <janus@gcc.gnu.org>
290         PR fortran/58099
291         * expr.c (gfc_check_pointer_assign): Remove second call to
292         'gfc_compare_interfaces' with swapped arguments.
293         * interface.c (gfc_compare_interfaces): Symmetrize the call to
294         'check_result_characteristics' by calling it with swapped arguments.
296 2013-09-18  Tobias Burnus  <burnus@net-b.de>
298         * expr.c (gfc_check_assign_symbol): Free lvalue.ref.
300 2013-09-18  Tobias Burnus  <burnus@net-b.de>
302         PR fortran/43366
303         * primary.c (gfc_variable_attr): Also handle codimension.
304         * resolve.c (resolve_ordinary_assign): Add invalid-diagnostic for
305         polymorphic assignment.
307 2013-09-16  Tobias Burnus  <burnus@net-b.de>
309         PR fortran/58356
310         * class.c (generate_finalization_wrapper): Init proc_tree if
311         not yet resolved.
313 2013-09-16  Tobias Burnus  <burnus@net-b.de>
315         PR fortran/57697
316         * resolve.c (generate_component_assignments): Correctly handle the
317         case that the LHS is not allocated.
319 2013-09-15  Tobias Burnus  <burnus@net-b.de>
321         PR fortran/57697
322         * resolve.c (generate_component_assignments): Handle unallocated
323         LHS with defined assignment of components.
325 2013-09-12  Brooks Moses  <bmoses@google.com>
327         PR driver/42955
328         * Make-lang.in: Do not install driver binaries in $(target)/bin.
330 2013-09-09  Tobias Burnus  <burnus@net-b.de>
332         * invoke.texi (Error and Warning Options): Add hyphen.
334 2013-09-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
336         PR fortran/PR56519
337         * gfortran.h:  Declare gfc_do_concurrent_flag as extern.
338         * resolve.c:  Rename do_concurrent_flag to gfc_do_concurrent_flag
339         and make non-static.
340         (resolve_function):  Use gfc_do_concurrent_flag instead of
341         do_concurrent_flag.
342         (pure_subroutine):  Likewise.
343         (resolve_code):  Likewise.
344         (resolve_types):  Likewise.
345         * intrinsic.c (gfc_intrinsic_sub_interface):  Raise error for
346         non-pure intrinsic subroutines within DO CONCURRENT.
348 2013-08-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
350         PR fortran/52243
351         * trans-expr.c (is_runtime_conformable):  New function.
352         * gfc_trans_assignment_1:  Use it.
354 2013-08-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
356         PR fortran/58146
357         * array.c (gfc_ref_dimen_size):  If possible, use
358         gfc_dep_difference to calculate array refrence
359         sizes.  Fall back to integer code otherwise.
360         * dependency.c (discard_nops).  Move up.
361         Also discarde widening integer conversions.
362         (gfc_dep_compare_expr):  Use discard_nops.
364 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
366         PR fortran/57798
367         * trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
368         gfc_set_delta): Generate preliminary code before the outermost loop.
370 2013-08-23  Janus Weil  <janus@gcc.gnu.org>
372         PR fortran/57843
373         * interface.c (gfc_extend_assign): Look for type-bound assignment
374         procedures before non-typebound.
376 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
378         * trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
379         to the callers.
380         (gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
382 2013-08-22  Janus Weil  <janus@gcc.gnu.org>
384         PR fortran/58185
385         * match.c (copy_ts_from_selector_to_associate): Only build class
386         container for polymorphic selector. Some cleanup.
388 2013-08-20  Janus Weil  <janus@gcc.gnu.org>
390         PR fortran/53655
391         * trans-decl.c (generate_local_decl): Check if type has any components.
393 2013-08-19  Janus Weil  <janus@gcc.gnu.org>
395         PR fortran/46271
396         * openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
398 2013-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
400         PR fortran/56666
401         * gfortran.h (gfc_option_t):  Add warn_zerotrip.
402         * invoke.texi (-Wzerotrip):  Document option.
403         * lang.opt (Wzerotrip):  Add.
404         * options.c (gfc_init_options):  Initialize warn_zerotrip.
405         (set_Wall): Add handling of warn_zerotrip.
406         (gfc_handle_option):  Handle OPT_Wzerotrip.
407         * resolve.c (gfc_resolve_iterator): Honor
408         gfc_option.warn_zerotrip; update error message to show
409         how to suppress the warning.
411 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
413         * gfortran.h (gfc_get_code): Modified prototype.
414         * class.c (finalize_component, finalization_scalarizer,
415         finalization_get_offset, finalizer_insert_packed_call,
416         generate_finalization_wrapper, gfc_find_derived_vtab,
417         gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
418         * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
419         gfc_match_inquire): Call 'gfc_get_code' with argument.
420         * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
421         gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
422         Ditto.
423         * parse.c (new_level): Ditto.
424         (add_statement): Use XCNEW.
425         * resolve.c (resolve_entries, resolve_allocate_expr,
426         resolve_select_type, build_assignment, build_init_assign): Call
427         'gfc_get_code' with argument.
428         * st.c (gfc_get_code): Add argument 'op'.
429         * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
430         with argument.
431         * trans-stmt.c (gfc_trans_allocate): Ditto.
433 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
435         PR fortran/58058
436         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
437         string, if necessary.
439 2013-08-06  Martin Jambor  <mjambor@suse.cz>
441         PR fortran/57987
442         * trans-decl.c (gfc_generate_function_code): Never call
443         cgraph_finalize_function on nested functions.
445 2013-08-06  Janus Weil  <janus@gcc.gnu.org>
447         PR fortran/57306
448         * class.c (gfc_class_null_initializer): Rename to
449         'gfc_class_initializer'. Treat non-NULL init-exprs.
450         * gfortran.h (gfc_class_null_initializer): Update prototype.
451         * trans-decl.c (gfc_get_symbol_decl): Treat class variables.
452         * trans-expr.c (gfc_conv_initializer): Ditto.
453         (gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
455 2013-07-30  Tobias Burnus  <burnus@net-b.de>
457         PR fortran/57530
458         * symbol.c (gfc_type_compatible): A type is type compatible with
459         a class if both have the same declared type.
460         * interface.c (compare_type): Reject CLASS/TYPE even if they
461         are type compatible.
463 2013-07-30  Tobias Burnus  <burnus@net-b.de>
465         PR fortran/57530
466         * trans-expr.c (gfc_trans_class_assign): Handle CLASS array
467         functions.
468         (gfc_trans_pointer_assign): Ditto and support pointer assignment of
469         a polymorphic var to a nonpolymorphic var.
471 2013-07-22  Po Chang  <pchang9@cs.wisc.edu>
473         * match.c (gfc_match_call): Exit loop after setting i.
475         * resolve.c (resolve_variable): Exit loop after setting seen.
477         * expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
479         * trans-array.c (set_loop_bounds): Exit loop after setting
480         nonoptional_arr.
482         * trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
484 2013-07-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
486         PR fortran/58009
487         * expr.c (gfc_check_vardef_context):  Check for same values in
488         vector expression subscripts.
490 2013-07-27  Tobias Burnus  <burnus@net-b.de>
492         PR fortran/57991
493         * interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
495 2013-07-27  Janus Weil  <janus@gcc.gnu.org>
497         PR fortran/57285
498         * check.c (dim_rank_check): Re-enable this check for CLASS arrays.
500 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
502         PR fortran/57966
503         * resolve.c (resolve_typebound_function): Make sure the declared type,
504         including its type-bound procedures, is resolved before resolving the
505         actual type-bound call.
507 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
509         PR fortran/57639
510         * interface.c (compare_parameter): Check for class_ok.
511         * simplify.c (gfc_simplify_same_type_as): Ditto.
513 2013-07-23   OndÅ™ej Bílka  <neleai@seznam.cz>
515         * decl.c: Fix comment typos.
516         * interface.c: Likewise.
517         * trans-array.c: Likewise.
518         * trans.c: Likewise.
520 2013-07-22  Tobias Burnus  <burnus@net-b.de>
522         PR fortran/57906
523         PR fortran/52052
524         * class.c (gfc_build_class_symbol): Set coarray_comp.
525         * trans-array.c (structure_alloc_comps): For coarrays,
526         directly use the data pointer address.
528 2013-07-22  Chang  <pchang9@cs.wisc.edu>
530         * trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
531         setting PACKED_PARTIAL.
533 2013-07-22  Tobias Burnus  <burnus@net-b.de>
535         * trans-array.c (gfc_array_allocate): Correct memory-leak patch.
537 2013-07-22  Tobias Burnus  <burnus@net-b.de>
539         * trans-array.c (gfc_array_allocate,
540         gfc_trans_deferred_array): Plug memory leak.
542 2013-07-21  OndÅ™ej Bílka  <neleai@seznam.cz>
544         * trans-decl.c: Fix comment typos.
545         * trans-expr.c: Ditto.
547 2013-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
549         PR fortran/56937
550         * dependency.c (gfc_dep_resolver):  Treat identical
551         array subscripts as identical; don't unconditionally
552         return a dependency if an array subscript is found.
554 2013-07-21  Tobias Burnus  <burnus@net-b.de>
556         PR fortran/35862
557         * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
558         GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
560 2013-07-21  Tobias Burnus  <burnus@net-b.de>
562         PR fortran/57894
563         * check.c (min_max_args): Add keyword= check.
565 2013-07-17  Mikael Morin  <mikael@gcc.gnu.org>
566             Tobias Burnus  <burnus@net-b.de>
568         PR fortran/57895
569         * match.c (gfc_match_name): Ensure that the error
570         message regarding -fdollar-ok gets printed.
571         (gfc_match_common): Avoid multiple freeing.
573 2013-07-16  Tobias Burnus  <burnus@net-b.de>
575         PR fortran/57912
576         * trans-expr.c (gfc_trans_scalar_assign): Correct if
577         condition for caf realloc.
579 2013-07-15  Tobias Burnus  <burnus@net-b.de>
581         * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
582         gfc_reassign_alloc_comp_caf): New prototype.
583         * trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
584         and COPY_ALLOC_COMP_CAF.
585         (structure_alloc_comps): Handle it.
586         (gfc_reassign_alloc_comp_caf,
587         gfc_deallocate_alloc_comp_no_caf): New function.
588         (gfc_alloc_allocatable_for_assignment): Call it.
589         * trans-expr.c (gfc_trans_scalar_assign,
590         gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
591         * parse.c (parse_derived): Correctly set coarray_comp.
592         * resolve.c (resolve_symbol): Improve error wording.
594 2013-07-15  Tobias Burnus  <burnus@net-b.de>
596         PR fortran/37336
597         * trans.c (gfc_add_comp_finalizer_call): New function.
598         * trans.h (gfc_add_comp_finalizer_call): New prototype.
599         * trans-array.c (structure_alloc_comps): Call it.
601 2013-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
602             Tobias Burnus  <burnus@gcc.gnu.org>
604         PR fortran/52669
605         * trans-decl.c (gfc_finish_var_decl):  Move setting of
606         PRIVATE for a module variable if the module has a private
607         default or -fmodule-private is given to...
608         (gfc_create_module_variable): here. Optionally
609         warn about private module variable which is not used.
611 2013-07-08  Tobias Burnus  <burnus@net-b.de>
613         PR fortran/57834
614         * check.c (is_c_interoperable): Add special case for c_f_pointer.
615         (explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
616         call.
618 2013-07-08  Tobias Burnus  <burnus@net-b.de>
620         PR fortran/50554
621         * io.c (match_inquire_element): Add missing do-var check.
623 2013-07-08  Tobias Burnus  <burnus@net-b.de>
625         PR fortran/57785
626         * simplify.c (compute_dot_product): Complex conjugate for
627         dot_product.
628         (gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
630 2013-07-08  Tobias Burnus  <burnus@net-b.de>
632         PR fortran/57469
633         * trans-decl.c (generate_local_decl): Don't warn that
634         a dummy is unused, when it is in a namelist.
636 2013-07-01  Dominique d'Humieres  <dominiq@lps.ens.fr>
638         PR fortran/54788
639         * array.c (spec_size): handle the case as==NULL.
641 2013-06-26  Tobias Burnus  <burnus@net-b.de>
643         PR fortran/29800
644         * trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
645         diagnostic message.
646         * trans-array.c (gfc_conv_array_ref): Update prototype.
647         * trans-expr.c (gfc_conv_variable): Update call.
649 2013-06-24  Steven G. Kargl  <sgk@troutmask.apl.washington.edu>
650             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
651             Dominique d'Humieres  <dominiq@lps.ens.fr>
653         PR fortran/52413
654         * simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
656 2013-06-21  Tobias Burnus  <burnus@net-b.de>
658         PR fortran/37336
659         * trans-array.c (gfc_trans_deferred_array): Call the
660         finalizer for nonallocatable local variables.
661         * trans-decl.c (gfc_get_symbol_decl): Add local
662         finalizable vars to the deferred list.
663         (gfc_trans_deferred_vars): Call gfc_trans_deferred_array
664         for those.
666 2013-06-21  Tobias Burnus  <burnus@net-b.de>
668         * trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
669         at least one byte.
670         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
672 2013-06-20  Tobias Burnus  <burnus@net-b.de>
674         * resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
676 2013-06-17  Tobias Burnus  <burnus@net-b.de>
678         * gfortran.h (gfc_option_t): Add fpe_summary.
679         * gfortran.texi (_gfortran_set_options): Update.
680         * invoke.texi (-ffpe-summary): Add doc.
681         * lang.opt (ffpe-summary): Add flag.
682         * options.c (gfc_init_options, gfc_handle_option): Handle it.
683         (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
684         also handle fpe_summary.
685         * trans-decl.c (create_main_function): Update
686         _gfortran_set_options call.
688 2013-06-15  Mikael Morin  <mikael@gcc.gnu.org>
690         PR fortran/49074
691         PR fortran/56136
692         * dependency.c (gfc_check_argument_var_dependency): Return 0 in the
693         array constructor case.
695 2013-06-14  Tobias Burnus  <burnus@net-b.de>
697         PR fortran/57508
698         * resolve.c (get_temp_from_expr): Don't copy function
699         result attributes to temporary.
701 2013-06-14  Tobias Burnus  <burnus@net-b.de>
703         PR fortran/57596
704         * trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
705         for nullify and deferred-strings' length variable.
707 2013-06-13  Mikael Morin  <mikael@gcc.gnu.org>
709         PR fortran/49074
710         * trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
711         Handle NULL array references.
712         (gfc_conv_procedure_call): Remove code handling NULL array references.
714 2013-06-11  Tobias Burnus  <burnus@net-b.de>
716         PR fortran/57535
717         * trans-array.c (build_class_array_ref): Fix ICE for
718         function result variables.
720 2013-06-08  Tobias Burnus  <burnus@net-b.de>
722         PR fortran/37336
723         * trans-decl.c (init_intent_out_dt): Call finalizer
724         when appropriate.
726 2013-06-08  Tobias Burnus  <burnus@net-b.de>
728         PR fortran/57553
729         * simplify.c (gfc_simplify_storage_size): Handle literal
730         strings.
731         * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
732         Add missing fold_convert.
734 2013-06-07  Tobias Burnus  <burnus@net-b.de>
736         PR fortran/57549
737         * array.c (gfc_match_array_constructor): Call
738         gfc_match_type_spec instead of gfc_match_decl_type_spec.
739         * match.c (gfc_match_type_spec): Renamed from match_type_spec.
740         (gfc_match_type_is, gfc_match_allocate): Update call.
741         * match.h (gfc_match_type_spec): Add prototype.
743 2013-06-07  Tobias Burnus  <burnus@net-b.de>
745         PR fortran/57556
746         * trans.c (gfc_build_final_call): Init block before use.
748 2013-06-06  Tobias Burnus  <burnus@net-b.de>
750         PR fortran/57542
751         * trans.c (gfc_build_final_call): Add se.pre to the block
752         and modify the assert.
754 2013-06-04  Tobias Burnus  <burnus@net-b.de>
756         PR fortran/37336
757         * trans.h (gfc_build_final_call): Remove prototype.
758         (gfc_add_finalizer_call): Add prototype.
759         * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
760         (structure_alloc_comps): Update caller.
761         (gfc_trans_deferred_array): Call finalizer.
762         * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
763         * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
764         variables of the main program.
765         * trans-expr.c (gfc_conv_procedure_call): Support finalization.
766         * trans-openmp.c (gfc_omp_clause_dtor,
767         gfc_trans_omp_array_reduction): Update calls.
768         * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
769         of alloc components.
770         * trans.c (gfc_add_finalizer_call): New function.
771         (gfc_deallocate_with_status,
772         gfc_deallocate_scalar_with_status): Call it
773         (gfc_build_final_call): Fix handling of scalar coarrays,
774         move up in the file and make static.
776 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
777             Mikael Morin  <mikael@gcc.gnu.org>
779         * error.c (get_terminal_width): Only limit the width if we're
780         outputting to a terminal. Try to determine width via ioctl.
782 2013-06-01  Tobias Burnus  <burnus@net-b.de>
784         * decl.c (add_global_entry): Take locus.
785         (gfc_match_entry): Update call.
786         (gfc_match_end): Better error location.
787         * parse.c (parse_block_data, parse_module, add_global_procedure,
788         add_global_program): Use better locus data.
790 2013-05-31  Tobias Burnus  <burnus@net-b.de>
792         PR fortran/57456
793         * trans-array.c (gfc_array_init_size): Use passed type spec,
794         when available.
795         (gfc_array_allocate): Pass typespec on.
796         * trans-array.h (gfc_array_allocate): Update prototype.
797         * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
799 2013-05-31  Janus Weil  <janus@gcc.gnu.org>
801         PR fortran/54190
802         PR fortran/57217
803         * gfortran.h (gfc_terminal_width): Remove prototype.
804         * error.c (get_terminal_width): Moved here from misc.c. Renamed.
805         Try to determine terminal width from environment variable.
806         * interface.c (compare_type, compare_rank): New functions. Fix assumed
807         type/rank handling.
808         (compare_type_rank, check_dummy_characteristics,
809         check_result_characteristics, gfc_compare_interfaces): Use them.
810         (symbol_rank): Slightly modified and moved.
811         * misc.c (gfc_terminal_width): Moved to error.c.
813 2013-05-30  Janus Weil  <janus@gcc.gnu.org>
815         PR fortran/54189
816         * resolve.c (check_assumed_size_reference): Check for e->ref.
818 2013-05-30  Tobias Burnus  <burnus@net-b.de>
820         PR fortran/57458
821         * interface.c (compare_parameter): Update C1239/C1240 constraint
822         check for assumed-rank/TS29113.
824 2013-05-29  Tobias Burnus  <burnus@net-b.de>
826         PR fortran/37336
827         * class.c (finalize_component): Fix coarray array refs.
828         (generate_finalization_wrapper): Only gfc_convert_type_warn
829         when the kind value is different.
830         (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
831         (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
832         generation.
833         * module.c (MOD_VERSION): Bump.
834         (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
835         * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
836         void pointer.
837         (gfc_array_allocate, structure_alloc_comps): Don't nullify for
838         BT_CLASS allocations.
839         * trans-stmt.c (gfc_trans_allocate): Ditto.
841 2013-05-29  Tobias Burnus  <burnus@net-b.de>
843         PR fortran/37336
844         * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
846 2013-05-28  Tobias Burnus  <burnus@net-b.de>
848         * trans-expr.c (gfc_conv_procedure_call): Deallocate
849         polymorphic arrays for allocatable intent(out) dummies.
850         (gfc_reset_vptr): New function, moved from trans-stmt.c
851         and extended.
852         * trans-stmt.c (reset_vptr): Remove.
853         (gfc_trans_deallocate): Update calls.
854         * trans.h (gfc_reset_vptr): New prototype.
856 2013-05-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
858         PR fortran/57435
859         * module.c (check_for_ambiguous): Avoid null pointer deref.
861 2013-05-28  Janus Weil  <janus@gcc.gnu.org>
862             Tobias Burnus  <burnus@net-b.de>
864         PR fortran/57217
865         * interface.c (check_dummy_characteristics): Symmetrize type check.
867 2013-05-27  Bud Davis  <jmdavis@link.com>
869         PR fortran/50405
870         * resolve.c (resolve_formal_arglist): Detect error when an argument
871         has the same name as the function.
873 2013-05-27  Tobias Burnus  <burnus@net-b.de>
875         * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
876         * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
878 2013-05-22  Tobias Burnus  <burnus@net-b.de>
880         * resolve.c (get_temp_from_expr): Change mangling to
881         start always with a _.
883 2013-05-22  Tobias Burnus  <burnus@net-b.de>
885         * resolve.c (get_temp_from_expr): Fix temp var mangling.
887 2013-05-22  Tobias Burnus  <burnus@net-b.de>
889         PR fortran/57364
890         * resolve.c (get_temp_from_expr): Commit created sym.
892 2013-05-22  Tobias Burnus  <burnus@net-b.de>
894         PR fortran/57338
895         * intrinsic.c (do_check): Move some checks to ...
896         (do_ts29113_check): ... this new function.
897         (check_specific, gfc_intrinsic_sub_interface): Call it.
899 2013-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
901         * intrinsic.texi (RANDOM_SEED): Improve example.
903 2013-05-21  Tobias Burnus  <burnus@net-b.de>
905         PR fortran/57035
906         * intrinsic.c (do_check): Add constraint check for
907         NO_ARG_CHECK, assumed rank and assumed type.
908         * gfortran.texi (NO_ARG_CHECK): Minor wording change,
909         allow PRESENT intrinsic.
911 2013-05-20  Tobias Burnus  <burnus@net-b.de>
913         PR fortran/48858
914         PR fortran/55465
915         * decl.c (add_global_entry): Add sym_name.
916         * parse.c (add_global_procedure): Ditto.
917         * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
918         a procedure.
919         (resolve_global_procedure): Handle gsym->ns pointing to a module.
920         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
922 2013-05-20  Tobias Burnus  <burnus@net-b.de>
924         PR fortran/48858
925         * decl.c (add_global_entry): Use nonbinding name
926         only for F2003 or if no binding label exists.
927         (gfc_match_entry): Update calls.
928         * parse.c (gfc_global_used): Improve error message.
929         (add_global_procedure): Use nonbinding name
930         only for F2003 or if no binding label exists.
931         (gfc_parse_file): Update call.
932         * resolve.c (resolve_global_procedure): Use binding
933         name when available.
934         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
936 2013-05-20  Tobias Burnus  <burnus@net-b.de>
938         PR fortran/48858
939         * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
940         * match.c (gfc_match_common): Don't add commons to gsym.
941         * resolve.c (resolve_common_blocks): Add to gsym and
942         add checks.
943         (resolve_bind_c_comms): Remove.
944         (resolve_types): Remove call to the latter.
945         * trans-common.c (gfc_common_ns): Remove static var.
946         (gfc_map_of_all_commons): Add static var.
947         (build_common_decl): Correctly handle binding label.
949 2013-05-16  Jason Merrill  <jason@redhat.com>
951         * Make-lang.in (f951$(exeext)): Use link mutex.
953 2013-05-05  Tobias Burnus  <burnus@net-b.de>
955         * resolve.c (conformable_arrays): Avoid segfault
956         when ar.start[i] == NULL.
958 2013-05-05  Tobias Burnus  <burnus@net-b.de>
960         PR fortran/57141
961         * decl.c (gfc_match_null): Permit use-associated
962         NULL intrinsic.
964 2013-05-04  Tobias Burnus  <burnus@net-b.de>
966         * decl.c (gfc_verify_c_interop_param): Permit allocatable
967         and pointer with -std=f2008ts.
969 2013-05-02  Tobias Burnus  <burnus@net-b.de>
971         PR fortran/57142
972         * simplify.c (gfc_simplify_size): Renamed from
973         simplify_size; fix kind=8 handling.
974         (gfc_simplify_size): New function.
975         (gfc_simplify_shape): Add range check.
976         * resolve.c (resolve_function): Fix handling
977         for ISYM_SIZE.
979 2013-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
981         * frontend-passes.c (optimize_power):  Fix typo
982         in comment.
984 2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
986         PR fortran/57071
987         * frontend-passes.c (optimize_power):  Simplify
988         1**k to 1.
990 2013-04-28  Tobias Burnus  <burnus@net-b.de>
992         PR fortran/57114
993         * intrinsic.texi (RANK): Correct syntax description and
994         expected result.
996 2013-04-28  Tobias Burnus  <burnus@net-b.de>
998         PR fortran/57093
999         * trans-types.c (gfc_get_element_type): Fix handling
1000         of scalar coarrays of type character.
1001         * intrinsic.texi (PACK): Add missing ")".
1003 2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1005         PR fortran/57071
1006         * frontend-passes (optimize_power):  New function.
1007         (optimize_op):  Use it.
1009 2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
1011         PR bootstrap/57028
1012         * Make-lang.in (f951): Link in ZLIB.
1013         (CFLAGS-fortran/module.o): Add zlib include directory.
1015 2013-04-22  Janus Weil  <janus@gcc.gnu.org>
1017         PR fortran/53685
1018         PR fortran/57022
1019         * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
1020         expressions.
1021         * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
1022         of special treatment for EXPR_ARRAY.
1023         * target-memory.h (gfc_element_size): New prototype.
1024         * target-memory.c (size_array): Remove.
1025         (gfc_element_size): New function.
1026         (gfc_target_expr_size): Modified to always return the full size of the
1027         expression.
1029 2013-04-20  Tobias Burnus  <burnus@net-b.de>
1031         PR fortran/56907
1032         * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
1033         passed to C_LOC
1035 2013-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1036             Mikael Morin  <mikael@gcc.gnu.org>
1038         PR fortran/56872
1039         * frontend-passes.c (copy_walk_reduction_arg): Change argument type
1040         to gfc_constructor.  If it has an iterator, wrap the copy of its
1041         expression in an array constructor with that iterator.  Don't special
1042         case function expressions.
1043         (callback_reduction): Update caller.  Don't return early if there is
1044         an iterator.
1046 2013-04-18  Tobias Burnus  <burnus@net-b.de>
1048         * expr.c (find_array_element): Don't copy expr.
1049         * data.c (create_character_initializer): Free expr.
1050         * frontend-passes.c (combine_array_constructor): Ditto.
1051         * match.c (match_typebound_call, gfc_match_select_type): Ditto.
1052         * resolve.c (resolve_typebound_function): Free gfc_ref.
1054 2013-04-18  Tobias Burnus  <burnus@net-b.de>
1056         PR fortran/56994
1057         * invoke.texi (NEAREST): S argument is not optional.
1059 2013-04-17  Janus Weil  <janus@gcc.gnu.org>
1061         PR fortran/56814
1062         * interface.c (check_result_characteristics): Get result from interface
1063         if present.
1065 2013-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
1067         PR fortran/40958
1068         * scanner.h: New file.
1069         * Make-lang.in: Dependencies on scanner.h.
1070         * scanner.c (gfc_directorylist): Move to scanner.h.
1071         * module.c: Don't include md5.h, include scanner.h and zlib.h.
1072         (MOD_VERSION): Add comment about backwards compatibility.
1073         (module_fp): Change type to gzFile.
1074         (ctx): Remove.
1075         (gzopen_included_file_1): New function.
1076         (gzopen_included_file): New function.
1077         (gzopen_intrinsic_module): New function.
1078         (write_char): Use gzputc.
1079         (read_crc32_from_module_file): New function.
1080         (read_md5_from_module_file): Remove.
1081         (gfc_dump_module): Use gz* functions instead of stdio, check gzip
1082         crc32 instead of md5.
1083         (read_module_to_tmpbuf): Use gz* functions instead of stdio.
1084         (gfc_use_module): Use gz* functions.
1086 2013-04-16  Tobias Burnus  <burnus@net-b.de>
1088         PR fortran/39505
1089         * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
1090         * gfortran.h (ext_attr_id_t): Ditto.
1091         * gfortran.texi (GNU Fortran Compiler Directives):
1092         Document it.
1093         * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
1094         (compare_parameter): Ditto - and regard as unlimited polymorphic.
1095         * resolve.c (resolve_symbol, resolve_variable): Add same constraint
1096         checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
1097         (gfc_explicit_interface_required): Require explicit interface
1098         for NO_ARG_CHECK.
1100 2013-04-16  Janus Weil  <janus@gcc.gnu.org>
1102         PR fortran/56968
1103         * expr.c (gfc_check_pointer_assign): Handle generic functions returning
1104         procedure pointers.
1106 2013-04-16  Tobias Burnus  <burnus@net-b.de>
1108         PR fortran/56969
1109         * intrinsic.c (gfc_intrinsic_func_interface): Don't set
1110         module name to "(intrinsic)" for intrinsics from intrinsic
1111         modules.
1113 2013-04-15  Tobias Burnus  <burnus@net-b.de>
1115         * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
1117 2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
1119         PR fortran/56919
1120         * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
1122 2013-04-15  Tobias Burnus  <burnus@net-b.de>
1124         * class.c (gfc_find_intrinsic_vtab): Removed unused var.
1125         * dependency.c (check_data_pointer_types): Fix check.
1126         * frontend-passes.c (check_data_pointer_types): Remove
1127         superfluous statement.
1128         * parse.c (decode_omp_directive): Add missing break.
1129         * resolve.c (resolve_typebound_subroutine: Free variable.
1130         * trans-decl.c (create_function_arglist): Correct condition.
1132 2013-04-14  Mikael Morin  <mikael@gcc.gnu.org>
1134         PR fortran/56816
1135         * match.c (gfc_match_select_type): Add syntax error. Move namespace
1136         allocation and cleanup...
1137         * parse.c (decode_statement): ... here.
1139 2013-04-13  Janus Weil  <janus@gcc.gnu.org>
1141         PR fortran/55959
1142         * expr.c (gfc_simplify_expr): Branch is not unreachable.
1144 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
1146         PR fortran/56266
1147         * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
1149 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1151         PR fortran/56929
1152         * trans-array.c (duplicate_allocatable): Fix handling
1153         of scalar coarrays.
1155 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
1157         PR fortran/56261
1158         * gfortran.h (gfc_explicit_interface_required): New prototype.
1159         * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
1160         required in a proc-ptr assignment.
1161         * interface.c (check_result_characteristics): Extra check.
1162         * resolve.c (gfc_explicit_interface_required): New function.
1163         (resolve_global_procedure): Use new function
1164         'gfc_explicit_interface_required'. Do a full interface check.
1166 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1168         PR fortran/56845
1169         * trans-decl.c (gfc_trans_deferred_vars): Restrict
1170         static CLASS init to SAVE and -fno-automatic.
1172 2013-04-12  Tobias Burnus  <burnus@net-b.de>
1174         PR fortran/56845
1175         * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
1176         allocatable static BT_CLASS.
1177         * trans-expr.c (gfc_class_set_static_fields): New function.
1178         * trans.h (gfc_class_set_static_fields): New prototype.
1180 2013-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
1182         * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
1183         * arith.c: Replace gfc_try with bool type.
1184         * array.c: Likewise.
1185         * check.c: Likewise.
1186         * class.c: Likewise.
1187         * cpp.c: Likewise.
1188         * cpp.h: Likewise.
1189         * data.c: Likewise.
1190         * data.h: Likewise.
1191         * decl.c: Likewise.
1192         * error.c: Likewise.
1193         * expr.c: Likewise.
1194         * f95-lang.c: Likewise.
1195         * interface.c: Likewise.
1196         * intrinsic.c: Likewise.
1197         * intrinsic.h: Likewise.
1198         * io.c: Likewise.
1199         * match.c: Likewise.
1200         * match.h: Likewise.
1201         * module.c: Likewise.
1202         * openmp.c: Likewise.
1203         * parse.c: Likewise.
1204         * parse.h: Likewise.
1205         * primary.c: Likewise.
1206         * resolve.c: Likewise.
1207         * scanner.c: Likewise.
1208         * simplify.c: Likewise.
1209         * symbol.c: Likewise.
1210         * trans-intrinsic.c: Likewise.
1211         * trans-openmp.c: Likewise.
1212         * trans-stmt.c: Likewise.
1213         * trans-types.c: Likewise.
1215 2013-04-09  Tobias Burnus  <burnus@net-b.de>
1217         * gfortran.texi (KIND Type Parameters,
1218         Internal representation of LOGICAL variables): Add crossrefs.
1219         (Intrinsic Types): Mention issues with _Bool interop.
1220         (Naming and argument-passing conventions): New section.
1222 2013-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1224         PR fortran/56782
1225         * frontend-passes.c (callback_reduction):  Don't do
1226         any simplification if there is only a single element
1227         which has an iterator.
1229 2013-04-07  Tobias Burnus  <burnus@net-b.de>
1231         PR fortran/56849
1232         * iresolve.c (gfc_resolve_reshape): Set shape also
1233         with order=.
1235 2013-04-04  Janus Weil  <janus@gcc.gnu.org>
1237         PR fortran/40881
1238         * match.c (gfc_match_return): Remove standard notification.
1239         * primary.c (gfc_match_actual_arglist): Add standard notification.
1241 2013-04-04  Tobias Burnus  <burnus@net-b.de>
1243         PR fortran/50269
1244         * gcc/fortran/check.c (is_c_interoperable,
1245         gfc_check_c_loc): Correct c_loc array checking
1246         for Fortran 2003 and Fortran 2008.
1248 2013-04-03  Janus Weil  <janus@gcc.gnu.org>
1250         PR fortran/56284
1251         PR fortran/40881
1252         * decl.c (gfc_match_formal_arglist): Warn about alternate-return
1253         arguments.
1254         * interface.c (check_dummy_characteristics): Return if symbols are NULL.
1256 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
1258         PR fortran/56500
1259         * symbol.c (gfc_set_default_type): Build class container for
1260         IMPLICIT CLASS.
1262 2013-03-31  Tobias Burnus  <burnus@net-b.de>
1264         * class.c (finalization_scalarizer, finalizer_insert_packed_call,
1265         generate_finalization_wrapper): Avoid segfault with absent SIZE=
1266         argument to TRANSFER and use correct result kind for SIZE.
1267         * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
1268         nonmodules.
1269         * trans.c (gfc_build_final_call): Handle coarrays.
1271 2013-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1273         * trans-expr.c (build_memcmp_call):  New function.
1274         (gfc_build_compare_string):  If the strings
1275         compared have constant and equal lengths and
1276         the strings are kind=1, or, for kind=4 strings,
1277         the test is for (in)equality, use memcmp().
1279 2013-03-29  Tobias Burnus  <burnus@net-b.de>
1281         PR fortran/35203
1282         * trans-decl.c (create_function_arglist): Pass hidden argument
1283         for passed-by-value optional+value dummies.
1284         * trans-expr.c (gfc_conv_expr_present,
1285         gfc_conv_procedure_call): Handle those.
1287 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1289         PR fortran/45159
1290         * gfortran.h (gfc_dep_difference):  Add prototype.
1291         * dependency.c (discard_nops):  New function.
1292         (gfc_dep_difference):  New function.
1293         (check_section_vs_section):  Use gfc_dep_difference
1294         to calculate the difference of starting indices.
1295         * trans-expr.c (gfc_conv_substring):  Use
1296         gfc_dep_difference to calculate the length of
1297         substrings where possible.
1299 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
1301         PR fortran/55806
1302         * frontend-passes.c (optimize_code):  Keep track of
1303         current code to make code insertion possible.
1304         (combine_array_constructor):  New function.
1305         (optimize_op):  Call it.
1307 2013-03-27  Tobias Burnus  <burnus@net-b.de>
1309         PR fortran/56650
1310         PR fortran/36437
1311         * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
1312         gfc_check_storage_size): Update checks.
1313         * intrinsic.texi (SIZEOF): Correct class.
1314         * intrinsic.h (gfc_simplify_sizeof,
1315         gfc_simplify_storage_size): New prototypes.
1316         * intrinsic.c (add_functions): Use them.
1317         * simplify.c (gfc_simplify_sizeof,
1318         gfc_simplify_storage_size): New functions.
1320 2013-03-27  Janne Blomqvist  <jb@gcc.gnu.org>
1322         PR fortran/25708
1323         * module.c (module_locus): Use long for position.
1324         (module_content): New variable.
1325         (module_pos): Likewise.
1326         (prev_character): Remove.
1327         (bad_module): Free data instead of closing mod file.
1328         (set_module_locus): Use module_pos.
1329         (get_module_locus): Likewise.
1330         (module_char): use buffer rather than stdio file.
1331         (module_unget_char): Likewise.
1332         (read_module_to_tmpbuf): New function.
1333         (gfc_use_module): Call read_module_to_tmpbuf.
1335 2013-03-26  Tobias Burnus  <burnus@net-b.de>
1337         PR fortran/56649
1338         * simplify.c (gfc_simplify_merge): Simplify more.
1340 2013-03-25  Tobias Burnus  <burnus@net-b.de>
1342         PR fortran/38536
1343         PR fortran/38813
1344         PR fortran/38894
1345         PR fortran/39288
1346         PR fortran/40963
1347         PR fortran/45824
1348         PR fortran/47023
1349         PR fortran/47034
1350         PR fortran/49023
1351         PR fortran/50269
1352         PR fortran/50612
1353         PR fortran/52426
1354         PR fortran/54263
1355         PR fortran/55343
1356         PR fortran/55444
1357         PR fortran/55574
1358         PR fortran/56079
1359         PR fortran/56378
1360         * check.c (gfc_var_strlen): Properly handle 0-sized string.
1361         (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
1362         (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
1363         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
1364         functions.
1365         * expr.c (check_inquiry): Add c_sizeof, compiler_version and
1366         compiler_options.
1367         (gfc_check_pointer_assign): Refine function result check.
1368         gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
1369         GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
1370         GFC_ISYM_C_LOC.
1371         (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
1372         NAMED_SUBROUTINE.
1373         (generate_isocbinding_symbol): Update prototype.
1374         (get_iso_c_sym): Remove.
1375         (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
1376         * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
1377         (gfc_intrinsic_sub_interface): Use it.
1378         (add_functions, add_subroutines): Add missing C-binding intrinsics.
1379         (gfc_intrinsic_func_interface): Add special case for c_loc.
1380         gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
1381         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
1382         * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
1383         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
1384         gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
1385         * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
1386         functions.
1387         * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
1388         NAMED_FUNCTION.
1389         * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
1390         * module.c (create_intrinsic_function): Support subroutines and
1391         derived-type results.
1392         (use_iso_fortran_env_module): Update calls.
1393         (import_iso_c_binding_module): Ditto; update calls to
1394         generate_isocbinding_symbol.
1395         * resolve.c (find_arglists): Skip for intrinsic symbols.
1396         (gfc_resolve_intrinsic): Find intrinsic subs via id.
1397         (is_scalar_expr_ptr, gfc_iso_c_func_interface,
1398         set_name_and_label, gfc_iso_c_sub_interface): Remove.
1399         (resolve_function, resolve_specific_s0): Remove calls to those.
1400         (resolve_structure_cons): Fix handling.
1401         * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
1402         generation.
1403         (gen_cptr_param, gen_fptr_param, gen_shape_param,
1404         build_formal_args, get_iso_c_sym): Remove.
1405         (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
1406         (generate_isocbinding_symbol): Support hidden symbols and
1407         using c_ptr/c_funptr symtrees for nullptr defs.
1408         * target-memory.c (gfc_target_encode_expr): Fix handling
1409         of c_ptr/c_funptr.
1410         * trans-expr.c (conv_isocbinding_procedure): Remove.
1411         (gfc_conv_procedure_call): Remove call to it.
1412         (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
1413         of c_ptr/c_funptr.
1414         * trans-intrinsic.c (conv_isocbinding_function,
1415         conv_isocbinding_subroutine): New.
1416         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
1417         Call them.
1418         * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
1419         * trans-types.c (gfc_typenode_for_spec,
1420         gfc_get_derived_type): Ditto.
1421         (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
1423 2013-03-18  Tobias Burnus  <burnus@net-b.de>
1425         * gfortran.h (gfc_option_t): Remove flag_whole_file.
1426         * invoke.texi (-fno-whole-file): Remove.
1427         * lang.opt (fwhole-file): Change to Ignore.
1428         * options.c (gfc_init_options, gfc_post_options,
1429         gfc_handle_option): Remove !flag_whole_file handling
1430         * parse.c (resolve_all_program_units, translate_all_program_units,
1431         gfc_parse_file): Ditto.
1432         * resolve.c (resolve_global_procedure): Ditto.
1433         * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1434         gfc_create_module_variable): Ditto.
1435         * trans-types.c (gfc_get_derived_type): Ditto.
1437 2013-03-15  Tobias Burnus  <burnus@net-b.de>
1439         PR fortran/56615
1440         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
1441         if they are not simply contiguous.
1443 2013-03-11  Tobias Burnus  <burnus@net-b.de>
1445         * gfortran.texi (STRUCTURE and RECORD): State more clearly how
1446         to convert them into derived types.
1448 2013-03-10  Paul Thomas  <pault@gcc.gnu.org>
1450         PR fortran/56575
1451         * expr.c (gfc_default_initializer): Check that a class declared
1452         type has any components.
1453         * resolve.c (resolve_fl_derived0): On failing the test for C437
1454         set the type to BT_UNKNOWN to prevent repeat error messages.
1456 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1458         PR fortran/56477
1459         * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
1461 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1463         PR fortran/54730
1464         * array.c (gfc_match_array_constructor): Set a checkpoint before
1465         matching a typespec.  Drop it on success, restore it otherwise.
1467 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1469         PR fortran/54730
1470         * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
1471         (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
1472         gfc_restore_last_undo_checkpoint): New prototypes.
1473         * symbol.c (default_undo_chgset_var): Update initialization.
1474         (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
1475         free_undo_change_set_data, pop_undo_change_set,
1476         gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
1477         New functions.
1478         (save_symbol_data): Handle multiple change sets.  Make sure old_symbol
1479         field's previous value is not overwritten.  Clear gfc_new field.
1480         (restore_old_symbol): Restore previous old_symbol field.
1481         (gfc_restore_last_undo_checkpoint): New function, using body renamed
1482         from gfc_undo_symbols.  Restore the previous change set as current one.
1483         (gfc_undo_symbols): New body.
1484         (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
1485         Call enforce_single_undo_checkpoint.
1486         (gfc_symbol_done_2): Ditto.  Free change set data.
1488 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1490         * symbol.c (restore_old_symbol): Fix thinko.
1492 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1494         * symbol.c (gfc_undo_symbols): Move code...
1495         (restore_old_symbol): ... here as a new function.
1497 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1499         * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
1500         * gfortran.h: Include vec.h.
1501         (gfc_undo_change_set): New struct.
1502         * symbol.c (tentative_tbp): Remove struct.
1503         (changed_syms, tentative_tbp_list): Remove variables.
1504         (default_undo_chgset_var, latest_undo_chgset): New variables.
1505         (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1506         gfc_commit_symbols, gfc_commit_symbol,
1507         gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
1508         Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
1510 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1512         PR fortran/56491
1513         * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
1514         * symbol.c (free_components): Free proc-pointer components.
1516 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1518         * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
1519         * trans-io.c (build_dt): Ditto.
1521 2013-02-24  Joseph Myers  <joseph@codesourcery.com>
1523         * resolve.c (generate_component_assignments): Don't use UTF-8
1524         ligature in diagnostic.
1526 2013-02-21  Janus Weil  <janus@gcc.gnu.org>
1528         PR fortran/56385
1529         * trans-array.c (structure_alloc_comps): Handle procedure-pointer
1530         components with allocatable result.
1532 2013-02-21  Tobias Burnus  <burnus@net-b.de>
1534         PR fortran/56416
1535         * gfortran.texi (Part II: Language Reference, Extensions,
1536         Non-Fortran Main Program): Sort @menu to match actual section order.
1537         * intrinsic.texi (Intrinsic Procedures): Ditto.
1538         (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
1540 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1541             Mikael Morin  <mikael@gcc.gnu.org>
1543         PR fortran/56318
1544         * simplify.c (gfc_simplify_matmul): Fix result shape
1545         and matmul result.
1547 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1549         PR fortran/53818
1550         * resolve.c (apply_default_init_local): Don't create an
1551         initializer for a result variable.
1553 2013-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1555         PR fortran/56224
1556         * gfortran.h (gfc_add_include_path):  Add boolean argument
1557         for warn.
1558         * scanner.c (gfc_add_include_path):  Pass along warn argument
1559         to add_path_to_list.
1560         * options.c (gfc_post_options):  Add true warn argument to
1561         gfc_add_include_path.
1562         (gfc_handle_module_path_options):  Likewise.
1563         (gfc_handle_option): Also gfc_add_include_path for intrinsic
1564         modules, without warning.
1566 2013-02-14  Paul Thomas  <pault@gcc.gnu.org>
1567             Tobias Burnus  <burnus@net-b.de>
1569         PR testsuite/56138
1570         * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
1571         results for functions without extra result variable.
1573         Revert:
1574         2013-01-30  Tobias Burnus  <burnus@net-b.de>
1576         PR fortran/56138
1577         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1578         results for functions without extra result variable.
1580 2013-02-12  Janus Weil  <janus@gcc.gnu.org>
1582         PR fortran/46952
1583         * resolve.c (resolve_call): Do not check deferred procedures for
1584         recursiveness.
1586 2013-02-09  Paul Thomas  <pault@gcc.gnu.org>
1588         PR fortran/55362
1589         * check.c (array_check): It is an error if a procedure is
1590         passed.
1592 2013-02-08  Mikael Morin  <mikael@gcc.gnu.org>
1594         PR fortran/54107
1595         * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
1596         to error_mark_node on entry.  Detect recursive types.  Build a variadic
1597         procedure type if the type is recursive.  Restore the initial
1598         backend_decl.
1600 2013-02-07  Tobias Burnus  <burnus@net-b.de>
1602         PR fortran/54339
1603         * gfortran.texi (Standards): Mention TS29113.
1604         (Varying Length Character): Mention deferred-length
1605         strings.
1606         (Fortran 2003 Status): Add unlimited polymorphic.
1607         (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
1608         (C Interop): Update the section about TS29113.
1610 2013-02-06  Paul Thomas  <pault@gcc.gnu.org>
1612         PR fortran/55789
1613         * trans-array.c (trans_array_constructor): Remove condition
1614         'dynamic' = true if the loop ubound is a VAR_DECL.
1616 2013-02-04  Paul Thomas  <pault@gcc.gnu.org>
1618         PR fortran/56008
1619         PR fortran/47517
1620         * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
1621         the lhs descriptor before it is modified for reallocation. Use
1622         it to deallocate allocatable components in the reallocation
1623         block.  Nullify allocatable components for newly (re)allocated
1624         arrays.
1626 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1628         PR fortran/54195
1629         * resolve.c (resolve_typebound_procedures): Recurse through
1630         resolve_symbol.
1632 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1634         PR fortran/54107
1635         PR fortran/54195
1636         * gfortran.h (struct gfc_symbol): New field 'resolved'.
1637         * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
1638         (resolve_symbol): Skip duplicate calls.  Don't check the current
1639         namespace.
1641 2013-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1643         PR fortran/50627
1644         PR fortran/56054
1645         * decl.c (gfc_match_end):  Remove half-ready namespace
1646         from parent if the end of a block is missing.
1647         * parse.c (parse_module):  Do not put namespace into
1648         gsymbol on error.
1650 2013-01-30  Tobias Burnus  <burnus@net-b.de>
1652         PR fortran/56138
1653         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1654         results for functions without extra result variable.
1656 2013-01-29  Janus Weil  <janus@gcc.gnu.org>
1657             Mikael Morin  <mikael@gcc.gnu.org>
1659         PR fortran/54107
1660         * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
1661         (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
1662         gfc_expr_replace_comp): Delete.
1663         (gfc_sym_get_dummy_args): New prototype.
1664         * dependency.c (gfc_check_fncall_dependency): Use
1665         'gfc_sym_get_dummy_args'.
1666         * expr.c (gfc_is_constant_expr): Ditto.
1667         (replace_symbol,gfc_expr_replace_symbols,replace_comp,
1668         gfc_expr_replace_comp): Deleted.
1669         * frontend-passes.c (doloop_code,do_function): Use
1670         'gfc_sym_get_dummy_args'.
1671         * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
1672         gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
1673         gfc_check_typebound_override): Ditto.
1674         * module.c (MOD_VERSION): Bump module version.
1675         (mio_component): Do not read/write 'formal' and 'formal_ns'.
1676         * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
1677         copy formal args, but just keep a pointer to the interface.
1678         (resolve_function,resolve_call,resolve_typebound_generic_call,
1679         resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
1680         resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
1681         resolve_typebound_procedure,check_uop_procedure): Use
1682         'gfc_sym_get_dummy_args'.
1683         * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
1684         (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
1685         (gfc_sym_get_dummy_args): New function.
1686         * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
1687         Use 'gfc_sym_get_dummy_args'.
1688         * trans-decl.c (build_function_decl,create_function_arglist,
1689         build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
1690         add_argument_checking): Ditto.
1691         * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
1692         gfc_conv_statement_function): Ditto.
1693         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1694         * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
1696 2013-01-28  Tobias Burnus  <burnus@net-b.de>
1697             Mikael Morin  <mikael@gcc.gnu.org>
1699         PR fortran/53537
1700         * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
1701         interface block.
1702         (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
1703         * decl.c (gfc_match_data_decl): Ditto.
1704         (variable_decl): Remove undeclared type error.
1705         (gfc_match_import): Use renamed instead of original name.
1707 2013-01-27  Paul Thomas  <pault@gcc.gnu.org>
1709         PR fortran/55984
1710         PR fortran/56047
1711         * gfortran.h : Add associate_var to symbol_attr.
1712         * resolve.c (resolve_assoc_var): Set associate_var attribute.
1713         If the target class_ok is set, set it for the associate
1714         variable.
1715         * check.c (allocatable_check): Associate variables should not
1716         have the allocatable attribute even if their symbols do.
1717         * class.c (gfc_build_class_symbol): Symbols with associate_var
1718         set will always have a good class container.
1720 2013-01-23  Janus Weil  <janus@gcc.gnu.org>
1722         PR fortran/56081
1723         * resolve.c (resolve_select): Add argument 'select_type', reject
1724         non-scalar expressions.
1725         (resolve_select_type,resolve_code): Pass new argument to
1726         'resolve_select'.
1728 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
1730         PR fortran/56052
1731         * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1732         and DECL_IGNORED_P on select_type_temporary and don't set
1733         DECL_BY_REFERENCE.
1735 2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1737         PR fortran/55919
1738         * scanner.c (add_path_to_list): Copy path to temporary and strip
1739         trailing directory separators before calling stat().
1741 2013-01-17  Richard Biener  <rguenther@suse.de>
1743         * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1744         dependent on sign of step, avoids repeated evaluation of
1745         step sign test.  Avoid undefined overflow issues by using unsigned
1746         arithmetic.
1748 2013-01-16  Janus Weil  <janus@gcc.gnu.org>
1750         PR fortran/55983
1751         * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1752         asserting it.
1754 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1755             Tobias Burnus  <burnus@net-b.de>
1757         PR driver/55884
1758         * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1759         (fintrinsic-modules-path=): New.
1760         * options.c (gfc_handle_option, gfc_get_option_string,
1761         gfc_get_option_string): Handle the latter.
1763 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1765         PR fortran/52865
1766         * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1767         and use value of countm1 before the decrement in the condition.
1769 2013-01-15  Paul Thomas  <pault@gcc.gnu.org>
1771         PR fortran/54286
1772         * expr.c (gfc_check_pointer_assign): Check for presence of
1773         's2' before using it.
1775 2013-01-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1777         PR fortran/55806
1778         * frontend-passes.c (optimize_reduction):  New function,
1779         including prototype.
1780         (callback_reduction):  Likewise.
1781         (gfc_run_passes):  Also run optimize_reduction.
1782         (copy_walk_reduction_arg):  New function.
1783         (dummy_code_callback):  New function.
1785 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
1787         PR fortran/55935
1788         * trans-expr.c (gfc_conv_structure): Call
1789         unshare_expr_without_location on the ctor elements.
1791 2013-01-13  Paul Thomas  <pault@gcc.gnu.org>
1793         PR fortran/54286
1794         * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1795         and rvalue interfaces are presented to gfc_compare_interfaces.
1796         Simplify references to interface names by using the symbols
1797         themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1798         changed to overcome the asymmetry of this function. Do not
1799         repeat the check for the presence of s1 and s2.
1801 2013-01-12  Janus Weil  <janus@gcc.gnu.org>
1803         PR fortran/55072
1804         * trans-array.c (gfc_conv_array_parameter): No packing was done for
1805         full arrays of derived type.
1807 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1809         PR fortran/55868
1810         * class.c (get_unique_type_string): Change $tar to STAR and
1811         replace sprintf by strcpy where there is no formatting.
1812         * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1814 2013-01-09  Mikael Morin  <mikael@gcc.gnu.org>
1816         PR fortran/47203
1817         * module.c (check_for_ambiguous): Get the current program unit using
1818         gfc_current_ns.
1820 2013-01-09  Tobias Burnus  <burnus@net-b.de>
1822         PR fortran/55758
1823         * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1824         in BIND(C) procedures with -std=f*.
1826 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1828         PR fortran/55618
1829         * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1830         character function arguments to elemental procedures in
1831         scalarization loops.
1833 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1835         PR fortran/55763
1836         * gfortran.h (gfc_check_assign_symbol): Update prototype.
1837         * decl.c (add_init_expr_to_sym, do_parm): Update call.
1838         * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1839         improve error location; support components.
1840         (gfc_check_pointer_assign): Handle component assignments.
1841         * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1842         (resolve_values): Update call.
1843         (resolve_structure_cons): Avoid double diagnostic.
1845 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1846             Thomas Koenig  <tkoenig@gcc.gnu.org>
1848         PR fortran/55852
1849         * expr.c (gfc_build_intrinsic_call): Avoid clashes
1850         with user's procedures.
1851         * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1852         * simplify.c (gfc_simplify_size): Update call.
1853         * class.c (finalization_scalarizer, finalization_get_offset,
1854         finalizer_insert_packed_call, generate_finalization_wrapper):
1855         Clean up by using gfc_build_intrinsic_call.
1857 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1859         PR fortran/55763
1860         * resolve.c (resolve_select_type): Reject intrinsic types for
1861         a non-unlimited-polymorphic selector.
1863 2013-01-06  Paul Thomas  <pault@gcc.gnu.org>
1865         PR fortran/53876
1866         PR fortran/54990
1867         PR fortran/54992
1868         * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1869         to see if it is GFC_CLASS_TYPE_P.
1870         * trans-expr.c (gfc_get_vptr_from_expr): The same.
1871         (gfc_conv_class_to_class): If the types are not the same,
1872         cast parmese->expr to the type of ctree.
1873         * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1874         CLASS components must be set.
1876 2013-01-06  Mikael Morin  <mikael@gcc.gnu.org>
1878         PR fortran/42769
1879         PR fortran/45836
1880         PR fortran/45900
1881         * module.c (read_module): Don't reuse local symtree if the associated
1882         symbol isn't exactly the one wanted.  Don't reuse local symtree if it is
1883         ambiguous.
1884         * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1885         lookup the symtree.
1887 2013-01-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1888             Mikael Morin  <mikael@gcc.gnu.org>
1890         PR fortran/55827
1891         * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
1892         e->symtree == NULL.
1893         * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
1895 2013-01-05  Tobias Burnus  <burnus@net-b.de>
1897         * class.c (finalize_component): Used passed offset expr.
1898         (finalization_get_offset): New static function.
1899         (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
1900         to handle noncontiguous arrays.
1902 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1904         * trans.c (gfc_build_final_call): New function.
1905         * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
1906         New function prototypes.
1907         * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
1908         conv_scalar_to_descriptor, removed static attribute.
1909         (gfc_conv_procedure_call): Honor renaming.
1911 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1913         * intrinsic.c (add_functions): New internal intrinsic
1914         function GFC_PREFIX ("stride").
1915         * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
1916         * intrinsic.h (gfc_resolve_stride): New prototypes.
1917         * iresolve.c (gfc_resolve_stride): New function.
1918         * trans-intrinsic.c (conv_intrinsic_stride): New static
1919         function.
1920         (gfc_conv_intrinsic_function): Use it.
1922 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1924         * class.c (gfc_find_intrinsic_vtab): Add _final
1925         component.
1926         * decl.c (gfc_match_null): Remove superfluous
1927         variadic argument to gfc_match.
1929 2013-01-04  Paul Thomas  <pault@gcc.gnu.org>
1931         PR fortran/55172
1932         * match.c (copy_ts_from_selector_to_associate): Remove call to
1933         gfc_resolve_expr and replace it with explicit setting of the
1934         array reference type.
1935         * resolve.c (resolve_select_type): It is an error if the
1936         selector is coindexed.
1938 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1940         PR fortran/55763
1941         * decl.c (gfc_match_null): Parse and reject MOLD.
1943 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1945         PR fortran/55854
1946         PR fortran/55763
1947         * class.c (gfc_class_null_initializer): Fix finding the vtab.
1948         (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
1950 2013-01-03  Janus Weil  <janus@gcc.gnu.org>
1952         PR fortran/55855
1953         * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
1954         of rvalue. Correct hyphenation in error message.
1956 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
1958         * gfortranspec.c (lang_specific_driver): Update copyright notice
1959         dates.
1961 Copyright (C) 2013 Free Software Foundation, Inc.
1963 Copying and distribution of this file, with or without modification,
1964 are permitted in any medium without royalty provided the copyright
1965 notice and this notice are preserved.