OSDN Git Service

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