OSDN Git Service

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