OSDN Git Service

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