cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
[official-gcc.git] / gcc / fortran / ChangeLog
blobe804749727d2afadd2732a49da6ae68af164bb78
1 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
3         PR fortran/57798
4         * trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
5         gfc_set_delta): Generate preliminary code before the outermost loop.
7 2013-08-23  Janus Weil  <janus@gcc.gnu.org>
9         PR fortran/57843
10         * interface.c (gfc_extend_assign): Look for type-bound assignment
11         procedures before non-typebound.
13 2013-08-23  Mikael Morin  <mikael@gcc.gnu.org>
15         * trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
16         to the callers.
17         (gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
19 2013-08-22  Janus Weil  <janus@gcc.gnu.org>
21         PR fortran/58185
22         * match.c (copy_ts_from_selector_to_associate): Only build class
23         container for polymorphic selector. Some cleanup.
25 2013-08-20  Janus Weil  <janus@gcc.gnu.org>
27         PR fortran/53655
28         * trans-decl.c (generate_local_decl): Check if type has any components.
30 2013-08-19  Janus Weil  <janus@gcc.gnu.org>
32         PR fortran/46271
33         * openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
35 2013-08-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
37         PR fortran/56666
38         * gfortran.h (gfc_option_t):  Add warn_zerotrip.
39         * invoke.texi (-Wzerotrip):  Document option.
40         * lang.opt (Wzerotrip):  Add.
41         * options.c (gfc_init_options):  Initialize warn_zerotrip.
42         (set_Wall): Add handling of warn_zerotrip.
43         (gfc_handle_option):  Handle OPT_Wzerotrip.
44         * resolve.c (gfc_resolve_iterator): Honor
45         gfc_option.warn_zerotrip; update error message to show
46         how to suppress the warning.
48 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
50         * gfortran.h (gfc_get_code): Modified prototype.
51         * class.c (finalize_component, finalization_scalarizer,
52         finalization_get_offset, finalizer_insert_packed_call,
53         generate_finalization_wrapper, gfc_find_derived_vtab,
54         gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
55         * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
56         gfc_match_inquire): Call 'gfc_get_code' with argument.
57         * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
58         gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
59         Ditto.
60         * parse.c (new_level): Ditto.
61         (add_statement): Use XCNEW.
62         * resolve.c (resolve_entries, resolve_allocate_expr,
63         resolve_select_type, build_assignment, build_init_assign): Call
64         'gfc_get_code' with argument.
65         * st.c (gfc_get_code): Add argument 'op'.
66         * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
67         with argument.
68         * trans-stmt.c (gfc_trans_allocate): Ditto.
70 2013-08-09  Janus Weil  <janus@gcc.gnu.org>
72         PR fortran/58058
73         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
74         string, if necessary.
76 2013-08-06  Martin Jambor  <mjambor@suse.cz>
78         PR fortran/57987
79         * trans-decl.c (gfc_generate_function_code): Never call
80         cgraph_finalize_function on nested functions.
82 2013-08-06  Janus Weil  <janus@gcc.gnu.org>
84         PR fortran/57306
85         * class.c (gfc_class_null_initializer): Rename to
86         'gfc_class_initializer'. Treat non-NULL init-exprs.
87         * gfortran.h (gfc_class_null_initializer): Update prototype.
88         * trans-decl.c (gfc_get_symbol_decl): Treat class variables.
89         * trans-expr.c (gfc_conv_initializer): Ditto.
90         (gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
92 2013-07-30  Tobias Burnus  <burnus@net-b.de>
94         PR fortran/57530
95         * symbol.c (gfc_type_compatible): A type is type compatible with
96         a class if both have the same declared type.
97         * interface.c (compare_type): Reject CLASS/TYPE even if they
98         are type compatible.
100 2013-07-30  Tobias Burnus  <burnus@net-b.de>
102         PR fortran/57530
103         * trans-expr.c (gfc_trans_class_assign): Handle CLASS array
104         functions.
105         (gfc_trans_pointer_assign): Ditto and support pointer assignment of
106         a polymorphic var to a nonpolymorphic var.
108 2013-07-22  Po Chang  <pchang9@cs.wisc.edu>
110         * match.c (gfc_match_call): Exit loop after setting i.
112         * resolve.c (resolve_variable): Exit loop after setting seen.
114         * expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
116         * trans-array.c (set_loop_bounds): Exit loop after setting
117         nonoptional_arr.
119         * trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
121 2013-07-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
123         PR fortran/58009
124         * expr.c (gfc_check_vardef_context):  Check for same values in
125         vector expression subscripts.
127 2013-07-27  Tobias Burnus  <burnus@net-b.de>
129         PR fortran/57991
130         * interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
132 2013-07-27  Janus Weil  <janus@gcc.gnu.org>
134         PR fortran/57285
135         * check.c (dim_rank_check): Re-enable this check for CLASS arrays.
137 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
139         PR fortran/57966
140         * resolve.c (resolve_typebound_function): Make sure the declared type,
141         including its type-bound procedures, is resolved before resolving the
142         actual type-bound call.
144 2013-07-25  Janus Weil  <janus@gcc.gnu.org>
146         PR fortran/57639
147         * interface.c (compare_parameter): Check for class_ok.
148         * simplify.c (gfc_simplify_same_type_as): Ditto.
150 2013-07-23   Ondřej Bílka  <neleai@seznam.cz>
152         * decl.c: Fix comment typos.
153         * interface.c: Likewise.
154         * trans-array.c: Likewise.
155         * trans.c: Likewise.
157 2013-07-22  Tobias Burnus  <burnus@net-b.de>
159         PR fortran/57906
160         PR fortran/52052
161         * class.c (gfc_build_class_symbol): Set coarray_comp.
162         * trans-array.c (structure_alloc_comps): For coarrays,
163         directly use the data pointer address.
165 2013-07-22  Chang  <pchang9@cs.wisc.edu>
167         * trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
168         setting PACKED_PARTIAL.
170 2013-07-22  Tobias Burnus  <burnus@net-b.de>
172         * trans-array.c (gfc_array_allocate): Correct memory-leak patch.
174 2013-07-22  Tobias Burnus  <burnus@net-b.de>
176         * trans-array.c (gfc_array_allocate,
177         gfc_trans_deferred_array): Plug memory leak.
179 2013-07-21  Ondřej Bílka  <neleai@seznam.cz>
181         * trans-decl.c: Fix comment typos.
182         * trans-expr.c: Ditto.
184 2013-07-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
186         PR fortran/56937
187         * dependency.c (gfc_dep_resolver):  Treat identical
188         array subscripts as identical; don't unconditionally
189         return a dependency if an array subscript is found.
191 2013-07-21  Tobias Burnus  <burnus@net-b.de>
193         PR fortran/35862
194         * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
195         GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
197 2013-07-21  Tobias Burnus  <burnus@net-b.de>
199         PR fortran/57894
200         * check.c (min_max_args): Add keyword= check.
202 2013-07-17  Mikael Morin  <mikael@gcc.gnu.org>
203             Tobias Burnus  <burnus@net-b.de>
205         PR fortran/57895
206         * match.c (gfc_match_name): Ensure that the error
207         message regarding -fdollar-ok gets printed.
208         (gfc_match_common): Avoid multiple freeing.
210 2013-07-16  Tobias Burnus  <burnus@net-b.de>
212         PR fortran/57912
213         * trans-expr.c (gfc_trans_scalar_assign): Correct if
214         condition for caf realloc.
216 2013-07-15  Tobias Burnus  <burnus@net-b.de>
218         * trans-array.h (gfc_deallocate_alloc_comp_no_caf,
219         gfc_reassign_alloc_comp_caf): New prototype.
220         * trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
221         and COPY_ALLOC_COMP_CAF.
222         (structure_alloc_comps): Handle it.
223         (gfc_reassign_alloc_comp_caf,
224         gfc_deallocate_alloc_comp_no_caf): New function.
225         (gfc_alloc_allocatable_for_assignment): Call it.
226         * trans-expr.c (gfc_trans_scalar_assign,
227         gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
228         * parse.c (parse_derived): Correctly set coarray_comp.
229         * resolve.c (resolve_symbol): Improve error wording.
231 2013-07-15  Tobias Burnus  <burnus@net-b.de>
233         PR fortran/37336
234         * trans.c (gfc_add_comp_finalizer_call): New function.
235         * trans.h (gfc_add_comp_finalizer_call): New prototype.
236         * trans-array.c (structure_alloc_comps): Call it.
238 2013-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
239             Tobias Burnus  <burnus@gcc.gnu.org>
241         PR fortran/52669
242         * trans-decl.c (gfc_finish_var_decl):  Move setting of
243         PRIVATE for a module variable if the module has a private
244         default or -fmodule-private is given to...
245         (gfc_create_module_variable): here. Optionally
246         warn about private module variable which is not used.
248 2013-07-08  Tobias Burnus  <burnus@net-b.de>
250         PR fortran/57834
251         * check.c (is_c_interoperable): Add special case for c_f_pointer.
252         (explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
253         call.
255 2013-07-08  Tobias Burnus  <burnus@net-b.de>
257         PR fortran/50554
258         * io.c (match_inquire_element): Add missing do-var check.
260 2013-07-08  Tobias Burnus  <burnus@net-b.de>
262         PR fortran/57785
263         * simplify.c (compute_dot_product): Complex conjugate for
264         dot_product.
265         (gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
267 2013-07-08  Tobias Burnus  <burnus@net-b.de>
269         PR fortran/57469
270         * trans-decl.c (generate_local_decl): Don't warn that
271         a dummy is unused, when it is in a namelist.
273 2013-07-01  Dominique d'Humieres  <dominiq@lps.ens.fr>
275         PR fortran/54788
276         * array.c (spec_size): handle the case as==NULL.
278 2013-06-26  Tobias Burnus  <burnus@net-b.de>
280         PR fortran/29800
281         * trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
282         diagnostic message.
283         * trans-array.c (gfc_conv_array_ref): Update prototype.
284         * trans-expr.c (gfc_conv_variable): Update call.
286 2013-06-24  Steven G. Kargl  <sgk@troutmask.apl.washington.edu>
287             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
288             Dominique d'Humieres  <dominiq@lps.ens.fr>
290         PR fortran/52413
291         * simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
293 2013-06-21  Tobias Burnus  <burnus@net-b.de>
295         PR fortran/37336
296         * trans-array.c (gfc_trans_deferred_array): Call the
297         finalizer for nonallocatable local variables.
298         * trans-decl.c (gfc_get_symbol_decl): Add local
299         finalizable vars to the deferred list.
300         (gfc_trans_deferred_vars): Call gfc_trans_deferred_array
301         for those.
303 2013-06-21  Tobias Burnus  <burnus@net-b.de>
305         * trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
306         at least one byte.
307         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
309 2013-06-20  Tobias Burnus  <burnus@net-b.de>
311         * resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
313 2013-06-17  Tobias Burnus  <burnus@net-b.de>
315         * gfortran.h (gfc_option_t): Add fpe_summary.
316         * gfortran.texi (_gfortran_set_options): Update.
317         * invoke.texi (-ffpe-summary): Add doc.
318         * lang.opt (ffpe-summary): Add flag.
319         * options.c (gfc_init_options, gfc_handle_option): Handle it.
320         (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
321         also handle fpe_summary.
322         * trans-decl.c (create_main_function): Update
323         _gfortran_set_options call.
325 2013-06-15  Mikael Morin  <mikael@gcc.gnu.org>
327         PR fortran/49074
328         PR fortran/56136
329         * dependency.c (gfc_check_argument_var_dependency): Return 0 in the
330         array constructor case.
332 2013-06-14  Tobias Burnus  <burnus@net-b.de>
334         PR fortran/57508
335         * resolve.c (get_temp_from_expr): Don't copy function
336         result attributes to temporary.
338 2013-06-14  Tobias Burnus  <burnus@net-b.de>
340         PR fortran/57596
341         * trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
342         for nullify and deferred-strings' length variable.
344 2013-06-13  Mikael Morin  <mikael@gcc.gnu.org>
346         PR fortran/49074
347         * trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
348         Handle NULL array references.
349         (gfc_conv_procedure_call): Remove code handling NULL array references.
351 2013-06-11  Tobias Burnus  <burnus@net-b.de>
353         PR fortran/57535
354         * trans-array.c (build_class_array_ref): Fix ICE for
355         function result variables.
357 2013-06-08  Tobias Burnus  <burnus@net-b.de>
359         PR fortran/37336
360         * trans-decl.c (init_intent_out_dt): Call finalizer
361         when appropriate.
363 2013-06-08  Tobias Burnus  <burnus@net-b.de>
365         PR fortran/57553
366         * simplify.c (gfc_simplify_storage_size): Handle literal
367         strings.
368         * trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
369         Add missing fold_convert.
371 2013-06-07  Tobias Burnus  <burnus@net-b.de>
373         PR fortran/57549
374         * array.c (gfc_match_array_constructor): Call
375         gfc_match_type_spec instead of gfc_match_decl_type_spec.
376         * match.c (gfc_match_type_spec): Renamed from match_type_spec.
377         (gfc_match_type_is, gfc_match_allocate): Update call.
378         * match.h (gfc_match_type_spec): Add prototype.
380 2013-06-07  Tobias Burnus  <burnus@net-b.de>
382         PR fortran/57556
383         * trans.c (gfc_build_final_call): Init block before use.
385 2013-06-06  Tobias Burnus  <burnus@net-b.de>
387         PR fortran/57542
388         * trans.c (gfc_build_final_call): Add se.pre to the block
389         and modify the assert.
391 2013-06-04  Tobias Burnus  <burnus@net-b.de>
393         PR fortran/37336
394         * trans.h (gfc_build_final_call): Remove prototype.
395         (gfc_add_finalizer_call): Add prototype.
396         * trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
397         (structure_alloc_comps): Update caller.
398         (gfc_trans_deferred_array): Call finalizer.
399         * trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
400         * trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
401         variables of the main program.
402         * trans-expr.c (gfc_conv_procedure_call): Support finalization.
403         * trans-openmp.c (gfc_omp_clause_dtor,
404         gfc_trans_omp_array_reduction): Update calls.
405         * trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
406         of alloc components.
407         * trans.c (gfc_add_finalizer_call): New function.
408         (gfc_deallocate_with_status,
409         gfc_deallocate_scalar_with_status): Call it
410         (gfc_build_final_call): Fix handling of scalar coarrays,
411         move up in the file and make static.
413 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
414             Mikael Morin  <mikael@gcc.gnu.org>
416         * error.c (get_terminal_width): Only limit the width if we're
417         outputting to a terminal. Try to determine width via ioctl.
419 2013-06-01  Tobias Burnus  <burnus@net-b.de>
421         * decl.c (add_global_entry): Take locus.
422         (gfc_match_entry): Update call.
423         (gfc_match_end): Better error location.
424         * parse.c (parse_block_data, parse_module, add_global_procedure,
425         add_global_program): Use better locus data.
427 2013-05-31  Tobias Burnus  <burnus@net-b.de>
429         PR fortran/57456
430         * trans-array.c (gfc_array_init_size): Use passed type spec,
431         when available.
432         (gfc_array_allocate): Pass typespec on.
433         * trans-array.h (gfc_array_allocate): Update prototype.
434         * trans-stmt.c (gfc_trans_allocate): Pass typespec on.
436 2013-05-31  Janus Weil  <janus@gcc.gnu.org>
438         PR fortran/54190
439         PR fortran/57217
440         * gfortran.h (gfc_terminal_width): Remove prototype.
441         * error.c (get_terminal_width): Moved here from misc.c. Renamed.
442         Try to determine terminal width from environment variable.
443         * interface.c (compare_type, compare_rank): New functions. Fix assumed
444         type/rank handling.
445         (compare_type_rank, check_dummy_characteristics,
446         check_result_characteristics, gfc_compare_interfaces): Use them.
447         (symbol_rank): Slightly modified and moved.
448         * misc.c (gfc_terminal_width): Moved to error.c.
450 2013-05-30  Janus Weil  <janus@gcc.gnu.org>
452         PR fortran/54189
453         * resolve.c (check_assumed_size_reference): Check for e->ref.
455 2013-05-30  Tobias Burnus  <burnus@net-b.de>
457         PR fortran/57458
458         * interface.c (compare_parameter): Update C1239/C1240 constraint
459         check for assumed-rank/TS29113.
461 2013-05-29  Tobias Burnus  <burnus@net-b.de>
463         PR fortran/37336
464         * class.c (finalize_component): Fix coarray array refs.
465         (generate_finalization_wrapper): Only gfc_convert_type_warn
466         when the kind value is different.
467         (gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
468         (gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
469         generation.
470         * module.c (MOD_VERSION): Bump.
471         (gfc_dump_module, gfc_use_module): Remove empty line in .mod.
472         * trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
473         void pointer.
474         (gfc_array_allocate, structure_alloc_comps): Don't nullify for
475         BT_CLASS allocations.
476         * trans-stmt.c (gfc_trans_allocate): Ditto.
478 2013-05-29  Tobias Burnus  <burnus@net-b.de>
480         PR fortran/37336
481         * resolve.c (gfc_resolve_finalizers): Remove not implemented error.
483 2013-05-28  Tobias Burnus  <burnus@net-b.de>
485         * trans-expr.c (gfc_conv_procedure_call): Deallocate
486         polymorphic arrays for allocatable intent(out) dummies.
487         (gfc_reset_vptr): New function, moved from trans-stmt.c
488         and extended.
489         * trans-stmt.c (reset_vptr): Remove.
490         (gfc_trans_deallocate): Update calls.
491         * trans.h (gfc_reset_vptr): New prototype.
493 2013-05-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
495         PR fortran/57435
496         * module.c (check_for_ambiguous): Avoid null pointer deref.
498 2013-05-28  Janus Weil  <janus@gcc.gnu.org>
499             Tobias Burnus  <burnus@net-b.de>
501         PR fortran/57217
502         * interface.c (check_dummy_characteristics): Symmetrize type check.
504 2013-05-27  Bud Davis  <jmdavis@link.com>
506         PR fortran/50405
507         * resolve.c (resolve_formal_arglist): Detect error when an argument
508         has the same name as the function.
510 2013-05-27  Tobias Burnus  <burnus@net-b.de>
512         * expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
513         * intrinsic.c (gfc_is_intrinsic): Disable std check for those.
515 2013-05-22  Tobias Burnus  <burnus@net-b.de>
517         * resolve.c (get_temp_from_expr): Change mangling to
518         start always with a _.
520 2013-05-22  Tobias Burnus  <burnus@net-b.de>
522         * resolve.c (get_temp_from_expr): Fix temp var mangling.
524 2013-05-22  Tobias Burnus  <burnus@net-b.de>
526         PR fortran/57364
527         * resolve.c (get_temp_from_expr): Commit created sym.
529 2013-05-22  Tobias Burnus  <burnus@net-b.de>
531         PR fortran/57338
532         * intrinsic.c (do_check): Move some checks to ...
533         (do_ts29113_check): ... this new function.
534         (check_specific, gfc_intrinsic_sub_interface): Call it.
536 2013-05-22  Janne Blomqvist  <jb@gcc.gnu.org>
538         * intrinsic.texi (RANDOM_SEED): Improve example.
540 2013-05-21  Tobias Burnus  <burnus@net-b.de>
542         PR fortran/57035
543         * intrinsic.c (do_check): Add constraint check for
544         NO_ARG_CHECK, assumed rank and assumed type.
545         * gfortran.texi (NO_ARG_CHECK): Minor wording change,
546         allow PRESENT intrinsic.
548 2013-05-20  Tobias Burnus  <burnus@net-b.de>
550         PR fortran/48858
551         PR fortran/55465
552         * decl.c (add_global_entry): Add sym_name.
553         * parse.c (add_global_procedure): Ditto.
554         * resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
555         a procedure.
556         (resolve_global_procedure): Handle gsym->ns pointing to a module.
557         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
559 2013-05-20  Tobias Burnus  <burnus@net-b.de>
561         PR fortran/48858
562         * decl.c (add_global_entry): Use nonbinding name
563         only for F2003 or if no binding label exists.
564         (gfc_match_entry): Update calls.
565         * parse.c (gfc_global_used): Improve error message.
566         (add_global_procedure): Use nonbinding name
567         only for F2003 or if no binding label exists.
568         (gfc_parse_file): Update call.
569         * resolve.c (resolve_global_procedure): Use binding
570         name when available.
571         * trans-decl.c (gfc_get_extern_function_decl): Ditto.
573 2013-05-20  Tobias Burnus  <burnus@net-b.de>
575         PR fortran/48858
576         * decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
577         * match.c (gfc_match_common): Don't add commons to gsym.
578         * resolve.c (resolve_common_blocks): Add to gsym and
579         add checks.
580         (resolve_bind_c_comms): Remove.
581         (resolve_types): Remove call to the latter.
582         * trans-common.c (gfc_common_ns): Remove static var.
583         (gfc_map_of_all_commons): Add static var.
584         (build_common_decl): Correctly handle binding label.
586 2013-05-16  Jason Merrill  <jason@redhat.com>
588         * Make-lang.in (f951$(exeext)): Use link mutex.
590 2013-05-05  Tobias Burnus  <burnus@net-b.de>
592         * resolve.c (conformable_arrays): Avoid segfault
593         when ar.start[i] == NULL.
595 2013-05-05  Tobias Burnus  <burnus@net-b.de>
597         PR fortran/57141
598         * decl.c (gfc_match_null): Permit use-associated
599         NULL intrinsic.
601 2013-05-04  Tobias Burnus  <burnus@net-b.de>
603         * decl.c (gfc_verify_c_interop_param): Permit allocatable
604         and pointer with -std=f2008ts.
606 2013-05-02  Tobias Burnus  <burnus@net-b.de>
608         PR fortran/57142
609         * simplify.c (gfc_simplify_size): Renamed from
610         simplify_size; fix kind=8 handling.
611         (gfc_simplify_size): New function.
612         (gfc_simplify_shape): Add range check.
613         * resolve.c (resolve_function): Fix handling
614         for ISYM_SIZE.
616 2013-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
618         * frontend-passes.c (optimize_power):  Fix typo
619         in comment.
621 2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
623         PR fortran/57071
624         * frontend-passes.c (optimize_power):  Simplify
625         1**k to 1.
627 2013-04-28  Tobias Burnus  <burnus@net-b.de>
629         PR fortran/57114
630         * intrinsic.texi (RANK): Correct syntax description and
631         expected result.
633 2013-04-28  Tobias Burnus  <burnus@net-b.de>
635         PR fortran/57093
636         * trans-types.c (gfc_get_element_type): Fix handling
637         of scalar coarrays of type character.
638         * intrinsic.texi (PACK): Add missing ")".
640 2013-04-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
642         PR fortran/57071
643         * frontend-passes (optimize_power):  New function.
644         (optimize_op):  Use it.
646 2013-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
648         PR bootstrap/57028
649         * Make-lang.in (f951): Link in ZLIB.
650         (CFLAGS-fortran/module.o): Add zlib include directory.
652 2013-04-22  Janus Weil  <janus@gcc.gnu.org>
654         PR fortran/53685
655         PR fortran/57022
656         * check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
657         expressions.
658         * simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
659         of special treatment for EXPR_ARRAY.
660         * target-memory.h (gfc_element_size): New prototype.
661         * target-memory.c (size_array): Remove.
662         (gfc_element_size): New function.
663         (gfc_target_expr_size): Modified to always return the full size of the
664         expression.
666 2013-04-20  Tobias Burnus  <burnus@net-b.de>
668         PR fortran/56907
669         * trans-intrinsic.c (conv_isocbinding_function): Don't pack array
670         passed to C_LOC
672 2013-04-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
673             Mikael Morin  <mikael@gcc.gnu.org>
675         PR fortran/56872
676         * frontend-passes.c (copy_walk_reduction_arg): Change argument type
677         to gfc_constructor.  If it has an iterator, wrap the copy of its
678         expression in an array constructor with that iterator.  Don't special
679         case function expressions.
680         (callback_reduction): Update caller.  Don't return early if there is
681         an iterator.
683 2013-04-18  Tobias Burnus  <burnus@net-b.de>
685         * expr.c (find_array_element): Don't copy expr.
686         * data.c (create_character_initializer): Free expr.
687         * frontend-passes.c (combine_array_constructor): Ditto.
688         * match.c (match_typebound_call, gfc_match_select_type): Ditto.
689         * resolve.c (resolve_typebound_function): Free gfc_ref.
691 2013-04-18  Tobias Burnus  <burnus@net-b.de>
693         PR fortran/56994
694         * invoke.texi (NEAREST): S argument is not optional.
696 2013-04-17  Janus Weil  <janus@gcc.gnu.org>
698         PR fortran/56814
699         * interface.c (check_result_characteristics): Get result from interface
700         if present.
702 2013-04-17  Janne Blomqvist  <jb@gcc.gnu.org>
704         PR fortran/40958
705         * scanner.h: New file.
706         * Make-lang.in: Dependencies on scanner.h.
707         * scanner.c (gfc_directorylist): Move to scanner.h.
708         * module.c: Don't include md5.h, include scanner.h and zlib.h.
709         (MOD_VERSION): Add comment about backwards compatibility.
710         (module_fp): Change type to gzFile.
711         (ctx): Remove.
712         (gzopen_included_file_1): New function.
713         (gzopen_included_file): New function.
714         (gzopen_intrinsic_module): New function.
715         (write_char): Use gzputc.
716         (read_crc32_from_module_file): New function.
717         (read_md5_from_module_file): Remove.
718         (gfc_dump_module): Use gz* functions instead of stdio, check gzip
719         crc32 instead of md5.
720         (read_module_to_tmpbuf): Use gz* functions instead of stdio.
721         (gfc_use_module): Use gz* functions.
723 2013-04-16  Tobias Burnus  <burnus@net-b.de>
725         PR fortran/39505
726         * decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
727         * gfortran.h (ext_attr_id_t): Ditto.
728         * gfortran.texi (GNU Fortran Compiler Directives):
729         Document it.
730         * interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
731         (compare_parameter): Ditto - and regard as unlimited polymorphic.
732         * resolve.c (resolve_symbol, resolve_variable): Add same constraint
733         checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
734         (gfc_explicit_interface_required): Require explicit interface
735         for NO_ARG_CHECK.
737 2013-04-16  Janus Weil  <janus@gcc.gnu.org>
739         PR fortran/56968
740         * expr.c (gfc_check_pointer_assign): Handle generic functions returning
741         procedure pointers.
743 2013-04-16  Tobias Burnus  <burnus@net-b.de>
745         PR fortran/56969
746         * intrinsic.c (gfc_intrinsic_func_interface): Don't set
747         module name to "(intrinsic)" for intrinsics from intrinsic
748         modules.
750 2013-04-15  Tobias Burnus  <burnus@net-b.de>
752         * intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
754 2013-04-15  Janne Blomqvist  <jb@gcc.gnu.org>
756         PR fortran/56919
757         * intrinsics.texi (SYSTEM_CLOCK): Update documentation.
759 2013-04-15  Tobias Burnus  <burnus@net-b.de>
761         * class.c (gfc_find_intrinsic_vtab): Removed unused var.
762         * dependency.c (check_data_pointer_types): Fix check.
763         * frontend-passes.c (check_data_pointer_types): Remove
764         superfluous statement.
765         * parse.c (decode_omp_directive): Add missing break.
766         * resolve.c (resolve_typebound_subroutine: Free variable.
767         * trans-decl.c (create_function_arglist): Correct condition.
769 2013-04-14  Mikael Morin  <mikael@gcc.gnu.org>
771         PR fortran/56816
772         * match.c (gfc_match_select_type): Add syntax error. Move namespace
773         allocation and cleanup...
774         * parse.c (decode_statement): ... here.
776 2013-04-13  Janus Weil  <janus@gcc.gnu.org>
778         PR fortran/55959
779         * expr.c (gfc_simplify_expr): Branch is not unreachable.
781 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
783         PR fortran/56266
784         * primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
786 2013-04-12  Tobias Burnus  <burnus@net-b.de>
788         PR fortran/56929
789         * trans-array.c (duplicate_allocatable): Fix handling
790         of scalar coarrays.
792 2013-04-12  Janus Weil  <janus@gcc.gnu.org>
794         PR fortran/56261
795         * gfortran.h (gfc_explicit_interface_required): New prototype.
796         * expr.c (gfc_check_pointer_assign): Check if an explicit interface is
797         required in a proc-ptr assignment.
798         * interface.c (check_result_characteristics): Extra check.
799         * resolve.c (gfc_explicit_interface_required): New function.
800         (resolve_global_procedure): Use new function
801         'gfc_explicit_interface_required'. Do a full interface check.
803 2013-04-12  Tobias Burnus  <burnus@net-b.de>
805         PR fortran/56845
806         * trans-decl.c (gfc_trans_deferred_vars): Restrict
807         static CLASS init to SAVE and -fno-automatic.
809 2013-04-12  Tobias Burnus  <burnus@net-b.de>
811         PR fortran/56845
812         * trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
813         allocatable static BT_CLASS.
814         * trans-expr.c (gfc_class_set_static_fields): New function.
815         * trans.h (gfc_class_set_static_fields): New prototype.
817 2013-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
819         * gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
820         * arith.c: Replace gfc_try with bool type.
821         * array.c: Likewise.
822         * check.c: Likewise.
823         * class.c: Likewise.
824         * cpp.c: Likewise.
825         * cpp.h: Likewise.
826         * data.c: Likewise.
827         * data.h: Likewise.
828         * decl.c: Likewise.
829         * error.c: Likewise.
830         * expr.c: Likewise.
831         * f95-lang.c: Likewise.
832         * interface.c: Likewise.
833         * intrinsic.c: Likewise.
834         * intrinsic.h: Likewise.
835         * io.c: Likewise.
836         * match.c: Likewise.
837         * match.h: Likewise.
838         * module.c: Likewise.
839         * openmp.c: Likewise.
840         * parse.c: Likewise.
841         * parse.h: Likewise.
842         * primary.c: Likewise.
843         * resolve.c: Likewise.
844         * scanner.c: Likewise.
845         * simplify.c: Likewise.
846         * symbol.c: Likewise.
847         * trans-intrinsic.c: Likewise.
848         * trans-openmp.c: Likewise.
849         * trans-stmt.c: Likewise.
850         * trans-types.c: Likewise.
852 2013-04-09  Tobias Burnus  <burnus@net-b.de>
854         * gfortran.texi (KIND Type Parameters,
855         Internal representation of LOGICAL variables): Add crossrefs.
856         (Intrinsic Types): Mention issues with _Bool interop.
857         (Naming and argument-passing conventions): New section.
859 2013-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
861         PR fortran/56782
862         * frontend-passes.c (callback_reduction):  Don't do
863         any simplification if there is only a single element
864         which has an iterator.
866 2013-04-07  Tobias Burnus  <burnus@net-b.de>
868         PR fortran/56849
869         * iresolve.c (gfc_resolve_reshape): Set shape also
870         with order=.
872 2013-04-04  Janus Weil  <janus@gcc.gnu.org>
874         PR fortran/40881
875         * match.c (gfc_match_return): Remove standard notification.
876         * primary.c (gfc_match_actual_arglist): Add standard notification.
878 2013-04-04  Tobias Burnus  <burnus@net-b.de>
880         PR fortran/50269
881         * gcc/fortran/check.c (is_c_interoperable,
882         gfc_check_c_loc): Correct c_loc array checking
883         for Fortran 2003 and Fortran 2008.
885 2013-04-03  Janus Weil  <janus@gcc.gnu.org>
887         PR fortran/56284
888         PR fortran/40881
889         * decl.c (gfc_match_formal_arglist): Warn about alternate-return
890         arguments.
891         * interface.c (check_dummy_characteristics): Return if symbols are NULL.
893 2013-04-01  Janus Weil  <janus@gcc.gnu.org>
895         PR fortran/56500
896         * symbol.c (gfc_set_default_type): Build class container for
897         IMPLICIT CLASS.
899 2013-03-31  Tobias Burnus  <burnus@net-b.de>
901         * class.c (finalization_scalarizer, finalizer_insert_packed_call,
902         generate_finalization_wrapper): Avoid segfault with absent SIZE=
903         argument to TRANSFER and use correct result kind for SIZE.
904         * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
905         nonmodules.
906         * trans.c (gfc_build_final_call): Handle coarrays.
908 2013-03-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
910         * trans-expr.c (build_memcmp_call):  New function.
911         (gfc_build_compare_string):  If the strings
912         compared have constant and equal lengths and
913         the strings are kind=1, or, for kind=4 strings,
914         the test is for (in)equality, use memcmp().
916 2013-03-29  Tobias Burnus  <burnus@net-b.de>
918         PR fortran/35203
919         * trans-decl.c (create_function_arglist): Pass hidden argument
920         for passed-by-value optional+value dummies.
921         * trans-expr.c (gfc_conv_expr_present,
922         gfc_conv_procedure_call): Handle those.
924 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
926         PR fortran/45159
927         * gfortran.h (gfc_dep_difference):  Add prototype.
928         * dependency.c (discard_nops):  New function.
929         (gfc_dep_difference):  New function.
930         (check_section_vs_section):  Use gfc_dep_difference
931         to calculate the difference of starting indices.
932         * trans-expr.c (gfc_conv_substring):  Use
933         gfc_dep_difference to calculate the length of
934         substrings where possible.
936 2013-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
938         PR fortran/55806
939         * frontend-passes.c (optimize_code):  Keep track of
940         current code to make code insertion possible.
941         (combine_array_constructor):  New function.
942         (optimize_op):  Call it.
944 2013-03-27  Tobias Burnus  <burnus@net-b.de>
946         PR fortran/56650
947         PR fortran/36437
948         * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
949         gfc_check_storage_size): Update checks.
950         * intrinsic.texi (SIZEOF): Correct class.
951         * intrinsic.h (gfc_simplify_sizeof,
952         gfc_simplify_storage_size): New prototypes.
953         * intrinsic.c (add_functions): Use them.
954         * simplify.c (gfc_simplify_sizeof,
955         gfc_simplify_storage_size): New functions.
957 2013-03-27  Janne Blomqvist  <jb@gcc.gnu.org>
959         PR fortran/25708
960         * module.c (module_locus): Use long for position.
961         (module_content): New variable.
962         (module_pos): Likewise.
963         (prev_character): Remove.
964         (bad_module): Free data instead of closing mod file.
965         (set_module_locus): Use module_pos.
966         (get_module_locus): Likewise.
967         (module_char): use buffer rather than stdio file.
968         (module_unget_char): Likewise.
969         (read_module_to_tmpbuf): New function.
970         (gfc_use_module): Call read_module_to_tmpbuf.
972 2013-03-26  Tobias Burnus  <burnus@net-b.de>
974         PR fortran/56649
975         * simplify.c (gfc_simplify_merge): Simplify more.
977 2013-03-25  Tobias Burnus  <burnus@net-b.de>
979         PR fortran/38536
980         PR fortran/38813
981         PR fortran/38894
982         PR fortran/39288
983         PR fortran/40963
984         PR fortran/45824
985         PR fortran/47023
986         PR fortran/47034
987         PR fortran/49023
988         PR fortran/50269
989         PR fortran/50612
990         PR fortran/52426
991         PR fortran/54263
992         PR fortran/55343
993         PR fortran/55444
994         PR fortran/55574
995         PR fortran/56079
996         PR fortran/56378
997         * check.c (gfc_var_strlen): Properly handle 0-sized string.
998         (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
999         (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
1000         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
1001         functions.
1002         * expr.c (check_inquiry): Add c_sizeof, compiler_version and
1003         compiler_options.
1004         (gfc_check_pointer_assign): Refine function result check.
1005         gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
1006         GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
1007         GFC_ISYM_C_LOC.
1008         (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
1009         NAMED_SUBROUTINE.
1010         (generate_isocbinding_symbol): Update prototype.
1011         (get_iso_c_sym): Remove.
1012         (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
1013         * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
1014         (gfc_intrinsic_sub_interface): Use it.
1015         (add_functions, add_subroutines): Add missing C-binding intrinsics.
1016         (gfc_intrinsic_func_interface): Add special case for c_loc.
1017         gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
1018         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
1019         * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
1020         gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
1021         gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
1022         * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
1023         functions.
1024         * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
1025         NAMED_FUNCTION.
1026         * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
1027         * module.c (create_intrinsic_function): Support subroutines and
1028         derived-type results.
1029         (use_iso_fortran_env_module): Update calls.
1030         (import_iso_c_binding_module): Ditto; update calls to
1031         generate_isocbinding_symbol.
1032         * resolve.c (find_arglists): Skip for intrinsic symbols.
1033         (gfc_resolve_intrinsic): Find intrinsic subs via id.
1034         (is_scalar_expr_ptr, gfc_iso_c_func_interface,
1035         set_name_and_label, gfc_iso_c_sub_interface): Remove.
1036         (resolve_function, resolve_specific_s0): Remove calls to those.
1037         (resolve_structure_cons): Fix handling.
1038         * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
1039         generation.
1040         (gen_cptr_param, gen_fptr_param, gen_shape_param,
1041         build_formal_args, get_iso_c_sym): Remove.
1042         (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
1043         (generate_isocbinding_symbol): Support hidden symbols and
1044         using c_ptr/c_funptr symtrees for nullptr defs.
1045         * target-memory.c (gfc_target_encode_expr): Fix handling
1046         of c_ptr/c_funptr.
1047         * trans-expr.c (conv_isocbinding_procedure): Remove.
1048         (gfc_conv_procedure_call): Remove call to it.
1049         (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
1050         of c_ptr/c_funptr.
1051         * trans-intrinsic.c (conv_isocbinding_function,
1052         conv_isocbinding_subroutine): New.
1053         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
1054         Call them.
1055         * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
1056         * trans-types.c (gfc_typenode_for_spec,
1057         gfc_get_derived_type): Ditto.
1058         (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
1060 2013-03-18  Tobias Burnus  <burnus@net-b.de>
1062         * gfortran.h (gfc_option_t): Remove flag_whole_file.
1063         * invoke.texi (-fno-whole-file): Remove.
1064         * lang.opt (fwhole-file): Change to Ignore.
1065         * options.c (gfc_init_options, gfc_post_options,
1066         gfc_handle_option): Remove !flag_whole_file handling
1067         * parse.c (resolve_all_program_units, translate_all_program_units,
1068         gfc_parse_file): Ditto.
1069         * resolve.c (resolve_global_procedure): Ditto.
1070         * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1071         gfc_create_module_variable): Ditto.
1072         * trans-types.c (gfc_get_derived_type): Ditto.
1074 2013-03-15  Tobias Burnus  <burnus@net-b.de>
1076         PR fortran/56615
1077         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
1078         if they are not simply contiguous.
1080 2013-03-11  Tobias Burnus  <burnus@net-b.de>
1082         * gfortran.texi (STRUCTURE and RECORD): State more clearly how
1083         to convert them into derived types.
1085 2013-03-10  Paul Thomas  <pault@gcc.gnu.org>
1087         PR fortran/56575
1088         * expr.c (gfc_default_initializer): Check that a class declared
1089         type has any components.
1090         * resolve.c (resolve_fl_derived0): On failing the test for C437
1091         set the type to BT_UNKNOWN to prevent repeat error messages.
1093 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1095         PR fortran/56477
1096         * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
1098 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1100         PR fortran/54730
1101         * array.c (gfc_match_array_constructor): Set a checkpoint before
1102         matching a typespec.  Drop it on success, restore it otherwise.
1104 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1106         PR fortran/54730
1107         * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
1108         (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
1109         gfc_restore_last_undo_checkpoint): New prototypes.
1110         * symbol.c (default_undo_chgset_var): Update initialization.
1111         (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
1112         free_undo_change_set_data, pop_undo_change_set,
1113         gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
1114         New functions.
1115         (save_symbol_data): Handle multiple change sets.  Make sure old_symbol
1116         field's previous value is not overwritten.  Clear gfc_new field.
1117         (restore_old_symbol): Restore previous old_symbol field.
1118         (gfc_restore_last_undo_checkpoint): New function, using body renamed
1119         from gfc_undo_symbols.  Restore the previous change set as current one.
1120         (gfc_undo_symbols): New body.
1121         (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
1122         Call enforce_single_undo_checkpoint.
1123         (gfc_symbol_done_2): Ditto.  Free change set data.
1125 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1127         * symbol.c (restore_old_symbol): Fix thinko.
1129 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1131         * symbol.c (gfc_undo_symbols): Move code...
1132         (restore_old_symbol): ... here as a new function.
1134 2013-03-03  Mikael Morin  <mikael@gcc.gnu.org>
1136         * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
1137         * gfortran.h: Include vec.h.
1138         (gfc_undo_change_set): New struct.
1139         * symbol.c (tentative_tbp): Remove struct.
1140         (changed_syms, tentative_tbp_list): Remove variables.
1141         (default_undo_chgset_var, latest_undo_chgset): New variables.
1142         (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1143         gfc_commit_symbols, gfc_commit_symbol,
1144         gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
1145         Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
1147 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1149         PR fortran/56491
1150         * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
1151         * symbol.c (free_components): Free proc-pointer components.
1153 2013-03-01  Tobias Burnus  <burnus@net-b.de>
1155         * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
1156         * trans-io.c (build_dt): Ditto.
1158 2013-02-24  Joseph Myers  <joseph@codesourcery.com>
1160         * resolve.c (generate_component_assignments): Don't use UTF-8
1161         ligature in diagnostic.
1163 2013-02-21  Janus Weil  <janus@gcc.gnu.org>
1165         PR fortran/56385
1166         * trans-array.c (structure_alloc_comps): Handle procedure-pointer
1167         components with allocatable result.
1169 2013-02-21  Tobias Burnus  <burnus@net-b.de>
1171         PR fortran/56416
1172         * gfortran.texi (Part II: Language Reference, Extensions,
1173         Non-Fortran Main Program): Sort @menu to match actual section order.
1174         * intrinsic.texi (Intrinsic Procedures): Ditto.
1175         (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
1177 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1178             Mikael Morin  <mikael@gcc.gnu.org>
1180         PR fortran/56318
1181         * simplify.c (gfc_simplify_matmul): Fix result shape
1182         and matmul result.
1184 2013-02-15  Tobias Burnus  <burnus@net-b.de>
1186         PR fortran/53818
1187         * resolve.c (apply_default_init_local): Don't create an
1188         initializer for a result variable.
1190 2013-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1192         PR fortran/56224
1193         * gfortran.h (gfc_add_include_path):  Add boolean argument
1194         for warn.
1195         * scanner.c (gfc_add_include_path):  Pass along warn argument
1196         to add_path_to_list.
1197         * options.c (gfc_post_options):  Add true warn argument to
1198         gfc_add_include_path.
1199         (gfc_handle_module_path_options):  Likewise.
1200         (gfc_handle_option): Also gfc_add_include_path for intrinsic
1201         modules, without warning.
1203 2013-02-14  Paul Thomas  <pault@gcc.gnu.org>
1204             Tobias Burnus  <burnus@net-b.de>
1206         PR testsuite/56138
1207         * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
1208         results for functions without extra result variable.
1210         Revert:
1211         2013-01-30  Tobias Burnus  <burnus@net-b.de>
1213         PR fortran/56138
1214         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1215         results for functions without extra result variable.
1217 2013-02-12  Janus Weil  <janus@gcc.gnu.org>
1219         PR fortran/46952
1220         * resolve.c (resolve_call): Do not check deferred procedures for
1221         recursiveness.
1223 2013-02-09  Paul Thomas  <pault@gcc.gnu.org>
1225         PR fortran/55362
1226         * check.c (array_check): It is an error if a procedure is
1227         passed.
1229 2013-02-08  Mikael Morin  <mikael@gcc.gnu.org>
1231         PR fortran/54107
1232         * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
1233         to error_mark_node on entry.  Detect recursive types.  Build a variadic
1234         procedure type if the type is recursive.  Restore the initial
1235         backend_decl.
1237 2013-02-07  Tobias Burnus  <burnus@net-b.de>
1239         PR fortran/54339
1240         * gfortran.texi (Standards): Mention TS29113.
1241         (Varying Length Character): Mention deferred-length
1242         strings.
1243         (Fortran 2003 Status): Add unlimited polymorphic.
1244         (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
1245         (C Interop): Update the section about TS29113.
1247 2013-02-06 Paul Thomas  <pault@gcc.gnu.org>
1249         PR fortran/55789
1250         * trans-array.c (trans_array_constructor): Remove condition
1251         'dynamic' = true if the loop ubound is a VAR_DECL.
1253 2013-02-04  Paul Thomas  <pault@gcc.gnu.org>
1255         PR fortran/56008
1256         PR fortran/47517
1257         * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
1258         the lhs descriptor before it is modified for reallocation. Use
1259         it to deallocate allocatable components in the reallocation
1260         block.  Nullify allocatable components for newly (re)allocated
1261         arrays.
1263 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1265         PR fortran/54195
1266         * resolve.c (resolve_typebound_procedures): Recurse through
1267         resolve_symbol.
1269 2013-02-04  Mikael Morin  <mikael@gcc.gnu.org>
1271         PR fortran/54107
1272         PR fortran/54195
1273         * gfortran.h (struct gfc_symbol): New field 'resolved'.
1274         * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
1275         (resolve_symbol): Skip duplicate calls.  Don't check the current
1276         namespace.
1278 2013-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1280         PR fortran/50627
1281         PR fortran/56054
1282         * decl.c (gfc_match_end):  Remove half-ready namespace
1283         from parent if the end of a block is missing.
1284         * parse.c (parse_module):  Do not put namespace into
1285         gsymbol on error.
1287 2013-01-30  Tobias Burnus  <burnus@net-b.de>
1289         PR fortran/56138
1290         * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
1291         results for functions without extra result variable.
1293 2013-01-29  Janus Weil  <janus@gcc.gnu.org>
1294             Mikael Morin  <mikael@gcc.gnu.org>
1296         PR fortran/54107
1297         * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
1298         (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
1299         gfc_expr_replace_comp): Delete.
1300         (gfc_sym_get_dummy_args): New prototype.
1301         * dependency.c (gfc_check_fncall_dependency): Use
1302         'gfc_sym_get_dummy_args'.
1303         * expr.c (gfc_is_constant_expr): Ditto.
1304         (replace_symbol,gfc_expr_replace_symbols,replace_comp,
1305         gfc_expr_replace_comp): Deleted.
1306         * frontend-passes.c (doloop_code,do_function): Use
1307         'gfc_sym_get_dummy_args'.
1308         * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
1309         gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
1310         gfc_check_typebound_override): Ditto.
1311         * module.c (MOD_VERSION): Bump module version.
1312         (mio_component): Do not read/write 'formal' and 'formal_ns'.
1313         * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
1314         copy formal args, but just keep a pointer to the interface.
1315         (resolve_function,resolve_call,resolve_typebound_generic_call,
1316         resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
1317         resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
1318         resolve_typebound_procedure,check_uop_procedure): Use
1319         'gfc_sym_get_dummy_args'.
1320         * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
1321         (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
1322         (gfc_sym_get_dummy_args): New function.
1323         * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
1324         Use 'gfc_sym_get_dummy_args'.
1325         * trans-decl.c (build_function_decl,create_function_arglist,
1326         build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
1327         add_argument_checking): Ditto.
1328         * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
1329         gfc_conv_statement_function): Ditto.
1330         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1331         * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
1333 2013-01-28  Tobias Burnus  <burnus@net-b.de>
1334             Mikael Morin  <mikael@gcc.gnu.org>
1336         PR fortran/53537
1337         * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
1338         interface block.
1339         (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
1340         * decl.c (gfc_match_data_decl): Ditto.
1341         (variable_decl): Remove undeclared type error.
1342         (gfc_match_import): Use renamed instead of original name.
1344 2013-01-27 Paul Thomas  <pault@gcc.gnu.org>
1346         PR fortran/55984
1347         PR fortran/56047
1348         * gfortran.h : Add associate_var to symbol_attr.
1349         * resolve.c (resolve_assoc_var): Set associate_var attribute.
1350         If the target class_ok is set, set it for the associate
1351         variable.
1352         * check.c (allocatable_check): Associate variables should not
1353         have the allocatable attribute even if their symbols do.
1354         * class.c (gfc_build_class_symbol): Symbols with associate_var
1355         set will always have a good class container.
1357 2013-01-23  Janus Weil  <janus@gcc.gnu.org>
1359         PR fortran/56081
1360         * resolve.c (resolve_select): Add argument 'select_type', reject
1361         non-scalar expressions.
1362         (resolve_select_type,resolve_code): Pass new argument to
1363         'resolve_select'.
1365 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
1367         PR fortran/56052
1368         * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
1369         and DECL_IGNORED_P on select_type_temporary and don't set
1370         DECL_BY_REFERENCE.
1372 2013-01-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1374         PR fortran/55919
1375         * scanner.c (add_path_to_list): Copy path to temporary and strip
1376         trailing directory separators before calling stat().
1378 2013-01-17  Richard Biener  <rguenther@suse.de>
1380         * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
1381         dependent on sign of step, avoids repeated evaluation of
1382         step sign test.  Avoid undefined overflow issues by using unsigned
1383         arithmetic.
1385 2013-01-16  Janus Weil  <janus@gcc.gnu.org>
1387         PR fortran/55983
1388         * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
1389         asserting it.
1391 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1392             Tobias Burnus  <burnus@net-b.de>
1394         PR driver/55884
1395         * lang.opt (fintrinsic-modules-path): Don't accept Joined.
1396         (fintrinsic-modules-path=): New.
1397         * options.c (gfc_handle_option, gfc_get_option_string,
1398         gfc_get_option_string): Handle the latter.
1400 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1402         PR fortran/52865
1403         * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
1404         and use value of countm1 before the decrement in the condition.
1406 2013-01-15  Paul Thomas  <pault@gcc.gnu.org>
1408         PR fortran/54286
1409         * expr.c (gfc_check_pointer_assign): Check for presence of
1410         's2' before using it.
1412 2013-01-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1414         PR fortran/55806
1415         * frontend-passes.c (optimize_reduction):  New function,
1416         including prototype.
1417         (callback_reduction):  Likewise.
1418         (gfc_run_passes):  Also run optimize_reduction.
1419         (copy_walk_reduction_arg):  New function.
1420         (dummy_code_callback):  New function.
1422 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
1424         PR fortran/55935
1425         * trans-expr.c (gfc_conv_structure): Call
1426         unshare_expr_without_location on the ctor elements.
1428 2013-01-13  Paul Thomas  <pault@gcc.gnu.org>
1430         PR fortran/54286
1431         * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
1432         and rvalue interfaces are presented to gfc_compare_interfaces.
1433         Simplify references to interface names by using the symbols
1434         themselves. Call gfc_compare_interfaces with s1 and s2 inter-
1435         changed to overcome the asymmetry of this function. Do not
1436         repeat the check for the presence of s1 and s2.
1438 2013-01-12  Janus Weil  <janus@gcc.gnu.org>
1440         PR fortran/55072
1441         * trans-array.c (gfc_conv_array_parameter): No packing was done for
1442         full arrays of derived type.
1444 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1446         PR fortran/55868
1447         * class.c (get_unique_type_string): Change $tar to STAR and
1448         replace sprintf by strcpy where there is no formatting.
1449         * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
1451 2013-01-09  Mikael Morin  <mikael@gcc.gnu.org>
1453         PR fortran/47203
1454         * module.c (check_for_ambiguous): Get the current program unit using
1455         gfc_current_ns.
1457 2013-01-09  Tobias Burnus  <burnus@net-b.de>
1459         PR fortran/55758
1460         * resolve.c (resolve_symbol): Reject non-C_Bool logicals
1461         in BIND(C) procedures with -std=f*.
1463 2013-01-08  Paul Thomas  <pault@gcc.gnu.org>
1465         PR fortran/55618
1466         * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
1467         character function arguments to elemental procedures in
1468         scalarization loops.
1470 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1472         PR fortran/55763
1473         * gfortran.h (gfc_check_assign_symbol): Update prototype.
1474         * decl.c (add_init_expr_to_sym, do_parm): Update call.
1475         * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
1476         improve error location; support components.
1477         (gfc_check_pointer_assign): Handle component assignments.
1478         * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
1479         (resolve_values): Update call.
1480         (resolve_structure_cons): Avoid double diagnostic.
1482 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1483             Thomas Koenig  <tkoenig@gcc.gnu.org>
1485         PR fortran/55852
1486         * expr.c (gfc_build_intrinsic_call): Avoid clashes
1487         with user's procedures.
1488         * gfortran.h (gfc_build_intrinsic_call): Update prototype.
1489         * simplify.c (gfc_simplify_size): Update call.
1490         * class.c (finalization_scalarizer, finalization_get_offset,
1491         finalizer_insert_packed_call, generate_finalization_wrapper):
1492         Clean up by using gfc_build_intrinsic_call.
1494 2013-01-07  Tobias Burnus  <burnus@net-b.de>
1496         PR fortran/55763
1497         * resolve.c (resolve_select_type): Reject intrinsic types for
1498         a non-unlimited-polymorphic selector.
1500 2013-01-06  Paul Thomas  <pault@gcc.gnu.org>
1502         PR fortran/53876
1503         PR fortran/54990
1504         PR fortran/54992
1505         * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
1506         to see if it is GFC_CLASS_TYPE_P.
1507         * trans-expr.c (gfc_get_vptr_from_expr): The same.
1508         (gfc_conv_class_to_class): If the types are not the same,
1509         cast parmese->expr to the type of ctree.
1510         * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
1511         CLASS components must be set.
1513 2013-01-06  Mikael Morin  <mikael@gcc.gnu.org>
1515         PR fortran/42769
1516         PR fortran/45836
1517         PR fortran/45900
1518         * module.c (read_module): Don't reuse local symtree if the associated
1519         symbol isn't exactly the one wanted.  Don't reuse local symtree if it is
1520         ambiguous.
1521         * resolve.c (resolve_call): Use symtree's name instead of symbol's to
1522         lookup the symtree.
1524 2013-01-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1525             Mikael Morin  <mikael@gcc.gnu.org>
1527         PR fortran/55827
1528         * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
1529         e->symtree == NULL.
1530         * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
1532 2013-01-05  Tobias Burnus  <burnus@net-b.de>
1534         * class.c (finalize_component): Used passed offset expr.
1535         (finalization_get_offset): New static function.
1536         (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
1537         to handle noncontiguous arrays.
1539 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1541         * trans.c (gfc_build_final_call): New function.
1542         * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
1543         New function prototypes.
1544         * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
1545         conv_scalar_to_descriptor, removed static attribute.
1546         (gfc_conv_procedure_call): Honor renaming.
1548 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1550         * intrinsic.c (add_functions): New internal intrinsic
1551         function GFC_PREFIX ("stride").
1552         * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
1553         * intrinsic.h (gfc_resolve_stride): New prototypes.
1554         * iresolve.c (gfc_resolve_stride): New function.
1555         * trans-intrinsic.c (conv_intrinsic_stride): New static
1556         function.
1557         (gfc_conv_intrinsic_function): Use it.
1559 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1561         * class.c (gfc_find_intrinsic_vtab): Add _final
1562         component.
1563         * decl.c (gfc_match_null): Remove superfluous
1564         variadic argument to gfc_match.
1566 2013-01-04  Paul Thomas  <pault@gcc.gnu.org>
1568         PR fortran/55172
1569         * match.c (copy_ts_from_selector_to_associate): Remove call to
1570         gfc_resolve_expr and replace it with explicit setting of the
1571         array reference type.
1572         * resolve.c (resolve_select_type): It is an error if the
1573         selector is coindexed.
1575 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1577         PR fortran/55763
1578         * decl.c (gfc_match_null): Parse and reject MOLD.
1580 2013-01-04  Tobias Burnus  <burnus@net-b.de>
1582         PR fortran/55854
1583         PR fortran/55763
1584         * class.c (gfc_class_null_initializer): Fix finding the vtab.
1585         (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
1587 2013-01-03  Janus Weil  <janus@gcc.gnu.org>
1589         PR fortran/55855
1590         * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
1591         of rvalue. Correct hyphenation in error message.
1593 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
1595         * gfortranspec.c (lang_specific_driver): Update copyright notice
1596         dates.
1598 Copyright (C) 2013 Free Software Foundation, Inc.
1600 Copying and distribution of this file, with or without modification,
1601 are permitted in any medium without royalty provided the copyright
1602 notice and this notice are preserved.