OSDN Git Service

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