OSDN Git Service

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