OSDN Git Service

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