OSDN Git Service

* config/darwin-driver.c (SWITCH_TAKES_ARG,
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2
3         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
4         Remove.
5
6 2010-07-28  Tobias Burnus  <burnus@net-b.de>
7
8         PR fortran/45077
9         * trans-types.c (gfc_get_derived_type): Fix DT declaration
10         from modules for whole-file mode.
11
12 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
13
14         * gfortran.h (gfc_handle_option): Update prototype and return
15         value type.
16         * options.c (gfc_handle_option): Update prototype and return value
17         type.
18
19 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
20
21         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
22         decoded options in allocating deferred_opt.
23         * cpp.h (gfc_cpp_init_options): Update prototype.
24         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
25         * gfortran.h (gfc_option_lang_mask): New.
26         (gfc_init_options): Update prototype.
27         * options.c (gfc_option_lang_mask): New.
28         (gfc_init_options): Update prototype.  Pass new arguments to
29         gfc_cpp_init_options.
30
31 2010-07-26  Tobias Burnus  <burnus@net-b.de>
32
33         PR fortran/40873
34         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
35         for functions which are later in the same file.
36         (gfc_create_function_decl, build_function_decl,
37         build_entry_thunks): Add global argument.
38         * trans.c (gfc_generate_module_code): Update
39         gfc_create_function_decl call.
40         * trans.h (gfc_create_function_decl): Update prototype.
41         * resolve.c (resolve_global_procedure): Also resolve for
42         IFSRC_IFBODY.
43
44 2010-07-26  Richard Henderson  <rth@redhat.com>
45
46         PR target/44132
47         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
48         (gfc_write_global_declarations): New.
49
50 2010-07-26  Tobias Burnus  <burnus@net-b.de>
51
52         PR fortran/45066
53         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
54         for call to transfer_namelist_element.
55         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
56         for -fwhole-file.
57
58 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
59
60         PR fortran/40628
61         * Make-lang.in:  Add fortran/frontend-passes.o.
62         * gfortran.h:  Add prototype for gfc_run_passes.
63         * resolve.c (gfc_resolve):  Call gfc_run_passes.
64         * frontend-passes.c:  New file.
65
66 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
67
68         PR fortran/42852
69         * scanner.c (gfc_next_char_literal): Enable truncation warning for
70         free-form '&'.
71
72 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
73
74         PR fortran/44660
75         * gfortran.h (gfc_namespace): New field old_equiv.
76         (gfc_free_equiv_until): New prototype.
77         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
78         a parameterized stop condition.
79         (gfc_free_equiv): Use gfc_free_equiv_until.
80         * parse.c (next_statement): Save equivalence list.
81         (reject_statement): Restore equivalence list. 
82
83 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
84
85         PR fortran/42852
86         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
87         in the function so that it does not get missed by early exits.
88         (load_line): Add checks for quoted strings and free form comments to
89         disable warnings on comments. Add check for ampersand as first
90         character after truncation and don't warn for this case, but warn if
91         there are subsequent non-whitespace characters.
92
93 2010-07-24  Tobias Burnus  <burnus@net-b.de>
94
95         PR fortran/40011
96         * parse.c (gfc_parse_file): Do not override
97         gfc_global_ns_list items.
98
99 2010-07-24  Tobias Burnus  <burnus@net-b.de>
100
101         * options.c (gfc_init_options): Enable -fwhole-file by default.
102         * interface.c (compare_parameter): Assume a Hollerith constant is
103         compatible with all other argument types.
104
105 2010-07-23  Tobias Burnus  <burnus@net-b.de>
106
107         PR fortran/44945
108         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
109         -fwhole-file also for derived types.
110         * trans-types.c (copy_dt_decls_ifequal): Remove static and
111         rename to gfc_copy_dt_decls_ifequal.
112         (gfc_get_derived_type): Update call.
113         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
114
115 2010-07-23  Tobias Burnus  <burnus@net-b.de>
116
117         PR fortran/45030
118         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
119
120 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
121
122         * trans-types.c (gfc_get_array_descriptor_base,
123         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
124         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
125         instead of clearing DECL_NAME.
126         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
127
128 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
129
130         PR fortran/24524
131         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
132         field.
133         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
134         reverse the scalarization loop.
135         gfc_conv_resolve_dependencies: Pass the reverse field of the
136         loopinfo to gfc_dep_resolver.
137         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
138         assignment by resetting loop.reverse.
139         gfortran.h : Add the gfc_reverse enum.
140         trans.h : Add the reverse field to gfc_loopinfo.
141         dependency.c (gfc_check_dependency): Pass null to the new arg
142         of gfc_dep_resolver.
143         (gfc_check_section_vs_section): Check for reverse dependencies.
144         (gfc_dep_resolver): Add reverse argument and deal with the loop
145         reversal logic.
146         dependency.h : Modify prototype for gfc_dep_resolver to include
147         gfc_reverse *.
148
149 2010-07-23  Daniel Kraft  <d@domob.eu>
150
151         PR fortran/44709
152         * gfortran.h (gfc_find_symtree_in_proc): New method.
153         * symbol.c (gfc_find_symtree_in_proc): New method.
154         * match.c (match_exit_cycle): Look for loop name also in parent
155         namespaces within current procedure.
156
157 2010-07-22  Tobias Burnus  <burnus@net-b.de>
158
159         PR fortran/45019
160         * dependency.c (gfc_check_dependency): Add argument alising check.
161         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
162
163 2010-07-22  Daniel Kraft  <d@domob.eu>
164
165         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
166         now in the correct place.
167
168 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
169
170         PR fortran/44929
171         * Revert my commit r162325.
172
173 2010-07-21  Daniel Kraft  <d@domob.eu>
174
175         * trans.h (gfc_get_return_label): Removed.
176         (gfc_generate_return): New method.
177         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
178         returning a tree directly.
179         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
180         (gfc_trans_block_construct): Update for new interface to
181         `gfc_trans_deferred_vars'.
182         * trans-decl.c (current_function_return_label): Removed.
183         (current_procedure_symbol): New variable.
184         (gfc_get_return_label): Removed.
185         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
186         returning a tree directly.
187         (get_proc_result), (gfc_generate_return): New methods.
188         (gfc_generate_function_code): Clean up and do init/cleanup here
189         also with gfc_wrapped_block.  Remove return-label but rather
190         return directly.
191
192 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
193
194         PR fortran/44929
195         * fortran/match.c (match_type_spec): Check for derived type before
196         intrinsic types.
197
198 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
199
200         PR fortran/42385
201         * interface.c (matching_typebound_op): Add argument for the
202         return of the generic name for the procedure.
203         (build_compcall_for_operator): Add an argument for the generic
204         name of an operator procedure and supply it to the expression.
205         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
206         calls to the above procedures.
207         * resolve.c (resolve_typebound_function): Catch procedure
208         component calls for CLASS objects, check that the vtable is
209         complete and insert the $vptr and procedure components, to make
210         the call.
211         (resolve_typebound_function): The same.
212         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
213         an allocatable scalar if it is a result.
214
215 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
216
217         PR fortran/44353
218         * match.c (gfc_match_iterator): Reverted.
219
220 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
221
222         PR fortran/44353
223         * match.c (gfc_match_iterator): Remove error that iterator
224         cannot be INTENT(IN).
225
226 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
227
228         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
229         Access subscript through the "dim" field index.
230         (gfc_trans_create_temp_array): Access ss info through the "dim" field
231         index.
232         (gfc_conv_array_index_offset): Ditto.
233         (gfc_conv_loop_setup): Ditto.
234         (gfc_conv_expr_descriptor): Ditto.
235         (gfc_conv_ss_startstride): Ditto.  Update call to
236         gfc_conv_section_startstride.
237         (gfc_conv_section_startstride): Set values along the array dimension.
238         Get array dimension directly from the argument.
239
240 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
241
242         * trans.h (gfc_string_to_single_character): New prototype.
243         * trans-expr.c (string_to_single_character): Renamed to ...
244         (gfc_string_to_single_character): ... this.  No longer static.
245         (gfc_conv_scalar_char_value, gfc_build_compare_string,
246         gfc_trans_string_copy): Adjust callers.
247         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
248         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
249         (select_struct): Move to toplevel, add GTY(()).
250         (gfc_trans_character_select): Optimize SELECT CASE
251         with character length 1.
252
253 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
254
255         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
256         * trans-common.c: Likewise.
257         * trans-decl.c: Likewise.
258         * trans-types.c: Likewise.
259         * trans.c: Likewise.
260
261 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
262
263         PR fortran/44936
264         * resolve.c (resolve_typebound_generic_call): Resolve generic
265         non-polymorphic type-bound procedure calls to the correct specific
266         procedure.
267         (resolve_typebound_subroutine): Remove superfluous code.
268
269 2010-07-15  Daniel Kraft  <d@domob.eu>
270
271         PR fortran/44709
272         * trans.h (struct gfc_wrapped_block): New struct.
273         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
274         (gfc_finish_wrapped_block): New method.
275         (gfc_init_default_dt): Add new init code to block rather than
276         returning it.
277         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
278         (gfc_trans_dummy_array_bias): Ditto.
279         (gfc_trans_g77_array): Ditto.
280         (gfc_trans_deferred_array): Ditto.
281         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
282         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
283         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
284         (gfc_finish_wrapped_block): New method.
285         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
286         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
287         (gfc_trans_deferred_array): Ditto.
288         * trans-decl.c (gfc_trans_dummy_character): Ditto.
289         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
290         (init_intent_out_dt): Ditto.
291         (gfc_init_default_dt): Add new init code to block rather than
292         returning it.
293         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
294         and cleanup code and put it all together.
295
296 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
297
298         * trans.h (gfc_build_compare_string): Add CODE argument.
299         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
300         gfc_build_compare_string.
301         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
302         gfc_build_compare_string.
303         (string_to_single_character): Rename len variable to length.
304         (gfc_optimize_len_trim): New function.
305         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
306         or NE_EXPR and one of the strings is string literal with LEN_TRIM
307         bigger than the length of the other string, they compare unequal.
308
309         PR fortran/40206
310         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
311         in CASE_LABEL_EXPR and use NULL for low for the default case.
312
313 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
314
315         * trans-array.c (gfc_conv_section_upper_bound): Remove
316         (gfc_conv_section_startstride): Don't set the upper bound in the 
317         vector subscript case.
318         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
319
320 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
321
322         PR fortran/44925
323         * gfortran.h (gfc_is_data_pointer): Remove prototype.
324         * dependency.c (gfc_is_data_pointer): Make it static.
325         * intrinsic.texi: Update documentation on C_LOC.
326         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
327         and add a check for polymorphic variables.
328
329 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
330
331         * trans-expr.c (string_to_single_character): Also optimize
332         string literals containing a single char followed only by spaces.
333         (gfc_trans_string_copy): Remove redundant string_to_single_character
334         calls.
335
336         * trans-decl.c (gfc_build_intrinsic_function_decls,
337         gfc_build_builtin_function_decls): Mark functions as
338         DECL_PURE_P or TREE_READONLY.
339
340 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
341
342         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
343         instead of build_function_call_expr.
344         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
345
346 2010-07-13  Tobias Burnus  <burnus@net-b.de>
347             Daniel Franke  <franke.daniel@gmail.com>
348
349         PR fortran/43665
350         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
351         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
352         static.
353         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
354
355 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
356             Tobias Burnus  <burnus@net-b.de>
357
358         PR fortran/43665
359         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
360         noclobber/noescape annotations to function calls.
361         (gfc_build_builtin_function_decls): Likewise.
362
363 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
364
365         PR fortran/44434
366         PR fortran/44565
367         PR fortran/43945
368         PR fortran/44869
369         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
370         * class.c (gfc_build_class_symbol): Modified call to
371         'gfc_find_derived_vtab'.
372         (add_proc_component): Removed, moved code into 'add_proc_comp'.
373         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
374         generics.
375         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
376         Removed treatment of generics.
377         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
378         Call 'add_proc_comp' instead of duplicating code.
379         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
380         and 'declared'.
381         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
382         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
383         Removed treatment of generics.
384         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
385         'gfc_find_derived_vtab'.
386         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
387         Removed treatment of generics.
388         (resolve_select_type,resolve_fl_derived): Modified call to
389         'gfc_find_derived_vtab'.
390         * trans-decl.c (gfc_get_symbol_decl): Ditto.
391         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
392         Ditto.
393         * trans-stmt.c (gfc_trans_allocate): Ditto.
394
395 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
396
397         PR fortran/37077
398         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
399         internal unit.
400
401 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
402
403         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
404         * resolve.c (build_default_init_expr): Ditto.
405
406 2010-07-11  Tobias Burnus  <burnus@net-b.de>
407
408         PR fortran/44702
409         * module.c (sort_iso_c_rename_list): Remove.
410         (import_iso_c_binding_module,use_iso_fortran_env_module):
411         Allow multiple imports of the same symbol.
412
413 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
414
415         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
416
417 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
418
419         PR fortran/44869
420         * decl.c (build_sym,attr_decl1): Only build the class container if the
421         symbol has sufficient attributes.
422         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
423         pointer attribute for classes.
424         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
425         * module.c (MOD_VERSION): Bump.
426         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
427         (mio_symbol_attribute): Handle class_pointer attribute.
428         * parse.c (parse_derived): Use class_pointer instead of pointer
429         attribute for classes.
430         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
431         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
432         resolve_allocate_expr,resolve_fl_derived): Ditto.
433         (resolve_fl_var_and_proc): Check for class_ok attribute.
434
435 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
436
437         * trans-io.c (gfc_build_st_parameter): Update calls to
438         gfc_add_field_to_struct.
439         * trans-stmt.c (ADD_FIELD): Ditto.
440         * trans-types.c
441         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
442         C_ADDRESS field.
443         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
444         fieldlist, remove fieldlist from argument list.
445         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
446         and remove fieldlist from argument list.
447         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
448         gfc_get_mixed_entry_union): Move setting
449         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
450         * trans-types.h (gfc_add_field_to_struct): Update prototype.
451
452 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
453
454         PR fortran/44773
455         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
456         if the lhs has never been host associated, as well as not being
457         use associated, a pointer or a target.
458         * resolve.c (resolve_variable): Mark variables that are host
459         associated.
460         * gfortran.h: Add the host_assoc bit to the symbol_attribute
461         structure.
462
463 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
464
465         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
466         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
467         SIZEOF and C_SIZEOF.
468
469 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
470
471         PR fortran/44649
472         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
473         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
474         gfc_resolve_storage_size): New prototypes.
475         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
476         * intrinsic.c (add_functions): Add STORAGE_SIZE.
477         * iresolve.c (gfc_resolve_storage_size): New function.
478         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
479         arguments.
480         (gfc_conv_intrinsic_storage_size): New function.
481         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
482
483 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
484
485         PR fortran/44847
486         * match.c (match_exit_cycle): Error on EXIT also from collapsed
487         !$omp do loops.  Error on CYCLE to non-innermost collapsed
488         !$omp do loops.
489
490 2010-07-08  Tobias Burnus  <burnus@net-b.de>
491
492         PR fortran/18918
493         * array.c (gfc_match_array_ref): Better error message for
494         coarrays with too few ranks.
495         (match_subscript): Move one diagnostic to caller.
496         * gfortran.h (gfc_get_corank): Add prottype.
497         * expr.c (gfc_get_corank): New function.
498         * iresolve.c (resolve_bound): Fix rank for cobounds.
499         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
500         gfc_resolve_ucobound, gfc_resolve_this_image): Update
501         resolve_bound call.
502
503 2010-07-06  Tobias Burnus  <burnus@net-b.de>
504
505         PR fortran/44742
506         * array.c (gfc_expand_constructor): Add optional diagnostic.
507         * gfortran.h (gfc_expand_constructor): Update prototype.
508         * expr.c (gfc_simplify_expr, check_init_expr,
509         gfc_reduce_init_expr): Update gfc_expand_constructor call.
510         * resolve.c (gfc_resolve_expr): Ditto.
511
512 2010-07-06  Tobias Burnus  <burnus@net-b.de>
513
514         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
515         * trans-intrinsic.c: Ditto.
516         * trans-types.c: Ditto.
517         * convert.c: Include diagnostic-core.h instead of toplev.h.
518         * options.c: Ditto.
519         * trans-array.c: Ditto.
520         * trans-const.c: Ditto.
521         * trans-expr.c: Ditto.
522         * trans-io.c: Ditto.
523         * trans-openmp.c: Ditto.
524         * trans.c: Ditto.
525
526 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
527
528         PR fortran/PR44693
529         * check.c (dim_rank_check):  Also check intrinsic functions.
530         Adjust permissible rank for functions which reduce the rank of
531         their argument.  Spread is an exception, where DIM can
532         be one larger than the rank of array.
533
534 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
535
536         PR fortran/44797
537         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
538
539 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
540
541         PR fortran/44596
542         * trans-types.c (gfc_get_derived_type): Derived type fields
543         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
544         but build_pointer_type_for_mode must be used for this.
545
546 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
547
548         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
549         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
550         type of gfc_conv_procedure_call.
551         (conv_generic_with_optional_char_arg): Likewise.
552         * trans-stmt.c (gfc_trans_call): Likewise.
553         * trans-expr.c (gfc_conv_function_expr): Likewise.
554         (gfc_conv_procedure_call): Use build_call_vec instead of
555         build_call_list.
556
557 2010-07-04  Daniel Kraft  <d@domob.eu>
558
559         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
560
561 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
562
563         PR fortran/44596
564         PR fortran/44745
565         * trans-types.c (gfc_get_derived_type): Derived type fields
566         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
567
568 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
569
570         PR fortran/44662
571         * decl.c (match_procedure_in_type): Clear structure before using.
572         (gfc_match_generic): Ditto.
573
574 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
575
576         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
577         * trans-types.c (gfc_add_field_to_struct_1): New function, most
578         of which comes from...
579         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
580         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
581         building fields.
582         (gfc_get_array_descriptor_base): Likewise.
583         (gfc_get_mixed_entry_union): Likewise.
584         (gfc_get_derived_type): Add extra chain parameter for
585         gfc_add_field_to_struct.
586         * trans-stmt.c (gfc_trans_character_select): Likewise.
587         * trans-io.c (gfc_build_st_parameter): Likewise.
588
589 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
590
591         PR fortran/44718
592         * resolve.c (is_external_proc): Prevent procedure pointers from being
593         regarded as external procedures.
594
595 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
596
597         PR fortran/44696
598         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
599         passed as second argument of ASSOCIATED.
600
601 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
602
603         PR fortran/44582
604         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
605         to determine if a function assignment can be made without a
606         temporary.
607         (gfc_trans_arrayfunc_assign): Move all the conditions that
608         suppress the direct function call to the above new functon and
609         call it.
610
611 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
612
613         PR fortran/40158
614         * interface.c (argument_rank_mismatch): New function.
615         (compare_parameter): Call new function instead of generating
616         the error directly.
617
618 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
619
620         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
621         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
622         initializers.
623
624 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
625
626         * Make-lang.in: Update dependencies.
627
628 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
629
630         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
631         and exit_label fields.
632         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
633         individually.
634         * trans-stmt.c (gfc_trans_simple_do): Likewise.
635         (gfc_trans_do): Likewise.
636         (gfc_trans_do_while): Likewise.
637         (gfc_trans_cycle): Use cycle_label directly.
638         (gfc_trans_exit): Use exit_label directly.
639
640 2010-06-27  Daniel Kraft  <d@domob.eu>
641
642         * dump-parse-tree.c (show_symbol): Dump target-expression for
643         associate names.
644         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
645         (show_namespace): Use show_level for correct indentation of
646         "inner namespaces" (contained procedures or BLOCK).
647
648 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
649
650         PR fortran/44678
651         * dump-parse-tree.c (show_code_node):  Show namespace for
652         EXEC_BLOCK.
653
654 2010-06-26  Tobias Burnus  <burnus@net-b.de>
655
656         * decl.c (gfc_match_decl_type_spec): Support
657         TYPE(intrinsic-type-spec).
658
659 2010-06-25  Tobias Burnus  <burnus@net-b.de>
660
661         * intrinsic.h (gfc_check_selected_real_kind,
662         gfc_simplify_selected_real_kind): Update prototypes.
663         * intrinsic.c (add_functions): Add radix support to
664         selected_real_kind.
665         * check.c (gfc_check_selected_real_kind): Ditto.
666         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
667         * trans-decl.c (gfc_build_intrinsic_function_decls):
668         Change call from selected_real_kind to selected_real_kind2008.
669         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
670         (PRECISION, RANGE, RADIX): Add cross @refs.
671
672 2010-06-25  Tobias Burnus  <burnus@net-b.de>
673
674         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
675         * gfortran.texi (_gfortran_set_options): Update for
676         GFC_STD_F2008_OBS addition.
677         * libgfortran.h: Add GFC_STD_F2008_OBS.
678         * options.c (set_default_std_flags, gfc_handle_option): Handle
679         GFC_STD_F2008_OBS.
680         io.c (check_format): Fix allow_std check.
681
682 2010-06-25  Tobias Burnus  <burnus@net-b.de>
683
684         * decl.c (gfc_match_entry): Allow END besides
685         END SUBROUTINE/END FUNCTION for contained procedures.
686
687 2010-06-25  Tobias Burnus  <burnus@net-b.de>
688
689         * parse.c (next_free, next_fixed): Allow ";" as first character.
690
691 2010-06-24  Tobias Burnus  <burnus@net-b.de>
692
693         PR fortran/44614
694         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
695
696 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
697
698         PR fortran/44616
699         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
700         containers.
701
702 2010-06-21  Tobias Burnus  <burnus@net-b.de>
703
704         PR fortran/40632
705         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
706         checks.
707         * symbol.c (gfc_add_contiguous): New function.
708         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
709         * decl.c (match_attr_spec): Ditto.
710         (gfc_match_contiguous): New function.
711         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
712         contiguous.
713         * gfortran.h (symbol_attribute): Add contiguous.
714         (gfc_is_simply_contiguous): Add prototype.
715         (gfc_add_contiguous): Add prototype.
716         * match.h (gfc_match_contiguous): Add prototype.
717         * parse.c (decode_specification_statement,
718         decode_statement): Handle contiguous attribute.
719         * expr.c (gfc_is_simply_contiguous): New function.
720         * dump-parse-tree.c (show_attr): Handle contiguous.
721         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
722         Ditto.
723         * trans-expr.c (gfc_add_interface_mapping): Copy
724         attr.contiguous.
725         * trans-array.c (gfc_conv_descriptor_stride_get,
726         gfc_conv_array_parameter): Handle contiguous arrays.
727         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
728         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
729         Ditto.
730         * trans.h (gfc_array_kind): Ditto.
731         * trans-decl.c (gfc_get_symbol_decl): Ditto.
732
733 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
734
735         * options.c (gfc_handle_option): Don't handle N_OPTS.
736
737 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
738
739         PR fortran/44584
740         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
741         to avoid ICE.
742
743 2010-06-18  Tobias Burnus  <burnus@net-b.de>
744
745         PR fortran/44556
746         * resolve.c (resolve_allocate_deallocate): Properly check
747         part-refs in stat=/errmsg= for invalid use.
748
749 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
750
751         PR fortran/44558
752         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
753         Return directly in case of an error.
754
755 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
756
757         PR fortran/44549
758         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
759         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
760         structure to each procedure in a procedure list.
761         * module.c (mio_typebound_proc): Add NULL argument to
762         'gfc_get_typebound_proc'.
763         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
764         to initialize the new structure.
765
766 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
767
768         PR fortran/43388
769         * gfortran.h (gfc_expr): Add new member 'mold'.
770         * match.c (gfc_match_allocate): Implement the MOLD tag.
771         * resolve.c (resolve_allocate_expr): Ditto.
772         * trans-stmt.c (gfc_trans_allocate): Ditto.
773
774 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
775
776         PR fortran/44536
777         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
778         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
779         GFC_DECL_SAVED_DESCRIPTOR set.
780         (gfc_omp_report_decl): New function.
781         * trans.h (gfc_omp_report_decl): New prototype.
782         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
783
784 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
785
786         PR fortran/31588
787         PR fortran/43954
788         * gfortranspec.c (lang_specific_driver): Removed deprecation
789         warning for -M.
790         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
791         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
792         * cpp.h (gfc_cpp_makedep): New.
793         (gfc_cpp_add_dep): New.
794         (gfc_cpp_add_target): New.
795         * cpp.c (gfc_cpp_option): Add deps* members.
796         (gfc_cpp_makedep): New.
797         (gfc_cpp_add_dep): New.
798         (gfc_cpp_add_target): New.
799         (gfc_cpp_init_options): Initialize new options.
800         (gfc_cpp_handle_option): Handle new options.
801         (gfc_cpp_post_options): Map new options to libcpp-options.
802         (gfc_cpp_init): Handle deferred -MQ and -MT options.
803         (gfc_cpp_done): If requested, write dependencies to file.
804         * module.c (gfc_dump_module): Add a module filename as target.
805         * scanner.c (open_included_file): New parameter system; add the
806         included file as dependency.
807         (gfc_open_included_file): Add the included file as dependency.
808         (gfc_open_intrinsic_module): Likewise.
809         * invoke.texi: Removed deprecation warning for -M.
810         * gfortran.texi: Removed Makefile-dependencies project.
811
812 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
813
814         * resolve.c (resolve_global_procedure): Improved checking if an
815         explicit interface is required.
816
817 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
818
819         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
820         return type.
821         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
822         (gfc_conv_intrinsic_ttynam): Likewise.
823         (gfc_conv_intrinsic_trim): Likewise.
824
825 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
826
827         PR fortran/40117
828         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
829
830 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
831
832         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
833
834 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
835
836         * mathbuiltins.def: Add builtins that do not directly correspond
837         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
838         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
839         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
840         code_{r,c}{4,8,10,16} fields. Add
841         {,complex}{float,double,long_double}_built_in fields.
842         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
843         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
844         definition of OTHER_BUILTIN.
845         (real_compnt_info): Remove unused struct.
846         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
847         functions.
848         (build_round_expr): Call builtin_decl_for_precision instead of
849         series of if-else.
850         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
851         instead of a switch.
852         (gfc_build_intrinsic_lib_fndecls): Match
853         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
854         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
855         kinds.
856         (gfc_conv_intrinsic_lib_function): Go through all the extended
857         gfc_intrinsic_map.
858         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
859         instead of a switch.
860         (gfc_conv_intrinsic_abs): Likewise.
861         (gfc_conv_intrinsic_mod): Likewise.
862         (gfc_conv_intrinsic_sign): Likewise.
863         (gfc_conv_intrinsic_fraction): Likewise.
864         (gfc_conv_intrinsic_nearest): Likewise.
865         (gfc_conv_intrinsic_spacing): Likewise.
866         (gfc_conv_intrinsic_rrspacing): Likewise.
867         (gfc_conv_intrinsic_scale): Likewise.
868         (gfc_conv_intrinsic_set_exponent): Likewise.
869
870 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
871
872         PR fortran/42051
873         PR fortran/43896
874         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
875         functions with CLASS formal arguments.
876
877 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
878
879         PR fortran/44207
880         * resolve.c (conformable_arrays): Handle allocatable components.
881
882 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
883
884         PR fortran/38273
885         * gfortran.texi: Document that Cray pointers cannot be function
886         results.
887
888 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
889
890         PR fortran/36234
891         * gfortran.texi: Document lack of support for syntax
892         "complex FUNCTION name*16()", and existence of alternative
893         legacy syntax "complex*16 FUNCTION name()".
894
895 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
896
897         PR fortran/43032
898         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
899         POSIX's fsync(), and how to call the latter from Fortran code.
900
901 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
902
903         PR fortran/44457
904         * interface.c (compare_actual_formal): Reject actual arguments with
905         array subscript passed to ASYNCHRONOUS dummys.
906
907 2010-06-10  Daniel Kraft  <d@domob.eu>
908
909         PR fortran/38936
910         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
911         (struct gfc_symbol): New field `assoc'.
912         (struct gfc_association_list): New struct.
913         (struct gfc_code): New struct `block' in union, move `ns' there
914         and add association list.
915         (gfc_free_association_list): New method.
916         (gfc_has_vector_subscript): Made public;
917         * match.h (gfc_match_associate): New method.
918         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
919         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
920         * interface.c (gfc_has_vector_subscript): Made public.
921         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
922         * match.c (gfc_match_associate): New method.
923         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
924         * primary.c (match_variable): Don't allow names associated to expr here.
925         * parse.c (decode_statement): Try matching ASSOCIATE statement.
926         (case_exec_markers, case_end): Add ASSOCIATE statement.
927         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
928         (parse_associate): New method.
929         (parse_executable): Handle ST_ASSOCIATE.
930         (parse_block_construct): Change reference to gfc_code's `ns' field.
931         * resolve.c (resolve_select_type): Ditto.
932         (resolve_code): Ditto.
933         (resolve_block_construct): Ditto and add comment.
934         (resolve_select_type): Set association list in generated BLOCK to NULL.
935         (resolve_symbol): Resolve associate names.
936         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
937         and free association list.
938         (gfc_free_association_list): New method.
939         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
940         * trans-stmt.c (gfc_trans_block_construct): Change reference to
941         gfc_code's `ns' field.
942
943 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
944
945         * error.c (error_print): Pre-initialize loc by NULL.
946         * openmp.c (resolve_omp_clauses): Add explicit
947         braces to avoid ambigous else.
948         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
949
950 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
951
952         * gfc-internals.texi: Move to GFDL 1.3.
953         * gfortran.texi: Ditto.
954         * intrinsic.texi: Ditto.
955         * invoke.texi: Ditto.
956
957 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
958
959         PR fortran/44347
960         * check.c (gfc_check_selected_real_kind): Verify that the
961         actual arguments are scalar.
962
963 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
964
965         PR fortran/44359
966         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
967
968 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
969
970         PR fortran/44430
971         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
972
973 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
974
975         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
976
977 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
978
979         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
980         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
981         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
982         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
983         gfc_check_bitfcn.
984         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
985         less_than_bitsize2): New functions.
986         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
987         nonnegative_check and less_than_bitsize1.
988         (gfc_check_ibclr, gfc_check_ibset): Removed.
989         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
990         less_than_bitsize1.
991
992 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
993
994         PR fortran/44211
995         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
996         Resolve references.
997
998 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
999
1000         * resolve.c (resolve_deallocate_expr): Avoid warning
1001         about possible use of iunitialized sym.
1002         (resolve_allocate_expr): Pre-initialize sym by NULL.
1003
1004 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1005
1006         PR fortran/43040
1007         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
1008
1009 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1010
1011         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
1012         allocation.
1013         (gfc_get_array_type_bounds): Likewise.
1014
1015         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
1016         (gfc_find_module): Likewise.
1017
1018         * f95-lang.c (pushlevel): Likewise.
1019
1020         * trans.h (struct lang_type): Add variable_size GTY option.
1021         (struct lang_decl): Likewise.
1022
1023 2010-06-08  Tobias Burnus  <burnus@net-b.de>
1024
1025         PR fortran/44446
1026         * symbol.c (check_conflict): Move protected--external/procedure check ...
1027         * resolve.c (resolve_select_type): ... to the resolution stage.
1028
1029 2010-06-07  Tobias Burnus  <burnus@net-b.de>
1030
1031         * options.c (gfc_handle_option): Fix -fno-recursive.
1032
1033 2010-06-07  Tobias Burnus  <burnus@net-b.de>
1034
1035         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
1036         * gfortran.texi (copyrights-gfortran): Ditto.
1037
1038 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
1039
1040         * lang.opt (fshort-enums): Define using Var and VarExists.
1041         * options.c (gfc_handle_option): Don't set flag_short_enums here.
1042
1043 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
1044             Janus Weil  <janus@gcc.gnu.org>
1045
1046         PR fortran/43945
1047         * resolve.c (get_declared_from_expr): Move to before
1048         resolve_typebound_generic_call.  Make new_ref and class_ref
1049         ignorable if set to NULL.
1050         (resolve_typebound_generic_call): Once we have resolved the
1051         generic call, check that the specific instance is that which
1052         is bound to the declared type.
1053         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
1054         freeing 'class_ref->next' twice.
1055
1056 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
1057
1058         PR fortran/43895
1059         * trans-array.c (structure_alloc_comps): Dereference scalar
1060         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
1061         TREE_TYPE (decl).
1062
1063 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
1064
1065         * gfortranspec.c (append_arg, lang_specific_driver): Use
1066         GCC-specific formats in diagnostics.
1067
1068 2010-06-02  Tobias Burnus  <burnus@net-b.de>
1069
1070         PR fortran/44360
1071         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
1072         symbols.
1073
1074 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1075
1076         PR fortran/44371
1077         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
1078         condition block.
1079
1080 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
1081
1082         * fortran/gfortran.texi:  Fix typos in description of variable-format-
1083         expressions.
1084
1085 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
1086
1087         PR fortran/36928
1088         * dependency.c (gfc_check_section_vs_section):  Check
1089         for interleaving array assignments without conflicts.
1090
1091 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
1092
1093         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
1094         $data component of a class container.
1095         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
1096         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
1097         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
1098         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
1099         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
1100         * gcc/fortran/parse.c (parse_derived): Ditto.
1101         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
1102         gfc_expr_attr): Ditto.
1103         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
1104         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
1105         resolve_fl_var_and_proc, resolve_typebound_procedure,
1106         resolve_fl_derived): Ditto.
1107         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
1108         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
1109         CLASS_DATA.
1110         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
1111         gfc_trans_deferred_vars): Ditto.
1112         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
1113
1114 2010-05-28  Tobias Burnus  <burnus@net-b.de>
1115
1116         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
1117
1118 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1119
1120         * gfortranspec.c (append_arg, lang_specific_driver): Use
1121         fatal_error instead of fatal.  Use warning instead of fprintf for
1122         warnings.
1123
1124 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
1127         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
1128         xstrerror instead of strerror.
1129
1130 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1131
1132         * cpp.c (cb_cpp_error): Save and restore
1133         global_dc->warn_system_headers, not variable warn_system_headers.
1134
1135 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1136
1137         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
1138
1139 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1140
1141         * trans-common.c: Do not include rtl.h, include output.h instead.
1142         * trans-decl.c: Likewise.
1143
1144 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
1145
1146         PR fortran/40011
1147         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
1148         namespace before trying to reorder the gsymbols.
1149
1150 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
1151
1152         PR fortran/30668
1153         PR fortran/31346
1154         PR fortran/34260
1155         * resolve.c (resolve_global_procedure): Add check for global
1156         procedures with implicit interfaces and assumed-shape or optional
1157         dummy arguments. Verify that function return type, kind and string
1158         lengths match.
1159
1160 2010-05-21  Tobias Burnus  <burnus@net-b.de>
1161
1162         * gfortran.h: Do not include system.h.
1163         * bbt.c: Include system.h.
1164         * data.c: Ditto.
1165         * dependency.c: Ditto.
1166         * dump-parse-tree.c: Ditto.
1167         * arith.h: Do not include gfortran.h.
1168         * constructor.h: Do not include gfortran.h and splay-tree.h.
1169         * match.h: Do not include gfortran.h.
1170         * parse.h: Ditto.
1171         * target-memory.h: Ditto.
1172         * openmp.c: Do not include toplev.h and target.h.
1173         * trans-stmt.c: Ditto not include toplev.h.
1174         * primary.c: Ditto.
1175         * trans-common.c: Tell why toplev.h is needed. And
1176         do not include target.h.
1177         * trans-expr.c: Tell why toplev.h is needed.
1178         * trans-array.c: Ditto.
1179         * trans-openmp.c: Ditto.
1180         * trans-const.c: Ditto.
1181         * trans.c: Ditto.
1182         * trans-types.c: Ditto.
1183         * trans-io.c: Ditto.
1184         * trans-decl.c: Ditto.
1185         * scanner.c: Ditto.
1186         * convert.c: Ditto.
1187         * trans-intrinsic.c: Ditto.
1188         * options.c: Ditto.
1189
1190 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1191
1192         PR fortran/43851
1193         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
1194         before returning MATCH_ERROR. Add check for scalar. Add check for
1195         default integer kind.
1196
1197 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
1198
1199         PR fortran/44212
1200         * match.c (gfc_match_select_type): On error jump back out of the local
1201         namespace.
1202         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
1203         stage, more precisely to ...
1204         * resolve.c (resolve_fl_derived): ... this place.
1205
1206 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
1207
1208         PR fortran/44213
1209         * resolve.c (ensure_not_abstract): Allow abstract types with
1210         non-abstract ancestors.
1211
1212 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1213
1214         * trans-const.c: Include realmpfr.h.
1215         * Make-lang.in: Update dependencies.
1216
1217 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1218
1219         * trans-const.c, trans-types.c, trans-intrinsic.c:
1220         Clean up redundant includes.
1221
1222 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
1223
1224         PR fortran/38407
1225         * lang.opt (Wunused-dummy-argument): New option.
1226         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
1227         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
1228         (set_Wall): Enable warn_unused_dummy_argument.
1229         (gfc_handle_option): Set warn_unused_dummy_argument according to
1230         command line.
1231         * trans-decl.c (generate_local_decl): Separate warnings about
1232         unused variables and unused dummy arguments.
1233         * invoke.texi: Documented new option.
1234
1235 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
1236
1237         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
1238         (gfc_conv_string_tmp): Do not assert type comparibilty.
1239         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
1240         (gfc_conv_expr_descriptor): Remove assert.
1241         * trans-common.c: Clarify why rtl.h and tm.h are included.
1242         * trans-openmp.c: Do not include ggc.h and real.h.
1243         Explain why gimple.h is included.
1244         * trans-const.c: Do not include ggc.h.
1245         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
1246         * trans.c: Do not include ggc.h and real.h.
1247         Explain why gimple.h is included.
1248         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
1249         and dwarf2out.h are included.
1250         * trans-io.c: Do not include gimple.h and real.h.
1251         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
1252         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
1253         is included.
1254
1255 2010-05-20  Tobias Burnus  <burnus@net-b.de>
1256
1257         * options.c (gfc_init_options,gfc_post_options): Enable
1258         flag_associative_math by default.
1259
1260 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1261
1262         PR fortran/43851
1263         * trans-stmt.c (gfc_trans_stop): Add generation of call to
1264         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
1265         blank STOP, handling a null expression. (gfc_trans_pause): Use
1266         pause_string for blank PAUSE.
1267         * trans.h: Add external function declaration for error_stop_numeric.
1268         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
1269         the declaration for the library call. Adjust whitespaces.
1270         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
1271         signal no stop code. Match the expression following the stop and pass
1272         that to the translators. Remove the old use of digit matching.  Add
1273         checks that the stop_code expression is INTEGER or CHARACTER, constant,
1274         and if CHARACTER, default character KIND.
1275
1276 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1277
1278         PR fortran/44055
1279         * lang.opt (Wconversion-extra): New option.
1280         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
1281         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
1282         (set_Wall): Enable -Wconversion.
1283         (gfc_handle_option): Set warn_conversion_extra.
1284         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
1285         introduced for -Wconversion if -Wconversion-extra is present.
1286         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
1287         -Wconversion; document -Wconversion-extra.
1288
1289 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1290
1291         PR fortran/42360
1292         * gfortran.h (gfc_has_default_initializer): New.
1293         * expr.c (gfc_has_default_initializer): New.
1294         * resolve.c (has_default_initializer): Removed, use
1295         gfc_has_default_initializer() instead. Updated all callers.
1296         * trans-array.c (has_default_initializer): Removed, use
1297         gfc_has_default_initializer() instead. Updated all callers.
1298         * trans-decl.c (generate_local_decl): Do not check the
1299         first component only to check for initializers, but use
1300         gfc_has_default_initializer() instead.
1301
1302 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1303
1304         PR fortran/38404
1305         * primary.c (match_string_constant): Move start_locus just inside 
1306         the string.
1307         * data.c (create_character_intializer): Clarified truncation warning.
1308
1309 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
1310
1311         PR fortran/34505
1312         * intrinsic.h (gfc_check_float): New prototype.
1313         (gfc_check_sngl): New prototype.
1314         * check.c (gfc_check_float): New.
1315         (gfc_check_sngl): New.
1316         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
1317         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
1318         and SNGL.
1319         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
1320         added them to the list of specifics of REAL instead.
1321
1322 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
1323
1324         PR fortran/43990
1325         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
1326         This is now handled via 'gfc_class_null_initializer'.
1327
1328 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
1329
1330         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
1331         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
1332         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1333         add_procs_to_declared_vtab,add_generic_specifics, 
1334         add_generics_to_declared_vtab,gfc_find_derived_vtab,
1335         find_typebound_proc_uop,gfc_find_typebound_proc,
1336         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
1337         gfc_get_tbp_symtree): Moved here from other places.
1338         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
1339         class.c.
1340         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
1341         gfc_find_typebound_proc,gfc_find_typebound_user_op,
1342         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
1343         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
1344         * Make-lang.in: Add class.o.
1345         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
1346         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1347         add_procs_to_declared_vtab,add_generic_specifics,
1348         add_generics_to_declared_vtab,gfc_find_derived_vtab,
1349         find_typebound_proc_uop,gfc_find_typebound_proc,
1350         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
1351         gfc_get_tbp_symtree): Move to class.c.
1352
1353 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1354
1355         * trans-types.c (gfc_init_types): Use build_function_type_list.
1356         (gfc_get_ppc_type): Likewise.
1357         * trans-decl.c (gfc_generate_constructors): Likewise.
1358         * f95-lang.c (build_builtin_fntypes): Likewise.
1359         (gfc_init_builtin_functions): Likewise.
1360         (DEF_FUNCTION_TYPE_0): Likewise.
1361         (DEF_FUNCTION_TYPE_1): Likewise.
1362         (DEF_FUNCTION_TYPE_2): Likewise.
1363         (DEF_FUNCTION_TYPE_3): Likewise.
1364         (DEF_FUNCTION_TYPE_4): Likewise.
1365         (DEF_FUNCTION_TYPE_5): Likewise.
1366         (DEF_FUNCTION_TYPE_6): Likewise.
1367         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
1368         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
1369  
1370 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1371
1372         * trans-array.c (gfc_trans_array_constructor_value): Use
1373         build_constructor instead of build_constructor_from_list.
1374         (gfc_build_constant_array_constructor): Likewise.
1375         * trans-decl.c (create_main_function): Likewise.
1376         * trans-stmt.c (gfc_trans_character_select): Likewise.
1377
1378 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
1379
1380         PR fortran/44044
1381         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
1382         (resolve_fl_variable_derived): ... this place.
1383         (resolve_symbol): Make sure function symbols (and their result
1384         variables) are not resolved twice.
1385
1386 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
1387
1388         PR fortran/35779
1389         * array.c (match_array_list): Revert change from 2010-05-13.
1390
1391 2010-05-16  Richard Guenther  <rguenther@suse.de>
1392
1393         * trans-decl.c (module_htab_decls_hash): Revert last change.
1394
1395 2010-05-16  Richard Guenther  <rguenther@suse.de>
1396
1397         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
1398
1399 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1400
1401         * options.c (set_Wall): Remove special logic for Wuninitialized
1402         without -O.
1403
1404 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
1405
1406         PR fortran/44154
1407         PR fortran/42647
1408         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
1409         if branches.
1410
1411 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
1412
1413         PR fortran/43207
1414         PR fortran/43969
1415         * gfortran.h (gfc_class_null_initializer): New prototype.
1416         * expr.c (gfc_class_null_initializer): New function to build a NULL
1417         initializer for CLASS pointers.
1418         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
1419         containers. Remove default NULL initialization of $data component.
1420         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
1421         message.
1422         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
1423         Use new function 'gfc_class_null_initializer'.
1424         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
1425         class variables.
1426
1427 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1428
1429         PR fortran/44135
1430         * fortran/interface.c (get_sym_storage_size): Use signed instead of
1431         unsigned mpz_get_?i routines.
1432
1433 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1434
1435         * trans.c (trans_code): Set backend locus early.
1436         * trans-decl.c (gfc_get_fake_result_decl): Use source location
1437         of the function instead of current input_location.
1438
1439 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
1440
1441         PR fortran/35779
1442         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
1443         Updated all usages.
1444         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
1445         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
1446         iterators.
1447
1448 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
1449
1450         PR fortran/44036
1451         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
1452         variable lists.
1453         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
1454         by reference dummy procedures or non-dummy procedure pointers.
1455         (gfc_omp_predetermined_sharing): Return
1456         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
1457
1458 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
1459
1460         PR fortran/43711
1461         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
1462         after OMP statement.
1463         (gfc_match_omp_critical): Likewise.
1464         (gfc_match_omp_flush): Likewise.
1465         (gfc_match_omp_workshare): Likewise.
1466         (gfc_match_omp_master): Likewise.
1467         (gfc_match_omp_ordered): Likewise.
1468         (gfc_match_omp_atomic): Likewise.
1469         (gfc_match_omp_barrier): Likewise.
1470         (gfc_match_omp_end_nowait): Likewise.
1471
1472 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
1473
1474         PR fortran/31820
1475         * resolve.c (validate_case_label_expr): Removed FIXME.
1476         (resolve_select): Raise default warning on case labels out of range
1477         of the case expression.
1478
1479 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
1480
1481         PR fortran/27866
1482         PR fortran/35003
1483         PR fortran/42809
1484         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
1485         about conversion warnings.
1486
1487 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
1488
1489         PR fortran/44044
1490         * match.c (gfc_match_select_type): Move error message to
1491         resolve_select_type.
1492         * resolve.c (resolve_select_type): Error message moved here from
1493         gfc_match_select_type. Correctly set type of temporary.
1494
1495 2010-05-10  Richard Guenther  <rguenther@suse.de>
1496
1497         * trans-decl.c (gfc_build_library_function_decl): Split out
1498         worker to ...
1499         (build_library_function_decl_1): ... this new function.
1500         Set a fnspec attribute if a specification was provided.
1501         (gfc_build_library_function_decl_with_spec): New function.
1502         (gfc_build_intrinsic_function_decls): Annotate internal_pack
1503         and internal_unpack.
1504
1505 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
1506
1507         PR fortran/40728
1508         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
1509         as external.
1510
1511 2010-05-07  Jason Merrill  <jason@redhat.com>
1512
1513         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
1514         to avoid -Wc++-compat warning.
1515
1516 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1517
1518         PR 40989
1519         * options.c (gfc_handle_option): Add argument kind.
1520         * gfortran.h (gfc_handle_option): Update declaration.
1521
1522 2010-05-06  Tobias Burnus  <burnus@net-b.de>
1523
1524         PR fortran/43985
1525         * trans-types.c (gfc_sym_type): Mark Cray pointees as
1526         GFC_POINTER_TYPE_P.
1527
1528 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
1529
1530         PR fortran/32331
1531         * resolve.c (traverse_data_list): Rephrase error message for
1532         non-constant bounds in data-implied-do.
1533
1534 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
1535
1536         PR fortran/24978
1537         * gfortran.h: Removed repeat count from constructor, removed
1538         all usages.
1539         * data.h (gfc_assign_data_value_range): Changed return value from
1540         void to gfc_try.
1541         * data.c (gfc_assign_data_value): Add location to constructor element.
1542         (gfc_assign_data_value_range): Call gfc_assign_data_value()
1543         for each element in range. Return early if an error was generated.
1544         * resolve.c (check_data_variable): Stop early if range assignment
1545         generated an error.
1546
1547 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
1548
1549         PR fortran/43696
1550         * resolve.c (resolve_fl_derived): Some fixes for class variables.
1551         * symbol.c (gfc_build_class_symbol): Add separate class container for
1552         class pointers.
1553
1554 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1555
1556         PR fortran/43592
1557         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
1558
1559 2010-05-02  Tobias Burnus  <burnus@net-b.de>
1560
1561         PR fortran/18918
1562         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
1563         for lcobound, ucobound, image_index and this_image.
1564         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
1565         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
1566         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
1567         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
1568         functions.
1569         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
1570
1571 2010-04-30  Tobias Burnus  <burnus@net-b.de>
1572
1573         PR fortran/18918
1574         PR fortran/43931
1575         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
1576         calculation for array descriptor types.
1577
1578 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
1579
1580         PR fortran/43896
1581         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
1582         initializers for PPC members of the vtabs.
1583
1584 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
1585
1586         PR fortran/42274
1587         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
1588         attribute for all PPC members of the vtypes.
1589         (copy_vtab_proc_comps): Copy the correct interface.
1590         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
1591         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
1592         a dummy argument and make sure all PPC members of the vtab are
1593         initialized correctly.
1594         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
1595         in call to gfc_trans_assign_vtab_procs.
1596         * trans-stmt.c (gfc_trans_allocate): Ditto.
1597
1598 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
1599
1600         PR fortran/43326
1601         * resolve.c (resolve_typebound_function): Renamed
1602         resolve_class_compcall.Do all the detection of class references
1603         here.
1604         (resolve_typebound_subroutine): resolve_class_typebound_call
1605         renamed. Otherwise same as resolve_typebound_function.
1606         (gfc_resolve_expr): Call resolve_typebound_function.
1607         (resolve_code): Call resolve_typebound_subroutine.
1608
1609 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
1610
1611         PR fortran/43492
1612         * resolve.c (resolve_typebound_generic_call): For CLASS methods
1613         pass back the specific symtree name, rather than the target
1614         name.
1615
1616 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
1617
1618         PR fortran/42353
1619         * resolve.c (resolve_structure_cons): Make the initializer of
1620         the vtab component 'extends' the same type as the component.
1621
1622 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1623
1624         PR fortran/42680
1625         * interface.c (check_interface1): Pass symbol name rather than NULL to
1626         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
1627         trap MULL. (gfc_compare_derived_types): Revert previous change
1628         incorporated incorrectly during merge from trunk, r155778.
1629         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
1630         than NULL to gfc_compare_interfaces.
1631         * symbol.c (add_generic_specifics): Likewise.
1632
1633 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
1634
1635         PR fortran/42353
1636         * interface.c (gfc_compare_derived_types): Add condition for vtype.
1637         * symbol.c (gfc_find_derived_vtab): Sey access to private.
1638         (gfc_find_derived_vtab): Likewise.
1639         * module.c (ab_attribute): Add enumerator AB_VTAB.
1640         (mio_symbol_attribute): Use new attribute, AB_VTAB.
1641         (check_for_ambiguous): Likewise.
1642
1643 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
1644             Janus Weil  <janus@gcc.gnu.org>
1645
1646         PR fortran/41829
1647         * trans-expr.c (select_class_proc): Remove function.
1648         (conv_function_val): Delete reference to previous.
1649         (gfc_conv_derived_to_class): Add second argument to the call to
1650         gfc_find_derived_vtab.
1651         (gfc_conv_structure): Exclude proc_pointer components when
1652         accessing $data field of class objects.
1653         (gfc_trans_assign_vtab_procs): New function.
1654         (gfc_trans_class_assign): Add second argument to the call to
1655         gfc_find_derived_vtab.
1656         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
1657         implement holding off searching for the vptr derived type.
1658         (add_proc_component): New function.
1659         (add_proc_comps): New function.
1660         (add_procs_to_declared_vtab1): New function.
1661         (copy_vtab_proc_comps): New function.
1662         (add_procs_to_declared_vtab): New function.
1663         (void add_generic_specifics): New function.
1664         (add_generics_to_declared_vtab): New function.
1665         (gfc_find_derived_vtab): Add second argument to the call to
1666         gfc_find_derived_vtab. Add the calls to
1667         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
1668         * decl.c (build_sym, build_struct): Use new arg in calls to
1669         gfc_build_class_symbol.
1670         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
1671         definition of struct gfc_class_esym_list. Modify prototypes
1672         of gfc_build_class_symbol and gfc_find_derived_vtab.
1673         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
1674         call to gfc_find_derived_vtab.
1675         * module.c : Add the vtype attribute.
1676         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
1677         * resolve.c (resolve_typebound_generic_call): Add second arg
1678         to pass along the generic name for class methods.
1679         (resolve_typebound_call): The same.
1680         (resolve_compcall): Use the second arg to carry the generic
1681         name from the above. Remove the reference to class_esym.
1682         (check_members, check_class_members, resolve_class_esym,
1683         hash_value_expr): Remove functions.
1684         (resolve_class_compcall, resolve_class_typebound_call): Modify
1685         to use vtable rather than member by member calls.
1686         (gfc_resolve_expr): Modify second arg in call to
1687         resolve_compcall.
1688         (resolve_select_type): Add second arg in call to
1689         gfc_find_derived_vtab.
1690         (resolve_code): Add second arg in call resolve_typebound_call.
1691         (resolve_fl_derived): Exclude vtypes from check for late
1692         procedure definitions. Likewise for checking of explicit
1693         interface and checking of pass arg.
1694         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
1695         calls to gfc_find_derived_vtab.
1696         * match.c (select_type_set_tmp): Use new arg in call to
1697         gfc_build_class_symbol.
1698         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
1699         necessary.
1700         * parse.c (endType): Finish incomplete classes.
1701
1702 2010-04-28  Tobias Burnus  <burnus@net-b.de>
1703
1704         PR fortran/18918
1705         PR fortran/43919
1706         * simplify.c (simplify_cobound): Handle scalar coarrays.
1707
1708 2010-04-27  Tobias Burnus  <burnus@net-b.de>
1709
1710         * gfc-internals.texi: Update copyright year.
1711         * gfortran.texi: Ditto.
1712         * invoke.texi: Ditto.
1713
1714 2010-04-27  Tobias Burnus  <burnus@net-b.de>
1715
1716         PR fortran/18918
1717         * resolve.c (resolve_allocate_expr): Allow array coarrays.
1718         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
1719         * trans-types.c (gfc_get_array_type_bounds,
1720         gfc_get_array_descriptor_base): Add corank argument.
1721         * trans-array.c (gfc_array_init_size): Handle corank.
1722         (gfc_trans_create_temp_array, gfc_array_allocate,
1723         gfc_conv_expr_descriptor): Add corank argument to call.
1724         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
1725
1726 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
1727
1728         PR fortran/30073
1729         PR fortran/43793
1730         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
1731         of mucking with a tree directly.
1732
1733 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1734
1735         PR fortran/43832
1736         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
1737         gfc_error with new error message.
1738
1739 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
1740
1741         PR fortran/43841
1742         PR fortran/43843
1743         * trans-expr.c (gfc_conv_expr): Supply an address expression for
1744         GFC_SS_REFERENCE.
1745         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
1746         GFC_SS_REFERENCE.
1747         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
1748         than the address of a GFC_SS_REFERENCE.
1749         * trans.h : Change comment on GFC_SS_REFERENCE. 
1750
1751 2010-04-22  Richard Guenther  <rguenther@suse.de>
1752
1753         PR fortran/43829
1754         * resolve.c (gfc_resolve_index): Wrap around ...
1755         (gfc_resolve_index_1): ... this.  Add parameter to allow
1756         any integer kind index type.
1757         (resolve_array_ref): Allow any integer kind for the start
1758         index of an array ref.
1759
1760 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1761
1762         PR fortran/43836
1763         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
1764         the decl.
1765
1766 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
1767
1768         * intrinsic.c (sort_actual): Remove 'is' in error message.
1769
1770 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
1771
1772         PR fortran/43227
1773         * resolve.c (resolve_fl_derived): If a component character
1774         length has not been resolved, do so now.
1775         (resolve_symbol): The same as above for a symbol character
1776         length.
1777         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
1778         not needed for a character valued, procedure pointer.
1779
1780         PR fortran/43266
1781         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
1782         not found, return FAILURE rather than ICEing.
1783
1784 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1785
1786         PR fortran/43339
1787         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
1788         sequential loops private in the innermost containing task region.
1789
1790 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1791
1792         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
1793         to build_common_tree_nodes.
1794
1795 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
1796
1797         PR fortran/31538
1798         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
1799         gfc_msg_bounds by using 'Array bound mismatch' directly.
1800         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
1801         error message to include the mismatch in the extent of array bound.
1802         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
1803         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
1804
1805 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1806
1807         * gfortran.texi: Update information on temporary file locations.
1808
1809 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1810
1811         * trans-decl.c (gfc_build_qualified_array): Ensure
1812         ubound.N and lbound.N artificial variable names don't appear
1813         in debug info.
1814
1815 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1816
1817         PR fortran/30073
1818         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
1819         block of code.  Set name to the variable associated with the descriptor.
1820
1821 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
1822
1823         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
1824         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
1825
1826 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1827
1828         * intrinsic.texi: Add the missing specific name of intrinsic
1829         procedure where the specific name is identical to the generic name.
1830         Fix inconsistent or mismatch in the argument names in intrinsic
1831         procedure descriptions.  Add the SCALAR allocatable description to
1832         ALLOCATED.
1833
1834 2010-04-14  Tobias Burnus  <burnus@net-b.de>
1835
1836         PR fortran/18918
1837         * array.c (gfc_find_array_ref): Handle codimensions.
1838         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
1839         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
1840         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
1841         New functions.
1842         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
1843         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
1844         GFC_ISYM_UCOBOUND.
1845         * intrinsic.h (add_functions): Add this_image, image_index,
1846         lcobound and ucobound intrinsics.
1847         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
1848         gfc_check_image_index, gfc_check_this_image,
1849         gfc_simplify_image_index, gfc_simplify_lcobound,
1850         gfc_simplify_this_image, gfc_simplify_ucobound):
1851         New function prototypes.
1852         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
1853         IMAGE_INDEX): Document new intrinsic functions.
1854         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
1855         error fatal.
1856         * simplify.c (simplify_bound_dim): Handle coarrays.
1857         (simplify_bound): Update simplify_bound_dim call.
1858         (gfc_simplify_num_images): Add -fcoarray=none check.
1859         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
1860         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
1861
1862 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1863
1864         PR fortran/43747
1865         * constructor.c: Fix typo in comment.
1866         * expr.c (find_array_section): Add check for max array limit.
1867
1868 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
1869
1870         PR bootstrap/31400
1871         * gfortranspec.c (lookup_option): Check for -static and return
1872         OPTION_static.
1873         (lang_specific_driver): Break when OPTION_static is discovered.
1874
1875 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1876
1877         * array.c (extract_element): Restore function from trunk.
1878         (gfc_get_array_element): Restore function from trunk.
1879         (gfc_expand_constructor): Restore check against
1880         flag_max_array_constructor.
1881         * constructor.c (node_copy_and_append): Delete unused.
1882         * gfortran.h: Delete comment and extra include.
1883         * constructor.h: Bump copyright and clean up TODO comments.
1884         * resolve.c: Whitespace.
1885
1886 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
1887
1888         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
1889         with direct access access to elements. Adjusted prototype, fixed all
1890         callers.
1891         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
1892         array.
1893         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
1894         (gfc_simplify_spread): Removed workaround, directly insert elements
1895         at a given array position.
1896         (gfc_simplify_transpose): Likewise.
1897         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
1898         function calls.
1899         (gfc_simplify_unpack): Likewise.
1900
1901 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
1902
1903         * simplify.c (only_convert_cmplx_boz): Renamed to ...
1904         (convert_boz): ... this and moved to start of file.
1905         (gfc_simplify_abs): Whitespace fix.
1906         (gfc_simplify_acos): Whitespace fix.
1907         (gfc_simplify_acosh): Whitespace fix.
1908         (gfc_simplify_aint): Whitespace fix.
1909         (gfc_simplify_dint): Whitespace fix.
1910         (gfc_simplify_anint): Whitespace fix.
1911         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
1912         (gfc_simplify_dnint): Whitespace fix.
1913         (gfc_simplify_asin): Whitespace fix.
1914         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
1915         (gfc_simplify_atan): Likewise.
1916         (gfc_simplify_atanh): Whitespace fix.
1917         (gfc_simplify_atan2): Whitespace fix.
1918         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
1919         (gfc_simplify_bessel_j1): Likewise.
1920         (gfc_simplify_bessel_jn): Likewise.
1921         (gfc_simplify_bessel_y0): Likewise.
1922         (gfc_simplify_bessel_y1): Likewise.
1923         (gfc_simplify_bessel_yn): Likewise.
1924         (gfc_simplify_ceiling): Reorderd statements.
1925         (simplify_cmplx): Use convert_boz(), check for constant arguments.
1926         Whitespace fix.
1927         (gfc_simplify_cmplx): Use correct default kind. Removed check for
1928         constant arguments.
1929         (gfc_simplify_complex): Replaced if-gate. Removed check for
1930         constant arguments.
1931         (gfc_simplify_conjg): Whitespace fix.
1932         (gfc_simplify_cos): Whitespace fix.
1933         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
1934         (gfc_simplify_dcmplx): Removed check for constant arguments.
1935         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
1936         (gfc_simplify_digits): Whitespace fix.
1937         (gfc_simplify_dim): Whitespace fix.
1938         (gfc_simplify_dprod): Reordered statements.
1939         (gfc_simplify_erf): Whitespace fix.
1940         (gfc_simplify_erfc): Whitespace fix.
1941         (gfc_simplify_epsilon): Whitespace fix.
1942         (gfc_simplify_exp): Whitespace fix.
1943         (gfc_simplify_exponent): Use convert_boz().
1944         (gfc_simplify_floor): Reorderd statements.
1945         (gfc_simplify_gamma): Whitespace fix.
1946         (gfc_simplify_huge): Whitespace fix.
1947         (gfc_simplify_iand): Whitespace fix.
1948         (gfc_simplify_ieor): Whitespace fix.
1949         (simplify_intconv): Use gfc_convert_constant().
1950         (gfc_simplify_int): Use simplify_intconv().
1951         (gfc_simplify_int2): Reorderd statements.
1952         (gfc_simplify_idint): Reorderd statements.
1953         (gfc_simplify_ior): Whitespace fix.
1954         (gfc_simplify_ishftc): Removed duplicate type check.
1955         (gfc_simplify_len): Use range_check() instead of manual range check.
1956         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
1957         (gfc_simplify_log): Whitespace fix.
1958         (gfc_simplify_log10): Whitespace fix.
1959         (gfc_simplify_minval): Whitespace fix.
1960         (gfc_simplify_maxval): Whitespace fix.
1961         (gfc_simplify_mod): Whitespace fix.
1962         (gfc_simplify_modulo): Whitespace fix.
1963         (simplify_nint): Reorderd statements.
1964         (gfc_simplify_not): Whitespace fix.
1965         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
1966         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
1967         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
1968         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
1969         (gfc_simplify_realpart): Whitespace fix.
1970         (gfc_simplify_selected_char_kind): Removed unused result-variable.
1971         (gfc_simplify_selected_int_kind): Removed unused result-variable.
1972         (gfc_simplify_selected_real_kind): Removed unused result-variable.
1973         (gfc_simplify_sign): Whitespace fix.
1974         (gfc_simplify_sin): Whitespace fix.
1975         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
1976         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
1977         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
1978         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
1979         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
1980
1981 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
1982
1983         * gfortran.h (gfc_start_constructor): Removed.
1984         (gfc_get_array_element): Removed.
1985         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
1986         instead. Fixed all callers.
1987         (extract_element): Removed.
1988         (gfc_expand_constructor): Temporarily removed check for
1989         max-array-constructor. Will be re-introduced later if still required.
1990         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
1991         instead. Fixed all callers.
1992         * expr.c (find_array_section): Replaced manual lookup of elements
1993         by gfc_constructor_lookup.
1994
1995 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
1996
1997         * gfortran.h (gfc_get_null_expr): New prototype.
1998         (gfc_get_operator_expr): New prototype.
1999         (gfc_get_character_expr): New prototype.
2000         (gfc_get_iokind_expr): New prototype.
2001         * expr.c (gfc_get_null_expr): New.
2002         (gfc_get_character_expr): New.
2003         (gfc_get_iokind_expr): New.
2004         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
2005         * matchexp.c (build_node): Renamed and moved to
2006         expr.c (gfc_get_operator_expr). Reordered arguments to match 
2007         other functions. Fixed all callers.
2008         (gfc_get_parentheses): Use specific function to build expr.
2009         * array.c (gfc_match_array_constructor): Likewise.
2010         * arith.c (eval_intrinsic): Likewise.
2011         (gfc_hollerith2int): Likewise.
2012         (gfc_hollerith2real): Likewise.
2013         (gfc_hollerith2complex): Likewise.
2014         (gfc_hollerith2logical): Likewise.
2015         * data.c (create_character_intializer): Likewise.
2016         * decl.c (gfc_match_null): Likewise.
2017         (enum_initializer): Likewise.
2018         * io.c (gfc_match_format): Likewise.
2019         (match_io): Likewise.
2020         * match.c (gfc_match_nullify): Likewise.
2021         * primary.c (match_string_constant): Likewise.
2022         (match_logical_constant): Likewise.
2023         (build_actual_constructor): Likewise.
2024         * resolve.c (build_default_init_expr): Likewise.
2025         * symbol.c (generate_isocbinding_symbol): Likewise.
2026         (gfc_build_class_symbol): Likewise.
2027         (gfc_find_derived_vtab): Likewise.
2028         * simplify.c (simplify_achar_char): Likewise.
2029         (gfc_simplify_adjustl): Likewise.
2030         (gfc_simplify_adjustr): Likewise.
2031         (gfc_simplify_and): Likewise.
2032         (gfc_simplify_bit_size): Likewise.
2033         (gfc_simplify_is_iostat_end): Likewise.
2034         (gfc_simplify_is_iostat_eor): Likewise.
2035         (gfc_simplify_isnan): Likewise.
2036         (simplify_bound): Likewise.
2037         (gfc_simplify_leadz): Likewise.
2038         (gfc_simplify_len_trim): Likewise.
2039         (gfc_simplify_logical): Likewise.
2040         (gfc_simplify_maxexponent): Likewise.
2041         (gfc_simplify_minexponent): Likewise.
2042         (gfc_simplify_new_line): Likewise.
2043         (gfc_simplify_null): Likewise.
2044         (gfc_simplify_or): Likewise.
2045         (gfc_simplify_precision): Likewise.
2046         (gfc_simplify_repeat): Likewise.
2047         (gfc_simplify_scan): Likewise.
2048         (gfc_simplify_size): Likewise.
2049         (gfc_simplify_trailz): Likewise.
2050         (gfc_simplify_trim): Likewise.
2051         (gfc_simplify_verify): Likewise.
2052         (gfc_simplify_xor): Likewise.
2053         * trans-io.c (build_dt): Likewise.
2054         (gfc_new_nml_name_expr): Removed.
2055
2056 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2057
2058         * arith.h (gfc_constant_result): Removed prototype.
2059         * constructor.h (gfc_build_array_expr): Removed prototype.
2060         (gfc_build_structure_constructor_expr): Removed prototype.
2061         * gfortran.h (gfc_int_expr): Removed prototype.
2062         (gfc_logical_expr): Removed prototype.
2063         (gfc_get_array_expr): New prototype.
2064         (gfc_get_structure_constructor_expr): New prototype.
2065         (gfc_get_constant_expr): New prototype.
2066         (gfc_get_int_expr): New prototype.
2067         (gfc_get_logical_expr): New prototype.
2068         * arith.c (gfc_constant_result): Moved and renamed to
2069         expr.c (gfc_get_constant_expr). Fixed all callers.
2070         * constructor.c (gfc_build_array_expr): Moved and renamed to
2071         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
2072         and kind. Fixed all callers.
2073         (gfc_build_structure_constructor_expr): Moved and renamed to
2074         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
2075         to type and kind. Fixed all callers.
2076         * expr.c (gfc_logical_expr): Renamed to ...
2077         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
2078         (gfc_int_expr): Renamed to ...
2079         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
2080         callers.
2081         (gfc_get_constant_expr): New.
2082         (gfc_get_array_expr): New.
2083         (gfc_get_structure_constructor_expr): New.
2084         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
2085         instead.
2086
2087 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2088
2089         * constructor.h: New.
2090         * constructor.c: New.
2091         * Make-lang.in: Add new files to F95_PARSER_OBJS.
2092         * arith.c (reducy_unary): Use constructor API.
2093         (reduce_binary_ac): Likewise.
2094         (reduce_binary_ca): Likewise.
2095         (reduce_binary_aa): Likewise.
2096         * check.c (gfc_check_pack): Likewise.
2097         (gfc_check_reshape): Likewise.
2098         (gfc_check_unpack): Likewise.
2099         * decl.c (add_init_expr_to_sym): Likewise.
2100         (build_struct): Likewise.
2101         * dependency.c (gfc_check_dependency): Likewise.
2102         (contains_forall_index_p): Likewise.
2103         * dump-parse-tree.c (show_constructor): Likewise.
2104         * expr.c (free_expr0): Likewise.
2105         (gfc_copy_expr): Likewise.
2106         (gfc_is_constant_expr): Likewise.
2107         (simplify_constructor): Likewise.
2108         (find_array_element): Likewise.
2109         (find_component_ref): Likewise.
2110         (find_array_section): Likewise.
2111         (find_substring_ref): Likewise.
2112         (simplify_const_ref): Likewise.
2113         (scalarize_intrinsic_call): Likewise.
2114         (check_alloc_comp_init): Likewise.
2115         (gfc_default_initializer): Likewise.
2116         (gfc_traverse_expr): Likewise.
2117         * iresolve.c (check_charlen_present): Likewise.
2118         (gfc_resolve_reshape): Likewise.
2119         (gfc_resolve_transfer): Likewise.
2120         * module.c (mio_constructor): Likewise.
2121         * primary.c (build_actual_constructor): Likewise.
2122         (gfc_match_structure_constructor): Likewise.
2123         * resolve.c (resolve_structure_cons): Likewise.
2124         * simplify.c (is_constant_array_expr): Likewise.
2125         (init_result_expr): Likewise.
2126         (transformational_result): Likewise.
2127         (simplify_transformation_to_scalar): Likewise.
2128         (simplify_transformation_to_array): Likewise.
2129         (gfc_simplify_dot_product): Likewise.
2130         (simplify_bound): Likewise.
2131         (simplify_matmul): Likewise.
2132         (simplify_minval_maxval): Likewise.
2133         (gfc_simplify_pack): Likewise.
2134         (gfc_simplify_reshape): Likewise.
2135         (gfc_simplify_shape): Likewise.
2136         (gfc_simplify_spread): Likewise.
2137         (gfc_simplify_transpose): Likewise.
2138         (gfc_simplify_unpack): Likewise.q
2139         (gfc_convert_constant): Likewise.
2140         (gfc_convert_char_constant): Likewise.
2141         * target-memory.c (size_array): Likewise.
2142         (encode_array): Likewise.
2143         (encode_derived): Likewise.
2144         (interpret_array): Likewise.
2145         (gfc_interpret_derived): Likewise.
2146         (expr_to_char): Likewise.
2147         (gfc_merge_initializers): Likewise.
2148         * trans-array.c (gfc_get_array_constructor_size): Likewise.
2149         (gfc_trans_array_constructor_value): Likewise.
2150         (get_array_ctor_strlen): Likewise.
2151         (gfc_constant_array_constructor_p): Likewise.
2152         (gfc_build_constant_array_constructor): Likewise.
2153         (gfc_trans_array_constructor): Likewise.
2154         (gfc_conv_array_initializer): Likewise.
2155         * trans-decl.c (check_constant_initializer): Likewise.
2156         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
2157         (gfc_apply_interface_mapping_to_cons): Likewise.
2158         (gfc_trans_structure_assign): Likewise.
2159         (gfc_conv_structure): Likewise.
2160         * array.c (check_duplicate_iterator): Likewise.
2161         (match_array_list): Likewise.
2162         (match_array_cons_element): Likewise.
2163         (gfc_match_array_constructor): Likewise.
2164         (check_constructor_type): Likewise.
2165         (check_constructor): Likewise.
2166         (expand): Likewise.
2167         (expand_constructor): Likewise.
2168         (extract_element): Likewise.
2169         (gfc_expanded_ac): Likewise.
2170         (resolve_array_list): Likewise.
2171         (gfc_resolve_character_array_constructor): Likewise.
2172         (copy_iterator): Renamed to ...
2173         (gfc_copy_iterator): ... this.
2174         (gfc_append_constructor): Removed.
2175         (gfc_insert_constructor): Removed unused function.
2176         (gfc_get_constructor): Removed.
2177         (gfc_free_constructor): Removed.
2178         (qgfc_copy_constructor): Removed.
2179         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
2180         Removed all references. Replaced constructor list by splay-tree.
2181         (struct gfc_constructor): Removed member 'next', moved 'offset' from
2182         the inner struct, added member 'base'.
2183         (gfc_append_constructor): Removed prototype.
2184         (gfc_insert_constructor): Removed prototype.
2185         (gfc_get_constructor): Removed prototype.
2186         (gfc_free_constructor): Removed prototype.
2187         (qgfc_copy_constructor): Removed prototype.
2188         (gfc_copy_iterator): New prototype.
2189         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
2190
2191 2010-04-10  Tobias Burnus  <burnus@net-b.de>
2192
2193         PR fortran/43591
2194         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
2195         proc-pointers and type-bound procedures.
2196         (gfc_specification_expr): Check proc-pointers for pureness.
2197
2198 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2199
2200         PR bootstrap/43684
2201         * gfortranspec.c (lang_specific_driver): Do not expose vars 
2202         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
2203         for such.
2204
2205 2010-04-09  Tobias Burnus  <burnus@net-b.de>
2206
2207         PR fortran/18918
2208         * decl.c (variable_decl, match_attr_spec): Fix setting the array
2209         spec.
2210         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
2211         * data.c (gfc_assign_data_value): Ditto.
2212         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
2213         (gfc_traverse_expr): Traverse also through codimension expressions.
2214         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2215         gfc_has_ultimate_pointer): New functions.
2216         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
2217         (gfc_array_ref): Add codimen.
2218         (gfc_array_ref): Add in_allocate.
2219         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2220         gfc_has_ultimate_pointer): Add prototypes.
2221         * interface.c (compare_parameter, compare_actual_formal,
2222         check_intents): Add coarray constraints.
2223         * match.c (gfc_match_iterator): Add coarray constraint.
2224         * match.h (gfc_match_array_ref): Update interface.
2225         * primary.c (gfc_match_varspec): Handle codimensions.
2226         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
2227         (check_class_members): Return gfc_try instead for error recovery.
2228         (resolve_typebound_function,resolve_typebound_subroutine,
2229         check_members): Handle return value of check_class_members.
2230         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
2231         check_dimension, compare_spec_to_ref, resolve_array_ref,
2232         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
2233         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
2234         support.
2235         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
2236         Skip over coarray refs.
2237         (gfc_array_allocate) Add support for references containing coindexes.
2238         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
2239         (gfc_map_intrinsic_function): Ignore codimensions.
2240
2241 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
2242
2243         PR fortran/28039
2244         * io.c (check_format_string):  Added check for additional non 
2245         blank characters after the format string was successfully 
2246         parsed.
2247         * io.c (check_format): Changed the error messages for positive
2248         int required and period required to drop through the error logic
2249         and report with gfc_error instead of gfc_error_now.  Corrected
2250         format postion for hollerith strings.
2251
2252 2010-04-08  Tobias Burnus  <burnus@net-b.de>
2253
2254         * module.c (use_iso_fortran_env_module): Fix standard check.
2255
2256 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2257
2258         * parse.c (parse_derived, parse_enum): Avoid set but not used
2259         warning.
2260
2261 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
2262
2263         PR fortran/40539
2264         * gfortran.texi: Add section about representation of
2265         LOGICAL variables.
2266
2267 2010-04-07  Simon Baldwin  <simonb@google.com>
2268
2269         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
2270         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
2271
2272 2010-04-07  Richard Guenther  <rguenther@suse.de>
2273
2274         * options.c (gfc_init_options): Do not set.
2275
2276 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2277
2278         PR fortran/18918
2279         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
2280         * match.c (gfc_match_critical, sync_statement): Ditto.
2281         * gfortran.h (gfc_fcoarray): New enum.
2282         (gfc_option_t): Use it.
2283         * lang.opt (fcoarray): Add new flag.
2284         * invoke.texi (fcoarray): Document it.
2285         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
2286         (gfc_handle_coarray_option): New function.
2287
2288 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2289
2290         PR fortran/18918
2291         * gfortran.h (gfc_array_spec): Add cotype.
2292         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
2293         and defer error diagnostic.
2294         * resolve.c (resolve_fl_derived): Add missing check.
2295         (resolve_symbol): Add cotype/type check.
2296         * parse.c (parse_derived): Fix setting of coarray_comp.
2297
2298 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2299
2300         PR fortran/18918
2301         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
2302         match_array_element_spec,gfc_copy_array_spec,
2303         gfc_compare_array_spec): Include corank.
2304         (match_array_element_spec,gfc_set_array_spec): Support codimension.
2305         * decl.c (build_sym,build_struct,variable_decl,
2306         match_attr_spec,attr_decl1,cray_pointer_decl,
2307         gfc_match_volatile): Add codimension.
2308         (gfc_match_codimension): New function.
2309         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
2310         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
2311         (gfc_add_codimension): New function prototype.
2312         * match.h (gfc_match_codimension): New function prototype.
2313         (gfc_match_array_spec): Update prototype
2314         * match.c (gfc_match_common): Update gfc_match_array_spec call.
2315         * module.c (MOD_VERSION): Bump.
2316         (mio_symbol_attribute): Support coarray attributes.
2317         (mio_array_spec): Add corank support.
2318         * parse.c (decode_specification_statement,decode_statement,
2319         parse_derived): Add coarray support.
2320         * resolve.c (resolve_formal_arglist, was_declared,
2321         is_non_constant_shape_array, resolve_fl_variable,
2322         resolve_fl_derived, resolve_symbol): Add coarray support.
2323         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
2324         gfc_build_class_symbol): Add coarray support.
2325         (gfc_add_codimension): New function.
2326
2327 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2328
2329         PR fortran/18918
2330         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
2331         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
2332         stat_locked_other_image, stat_stopped_image and stat_unlocked of
2333         Fortran 2008.
2334         * intrinsic.texi (iso_fortran_env): Ditto.
2335         * libgfortran.h (libgfortran_stat_codes): New enum.
2336         * module.c (use_iso_fortran_env_module): Honour -std= when loading
2337         constants from the intrinsic module.
2338
2339 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2340
2341         PR fortran/39997
2342         * intrinsic.c (add_functions): Add num_images.
2343         * decl.c (gfc_match_end): Handle END CRITICAL.
2344         * intrinsic.h (gfc_simplify_num_images): Add prototype.
2345         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
2346         and SYNC.
2347         * gfortran.h (gfc_statement): Add enum items for those.
2348         (gfc_exec_op) Ditto.
2349         (gfc_isym_id): Add num_images.
2350         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
2351         (gfc_trans_sync,gfc_trans_critical): New functions.
2352         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
2353         gfc_trans_critical): Add/update prototypes.
2354         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
2355         and SYNC statements.
2356         * trans.h (gfor_fndecl_error_stop_string) Add variable.
2357         * resolve.c (resolve_sync): Add function.
2358         (gfc_resolve_blocks): Handle CRITICAL.
2359         (resolve_code): Handle CRITICAL, ERROR STOP,
2360         (resolve_branch): Add CRITICAL constraint check.
2361         and SYNC statements.
2362         * st.c (gfc_free_statement): Add new statements.
2363         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
2364         (gfc_build_builtin_function_decls): Initialize it.
2365         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
2366         (gfc_match_critical, gfc_match_error_stop, sync_statement,
2367         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
2368         New functions.
2369         (match_exit_cycle): Handle CRITICAL constraint.
2370         (gfc_match_stopcode): Handle ERROR STOP.
2371         * match.h (gfc_match_critical, gfc_match_error_stop,
2372         gfc_match_sync_all, gfc_match_sync_images,
2373         gfc_match_sync_memory): Add prototype.
2374         * parse.c (decode_statement, gfc_ascii_statement,
2375         parse_executable): Handle new statements.
2376         (parse_critical_block): New function.
2377         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
2378         * intrinsic.texi (num_images): Document new function.
2379         * simplify.c (gfc_simplify_num_images): Add function.
2380
2381 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2382
2383         PR fortran/43178
2384         * trans-array.c (gfc_conv_expr_descriptor): Update
2385         gfc_trans_scalar_assign call.
2386         (has_default_initializer): New function.
2387         (gfc_trans_deferred_array): Nullify less often.
2388         * trans-expr.c (gfc_conv_subref_array_arg,
2389         gfc_trans_subcomponent_assign): Update call to
2390         gfc_trans_scalar_assign.
2391         (gfc_trans_scalar_assign): Add parameter and pass it on.
2392         (gfc_trans_assignment_1): Optionally, do not dealloc before
2393         assignment.
2394         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
2395         call to gfc_trans_scalar_assign.
2396         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
2397         initializer to static variables.
2398         (gfc_init_default_dt): Add dealloc parameter and pass it on.
2399         * trans-stmt.c (forall_make_variable_temp,
2400         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2401         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
2402         gfc_trans_allocate): Update gfc_trans_assignment call.
2403         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
2404         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
2405         parameter to prototype.
2406
2407 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
2408
2409         * ioparm.def : Update copyright.
2410         * lang.opt : ditto
2411         * trans-array.c : ditto
2412         * trans-array.h : ditto
2413         * expr.c: ditto
2414         * trans-types.c: ditto
2415         * dependency.c : ditto
2416         * gfortran.h : ditto
2417         * options.c : ditto
2418         * trans-io.c : ditto
2419         * trans-intrinsic.c : ditto
2420         * libgfortran.h : ditto
2421         * invoke.texi : ditto
2422         * intrinsic.texi : ditto
2423         * trans.c : ditto
2424         * trans.h : ditto
2425         * intrinsic.c : ditto
2426         * interface.c : ditto
2427         * iresolve.c : ditto
2428         * trans-stmt.c : ditto
2429         * trans-stmt.h : ditto
2430         * parse,c : ditto
2431         * match.h : ditto
2432         * error.c : ditto
2433
2434 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
2435
2436         PR fortran/43450
2437         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
2438         do not assert the context of derived types.
2439
2440 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2441
2442         PR fortran/43409
2443         * ioparm.def: Change inquire size variable to type pointer to
2444         GFC_IO_INT type.
2445
2446 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
2447
2448         PR fortran/43039
2449         * trans-expr.c (conv_parent_component_references): Ensure that
2450         'dt' has a backend_decl.
2451
2452         PR fortran/43043
2453         * trans-expr.c (gfc_conv_structure): Ensure that the derived
2454         type has a backend_decl.
2455
2456         PR fortran/43044
2457         * resolve.c (resolve_global_procedure): Check that the 'cl'
2458         structure is not NULL.
2459
2460 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
2461
2462         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
2463         redundant tab.
2464
2465 2010-03-17  Tobias Burnus  <burnus@net-b.de>
2466
2467         PR fortran/43331
2468         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
2469         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
2470         check.
2471         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
2472         pointees as having explizit size.
2473         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
2474         check.
2475         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
2476         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
2477         * resolve.c (resolve_symbol): Handle cp_was_assumed.
2478         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
2479         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
2480         pointers.
2481
2482 2010-03-14  Tobias Burnus  <burnus@net-b.de>
2483
2484         PR fortran/43362
2485         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
2486         (resolve_ordinary_assign): Add check to avoid segfault.
2487
2488 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
2489
2490         PR fortran/43291
2491         PR fortran/43326
2492         * resolve.c (resolve_compcall): Add new boolean dummy argument
2493         'class_members'. Only resolve expression at end if false.
2494         Remove redundant, static variable 'class_object'.
2495         (check_class_members): Add extra argument to call of
2496         resolve_compcall.
2497         (resolve_typebound_function): Renamed resolve_class_compcall.
2498         Do all the detection of class references here. Correct calls to
2499         resolve_compcall for extra argument.
2500         (resolve_typebound_subroutine): resolve_class_typebound_call
2501         renamed. Otherwise same as resolve_typebound_function.
2502         (gfc_resolve_expr): Call resolve_typebound_function.
2503         (resolve_code): Call resolve_typebound_subroutine.
2504
2505 2010-03-10  Tobias Burnus  <burnus@net-b.de
2506
2507         PR fortran/43303
2508         * symbol.c (get_iso_c_sym): Set sym->result.
2509
2510 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
2511
2512         PR fortran/43256
2513         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
2514         for TBPs, otherwise they will not be resolved properly.
2515         (resolve_function): Use 'value.function.esym' instead of
2516         'value.function.name' to check if we're dealing with a TBP.
2517         (check_class_members): Set correct type of passed object for all TBPs,
2518         not only generic ones, except if the type is abstract.
2519
2520 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
2521
2522         PR fortran/43244
2523         * decl.c (gfc_match_final_decl): Make sure variable names starting with
2524         'final...' are not misinterpreted as FINAL statements.
2525
2526 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
2527
2528         PR fortran/43243
2529         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
2530         allocatable ultimate components do not need temporaries, whilst
2531         ultimate pointer components do.
2532
2533 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
2534
2535         PR fortran/43169
2536         * resolve.c (resolve_code): Correctly set gfc_current_ns for
2537         EXEC_SELECT_TYPE.
2538         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
2539         (gfc_pure): Ditto.
2540
2541 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
2542
2543         PR fortran/43180
2544         * trans-array.c (gfc_conv_array_parameter): A full array of
2545         derived type need not be restricted to a symbol without an
2546         array spec to use the call to gfc_conv_expr_descriptor.
2547
2548         PR fortran/43173
2549         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
2550         allocatable arrays do not need temporaries.
2551
2552 2010-03-01  Tobias Burnus  <burnus@net-b.de>
2553
2554         PR fortran/43199
2555         * resolve.c (find_array_spec): Handle REF_COMPONENT with
2556         CLASS components.
2557
2558 2010-02-28  Tobias Burnus  <burnus@net-b.de>
2559
2560         PR fortran/43205
2561         * trans-expr.c (is_zero_initializer_p): Move up in the file.
2562         (gfc_conv_initializer): Handle zero initializer as special case.
2563
2564 2010-02-27  Tobias Burnus  <burnus@net-b.de>
2565
2566         PR fortran/43185
2567         * resolve.c (resolve_fl_variable_derived): Imply SAVE
2568         for module variables for Fortran 2008.
2569
2570 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
2571
2572         PR debug/43166
2573         * trans-common.c (build_common_decl): Also update DECL_MODE,
2574         and DECL_SIZE when encountering a larger common block and call
2575         layout_decl.
2576
2577 2010-02-24  Tobias Burnus  <burnus@net-b.de>
2578
2579         PR fortran/43042
2580         * trans-expr.c (gfc_conv_initializer): Call directly
2581         gfc_conv_constant for C_NULL_(FUN)PTR.
2582
2583 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
2584
2585         PR fortran/43072
2586         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
2587         checking the rest of the dimensions for elements.
2588
2589 2010-02-21  Tobias Burnus  <burnus@net-b.de>
2590
2591         PR fortran/35259
2592         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
2593         * lang.opt: Ditto.
2594         * option.c (gfc_init_options,gfc_handle_option): Ditto.
2595         * trans-expr.c (gfc_conv_expr_op): Use the flag.
2596         * invoke.texi: Document new -fno-protect-parens flag.
2597
2598 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
2599
2600         PR fortran/36932
2601         PR fortran/36933
2602         PR fortran/43072
2603         PR fortran/43111
2604         * dependency.c (gfc_check_argument_var_dependency): Use enum
2605         value instead of arithmetic vaue for 'elemental'.
2606         (check_data_pointer_types): New function.
2607         (gfc_check_dependency): Call check_data_pointer_types.
2608         * trans-array.h : Change fourth argument of
2609         gfc_conv_array_parameter to boolean.
2610         * trans-array.c (gfc_conv_array_parameter): A contiguous array
2611         can be a dummy but it must not be assumed shape or deferred.
2612         Change fourth argument to boolean. Array constructor exprs will
2613         always be contiguous and do not need packing and unpacking.
2614         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
2615         space and change fourth argument of gfc_conv_array_parameter
2616         to boolean.
2617         (gfc_trans_arrayfunc_assign): Change fourth argument of
2618         gfc_conv_array_parameter to boolean.
2619         * trans-io.c (gfc_convert_array_to_string): The same.
2620         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
2621
2622 2010-02-20  Tobias Burnus  <burnus@net-b.de>
2623
2624         PR fortran/42958
2625         * libgfortran.h: Add GFC_RTCHECK_MEM.
2626         * invoke.texi (-fcheck=): Document -fcheck=mem.
2627         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
2628         and enable malloc-success check only with -fcheck=mem.
2629         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
2630
2631 2010-02-16  Tobias Burnus  <burnus@net-b.de>
2632
2633         PR fortran/43040
2634         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
2635         * intrinsic.c (add_functions): Ditto.
2636         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
2637         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
2638
2639 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2640
2641         PR fortran/32382
2642         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
2643         gfc_trans_do prototype.
2644         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
2645         a loop exit condition.  If exit condition is given, build the loop exit
2646         code, checking IO results of implied do loops in READ and WRITE.
2647         (gfc_trans_do): Likewise.
2648         * trans.c (trans_code): New static work function, previously
2649         gfc_trans_code. Passes exit condition to gfc_trans_do.
2650         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
2651         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
2652         * trans-io.c (build_dt): Build an exit condition to allow checking IO
2653         result status bits in the dtparm structure. Use this condition in call
2654         to gfc_trans_code_cond.
2655
2656 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
2657
2658         PR fortran/41113
2659         PR fortran/41117
2660         * trans-array.c (gfc_conv_array_parameter): Use
2661         gfc_full_array_ref_p to detect full and contiguous variable
2662         arrays. Full array components and contiguous arrays do not need
2663         internal_pack and internal_unpack.
2664
2665 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
2666
2667         PR fortran/43030
2668         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
2669
2670         PR fortran/43029
2671         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
2672         here.
2673         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
2674         MATCH_ERROR.
2675
2676 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
2677             Tobias Burnus <burnus@net-b.de>
2678
2679         PR fortran/40823
2680         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
2681
2682 2010-02-10  Tobias Burnus  <burnus@net-b.de>
2683
2684         PR fortran/43015
2685         * trans-decl.c (gfc_generate_function_code): Only check
2686         actual-vs.-dummy character bounds if not bind(C).
2687
2688 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
2689
2690         PR fortran/42309
2691         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
2692         info->dimen after info has been freed.
2693
2694 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2695
2696         PR fortran/42999
2697         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
2698         with iterators.
2699
2700 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
2701
2702         * module.c (fix_mio_expr): Declare sym.
2703
2704 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
2705
2706         PR fortran/41869
2707         * module.c (fix_mio_expr): Fix for private generic procedures.
2708
2709 2010-02-09  Daniel Kraft  <d@domob.eu>
2710
2711         PR fortran/39171
2712         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
2713         length to be correct and issue only with -Wsurprising.
2714         * invoke.texi (Wsurprising): Mention this new warning that is
2715         turned on by -Wsurprising.
2716
2717 2010-02-09  Daniel Kraft  <d@domob.eu>
2718
2719         PR fortran/41507
2720         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
2721         can be CHARACTER type.
2722         (MINVAL), (MAXLOC), (MINLOC): Ditto.
2723
2724 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
2725
2726         PR fortran/42309
2727         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
2728         'formal_ptr'. If this is true, give returned descriptor unity
2729         lbounds, in all dimensions, and the appropriate offset.
2730         (gfc_conv_procedure_call); If formal is a pointer, set the last
2731         argument of gfc_conv_subref_array_arg to true.
2732         * trans.h : Add last argument for gfc_conv_subref_array_arg.
2733         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
2734         new arg of gfc_conv_subref_array_arg to false.
2735         * trans-stmt.c (forall_make_variable_temp): The same.
2736
2737 2010-02-03  Tobias Burnus  <burnus@net-b.de>
2738
2739         PR fortran/42936
2740         * interface.c (compare_parameter): Disable rank-checking
2741         for NULL().
2742
2743 2010-02-02  Tobias Burnus  <burnus@net-b.de>
2744
2745         PR fortran/42650
2746         * parse.c (decode_specification_statement): Use sym->result not sym.
2747
2748 2010-02-01  Tobias Burnus  <burnus@net-b.de>
2749
2750         PR fortran/42922
2751         * decl.c (variable_decl): Allow default initializer in
2752         TYPE declarations in PURE functions.
2753
2754 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
2755
2756         PR fortran/42888
2757         * resolve.c (resolve_allocate_expr): Move default initialization code
2758         here from gfc_trans_allocate.
2759         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
2760         EXEC_INIT_ASSIGN.
2761         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
2762         of CLASS variables via memcpy.
2763         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
2764         to resolve_allocate_expr.
2765
2766 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
2767
2768         PR fortran/38324
2769         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
2770         * gfortran.h : Add prototype for above.
2771         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
2772         (gfc_trans_subcomponent_assign): Call new function to replace
2773         the code to deal with allocatable components.
2774         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
2775         gfc_get_full_arrayspec_from_expr to replace existing code.
2776
2777 2010-01-25  Tobias Burnus  <burnus@net-b.de>
2778
2779         PR fortran/42858
2780         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
2781         check.
2782
2783 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
2784
2785         PR fortran/41044
2786         PR fortran/41167
2787         * expr.c (remove_subobject_ref): If the constructor is NULL use
2788         the expression as the source.
2789         (simplify_const_ref): Change the type of expression if
2790         there are component references.  Allow for substring to be at
2791         the end of an arbitrarily long chain of references.  If an
2792         element is found that is not in an EXPR_ARRAY, assume that this
2793         is scalar initialization of array. Call remove_subobject_ref in
2794         this case with NULL second argument.
2795
2796 2010-01-24  Tobias Burnus  <burnus@net-b.de>
2797
2798         PR fortran/39304
2799         * array.c (gfc_array_dimen_size): Use correct specific
2800         function in the check.
2801
2802 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
2803
2804         PR fortran/42736
2805         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
2806         is required, turn any trailing array elements after a range
2807         into ranges so that offsets can be calculated.
2808
2809 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
2810
2811         * module.c (mio_f2k_derived): Use enumerator as initializer of
2812         enum variable.
2813
2814         PR bootstrap/42812
2815         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
2816         bitfield of width 2.
2817
2818 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
2819
2820         PR fortran/42804
2821         * resolve.c (extract_compcall_passed_object): Set locus for
2822         passed-object argument.
2823         (extract_ppc_passed_object): Set locus and correctly remove PPC
2824         reference.
2825
2826 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
2827
2828         PR fortran/42783
2829         * trans-decl.c (add_argument_checking): Do not use the backend
2830         decl directly to test for the presence of an optional dummy
2831         argument.  Use gfc_conv_expr_present, remembering to set the
2832         symbol referenced.
2833
2834         PR fortran/42772
2835         * trans-decl.c (gfc_generate_function_code): Small white space
2836         changes. If 'recurcheckvar' is NULL do not try to reset it.
2837
2838 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
2839
2840         PR fortran/42545
2841         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
2842         component for extended types.
2843         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
2844         and take care of parent component accessibility.
2845
2846 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
2847
2848         PR fortran/42677
2849         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
2850         * interface.c (check_interface1): Move a warning message here from
2851         resolve_fl_procedure.
2852         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
2853         * module.c (read_module): Remove call to gfc_check_interfaces, since
2854         this comes too early here.
2855         * resolve.c (resolve_fl_procedure): Move warning message to
2856         check_interface1.
2857
2858 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2859
2860         PR fortran/42684
2861         * interface.c (check_interface1): Pass symbol name rather than NULL to
2862         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
2863         trap MULL.
2864         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
2865         than NULL to gfc_compare_interfaces.
2866
2867 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
2868
2869         PR fortran/41478
2870         * trans-array.c (duplicate_allocatable):  Static version of
2871         gfc_duplicate_allocatable with provision to handle scalar
2872         components. New boolean argument to switch off call to malloc
2873         if true.
2874         (gfc_duplicate_allocatable): New function to call above with
2875         new argument false.
2876         (gfc_copy_allocatable_data): New function to call above with
2877         new argument true.
2878         (structure_alloc_comps): Do not apply indirect reference to
2879         scalar pointers. Add new section to copy allocatable components
2880         of arrays. Extend copying of allocatable components to include
2881         scalars.
2882         (gfc_copy_only_alloc_comp): New function to copy allocatable
2883         component derived types, without allocating the base structure.
2884         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
2885         Add primitive for gfc_copy_only_alloc_comp.
2886         * trans-expr.c (gfc_conv_procedure_call): After calls to
2887         transformational functions with results that are derived types
2888         with allocatable components, copy the components in the result.
2889         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
2890         of lhs derived types before allocation.
2891         
2892 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
2893
2894         PR fortran/42481
2895         * module.c (load_generic_interfaces): If a procedure that is
2896         use associated but not generic is given an interface that
2897         includes itself, then make it generic.
2898
2899 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
2900             Shujing Zhao  <pearly.zhao@oracle.com>
2901
2902         PR translation/42469
2903         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
2904         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
2905         character between option name and help text.
2906
2907 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2908
2909         PR fortran/20923
2910         PR fortran/32489
2911         * trans-array.c (gfc_conv_array_initializer): Change call to
2912         gfc_error_now to call to gfc_fatal_error.
2913         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
2914         (is_constant_element): Changed name from constant_element.
2915         (gfc_constant_ac): Only use expand_construuctor for expression
2916         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
2917         call gfc_is_constant_expr.
2918         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
2919         message.
2920         * resolve.c (gfc_is_expandable_expr): New function that determiners if
2921         array expressions should have their constructors expanded.
2922         (gfc_resolve_expr): Use new function to determine whether or not to call
2923         gfc_expand_constructor.
2924
2925 2010-01-09  Tobias Burnus  <burnus@net-b.de>
2926
2927         PR fortran/41298
2928         * trans-expr.c (gfc_trans_structure_assign): Handle
2929         c_null_(fun)ptr.
2930         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
2931         to the constructor for c_null_(fun)ptr.
2932         * resolve.c (resolve_structure_cons): Add special case
2933         for c_null_(fun)ptr.
2934
2935 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
2936
2937         * gfortranspec.c (lang_specific_driver): Update copyright notice
2938         dates.
2939
2940 2010-01-08  Tobias Burnus  <burnus@net-b.de>
2941
2942         PR/fortran 25829
2943         * symbol.c (check_conflict, gfc_copy_attr): Add
2944         ASYNCHRONOUS support.
2945         (gfc_add_asynchronous): New function.
2946         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
2947         (gfc_match_asynchronous): New function.
2948         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
2949         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
2950         (gfc_add_asynchronous): New Prototype.
2951         * module.c (ab_attribute, mio_symbol_attribute): Add
2952         ASYNCHRONOUS support.
2953         * resolve.c (was_declared): Ditto.
2954         * match.h (gfc_match_asynchronous): New prototype.
2955         * parse.c (decode_specification_statement,decode_statement):
2956         Add ASYNCHRONOUS support.
2957
2958 2010-01-07  Tobias Burnus  <burnus@net-b.de>
2959
2960         PR fortran/42597
2961         * trans-decl.c (get_proc_pointer_decl): Fix call to
2962         gfc_conv_initializer for array-valued proc-pointer funcs.
2963
2964 2010-01-07  Tobias Burnus  <burnus@net-b.de>
2965
2966         PR fortran/41872
2967         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
2968         allocatable scalars with SAVE attribute.
2969
2970 2010-01-05  Tobias Burnus  <burnus@net-b.de>
2971
2972         PR fortran/42517
2973         * options.c (gfc_post_options): Set -frecursion
2974         when -fopenmp is used.
2975
2976 2010-01-05  Tobias Burnus  <burnus@net-b.de>
2977
2978         PR fortran/41872
2979         * trans-expr.c (gfc_conv_procedure_call): Nullify
2980         return value for allocatable-scalar character functions.
2981
2982 2010-01-04  Tobias Burnus  <burnus@net-b.de>
2983
2984         PR fortran/36161
2985         * error.c (error_printf, gfc_warning, gfc_notify_std,
2986         gfc_warning_now, gfc_error, gfc_error_now,
2987         gfc_fatal_error): Change argument name from nocmsgid to
2988         gmsgid to enable (x)gettext's % checking.
2989
2990 2010-01-04  Tobias Burnus  <burnus@net-b.de>
2991         
2992         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
2993
2994 2010-01-04  Tobias Burnus  <burnus@net-b.de>
2995
2996         PR fortran/41872
2997         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
2998         for functions returning allocatable scalars.
2999         * trans-stmt.c (gfc_trans_allocate): Emmit error when
3000         reallocating an allocatable scalar.
3001         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
3002         in comment.
3003         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
3004         allocatable scalars.
3005         (gfc_generate_function_code): Nullify result variable for
3006         allocatable scalars.
3007         
3008         PR fortran/40849
3009         * module.c (gfc_use_module): Fix warning string to allow
3010         for translation.
3011
3012         PR fortran/42517
3013         * invoke.texi (-fcheck=recursion): Mention that the checking
3014         is also disabled for -frecursive.
3015         * trans-decl.c (gfc_generate_function_code): Disable
3016         -fcheck=recursion when -frecursive is used.
3017
3018         * intrinsic.texi (iso_c_binding): Improve wording.
3019
3020 \f
3021 Copyright (C) 2010 Free Software Foundation, Inc.
3022
3023 Copying and distribution of this file, with or without modification,
3024 are permitted in any medium without royalty provided the copyright
3025 notice and this notice are preserved.