gcc/ChangeLog
[official-gcc.git] / gcc / fortran / ChangeLog
blobf67e501f4200408aa88eeaaefe211ccf913a6580
1 2012-08-24  Simon Baldwin  <simonb@google.com>
3         * lang.opt (-cpp=): Mark flag NoDWARFRecord.
5 2012-08-23  Tobias Burnus  <burnus@net-b.de>
7         PR fortran/54350
8         * trans-array.c (free_ss_info): Free data.array.subscript.
9         (gfc_free_ss): No longer free data.array.subscript.
10         (walk_coarray): New function, moved from trans-intrinsic.c
11         (gfc_conv_expr_descriptor): Walk array descriptor instead
12         of taking passed "ss".
13         (get_array_ctor_all_strlen, gfc_add_loop_ss_code,
14         gfc_conv_array_parameter): Update call and cleanup ss handling.
15         * trans-array.h (gfc_conv_expr_descriptor,
16         gfc_conv_array_parameter): Update prototype.
17         * trans-expr.c (gfc_conv_derived_to_class,
18         conv_isocbinding_procedure, gfc_conv_procedure_call,
19         gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
20         gfc_trans_pointer_assignment, gfc_trans_arrayfunc_assign): Update
21         call to gfc_conv_expr_descriptor and gfc_conv_array_parameter, and
22         clean up.
23         * trans-intrinsic.c (walk_coarray): Moved to trans-array.c
24         (trans_this_image, trans_image_index, gfc_conv_intrinsic_rank
25         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_cobound,
26         gfc_conv_intrinsic_len, gfc_conv_intrinsic_size,
27         gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size,
28         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
29         gfc_conv_associated, gfc_conv_intrinsic_loc,
30         conv_intrinsic_move_alloc): Update calls.
31         * trans-io.c (gfc_convert_array_to_string, set_internal_unit,
32         gfc_trans_transfer): Ditto.
33         * trans-stmt.c (gfc_conv_elemental_dependencies,
34         gfc_trans_sync, trans_associate_var,
35         gfc_trans_pointer_assign_need_temp): Ditto.
37 2012-08-23  Jakub Jelinek  <jakub@redhat.com>
39         * trans-decl.c (trans_function_start, generate_coarray_init,
40         create_main_function, gfc_generate_constructors): Call
41         allocate_struct_function instead of init_function_start.
43 2012-08-22  Tobias Burnus  <burnus@net-b.de>
45         * trans-expr.c (gfc_copy_class_to_class,
46         gfc_trans_arrayfunc_assign): Free loop and ss data.
47         * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.
49 2012-08-21  Tobias Burnus  <burnus@net-b.de>
51         * parse.c (parse_contained): Include EXEC_END_PROCEDURE
52         in ns->code to make sure the gfc_code is freed.
54 2012-08-20  Tobias Burnus  <burnus@net-b.de>
56         PR fortran/54301
57         * expr.c (gfc_check_pointer_assign): Warn when a pointer,
58         which is a function result, might outlive its target.
60 2012-08-20  Tobias Burnus  <burnus@net-b.de>
62         PR fortran/54301
63         * expr.c (gfc_check_pointer_assign): Warn when the pointer
64         might outlive its target.
65         * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
66         * options.c (gfc_init_options, set_wall, gfc_handle_option):
67         handle it.
68         * invoke.texi (-Wtarget-lifetime): Document it.
69         (-Wall): Implied it.
70         * lang.opt (-Wtarget-lifetime): New flag.
72 2012-08-19  Thomas König  <tkoenig@gcc.gnu.org>
74         PR fortran/54298
75         * gfortran.h (struct gfc_option_t): Add warn_compare_reals.
76         * lang.opt:  Add Wcompare-reals.
77         * invoke.texi:  Document -Wcompare-reals.
78         * resolve.c (resolve_operator):  If -Wcompare-reals is in effect,
79         warn about equality/inequality comparisions for REAL and COMPLEX.
80         * options.c (gfc_init_options):  Set warn_compare_reals.
81         (set_Wall):  Include warn_compare_reals in Wall.
82         (gfc_handle_option):  Handle Wcompare_reals.
84 2012-08-17  Jakub Jelinek  <jakub@redhat.com>
86         * array.c (gfc_match_array_ref): Fix up memset arguments.
88 2012-08-16   Diego Novillo  <dnovillo@google.com>
90         Revert
92         PR bootstrap/54281
93         * gfortran.h: Do not include gmp.h.
95 2012-08-16   Diego Novillo  <dnovillo@google.com>
97         PR bootstrap/54281
98         * gfortran.h: Do not include gmp.h.
100 2012-08-15  Janus Weil  <janus@gcc.gnu.org>
102         PR fortran/54243
103         PR fortran/54244
104         * resolve.c (check_typebound_baseobject): Check for class_ok attribute.
105         (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
106         attribute.
108 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
110         PR fortran/47586
111         * trans-expr.c (expr_is_variable): Handle regular, procedure pointer,
112         and typebound functions returning a data pointer.
114 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
116         * decl.c (match_ppc_decl): Copy the procedure interface's symbol
117         as procedure interface's result.
119 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
121         * trans-expr.c (gfc_trans_scalar_assign): Rename argument,
122         extend comment.
124 2012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
126         * gfortran.h (gfc_get_proc_ptr_comp): New prototype.
127         (gfc_is_proc_ptr_comp): Update prototype.
128         * expr.c (gfc_get_proc_ptr_comp): New function based on the old
129         gfc_is_proc_ptr_comp.
130         (gfc_is_proc_ptr_comp): Call gfc_get_proc_ptr_comp.
131         (gfc_specification_expr, gfc_check_pointer_assign): Use
132         gfc_get_proc_ptr_comp.
133         * trans-array.c (gfc_walk_function_expr): Likewise.
134         * resolve.c (resolve_structure_cons, update_ppc_arglist,
135         resolve_ppc_call, resolve_expr_ppc): Likewise.
136         (resolve_function): Update call to gfc_is_proc_ptr_comp.
137         * dump-parse-tree.c (show_expr): Likewise.
138         * interface.c (compare_actual_formal): Likewise.
139         * match.c (gfc_match_pointer_assignment): Likewise.
140         * primary.c (gfc_match_varspec): Likewise.
141         * trans-io.c (gfc_trans_transfer): Likewise.
142         * trans-expr.c (gfc_conv_variable, conv_function_val,
143         conv_isocbinding_procedure, gfc_conv_procedure_call,
144         gfc_trans_pointer_assignment): Likewise.
145         (gfc_conv_procedure_call, gfc_trans_array_func_assign):
146         Use gfc_get_proc_ptr_comp.
148 2012-08-14  Tobias Burnus  <burnus@net-b.de>
150         PR fortran/40881
151         * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag
152         when the error/warning has been printed.
153         * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET.
154         * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET.
155         * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET.
156         (parse_executable): Add obsolescence check for DATA.
157         * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET.
158         * symbol.c (gfc_define_st_label, gfc_reference_st_label):
159         Add obsolescence diagnostics.
160         * trans-stmt.c (gfc_trans_label_assign): Handle ST_LABEL_DO_TARGET.
162 2012-08-14  Tobias Burnus  <burnus@net-b.de>
164         PR fortran/54234
165         * check.c (gfc_check_cmplx): Add -Wconversion warning
166         when converting higher-precision REAL to default-precision
167         CMPLX without kind= parameter.
169 2012-08-12  Tobias Burnus  <burnus@net-b.de>
171         PR fortran/54221
172         * trans-decl.c (gfc_finish_var_decl, build_function_decl):
173         Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.
175 2012-08-09  Tobias Burnus  <burnus@net-b.de>
177         PR fortran/54199
178         * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
179         for internal procedures.
181 2012-08-06  Janus Weil  <janus@gcc.gnu.org>
183         PR fortran/35831
184         * interface.c (check_result_characteristics): New function, which checks
185         the characteristics of function results.
186         (gfc_compare_interfaces,gfc_check_typebound_override): Call it.
188 2012-08-02  Thomas König  <tkoenig@gcc.gnu.org>
190          PR fortran/54033
191          * scanner.c (add_path_to_list):  New argument warn.  Don't
192          warn if it is true.
193          (gfc_add_include_path):  Warn if directory is missing.
194          (gfc_add_intrinsic_modules_path):  Do not warn if directory
195          is missing.
196          * optinons.c (gfc_handle_option):  Do not add directory
197          for intrinsic modules to normal include path.
199 2012-08-03  Mikael Morin  <mikael@gcc.gnu.org>
201         PR fortran/54166
202         * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
204 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
206         PR fortran/48820
207         * trans-array.c (gfc_conv_ss_startstride): Set the intrinsic
208         result's lower and upper bounds according to the rank.
209         (set_loop_bounds): Set the loop upper bound in the intrinsic case.
211 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
213         * trans-array.c (set_loop_bounds): Allow non-array-section to be
214         chosen using the stride and lower bound criteria.
216 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
218         * trans-array.c (set_loop_bounds): Remove useless dimension check.
219         Don't update loopspec if it would loose the wanted stride criterion.
221 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
223         * trans-array.h (gfc_conv_descriptor_rank): New prototype.
224         * trans-array.c (gfc_conv_descriptor_rank): New function moved and
225         renamed ...
226         * trans-intrinsic.c (get_rank_from_desc): ... from this one.
227         (gfc_conv_intrinsic_rank, gfc_conv_intrinsic_bound,
228         gfc_conv_associated): Also rename function calls.
230 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
232         * iresolve.c (resolve_bound, gfc_resolve_shape):
233         Don't set the shape for assumed rank arrays.
234         * simplify.c (gfc_simplify_shape): Don't try to simplify if the
235         argument is assumed rank.
237 2012-08-02  Mikael Morin  <mikael@gcc.gnu.org>
239         * array.c (gfc_copy_array_ref): Don't copy the offset field.
240         * expr.c (find_array_section): Ignore the offset field.
241         * trans-expr.c (gfc_find_interface_mapping_to_ref): Don't apply
242         any interface mapping to the offset field.
243         * gfortran.h (struct gfc_array_ref): Remove the offset field.
245 2012-08-02  Janus Weil  <janus@gcc.gnu.org>
247         PR fortran/54147
248         * resolve.c (check_proc_interface): New routine for PROCEDURE interface
249         checks.
250         (resolve_procedure_interface,resolve_typebound_procedure,
251         resolve_fl_derived0): Call it.
253 2012-08-01  Thomas König  <tkoenig@gcc.gnu.org>
255         PR fortran/54033
256         * scanner.c (add_path_to_list): Emit warning if an error occurs
257         for an include path, if it is not present or if it is not a
258         directory.  Do not add the path in these cases.
260 2012-07-31  Janus Weil  <janus@gcc.gnu.org>
262         PR fortran/42418
263         * decl.c (match_procedure_interface): Move some checks to
264         'resolve_procedure_interface'. Set flavor if appropriate.
265         * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'.
266         * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which
267         identify a procedure as being non-intrinsic.
268         * resolve.c (resolve_procedure_interface): Checks moved here from
269         'match_procedure_interface'. Minor cleanup.
270         (resolve_formal_arglist,resolve_symbol): Cleanup of
271         'resolve_procedure_interface'
272         (resolve_actual_arglist,is_external_proc): Cleanup of
273         'gfc_is_intrinsic'.
275 2012-07-31  Janus Weil  <janus@gcc.gnu.org>
277         PR fortran/54134
278         * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL.
280 2012-07-31  Tobias Burnus  <burnus@net-b.de>
282         * interface.c (gfc_procedure_use): Return gfc_try instead of void.
283         * gfortran.h (gfc_procedure_use): Update prototype.
284         * resolve.c (gfc_iso_c_func_interface): Allow noninteroperable
285         procedures for c_funloc for TS29113.
286         * (gfc_iso_c_sub_interface): Ditto for c_f_procpointer. Add
287         diagnostic for c_ptr vs. c_funptr for c_f_(proc)pointer.
289 2012-07-30  Janus Weil  <janus@gcc.gnu.org>
291         PR fortran/51081
292         * gfortran.h (gfc_resolve_intrinsic): Add prototype.
293         * expr.c (gfc_check_pointer_assign): Set INTRINSIC attribute if needed.
294         Check for invalid intrinsics.
295         * primary.c (gfc_match_rvalue): Check for intrinsics came too early.
296         Set procedure flavor if appropriate.
297         * resolve.c (resolve_intrinsic): Renamed to gfc_resolve_intrinsic.
298         (resolve_procedure_interface,resolve_procedure_expression,
299         resolve_function,resolve_fl_derived0,resolve_symbol): Ditto.
301 2012-07-26  Mikael Morin  <mikael@gcc.gnu.org>
303         PR fortran/44354
304         * trans-array.c (gfc_trans_array_constructor_value):
305         Evaluate the iteration bounds before the inner variable shadows
306         the outer.
308 2012-07-26  Mikael Morin  <mikael@gcc.gnu.org>
310         PR fortran/44354
311         * array.c (sought_symbol): New variable.
312         (expr_is_sought_symbol_ref, find_symbol_in_expr): New functions.
313         (resolve_array_list): Check for references to the induction
314         variable in the iteration bounds and issue a diagnostic if some
315         are found.
317 2012-07-26  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
318             Tobias Burnus  <burnus@net-b.de>
320         * module.c (mio_array_spec): Don't read as->lower for
321         assumed-rank arrays.
323 2012-07-25  Tobias Burnus  <burnus@net-b.de>
325         * trans-types.c (gfc_real16_is_float128): Fix spelling
326         in a comment.
327         * trans.h (struct gfc_array_info): Ditto.
328         * gfortran.h (gfc_expr): Ditto.
329         * simplify.c (gfc_count): Ditto.
330         * trans-expr.c (gfc_copy_class_to_class,
331         conv_parent_component_references,
332         gfc_trans_pointer_assignment): Ditto.
333         * expr.c (check_pointer_assign): Fix diagnostic spelling.
334         * interface.c (compare_parameter): Ditto.
335         * parse.c (use_modules, parse_associate): Ditto.
336         * decl.c (match_char_length): Fix spelling of the
337         an function argument.
339 2012-07-21  Tobias Burnus  <burnus@net-b.de>
341         * iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
342         * intrinsic.texi (ISO_C_BINDING): Document it.
344 2012-07-21  Tobias Burnus  <burnus@net-b.de>
346         PR fortran/48820
347         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Support
348         lbound/ubound with dim= for assumed-rank arrays.
349         * array.c (gfc_set_array_spec): Reject coarrays with
350         assumed shape.
351         * decl.c (merge_array_spec): Ditto. Return gfc_try.
352         (match_attr_spec, match_attr_spec): Update call.
354 2012-07-21  Tobias Burnus  <burnus@net-b.de>
356         * resolve.c (resolve_formal_arglist): Put variable
357         declaration before the first assignment.
359 2012-07-21  Tobias Burnus  <burnus@net-b.de>
361         * trans-expr.c (gfc_conv_derived_to_class): Fix argument passed
362         to class_array_data_assign.
364 2012-07-20  Tobias Burnus  <burnus@net-b.de>
366         * decl.c (gfc_verify_c_interop_param): Allow assumed-shape
367         with -std=f2008ts.
369 2012-07-20  Tobias Burnus  <burnus@net-b.de>
371         PR fortran/48820
372         * array.c (match_array_element_spec, gfc_match_array_spec,
373         spec_size, gfc_array_dimen_size): Add support for
374         assumed-rank arrays.
375         * check.c (dim_rank_check): Ditto.
376         * class.c (gfc_add_component_ref): Ditto.
377         (gfc_build_class_symbol): Regard assumed-rank arrays
378         as having GFC_MAX_DIMENSIONS. And build extra class
379         container for a scalar pointer class.
380         * decl.c (merge_array_spec): Add assert.
381         * dump-parse-tree.c (show_array_spec): Add support for
382         assumed-rank arrays.
383         * expr.c (gfc_is_simply_contiguous): Ditto.
384         * gfortran.h (array_type): Ditto.
385         (gfc_array_spec, gfc_expr): Add comment to "rank" field.
386         * interface.c (compare_type_rank, argument_rank_mismatch,
387         compare_parameter, gfc_procedure_use): Ditto.
388         (compare_actual_formal): Fix NULL() to optional-dummy
389         handling for polymorphic dummies.
390         * module.c (mio_typespec): Add support for
391         assumed-rank arrays.
392         * resolve.c (resolve_formal_arglist, resolve_actual_arglist,
393         resolve_elemental_actual, resolve_global_procedure,
394         expression_shape, resolve_variable, update_ppc_arglist,
395         check_typebound_baseobject, gfc_resolve_expr,
396         resolve_fl_var_and_proc, gfc_resolve_finalizers,
397         resolve_typebound_procedure, resolve_symbol): Ditto.
398         (assumed_type_expr_allowed): Remove static variable.
399         (actual_arg, first_actual_arg): New static variables.
400         * simplify.c (simplify_bound, gfc_simplify_range): Add
401         support for assumed-rank arrays.
402         * trans-array.c (gfc_conv_array_parameter): Ditto.
403         (gfc_get_descriptor_dimension): New function, which returns
404         the descriptor.
405         (gfc_conv_descriptor_dimension): Use it.
406         (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
407         Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
408         * trans-array.h (gfc_get_descriptor_dimension): New prototype.
409         * trans-decl. (gfc_build_dummy_array_decl,
410         gfc_trans_deferred_vars, add_argument_checking): Add
411         support for assumed-rank arrays.
412         * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
413         gfc_conv_procedure_call): Ditto.
414         (get_scalar_to_descriptor_type, class_array_data_assign,
415         conv_scalar_to_descriptor): New static functions.
416         (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
417         them.
418         * trans-intrinsic.c (get_rank_from_desc): New function.
419         (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
420         * trans-types.c (gfc_array_descriptor_base_caf,
421         gfc_array_descriptor_base): Make space for scalar array.
422         (gfc_is_nodesc_array, gfc_is_nodesc_array,
423         gfc_build_array_type, gfc_get_array_descriptor_base): Add
424         support for assumed-rank arrays.
425         * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
426         GFC_ARRAY_ASSUMED_RANK_CONT.
428 2012-07-19  Tobias Burnus  <burnus@net-b.de>
430         * trans-expr.c (gfc_conv_procedure_call): Fix handling
431         of polymorphic arguments.
432         * resolve.c (resolve_formal_arglist): Ditto, mark polymorphic
433         assumed-shape arrays as such.
435 2012-07-19  Tobias Burnus  <burnus@net-b.de>
437         * interface.c (compare_parameter, compare_actual_formal): Fix
438         handling of polymorphic arguments.
440 2012-07-17  Janus Weil  <janus@gcc.gnu.org>
442         PR fortran/51081
443         * error.c (gfc_notify_std): Automatically print the relevant Fortran
444         standard version.
445         * arith.c (arith_power): Remove explicit standard reference string.
446         * array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto.
447         * check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count,
448         gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand,
449         gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior,
450         gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max,
451         gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind,
452         gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound,
453         gfc_check_verify): Ditto.
454         * data.c (gfc_assign_data_value): Ditto.
455         * decl.c (var_element, char_len_param_value, match_char_length,
456         gfc_verify_c_interop_param, match_pointer_init, variable_decl,
457         gfc_match_decl_type_spec, gfc_match_import, match_attr_spec, 
458         gfc_match_prefix, gfc_match_suffix, match_ppc_decl,
459         match_procedure_in_interface, gfc_match_procedure,gfc_match_entry,
460         gfc_match_subroutine, gfc_match_end, gfc_match_codimension,
461         gfc_match_protected, gfc_match_value, gfc_match_volatile,
462         gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec,
463         gfc_match_enum, match_procedure_in_type): Ditto.
464         * expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign):
465         Ditto.
466         * interface.c (gfc_match_abstract_interface, check_interface0): Ditto.
467         * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
468         * io.c (format_lex, resolve_tag_format, resolve_tag,
469         compare_to_allowed_values, gfc_match_open, gfc_match_rewind,
470         gfc_resolve_dt, gfc_match_wait): Ditto.
471         * match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical,
472         gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop,
473         gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto,
474         gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto.
475         * module.c (gfc_match_use, gfc_use_module): Ditto.
476         * parse.c (parse_derived_contains, parse_block_construct,
477         parse_associate, parse_contained): Ditto.
478         * primary.c (match_hollerith_constant, match_boz_constant,
479         match_real_constant, match_sym_complex_part, match_arg_list_function,
480         build_actual_constructor, gfc_convert_to_structure_constructor): Ditto.
481         * resolve.c (resolve_formal_arglist, resolve_entries,
482         resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1,
483         gfc_resolve_iterator_expr, resolve_ordinary_assign,
484         resolve_fl_var_and_proc, resolve_fl_variable_derived,
485         resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived,
486         resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto.
487         * symbol.c (check_conflict, conflict, gfc_add_is_bind_c,
488         gfc_add_extension, gfc_check_symbol_typed): Ditto.
490 2012-07-17  Tobias Burnus  <burnus@net-b.de>
492         PR fortran/53985
493         * decl.c (gfc_verify_c_interop_param): Make warning conditional
494         on -Wc-binding-type works and improve the wording.
496 2012-07-17  Tobias Burnus  <burnus@net-b.de>
498         PR fortran/52101
499         * decl.c (match_char_length): Extra argument, show obsolenscent
500         warning only if *length is used after the typename.
501         (variable_decl, gfc_match_char_spec): Update call
503 2012-07-17  Tobias Burnus  <burnus@net-b.de>
504             Steven G. Kargl  <kargl@gcc.gnu.org>
506         PR fortran/49265
507         * decl.c (match_procedure_in_interface): Support "::" for
508         Fortran 2008 and later.
510 2012-07-16  Thomas König  <tkoenig@gcc.gnu.org>
512         PR fortran/53824
513         * resolve.c (resolve_allocate_deallocate):  If both
514         start indices are NULL, skip the test for equality.
516 2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>
518         * f95-lang.c: Include dumpfile.h instead of tree-dump.h.
519         * Make-lang.in: Fix dependencies.
521 2012-07-16  Janus Weil  <janus@gcc.gnu.org>
523         PR fortran/53956
524         * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified
525         prototypes.
526         * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source
527         of dummy procedures.
528         (gfc_copy_formal_args_ppc): Ditto.
529         * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to
530         gfc_copy_formal_args.
531         (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc.
533 2012-07-12  Tobias Burnus  <burnus@net-b.de>
535         * trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code
536         inline.
538 2012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
540         * trans.c: Do not include defaults.h.
541         * trans-intrinsic.c: Likewise.
543 2012-07-08  Steven Bosscher  <steven@gcc.gnu.org>
545         * gfortran.h: Do not include coretypes.h here.
546         Make it an error to include this before coretypes.h
547         * openmp.c: Include coretypes.h.
548         * interface.c: Likewise.
549         * intrinsic.c: Likewise.
550         * symbol.c: Likewise.
551         * class.c: Likewise.
552         * decl.c: Likewise.
553         * matchexp.c: Likewise.
554         * dump-parse-tree.c: Likewise.
555         * array.c: Likewise.
556         * constructor.c: Likewise.
557         * error.c: Likewise.
558         * data.c: Likewise.
559         * expr.c: Likewise.
560         * module.c: Likewise.
561         * scanner.c: Likewise.
562         * bbt.c: Likewise.
563         * io.c: Likewise.
564         * frontend-passes.c: Likewise.
565         * resolve.c: Likewise.
566         * st.c: Likewise.
567         * target-memory.c: Likewise.
568         * match.c: Likewise.
569         * arith.c: Likewise.
570         * parse.c: Likewise.
571         * check.c: Likewise.
572         * dependency.c: Likewise.
573         * primary.c: Likewise.
574         * misc.c: Likewise.
575         * simplify.c: Likewise.
577 2012-07-05  Mikael Morin  <mikael@gcc.gnu.org>
579         PR fortran/53732
580         * trans-array.c (gfc_add_loop_ss_code): Disable self recursive calls
581         handling nested loop(s) if the subscript flag is true.
583 2012-07-05  Uros Bizjak  <ubizjak@gmail.com>
585         PR fortran/53449
586         * parse.c (gfc_parse_file): Initialize errors_before.
588 2012-06-27  Janus Weil  <janus@gcc.gnu.org>
590         PR fortran/41951
591         PR fortran/49591
592         * interface.c (check_new_interface): Rename, add 'loc' argument,
593         make non-static.
594         (gfc_add_interface): Rename 'check_new_interface'
595         * gfortran.h (gfc_check_new_interface): Add prototype.
596         * resolve.c (resolve_typebound_intrinsic_op): Add typebound operator
597         targets to non-typebound operator list.
599 2012-06-22  Janus Weil  <janus@gcc.gnu.org>
601         PR fortran/47710
602         PR fortran/53328
603         * interface.c (count_types_test, generic_correspondence,
604         gfc_compare_interfaces): Ignore PASS arguments.
605         (check_interface1, compare_parameter): Pass NULL arguments to
606         gfc_compare_interfaces.
607         * gfortran.h (gfc_compare_interfaces): Modified prototype.
608         * expr.c (gfc_check_pointer_assign): Pass NULL arguments to
609         gfc_compare_interfaces.
610         * resolve.c (resolve_structure_cons): Ditto.
611         (check_generic_tbp_ambiguity): Determine PASS arguments and pass them
612         to gfc_compare_interfaces.
614 2012-06-21  Janne Blomqvist  <jb@gcc.gnu.org>
616         PR fortran/39654
617         * iresolve.c (gfc_resolve_ftell): Fix result kind and use new
618         library function.
620 2012-06-18  Tobias Burnus  <burnus@net-b.de>
622         * intrinsic.h (gfc_resolve_rank): New prototype.
623         * intrinsic.c (add_functions): Use gfc_resolve_rank.
624         * iresolve.c (add_functions): New function.
625         * trans-intrinsic.c (gfc_conv_intrinsic_rank): New function.
626         (gfc_conv_intrinsic_function): Call it.
628 2012-06-18  Tobias Burnus  <burnus@net-b.de>
630         PR fortran/53692
631         * trans-array.c (set_loop_bounds): Don't scalarize via absent
632         optional arrays.
633         * resolve.c (resolve_elemental_actual): Don't stop resolving after printing
634         a warning.
636 2012-06-18  Tobias Burnus  <burnus@net-b.de>
638         PR fortran/53526
639         * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
641 2012-06-18  Tobias Burnus  <burnus@net-b.de>
643         PR fortran/53526
644         * check.c (gfc_check_move_alloc): Reject coindexed actual arguments
645         and those with different corank.
647 2012-06-17  Tobias Burnus  <burnus@net-b.de>
649         PR fortran/53691
650         PR fortran/53685
651         * check.c (gfc_calculate_transfer_sizes): Return if
652         SIZE= is not constant or source-size cannot be determined.
654 2012-06-16  Tobias Burnus  <burnus@net-b.de>
656         PR fortran/53642
657         PR fortran/45170
658         * frontend-passes.c (optimize_assignment): Don't remove RHS's
659         trim when assigning to a deferred-length string.
660         * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
661         length is evaluated before the deferred-length LHS is reallocated.
663 2012-06-13  Tobias Burnus  <burnus@net-b.de>
665         PR fortran/53643
666         * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays.
667         * trans-array.c (structure_alloc_comps): Don't loop for
668         scalar coarrays.
670 2012-06-13  Tobias Burnus  <burnus@net-b.de>
672         PR fortran/53597
673         * decl.c (match_attr_spec): Only mark module variables
674         as SAVE_IMPLICIT for Fortran 2008 and later.
676 2012-06-08  Janus Weil  <janus@gcc.gnu.org>
678         PR fortran/52552
679         * match.c (gfc_match_allocate): Modify order of checks. Change wording
680         of error message. Remove FIXME note.
681         * resolve.c (resolve_allocate_expr): Add a comment.
683 2012-06-07  Thomas König  <tkoenig@gcc.gnu.org>
685         PR fortran/52861
686         * frontend-passes.c (optimize_assignment):  Don't set the
687         length of an empty string for deferred-length character
688         variables.
690 2012-06-07  Thomas König  <tkoenig@gcc.gnu.org>
692         PR fortran/52861
693         * frontend-passes.c (empty_string):  Add prototype.
694         (optimize_assignment):  Set the length of an empty string
695         constant to zero.
697 2012-06-04  Tobias Burnus  <burnus@net-b.de>
699         PR fortran/50619
700         * resolve.c (build_default_init_expr): Don't initialize
701         ASSOCIATE names.
703 2012-06-03  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
704             Tobias Burnus  <burnus@net-b.de>
706         PR fortran/48831
707         * gfortran.h (gfc_check_init_expr): Add prototype declaration
708         of function.
709         * check.c (kind_check): Change if condition to use
710         to gfc_check_init_expr.
711         * expr.c (check_init_expr): Remove forward declaration
712         and static keyword. Change name in gfc_check_init_expr.
713         (scalarize_intrinsic_call, check_init_expr_arguments,
714         check_inquiry, check_conversion, gfc_reduce_init_expr): Update
715         call to gfc_check_init_expr.
717 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
719         * trans-common.c: Do not include output.h.
720         * trans-decl.c: Likewise.
722 2012-05-31  Tobias Burnus  <burnus@net-b.de>
724         PR fortran/53521
725         * trans.c (gfc_deallocate_scalar_with_status): Properly
726         handle the case size == 0.
728 2012-05-30  Tobias Burnus  <burnus@net-b.de>
730         PR c/53502
731         * decl.c (match_attr_spec): Remove "typedef".
733 2012-05-30  Tobias Burnus  <burnus@net-b.de>
735         * decl.c: Fix comment typos.
736         * expr.c: Ditto.
737         * frontend-passes.c: Ditto.
738         * match.c: Ditto.
739         * resolve.c: Ditto.
740         * trans-array.c: Ditto.
741         * trans-common.c: Ditto.
742         * trans-intrinsic.c: Ditto.
743         * trans-types.c: Ditto.
745 2012-05-23  Tobias Burnus  <burnus@net-b.de>
747         PR fortran/51055
748         PR fortran/45170
749         * match.c (gfc_match_allocate): Set length_from_typespec
750         for characters.
751         * resolve.c (resolve_charlen): If set, don't check whether
752         the len is a specification expression.
754 2012-05-22  Tobias Burnus  <burnus@net-b.de>
756         PR fortran/53389
757         * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
758         ss->is_alloc_lhs is set.
760 2012-05-22  Dodji Seketeli  <dodji@redhat.com>
762         PR c++/53322
763         * f95-lang.c (gfc_init_builtin_functions): Remove the unused
764         typedef builtin_type.
766 2012-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
768         PR fortran/52428
769         * gfortran.texi: Update _gfortran_set_options documentation.
770         * invoke.texi: Remove runtime behavior description of
771         -fno-range-check.
772         * trans-decl.c (create_main_function): Don't pass the range-check
773         setting to the library.
775 2012-05-14  Tobias Burnus  <burnus@net-b.de>
777         PR fortran/49110
778         PR fortran/51055
779         PR fortran/53329
780         * trans-expr.c (gfc_trans_assignment_1): Fix allocation
781         handling for assignment of function results to allocatable
782         deferred-length strings.
783         * trans-decl.c (gfc_create_string_length): For deferred-length
784         module variables, include module name in the assembler name.
785         (gfc_get_symbol_decl): Don't override the assembler name.
787 2012-05-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
789         PR 53063
790         * options.c (gfc_handle_option): Call lang-specific generated function.
792 2012-05-13  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
793             Tobias Burnus  <burnus@net-b.de>
795         PR fortran/52158
796         PR fortran/45170
797         PR fortran/49430
798         * resolve.c (resolve_fl_derived0): Deferred character length 
799         procedure components are supported.
800         * trans-expr.c (gfc_conv_procedure_call): Handle TBP with 
801         deferred-length results.
802         (gfc_string_to_single_character): Add a new check to prevent
803         NULL read.
804         (gfc_conv_procedure_call): Remove unuseful checks on 
805         symbol's attributes. Add new checks to prevent NULL read on
806         string length. 
808 2012-05-12  Tobias Burnus  <burnus@net-b.de>
810         PR fortran/49110
811         PR fortran/52843
812         * resolve.c (resolve_fl_procedure): Don't regard
813         character(len=:) as character(*) in the diagnostic.
815 2012-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
817         PR fortran/52537
818         * frontend-passes.c (optimize_op):  Change
819         old-style comparison operators to new-style, simplify
820         switch as a result.
821         (empty_string):  New function.
822         (get_len_trim_call):  New function.
823         (optimize_comparison):  If comparing to an empty string,
824         use comparison of len_trim to zero.
825         Use new-style comparison operators only.
826         (optimize_trim):  Use get_len_trim_call.
828 2012-05-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
830         PR 53063
831         * options.c: Include diagnostics.h instead of
832         diagnostics-core.h.
833         (set_Wall): Do not see warn_unused here.
834         (gfc_handle_option): Set it here using handle_generated_option.
836 2012-05-08  Jan Hubicka  <jh@suse.cz>
838         * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN.
839         * trans-decl.c (gfc_finish_cray_pointee): Likewise.
841 2012-05-07  Tobias Burnus  <burnus@net-b.de>
843         PR fortran/53255
844         * resolve.c (resolve_typebound_static): Fix handling
845         of overridden specific to generic operator.
847 2012-05-06  Tobias Burnus  <burnus@net-b.de>
849         PR fortran/41587
850         * decl.c (build_struct): Don't ignore FAILED status.
852 2012-05-05  Paul Thomas  <pault@gcc.gnu.org>
854         PR fortran/41600
855         * trans-array.c (build_array_ref): New static function.
856         (gfc_conv_array_ref, gfc_get_dataptr_offset): Call it.
857         * trans-expr.c (gfc_get_vptr_from_expr): New function.
858         (gfc_conv_derived_to_class): Add a new argument for a caller
859         supplied vptr and use it if it is not NULL.
860         (gfc_conv_procedure_call): Add NULL to call to above.
861         symbol.c (gfc_is_associate_pointer): Return true if symbol is
862         a class object.
863         * trans-stmt.c (trans_associate_var): Handle class associate-
864         names.
865         * expr.c (gfc_get_variable_expr): Supply the array-spec if
866         possible.
867         * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
868         for class types.
869         * trans.h : Add prototypes for gfc_get_vptr_from_expr and
870         gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P.
871         * resolve.c (resolve_variable): For class arrays, ensure that
872         the target expression has all the necessary _data references.
873         (resolve_assoc_var): Throw a "not yet implemented" error for
874         class array selectors that need a temporary.
875         * match.c (copy_ts_from_selector_to_associate,
876         select_derived_set_tmp, select_class_set_tmp): New functions.
877         (select_type_set_tmp): Call one of last two new functions.
878         (gfc_match_select_type): Copy_ts_from_selector_to_associate is
879         called if associate-name is typed.
881         PR fortran/53191
882         * resolve.c (resolve_ref): C614 applied to class expressions.
884 2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
886         PR fortran/49010
887         PR fortran/24518
888         * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
889         * simplify.c (gfc_simplify_mod): Use mpfr_fmod.
890         (gfc_simplify_modulo): Likewise, use copysign to fix the result if
891         zero.
892         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
893         builtin_fmod is always available. For modulo, call copysign to fix
894         the result when signed zeros are enabled.
896 2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
898         * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
899         algorithm for choosing temp directory.
901 2012-05-04  Tobias Burnus  <burnus@net-b.de>
903         PR fortran/53175
904         * resolve.c (resolve_variable): Set public_used
905         if a private module variable is used in a (public)
906         specification expression.
907         * trans-decl.c (gfc_finish_var_decl): Mark those
908         TREE_PUBLIC.
910 2012-05-04  Tobias Burnus  <burnus@net-b.de>
912         PR fortran/53111
913         * resolve.c (resolve_fl_derived): Fix -std=f95
914         diagnostic for generic vs. DT names.
916 2012-05-03  Tobias Burnus  <burnus@net-b.de>
918         PR fortran/52864
919         * interface.c (compare_parameter_intent): Remove.
920         (check_intents): Remove call, handle CLASS pointer.
921         (compare_actual_formal): Handle CLASS pointer.
923 2012-04-30  Jan Hubicka  <jh@suse.cz>
925         * f95-lang.c (gfc_finish): Update comments.
927 2012-04-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
929         PR fortran/53148
930         * frontend-passes.c (create_var):  If the statement has a label,
931         put the label around the block.
933 2012-04-25  Tobias Burnus  <burnus@net-b.de>
935         PR fortran/52196
936         * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
937         * gfortran.h (gfc_option_t): Add them.
938         * options.c (gfc_init_options, gfc_post_options,
939         gfc_handle_option): Handle them.
940         * invoke.texi: Document them.
941         * trans-expr.c (realloc_lhs_warning): New function.
942         (gfc_trans_arrayfunc_assign,
943         alloc_scalar_allocatable_for_assignment,
944         gfc_trans_assignment_1): Use it.
946 2012-04-18  Steven Bosscher  <steven@gcc.gnu.org>
948         * trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
949         with NULL_TREE type instead of void_type_node.
950         * trans-io.c (io_result): Likewise.
951         * trans-stmt.c (gfc_trans_integer_select,
952         gfc_trans_character_select): Likewise.
954 2012-04-16  Tobias Burnus  <burnus@net-b.de>
956         PR fortran/52864
957         * expr.c (gfc_check_vardef_context): Fix assignment check for
958         pointer components.
960 2012-04-16  Janus Weil  <janus@gcc.gnu.org>
962         PR fortran/52968
963         * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived'
964         namespace is present.
966 2012-04-15  Janus Weil  <janus@gcc.gnu.org>
968         PR fortran/51082
969         * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a
970         simple function call (or a more involved PPC reference).
972 2012-04-15  Tobias Burnus  <burnus@net-b.de>
974         PR fortran/52916
975         PR fortran/40973
976         * gfortran.h (symbol_attribute): Add public_used.
977         * interface.c (check_sym_interfaces, check_uop_interfaces,
978         gfc_check_interfaces): Set it.
979         * resolve.c (resolve_typebound_procedure): Ditto.
980         * trans-decl.c (build_function_decl): Use it.
982 2012-04-11  Tobias Burnus  <burnus@net-b.de>
984         PR fortran/52729
985         * resolve.c (resolve_symbol): Fix searching for parent NS decl.
987 2012-04-08  Tobias Burnus  <burnus@net-b.de>
989         PR fortran/52751
990         * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC
991         for PRIVATE module variables without C-binding label.
993         PR fortran/40973
994         * trans-decl.c (build_function_decl): Ditto for procedures.
996 2012-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
998         PR fortran/52893
999         * frontend-passes.c:  Keep track of wether we are in an implicit
1000         DO loop; do not do function elimination if we are.
1002 2012-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1004         PR fortran/52668
1005         * module.c:  Only mark symbols as use_only if they have been
1006         imported via an only list.
1008 2012-03-28  Paul Thomas  <pault@gcc.gnu.org>
1009         Tobias Burnus  <burnus@gcc.gnu.org>
1011         PR fortran/52652
1012         * match.c (gfc_match_allocate, gfc_match_deallocate): Change
1013         "not.. or" to "neither.. nor".
1014         * parse.c (decode_specification_statement): Correct error in
1015         chpice of matching function for "allocatable".
1017 2012-03-23  Janne Blomqvist  <jb@gcc.gnu.org>
1019         * gfortran.h (GFC_MAX_LINE): Remove unused macro.
1021 2012-03-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1023         PR fortran/52559
1024         * error.c (gfc_widechar_display_length): Consider tabs as
1025         one character wide, as they're displayed as spaces.
1026         (show_locus): Move tab handling to...
1027         (print_wide_char_into_buffer): ... here.
1029 2012-03-17  Tobias Burnus  <burnus@net-b.de>
1031         PR fortran/52585
1032         * trans-intrinsic.c (gfc_conv_associated): Fix handling of
1033         procpointer dummy arguments.
1035 2012-03-16  Janne Blomqvist  <jb@gcc.gnu.org>
1037         * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
1038         for __float128.
1040 2012-03-15  Janne Blomqvist  <jb@gcc.gnu.org>
1042         * f95-lang.c (gfc_init_builtin_functions): Initialize
1043         BUILT_IN_IROUND.
1044         * mathbuiltins.def: Add IROUND.
1045         * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
1046         type size matches.
1047         (gfc_build_intrinsic_lib_fndecls): Build iround functions.
1049 2012-03-12  Richard Guenther  <rguenther@suse.de>
1051         * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size.
1053 2012-03-12  Tobias Burnus  <burnus@net-b.de>
1055         PR fortran/52542
1056         * decl.c (match_procedure_decl): If the interface
1057         is bind(C), the procedure is as well.
1059 2012-03-10  Steven Bosscher  <steven@gcc.gnu.org>
1061         * convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant.
1063 2012-03-09  Steven Bosscher  <steven@gcc.gnu.org>
1065         * Make-lang.in (convert.o): Depend on convert.h.
1066         * convert.c: Header and comment cleanups.
1067         (gfc_thruthvalue_conversion): Rename static function
1068         to truthvalue_conversion.  Do not use 'internal_error' from here,
1069         use 'gcc_unreachable' instead.
1070         (convert): Do not use 'error' for conversions to void, use
1071         'gcc_unreachable' instead.  Likewise for conversions to non-scalar
1072         types.  Do not hanlde ENUMERAL_TYPE, the front end never creates them.
1073         Clean up #if 0 code.
1075 2012-03-08  Tobias Burnus  <burnus@net-b.de>
1077         PR fortran/52469
1078         * trans-types.c (gfc_get_function_type): Handle backend_decl
1079         of a procedure pointer.
1081 2012-03-06  Steven Bosscher  <steven@gcc.gnu.org>
1083         * f95-lang.c (yyerror, yylex): Remove.
1084         (clear_binding_stack): Remove, fold into its only user.
1085         (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define.
1086         (ridpointers): Remove.
1087         (gfc_eh_initialized_p): Make static.
1088         (gfc_truthvalue_conversion): Move to convert.c.
1089         (gfc_be_parse_file): Clear binding level stack when done.
1090         (gfc_print_identifier): Remove.
1091         (pushlevel): Remove ignored 'ignore' argument.  Update all callers.
1092         (poplevel): Remove unused 'reverse' argument.  Update all callers.
1093         (ggc_p): Remove.
1094         (gfc_builtin_function): Make static. Do not attempt to make RTL for
1095         builtin functions.
1096         * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c,
1097         and made static.
1098         * trans.h (pushlevel, poplevel): Adjust prototypes.
1099         (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes.
1100         * trans-openmp.c: Update calls to pushlevel and poplevel.
1101         * trans.c: Likewise.
1102         * trans-decl.c: Likewise.
1104 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
1106         PR fortran/50981
1107         * gfortran.h (gfc_is_class_container_ref): New prototype.
1108         * class.c (gfc_is_class_container_ref): New function.
1109         * trans-expr.c (gfc_conv_procedure_call): Add a "_data" component
1110         reference to polymorphic actual arguments.
1112 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
1114         PR fortran/50981
1115         * trans-expr.c (gfc_conv_procedure_call): Save se->ss's value. 
1116         Handle the case of unallocated arrays passed to elemental procedures.
1118 2012-03-04  Mikael Morin  <mikael@gcc.gnu.org>
1120         * trans.h (struct gfc_ss_info): Move can_be_null_ref component from
1121         the data::scalar subcomponent to the toplevel.
1122         * trans-expr.c (gfc_conv_expr): Update component reference.
1123         * trans-array.c (gfc_add_loop_ss_code): Ditto.
1124         (gfc_walk_elemental_function_args): Ditto.  Move the conditional setting
1125         the field out of the scalar-only block.
1127 2012-03-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1129         PR fortran/36160
1130         * error.c (gfc_widechar_display_length, gfc_wide_display_length):
1131         New functions.
1132         (print_wide_char_into_buffer): Return length written.
1133         (show_locus): Fix locus displayed when wide characters are present.
1135 2012-03-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1137         * module.c (gfc_use_module): Improve error message some more.
1139 2012-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1141         PR fortran/52313
1142         * module.c (gfc_use_module): Improve error messages.
1144 2012-03-03  Tobias Burnus  <burnus@net-b.de>
1146         PR fortran/48820
1147         * resolve.c (resolve_actual_arglist): Properly reset
1148         assumed_type_expr_allowed.
1150 2012-03-03  Tobias Burnus  <burnus@net-b.de>
1152         * lang.opt (Wc-binding-type): New flag.
1153         * options.c (gfc_init_options, gfc_handle_option): Handle it.
1154         * invoke.texi (Wc-binding-type): Document it.
1155         * gfortran.h (gfc_option_t): Add warn_c_binding_type.
1156         * decl.c (verify_bind_c_sym): Handle -Wc-binding-type.
1157         * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
1158         Ditto.
1160 2012-03-03  Tobias Burnus  <burnus@net-b.de>
1162         PR fortran/48820
1163         * decl.c (gfc_match_decl_type_spec): Support type(*).
1164         (gfc_verify_c_interop): Allow type(*).
1165         * dump-parse-tree.c (show_typespec): Handle type(*).
1166         * expr.c (gfc_copy_expr): Ditto.
1167         * interface.c (compare_type_rank, compare_parameter,
1168         compare_actual_formal, gfc_procedure_use): Ditto.
1169         * libgfortran.h (bt): Add BT_ASSUMED.
1170         * misc.c (gfc_basic_typename, gfc_typename): Handle type(*).
1171         * module.c (bt_types): Ditto.
1172         * resolve.c (assumed_type_expr_allowed): New static variable.
1173         (resolve_actual_arglist, resolve_variable, resolve_symbol):
1174         Handle type(*). 
1175         * trans-expr.c (gfc_conv_procedure_call): Ditto.
1176         * trans-types.c (gfc_typenode_for_spec, gfc_get_dtype): Ditto.
1178 2012-03-02  Tobias Burnus  <burnus@net-b.de>
1180         PR fortran/52325
1181         * primary.c (gfc_match_varspec): Add missing ;.
1183 2012-03-02  Tobias Burnus  <burnus@net-b.de>
1185         PR fortran/52325
1186         * primary.c (gfc_match_varspec): Add diagnostic for % with
1187         nonderived types.
1189 2012-03-02  Tobias Burnus  <burnus@net-b.de>
1191         PR fortran/52270
1192         * expr.c (gfc_check_vardef_context): Fix check for
1193         intent-in polymorphic pointer .
1194         * interface.c (compare_parameter): Allow passing TYPE to
1195         intent-in polymorphic pointer.
1197 2012-03-02  Tobias Burnus  <burnus@net-b.de>
1199         PR fortran/52452
1200         * resolve.c (resolve_intrinsic): Don't search for a
1201         function if we know that it is a subroutine.
1203 2012-02-29  Paul Thomas  <pault@gcc.gnu.org>
1205         PR fortran/52386
1206         * trans-expr.c (fcncall_realloc_result): Dereference the
1207         descriptor if needed.
1209 2012-02-22  Tobias Burnus  <burnus@net-b.de>
1211         PR fortran/52335
1212         * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
1214 2012-02-18  Tobias Burnus  <burnus@net-b.de>
1216         PR fortran/52295
1217         * interface.c (check_interface0): Internal procs in
1218         generic interfaces are allowed in Fortran 2008.
1220 2012-02-17  Tobias Burnus  <burnus@net-b.de>
1221             Roland Stigge  <stigge@antcom.de>
1223         PR translation/52273
1224         * interface.c (compare_actual_formal): Fix typo "at at".
1226 2012-02-17  Tobias Burnus  <burnus@net-b.de>
1228         * gfortran.texi (Q exponent-letter): Fix grammar.
1230 2012-02-17  Tobias Burnus  <burnus@net-b.de>
1232         * gfortran.texi (Status): Fix typos.
1233         * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with
1234         a majuscule.
1236 2012-02-17  Tobias Burnus  <burnus@net-b.de>
1237             Roland Stigge  <stigge@antcom.de>
1239         PR translation/52232
1240         PR translation/52234
1241         PR translation/52245
1242         PR translation/52246
1243         PR translation/52262
1244         PR translation/52273
1245         * io.c (gfc_match_open): Fix typo.
1246         * interface.c (compare_actual_formal): Ditto.
1247         * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto.
1248         * match.c (alloc_opt_list, gfc_match_nullify): Ditto.
1249         * check.c (gfc_check_associated, gfc_check_null): Ditto.
1251 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
1253         PR fortran/50981
1254         * trans-stmt.c (gfc_get_proc_ifc_for_call): New function.
1255         (gfc_trans_call): Use gfc_get_proc_ifc_for_call.
1257 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
1259         * trans-array.c (gfc_walk_elemental_function_args,
1260         gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out
1261         of gfc_walk_elemental_function_args.
1262         * trans-stmt.c (gfc_trans_call): Ditto.
1263         * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype.
1264         (gfc_walk_elemental_function_args): Update prototype.
1266 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
1268         * trans-array.c (gfc_get_proc_ifc_for_expr): New function.
1269         (gfc_walk_elemental_function_args): Move code to
1270         gfc_get_proc_ifc_for_expr and call it.
1272 2012-02-08  Tobias Burnus  <burnus@net-b.de>
1274         PR fortran/52151
1275         * trans-expr.c (fcncall_realloc_result): Set also the stride.
1277 2012-02-07  Tobias Burnus  <burnus@net-b.de>
1279         PR fortran/51514
1280         * trans-expr.c (gfc_conv_procedure_call): Add _data component
1281         for calls of scalar CLASS actuals to TYPE dummies.
1283 2012-02-05  Thomas König  <tkoenig@gcc.gnu.org>
1285         PR fortran/48847
1286         * trans-decl.c:  Warn about unused dummy procedure arguments
1287         if -Wunused-dummy-argument is specified.  Suppress middle-end
1288         warnings about procedure arguments.
1290 2012-02-05  Paul Thomas  <pault@gcc.gnu.org>
1292         * trans-array.c (gfc_array_allocate): Zero memory for all class
1293         array allocations.
1294         * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
1296         PR fortran/52102
1297         * trans-stmt.c (gfc_trans_allocate): Before correcting a class
1298         array reference, ensure that 'dataref' points to the _data
1299         component that is followed by the array reference..
1301 2012-02-02  Mikael Morin  <mikael@gcc.gnu.org>
1303         PR fortran/41587
1304         PR fortran/46356
1305         PR fortran/51754
1306         PR fortran/50981
1307         * class.c (insert_component_ref, class_data_ref_missing,
1308         gfc_fix_class_refs): New functions.
1309         * gfortran.h (gfc_fix_class_refs): New prototype.
1310         * trans-expr.c (gfc_conv_expr): Remove special case handling and call
1311         gfc_fix_class_refs instead.
1313 2012-02-02  Paul Thomas  <pault@gcc.gnu.org>
1315         PR fortran/52012
1316         * trans-expr.c (fcncall_realloc_result): If variable shape is
1317         correct, retain the bounds, whatever they are.
1319 2012-02-02  Tobias Burnus  <burnus@net-b.de>
1321         PR fortran/52093
1322         * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
1324 2012-02-01  Thomas König  <tkoenig@gcc.gnu.org>
1326         PR fortran/51958
1327         * frontend-passes.c (convert_elseif):  New function.
1328         (optimize_namespace):  Call it.
1330 2012-02-01  Tobias Burnus  <burnus@net-b.de>
1332         PR fortran/52024
1333         * module.c (MOD_VERSION): Bump.
1334         (mio_typebound_proc): Read/write is_operator from/to the
1335         .mod file.
1337 2012-02-01  Tobias Burnus  <burnus@net-b.de>
1339         PR fortran/52059
1340         * trans-expr.c (gfc_conv_procedure_call): Add array ref
1341         only to variables.
1343 2012-01-31  Tobias Burnus  <burnus@net-b.de>
1345         PR fortran/52024
1346         * gfortran.h (gfc_tbp_generic): Store whether the
1347         generic is an operator.
1348         * decl.c (gfc_match_generic): Set that flag.
1349         * resolve.c (check_generic_tbp_ambiguity): Use it in the
1350         gfc_compare_interfaces check.
1352 2012-01-31  Tobias Burnus  <burnus@net-b.de>
1354         PR fortran/52029
1355         * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
1357 2012-01-31  Tobias Burnus  <burnus@net-b.de>
1359         PR fortran/52013
1360         * class.c (get_unique_hashed_string): Adapt trim length.
1361         (gfc_build_class_symbol) Encode also corank in the container name.
1363 2012-01-31  Paul Thomas  <pault@gcc.gnu.org>
1365         PR fortran/52012
1366         * trans-expr.c (fcncall_realloc_result): Correct calculation of
1367         result offset.
1369 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
1371         * module.c (pointer_info): Make true_name and module pointers
1372         rather than arrays, order pointers before other fields.
1373         (free_pi_tree): free true_name and module as well.
1374         (mio_read_string): Rename to read_string.
1375         (mio_write_string): Remove.
1376         (load_commons): Use read_string.
1377         (read_module): Use read_string rather than mio_internal_string.
1378         (write_blank_common): Call write_atom directly.
1379         (write_symbol): Likewise.
1381 2012-01-29  Tobias Burnus  <burnus@net-b.de>
1383         PR fortran/41600
1384         * expr.c (gfc_default_initializer): Convert the values if
1385         the type does not match.
1387 2012-01-29  Tobias Burnus  <burnus@net-b.de>
1389         PR fortran/51972
1390         * trans-array.c (structure_alloc_comps): Fix assignment of
1391         polymorphic components (polymorphic deep copying).
1393 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
1395         PR fortran/51808
1396         * decl.c (set_binding_label): Make binding_label argument const.
1397         (curr_binding_label): Constify.
1398         * gfortran.h (gfc_symbol): Constify binding_label.
1399         (gfc_common_head): Likewise.
1400         (get_iso_c_sym): Likewise.
1401         * match.c (gfc_match_name_C): Constify buffer argument.
1402         * match.h (gfc_match_name_C): Likewise.
1403         * resolve.c (set_name_and_label): Constify binding_label argument.
1404         (gfc_iso_c_sub_interface): Constify binding_label variable.
1405         * symbol.c (get_iso_c_sym): Constify binding_label argument.
1407 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
1409         PR fortran/51808
1410         * decl.c (set_binding_label): Move prototype from match.h to here.
1411         (curr_binding_label): Make a pointer rather than static array.
1412         (build_sym): Check sym->binding_label pointer rather than array,
1413         update set_binding_label call, handle curr_binding_label changes.
1414         (set_binding_label): Handle new curr_binding_label, dest_label
1415         double ptr, and sym->binding_label.
1416         (verify_bind_c_sym): Handle sym->binding_label being a pointer.
1417         (set_verify_bind_c_sym): Check sym->binding_label pointer rather
1418         than array, update set_binding_label call.
1419         (gfc_match_bind_c_stmt): Handle curr_binding_label change.
1420         (match_procedure_decl): Update set_binding_label call.
1421         (gfc_match_bind_c): Change binding_label to pointer, update
1422         gfc_match_name_C call.
1423         * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
1424         (gfc_symbol): Make binding_label a pointer.
1425         (gfc_common_head): Likewise.
1426         * match.c (gfc_match_name_C): Heap allocate bind(C) name.
1427         * match.h (gfc_match_name_C): Change prototype argument.
1428         (set_binding_label): Move prototype to decl.c.
1429         * module.c (struct pointer_info): Make binding_label a pointer.
1430         (free_pi_tree): Free unused binding_label.
1431         (mio_read_string): New function.
1432         (mio_write_string): New function.
1433         (load_commons): Redo reading of binding_label.
1434         (read_module): Likewise.
1435         (write_common_0): Change to write empty string instead of name if
1436         no binding_label.
1437         (write_blank_common): Write empty string for binding label.
1438         (write_symbol): Change to write empty string instead of name if no
1439         binding_label.
1440         * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
1441         (set_name_and_label): Make binding_label double pointer, use
1442         asprintf.
1443         (gfc_iso_c_sub_interface): Make binding_label a pointer.
1444         (resolve_bind_c_comms): Handle cases if
1445         gfc_common_head->binding_label is NULL.
1446         (gfc_verify_binding_labels): sym->binding_label is a pointer.
1447         * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for
1448         binding_label.
1449         (gen_special_c_interop_ptr): Don't set binding label.
1450         (generate_isocbinding_symbol): Insert binding_label into symbol
1451         table.
1452         (get_iso_c_sym): Use pointer assignment instead of strcpy.
1453         * trans-common.c (gfc_sym_mangled_common_id): Handle
1454         com->binding_label being a pointer.
1455         * trans-decl.c (gfc_sym_mangled_identifier): Handle
1456         sym->binding_label being a pointer.
1457         (gfc_sym_mangled_function_id): Likewise.
1459 2012-01-29  Tobias Burnus  <burnus@net-b.de>
1461         PR fortran/52038
1462         * resolve.c (symbol_as): Remove unused, accidentally
1463         added function.
1465 2012-01-28  Tobias Burnus  <burnus@net-b.de>
1467         PR fortran/51972
1468         * trans-stmt.c (gfc_trans_allocate): Properly check whether
1469         we have a BT_CLASS which needs to be memset.
1471 2012-01-27  Tobias Burnus  <burnus@net-b.de>
1473         PR fortran/52022
1474         * trans-expr.c (gfc_conv_procedure_call): Fix passing
1475         of functions, which return allocatables.
1477 2012-01-27  Tobias Burnus  <burnus@net-b.de>
1479         PR fortran/52016
1480         * resolve.c (resolve_formal_arglist): Fix elemental
1481         constraint checks for polymorphic dummies also for
1482         pointers.
1484 2012-01-27  Tobias Burnus  <burnus@net-b.de>
1486         PR fortran/51970
1487         PR fortran/51977
1488         * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
1489         handle array spec for BT_CLASS.
1490         * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
1491         * frontend-passes.c (create_var): Ditto.
1492         * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
1493         * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
1494         instead of attr.pointer.
1495         (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
1496         * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
1497         * trans-stmt.c (trans_associate_var): Ask for the descriptor.
1499 2012-01-27  Tobias Burnus  <burnus@net-b.de>
1501         PR fortran/51953
1502         * match.c (gfc_match_allocate): Allow more than allocate
1503         object with SOURCE=.
1505 2012-01-27  Tobias Burnus  <burnus@net-b.de>
1507         PR fortran/52016
1508         * resolve.c (resolve_formal_arglist): Fix elemental
1509         constraint checks for polymorphic dummies.
1511 2012-01-27  Paul Thomas  <pault@gcc.gnu.org>
1512             Tobias Burnus <burnus@gcc.gnu.org>
1514         PR fortran/48705
1515         PR fortran/51870
1516         PR fortran/51943
1517         PR fortran/51946
1518         * trans-array.c (gfc_array_init_size): Add two extra arguments
1519         to convey the dynamic element size of a calls object and to
1520         return the number of elements that have been allocated.
1521         (gfc_array_allocate): Add the same arguments and use them to
1522         call gfc_array_init_size.  Before the allocation dereference
1523         the data pointer, if necessary. Set the allocated array to zero
1524         if the class element size or expr3 are non-null.
1525         * trans-expr.c (gfc_conv_class_to_class): Give this function
1526         global scope.
1527         (get_class_array_ref): New function.
1528         (gfc_copy_class_to_class): New function.
1529         * trans-array.h : Update prototype for gfc_array_allocate.
1530         * trans-stmt.c (gfc_trans_allocate): For non-variable class
1531         STATUS expressions extract the class object and the dynamic
1532         element size. Use the latter to call gfc_array_allocate and
1533         the former for setting the vptr and, via
1534         gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
1535         * trans.h : Prototypes for gfc_get_class_array_ref,
1536         gfc_copy_class_to_class and gfc_conv_class_to_class.
1538 2012-01-25  Tobias Burnus  <burnus@net-b.de>
1540         * resolve.c (symbol_as): Check also for attr.class_ok.
1542 2012-01-25  Tobias Burnus  <burnus@net-b.de>
1544         PR fortran/51995
1545         * class.c (gfc_build_class_symbol): Fix invalid freeing
1546         issue with fclass->f2k_derived.
1548 2012-01-25  Tobias Burnus  <burnus@net-b.de>
1550         PR fortran/51995
1551         * class.c (gfc_build_class_symbol): Ensure that
1552         fclass->f2k_derived is set.
1554 2012-01-25  Tobias Burnus  <burnus@net-b.de>
1556         PR fortran/51966
1557         * resolve.c (resolve_structure_cons): Only create an
1558         array constructors for nonscalars.
1560 2012-01-23  Tobias Burnus  <burnus@net-b.de>
1562         PR fortran/51948
1563         * check.c (variable_check): Fix checking for
1564          variables and deeply nested BLOCKs.
1566 2012-01-21  Tobias Burnus  <burnus@net-b.de>
1567             Steven G. Kargl  <kargl@gcc.gnu.org>
1569         PR fortran/50556
1570         * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
1571         attribute.
1573 2012-01-21  Tobias Burnus  <burnus@net-b.de>
1575         PR fortran/51913
1576         * interface.c (compare_parameter): Fix CLASS comparison.
1578 2012-01-20  Tobias Burnus  <burnus@net-b.de>
1579             Janus Weil  <janus@gcc.gnu.org>
1581         PR fortran/51056
1582         * module.c (load_needed, read_module): Don't mark __vtab etc.
1583         as use_only.
1585 2012-01-19  Tobias Burnus  <burnus@net-b.de>
1587         PR fortran/51904
1588         * expr.c (gfc_build_intrinsic_call): Also set the symtree.
1590 2012-01-18  Paul Thomas  <pault@gcc.gnu.org>
1592         PR fortran/51634
1593         * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
1594         components of temporary class arguments.
1596 2012-01-17  Tobias Burnus  <burnus@net-b.de>
1597             Janne Blomqvist  <jb@gcc.gnu.org>
1599         PR fortran/51869
1600         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
1601         LHS after allocation, if it has allocatable components.
1602         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
1604 2012-01-16  Mikael Morin  <mikael@gcc.gnu.org>
1605             Tobias Burnus  <burnus@net-b.de>
1607         PR fortran/50981
1608         * trans-array.c (gfc_walk_elemental_function_args): Fix
1609         passing of deallocated allocatables/pointers as absent argument. 
1611 2012-01-16  Tobias Burnus  <burnus@net-b.de>
1613         PR fortran/51809
1614         * class.c (gfc_find_derived_vtab): Mark __vtab and
1615         __def_init as FL_VARIABLE not as FL_PARAMETER.
1616         * expr.c (gfc_simplify_expr): Remove special
1617         handling of __vtab.
1618         * resolve.c (resolve_values): Ditto.
1619         * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
1620         and __def_init as TREE_READONLY.
1622 2012-01-16  Zydrunas Gimbutas  <gimbutas@cims.nyu.edu>
1623         Andreas Kloeckner  <kloeckner@cims.nyu.edu>
1624         Steven G. Kargl  <kargl@gcc.gnu.org>
1626         PR fortran/48426
1627         * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
1628         * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
1629         -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
1630         and -finteger-4-integer-8. User-desired type conversion information.
1631         * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
1632         in declaration parsing.
1633         * trans-types.c (gfc_init_kinds): User-specified type conversion
1634         checked for current backend.
1635         * primary.c (match_integer_constant,match_real_constant): Implement
1636         type conversion in constant parsing.
1637         * options.c (gfc_init_options,gfc_handle_option): Translate input
1638         options to flags in internal options data structure.
1639         * invoke.texi: Document new options.  Re-order options in Options
1640         summary section.
1642 2012-01-16  Paul Thomas  <pault@gcc.gnu.org>
1644         * trans-array.c (gfc_trans_create_temp_array): In the case of a
1645         class array temporary, detect a null 'eltype' on entry and use 
1646         'initial' to provde the class reference and so, through the
1647         vtable, the element size for the dynamic type.
1648         * trans-stmt.c (gfc_conv_elemental_dependencies): For class
1649         expressions, set 'eltype' to null and pass the values via the
1650         'initial' expression.
1652 2012-01-14  Tobias Burnus  <burnus@net-b.de>
1654         PR fortran/51800
1655         * resolve.c (build_default_init_expr): Also initialize
1656         nonconstant-length strings with -finit-character=<n>.
1658 2011-01-14  Tobias Burnus  <burnus@net-b.de>
1660         PR fortran/51816
1661         * module.c (read_module): Don't make nonexisting
1662         intrinsic operators as found.
1663         (rename_list_remove_duplicate): New function.
1664         (gfc_use_modules): Use it.
1666 2012-01-13  Paul Thomas  <pault@gcc.gnu.org>
1668         PR fortran/48351
1669         * trans-array.c (structure_alloc_comps): Suppress interative
1670         call to self, when current component is deallocated using
1671         gfc_trans_dealloc_allocated.
1672         * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
1673         attribute from the declared type to the class structure.
1675 2012-01-13  Tobias Burnus  <burnus@net-b.de>
1677         PR fortran/51842
1678         * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
1679         instead of a signed int of size POINTER_SIZE for
1680         gfc_index_integer_kind.
1682 2012-01-12  Tobias Burnus  <burnus@net-b.de>
1684         PR fortran/36755
1685         * intrinsic.texi (CHMOD): Extend a bit and remove statement
1686         that /bin/chmod is called.
1688 2012-01-10  Gerald Pfeifer  <gerald@pfeifer.com>
1690         * gfortran.texi (Fortran 2003 Status): Fix grammar.
1692 2012-01-10  Tobias Burnus  <burnus@net-b.de>
1694         PR fortran/51652
1695         * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
1696         check whether type-spec matches declaration.
1698 2012-01-10  Tobias Burnus  <burnus@net-b.de>
1700         * resolve.c (resolve_ordinary_assign): Improve error wording.
1702 2012-01-09  Paul Thomas  <pault@gcc.gnu.org>
1704         PR fortran/51791
1705         * interface.c (matching_typebound_op): Drill down through
1706         possible parentheses to obtain base expression. Do not test for
1707         'class_ok' but, instead for the class structure components.
1708         * resolve.c (resolve_ordinary_assign): Extend error message for
1709         polymorphic assignment to advise checking for specific
1710         subroutine.
1712         PR fortran/51792
1713         * resolve.c (resolve_typebound_function): Restore 'static' to
1714         declaration.
1716 2012-01-09  Mikael Morin  <mikael@gcc.gnu.org>
1718         PR fortran/51758
1719         * trans-array.c (gfc_walk_elemental_function_args):
1720         Skip over NULL() actual arguments.
1722 2012-01-09  Tobias Burnus  <burnus@net-b.de>
1724         * gfortran.texi: Bump copyright year.
1725         (Fortran 2003 Status): Update polymorphism item, add
1726         item for generic interface with DT name.
1728 2012-01-09  Tobias Burnus  <burnus@net-b.de>
1730         PR fortran/51578
1731         * gfortran.h (gfc_use_list):
1732         * match.h (gfc_use_module): Rename to ...
1733         (gfc_use_modules): ... this.
1734         * module.c (use_locus, specified_nonint, specified_int): Remove
1735         global variable.
1736         (module_name): Change type to const char*, used with gfc_get_string.
1737         (module_list): New global variable.
1738         (free_rename): Free argument not global var.
1739         (gfc_match_use): Save match to module_list.
1740         (load_generic_interfaces, read_module): Don't free symtree.
1741         (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
1742         type change of module_name.
1743         (write_symbol0, write_generic): Optimize due to the type change.
1744         (import_iso_c_binding_module, use_iso_fortran_env_module): Use
1745         locus of rename->where.
1746         (gfc_use_module): Take module_list as argument.
1747         (gfc_use_modules): New function.
1748         (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
1749         * parse.c (last_was_use_stmt): New global variable.
1750         (use_modules): New function.
1751         (decode_specification_statement, decode_statement): Move USE match up
1752         and call use_modules.
1753         (next_free, next_fixed): Call use_modules.
1754         (accept_statement): Don't call gfc_module_use.
1756 2012-01-06  Tobias Burnus <burnus@net-b.de>
1758         * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
1759         Update call to gfc_trans_dealloc_allocated.
1760         * trans.c (gfc_allocate_using_malloc): Fix spacing.
1761         (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
1762         label_finish when an error occurs.
1763         (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
1764         * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
1765         Update prototype.
1766         (gfor_fndecl_caf_deregister): New tree symbol.
1767         * trans-expr.c (gfc_conv_procedure_call): Update
1768         gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
1769         * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
1770         structure_alloc_comps, gfc_trans_deferred_array): Ditto.
1771         (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
1772         * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
1773         gfc_trans_dealloc_allocated): Update prototypes.
1774         * trans-stmt.c (gfc_trans_sync): Fix indentation.
1775         (gfc_trans_allocate): Fix errmsg padding and label handling.
1776         (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
1777         * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
1778         * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
1779         to avoid other stats accidentally matching this one.
1780         * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
1781         (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
1782         and add decl for caf_deregister.
1783         (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
1784         * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
1785         gfc_deallocate_with_status.
1787 2012-01-05  Paul Thomas  <pault@gcc.gnu.org>
1789         PR fortran/PR48946
1790         * resolve.c (resolve_typebound_static): If the typebound
1791         procedure is 'deferred' try to find the correct specific
1792         procedure in the derived type operator space itself.
1794 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
1796         PR fortran/50981
1797         * trans-array.h (gfc_walk_elemental_function_args): New argument.
1798         * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
1799         * trans-stmt.c (gfc_trans_call): Ditto.
1800         * trans-array.c (gfc_walk_function_expr): Ditto.
1801         (gfc_walk_elemental_function_args): Get the dummy argument list
1802         if possible.  Check that the dummy and the actual argument are both
1803         optional, and set can_be_null_ref accordingly.
1805 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
1807         PR fortran/50981
1808         * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
1809         * trans-array.c: If the reference can be NULL, save the reference
1810         instead of the value.
1811         * trans-expr.c (gfc_conv_expr): If we have saved a reference,
1812         dereference it.
1814 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
1816         * trans-expr.c (gfc_conv_expr): Move address taking...
1817         (gfc_conv_expr_reference): ... here.
1819 2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1821         PR fortran/49693
1822         * trans-common.c (create_common): Update copyright years.  Mark
1823         variables as used to avoid warnings about unused variables in
1824         common blocks.
1826 2012-01-03  Hans-Peter Nilsson  <hp@axis.com>
1828         * gfortran.h (struct gfc_expr): Add missing "struct"
1829         qualifier for member base_expr.
1831 2012-01-02  Paul Thomas  <pault@gcc.gnu.org>
1833         PR fortran/51529
1834         * trans-array.c (gfc_array_allocate): Null allocated memory of
1835         newly allocted class arrays.
1837         PR fortran/46262
1838         PR fortran/46328
1839         PR fortran/51052
1840         * interface.c(build_compcall_for_operator): Add a type to the
1841         expression.
1842         * trans-expr.c (conv_base_obj_fcn_val): New function.
1843         (gfc_conv_procedure_call): Use base_expr to detect non-variable
1844         base objects and, ensuring that there is a temporary variable,
1845         build up the typebound call using conv_base_obj_fcn_val.
1846         (gfc_trans_class_assign): Pick out class procedure pointer
1847         assignments and do the assignment with no further prcessing.
1848         (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
1849         gfc_trans_class_assign): Move to top of file.
1850         * gfortran.h : Add 'base_expr' field to gfc_expr.
1851         * resolve.c (get_declared_from_expr): Add 'types' argument to
1852         switch checking of derived types on or off.
1853         (resolve_typebound_generic_call): Set the new argument.
1854         (resolve_typebound_function, resolve_typebound_subroutine):
1855         Set 'types' argument for get_declared_from_expr appropriately.
1856         Identify base expression, if not a variable, in the argument
1857         list of class valued calls. Assign it to the 'base_expr' field
1858         of the final expression. Strip away all references after the
1859         last class reference.
1861 2012-01-02  Tobias Burnus  <burnus@net-b.de>
1863         PR fortran/51682
1864         * trans-intrinsic.c (trans_this_image, trans_image_index,
1865         trans_num_images, conv_intrinsic_cobound): Fold_convert the
1866         caf_num_images/caf_this_images variables to the correct int kind.
1868 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
1870         * gfortranspec.c (lang_specific_driver): Update copyright notice
1871         dates.
1873 Copyright (C) 2012 Free Software Foundation, Inc.
1875 Copying and distribution of this file, with or without modification,
1876 are permitted in any medium without royalty provided the copyright
1877 notice and this notice are preserved.