OSDN Git Service

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