OSDN Git Service

2010-09-06 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-09-06  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/45560
4         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
5
6 2010-09-06  Tobias Burnus  <burnus@net-b.de>
7
8         PR fortran/45560
9         * dump-parse-tree.c (gfc_debug_expr): New function.
10
11 2010-09-06  Tobias Burnus  <burnus@net-b.de>
12
13         PR fortran/38282
14         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
15         (check_specific): Special case for those intrinsics.
16         * gfortran.h (gfc_isym_id): Add new intrinsics
17         * intrinsic.h (gfc_check_transf_bit_intrins,
18         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
19         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
20         New prototypes.
21         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
22         gfc_resolve_iparity, resolve_transformational): New functions.
23         (gfc_resolve_product, gfc_resolve_sum,
24         gfc_resolve_parity): Use resolve_transformational.
25         * check.c (gfc_check_transf_bit_intrins): New function.
26         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
27         gfc_simplify_iparity, do_bit_any, do_bit_ior,
28         do_bit_xor, simplify_transformation): New functions.
29         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
30         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
31         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
32         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
33         Handle IALL, IANY and IPARITY intrinsics.       
34         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
35         order.
36         (IALL, IANY, IPARITY): Document new intrinsics.
37
38 2010-09-05  Tobias Burnus <burnus@net-b.de>
39
40         PR fortran/45186
41         * f95-lang.c (gfc_truthvalue_conversion): Use
42         fold_build[0-9]_loc instead of fold_build[0-9].
43         * convert.c (convert): Ditto.
44         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
45         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
46         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
47         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
48         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
49         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
50         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
51         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
52         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
53         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
54         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
55         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
56         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
57         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
58         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
59         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
60         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
61         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
62         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
63         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
64         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
65         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
66         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
67         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
68         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
69         gfc_conv_associated, gfc_conv_same_type_as,
70         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
71
72 2010-09-04  Tobias Burnus  <burnus@net-b.de>
73
74         PR fortran/45530
75         * resolve.c (resolve_fl_namelist): Change constraint checking
76         order to prevent endless loop.
77
78 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
79
80         PR fortran/45507
81         * resolve.c (resolve_allocate_expr): Generate default initializers
82         already at this point, resolve them and put them into expr3, ...
83         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
84         translation stage.
85
86 2010-09-03  Tobias Burnus  <burnus@net-b.de>
87
88         PR fortran/45186
89         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
90         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
91         of build_call_expr.
92         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
93         gfc_conv_string_length, gfc_conv_substring,
94         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
95         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
96         gfc_conv_expr_op, gfc_build_compare_string,
97         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
98         gfc_conv_derived_to_class, conv_isocbinding_procedure,
99         gfc_conv_procedure_call, fill_with_spaces,
100         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
101         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
102         gfc_trans_scalar_assign, gfc_trans_zero_assign,
103         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
104         fold_build[0-9] to fold_build[0-9]_loc.
105         * trans-io.c (set_parameter_const, set_parameter_value,
106         set_parameter_ref, gfc_convert_array_to_string, set_string,
107         set_internal_unit, io_result, set_error_locus,
108         nml_get_addr_expr, build_dt): Ditto.
109         * trans-openmp.c (gfc_omp_clause_default_ctor,
110         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
111         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
112         gfc_trans_omp_do): Ditto.
113         * trans.c (gfc_add_modify, gfc_build_addr_expr,
114         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
115         gfc_trans_runtime_check, gfc_call_malloc,
116         gfc_allocate_with_status, gfc_allocate_array_with_status,
117         gfc_call_free, gfc_deallocate_with_status,
118         gfc_call_realloc): Ditto.
119
120 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
121
122         PR fortran/45159
123         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
124         arglists for pure user functions, or for those intrinsic
125         functions which are also pure.
126         * intrinsics.c (add_conv):  Mark conversion functions as pure.
127         (add_char_conversions):  Likewise.
128
129 2010-09-03  Daniel Kraft  <d@domob.eu>
130
131         PR fortran/34162
132         * resolve.c (resolve_actual_arglist): Allow internal procedure
133         as actual argument with Fortran 2008.
134
135 2010-09-03  Daniel Kraft  <d@domob.eu>
136
137         PR fortran/44602
138         * gfortran.h (struct gfc_code): Renamed `whichloop' to
139         `which_construct' as this is no longer restricted to loops.
140         * parse.h (struct gfc_state_data): New field `construct'.
141         * match.c (match_exit_cycle): Handle EXIT from non-loops.
142         * parse.c (push_state): Set `construct' field.
143         * resolve.c (resolve_select_type): Extend comment.
144         * trans-stmt.c (gfc_trans_if): Add exit label.
145         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
146         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
147         (gfc_trans_do), (gfc_trans_do_while): Ditto.
148         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
149         (gfc_trans_cycle): Ditto.
150         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
151
152 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
153
154         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
155         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
156         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
157         * intrinsic.texi (RSHIFT): Fix documentation.
158
159 2010-09-02  Tobias Burnus  <burnus@net-b.de>
160
161         PR fortran/45186
162         * trans-common.c (create_common): Change build[0-9] to
163         build[0-9]_loc.
164         * trans-const.c (gfc_conv_constant_to_tree,
165         gfc_conv_constant_to_tree): Ditto.
166         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
167         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
168         add_argument_checking, create_main_function,
169         gfc_generate_return): Ditto.
170         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
171         * trans-stmt.c (allocate_temp_for_forall_nest_1,
172         compute_inner_temp_size, compute_overall_iter_number,
173         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
174         gfc_conv_elemental_dependencies, gfc_do_allocate,
175         gfc_evaluate_where_mask, gfc_trans_allocate,
176         gfc_trans_arithmetic_if, gfc_trans_call,
177         gfc_trans_character_select, gfc_trans_deallocate,
178         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
179         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
180         gfc_trans_integer_select, gfc_trans_logical_select,
181         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
182         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
183         gfc_trans_where_assign) Ditto.
184
185 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
186
187         PR fortran/44541
188         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
189         variable.
190
191 2010-09-02  Tobias Burnus  <burnus@net-b.de>
192
193         PR fortran/45489
194         * resolve.c (apply_default_init): Mark symbol as referenced,
195         if it is initialized.
196         (resolve_symbol): Change intialized check for BT_DERIVED such
197         that also function results get initialized; remove now obsolete
198         gfc_set_sym_referenced for BT_CLASS.
199
200 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
201
202         PR fortran/44541
203         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
204         * resolve.c (resolve_allocate_expr): Defer handling of default
205         initialization to 'gfc_trans_allocate'.
206         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
207         (resolve_fl_derived): Suppress error messages for vtypes.
208         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
209         polymorphic MOLD expression.
210         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
211         dummy initialization.
212
213 2010-09-01  Tobias Burnus  <burnus@net-b.de>
214
215         * gfortran.texi (preprocessing): Update URL to COCO.
216
217 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
218
219         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
220         array quad_decls. Remove unnecessary assignment.
221
222 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
223
224         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
225         other than long double.
226         * mathbuiltins.def: Add builtins from the POW and CPOW family.
227         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
228         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
229         prefix to function name.
230         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
231         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
232         function name.
233         (gfc_conv_intrinsic_exponent): Likewise.
234         (gfc_conv_intrinsic_abs): Likewise.
235         (gfc_conv_intrinsic_mod): Likewise.
236         (gfc_conv_intrinsic_sign): Likewise.
237         (gfc_conv_intrinsic_arith): Likewise.
238         (gfc_conv_intrinsic_fraction): Likewise.
239         (gfc_conv_intrinsic_nearest): Likewise.
240         (gfc_conv_intrinsic_spacing): Likewise.
241         (gfc_conv_intrinsic_rrspacing): Likewise.
242         (gfc_conv_intrinsic_scale): Likewise.
243         (gfc_conv_intrinsic_set_exponent): Likewise.
244
245 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
246
247         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
248         * intrinsic.h (gfc_resolve_execute_command_line): New function.
249         * iresolve.c (gfc_resolve_execute_command_line): New function.
250         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
251         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
252
253 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
254
255         PR fortran/38282
256         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
257         and parity{,l,ll} builtins.
258         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
259         (gfc_conv_intrinsic_function): Call above new functions.
260         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
261         functions.
262         * intrinsic.texi: Document POPCNT and POPPAR.
263
264 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
265
266         PR fortran/45456
267         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
268
269 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
270
271         * Make-lang.in: Add frontend-passes.o dependencies.
272
273 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
274
275         PR fortran/42769
276         * resolve.c (resolve_structure_cons): For derived types, make sure the
277         type has been resolved.
278         (resolve_typebound_procedures): Make sure the vtab has been generated.
279
280 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
281
282         PR fortran/45439
283         * match.c (gfc_match_select_type): Give the associate-name the
284         FL_VARIABLE attribute.
285
286 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
287
288         * simplify.c (gfc_simplify_bessel_n2): Fix indention
289         and argument type.
290
291 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
292
293         PR fortran/45436
294         * trans-types.c (gfc_init_kinds): Disable TFmode.
295
296 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
297
298         PR fortran/45432
299         * match.c (gfc_match_allocate): Avoid double free on error.
300
301 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
302
303         PR fortran/32049
304         * gfortran.h (gfc_real_info): Add c_float128 field.
305         * mathbuiltins.def: Indicate which builtins are const.
306         * trans-types.h (float128_type_node, complex_float128_type_node,
307         gfc_real16_is_float128): New variables.
308         * trans-types.c (float128_type_node, complex_float128_type_node,
309         gfc_real16_is_float128): New variables.
310         (gfc_init_kinds): Allow TFmode.
311         (gfc_build_real_type): Mark __float128 types as such.
312         (gfc_init_types): Initialize float128_type_node and
313         complex_float128_type_node
314         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
315         argument of OTHER_BUILTIN macro.
316         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
317         (builtin_decl_for_precision): Special case for __float128.
318         (builtin_decl_for_float_kind): Likewise.
319         (define_quad_builtin): New function.
320         (gfc_build_intrinsic_lib_fndecls): Create all __float128
321         library decls if necessary. Store them in the real16_decl and
322         complex16_decl builtin map fields.
323         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
324         library function names.
325
326 2010-08-27  Tobias Burnus  <burnus@net-b.de>
327
328         PR fortran/33197
329         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
330         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
331         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
332         gfc_resolve_parity): New prototypes.
333         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
334         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
335         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
336         gfc_resolve_parity): New functions.
337         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
338         New functions.
339         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
340         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
341         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
342         * gcc/fortran/simplify.c (simplify_transformation_to_array):
343         Add post-processing opterator.
344         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
345         gfc_simplify_product, gfc_simplify_sum): Update call.
346         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
347         gfc_simplify_parity): New functions.
348
349 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
350
351         PR fortran/45420
352         * match.c (select_type_set_tmp): Add the possibility to reset the
353         temporary to NULL.
354         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
355
356 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
357
358         PR fortran/45159
359         * dependency.c (check_section_vs_section):  Single test for
360         identical strides which takes into account that only one
361         of the strides may be NULL.
362
363 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
364
365         PR fortran/43217
366         * primary.c (match_hollerith_constant): Calculate padding needed to
367         fill default integer and allocate string for that size.  Set pad bytes
368         to ' '.
369         * gfortran.h: Add hollerith pad value to type spec union.
370         * data.c (create_character_initializer): Fix spelling of function name.
371         Use hollerith pad value to calculate length.
372         * arith.c (hollerith2representation); Use hollerith pad value to
373         calculate length.
374
375 2010-08-26  Daniel Kraft  <d@domob.eu>
376
377         PR fortran/38936
378         PR fortran/44047
379         PR fortran/45384
380         * gfortran.h (struct gfc_association_list): New flag `dangling'.
381         (gfc_build_block_ns): Declared here...
382         * parse.h (gfc_build_block_ns): ...instead of here.
383         * trans.h (gfc_process_block_locals): Expect additionally the
384         gfc_association_list of BLOCK (if present).
385         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
386         * resolve.c (resolve_variable): Only check for invalid *array*
387         references on associate-names.
388         (resolve_assoc_var): New method with code previously in resolve_symbol.
389         (resolve_select_type): Use association to give the selector and
390         temporaries their values instead of ordinary assignment.
391         (resolve_fl_var_and_proc): Allow CLASS associate-names.
392         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
393         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
394         to `gfc_process_block_locals' to match new interface.
395         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
396         here automatically.
397         (gfc_process_block_locals): Defer them rather here when linked to
398         from the BLOCK's association list.
399
400 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
401
402         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
403         TREE_NOTHROW on fndecls that can't throw.  Set
404         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
405         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
406         gfor_fndecl_associated.
407
408 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
409
410         PR fortran/45380
411         * frontend-passes.c (optimize_equality): Don't optimize array equality
412
413 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
414
415         PR fortran/45366
416         * resolve.c (resolve_procedure_interface): New function split off from
417         'resolve_symbol'.
418         (resolve_formal_arglist): Call it here ...
419         (resolve_symbol): ... and here.
420
421 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
422
423         * Make-lang.in (gfortranspec.o): Update dependencies.
424         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
425         opts.h.
426         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
427         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
428         (g77_xargc): Make unsigned.
429         (g77_xargv): Change to g77_x_decoded_options.
430         (g77_newargc): Make unsigned.
431         (g77_newargv): Change to g77_new_decoded_options.
432         (strings_same, options_same): New.
433         (append_arg): Use cl_decoded_option structures.
434         (append_option): New.
435         (add_arg_libgfortran): New.
436         (lang_specific_driver): Use cl_decoded_option structures.
437
438 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
439
440         PR fortran/45271
441         PR fortran/45290
442         * class.c (add_proc_comp): Add static initializer for PPCs.
443         (add_procs_to_declared_vtab): Modified comment.
444         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
445         initializer if the component is part of a vtype.
446         (mio_component_list): Add argument 'vtype', pass it on to
447         'mio_component'.
448         (mio_symbol): Modified call to 'mio_component_list'.
449         * trans.h (gfc_conv_initializer): Modified prototype.
450         (gfc_trans_assign_vtab_procs): Removed.
451         * trans-common.c (create_common): Modified call to
452         'gfc_conv_initializer'.
453         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
454         gfc_emit_parameter_debug_info): Modified call to
455         'gfc_conv_initializer'.
456         (build_function_decl): Remove assertion.
457         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
458         Removed call to 'gfc_trans_assign_vtab_procs'.
459         (gfc_conv_initializer): Add argument 'procptr'.
460         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
461         (gfc_trans_assign_vtab_procs): Removed.
462         * trans-stmt.c (gfc_trans_allocate): Removed call to
463         'gfc_trans_assign_vtab_procs'.
464
465 2010-08-21  Tobias Burnus  <burnus@net-b.de>
466
467         PR fortran/36158
468         PR fortran/33197
469         * intrinsic.c (add_sym): Init value attribute.
470         (set_attr_value): New function.
471         (add_functions) Use it and add JN/YN resolvers.
472         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
473         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
474         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
475         * iresolve.c (gfc_resolve_bessel_n2): New function.
476         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
477         formal arg list.
478         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
479         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
480         * simplify.c (): For YN set to -INF if previous values
481         was -INF.
482         * trans-expr.c (gfc_conv_procedure_call): Don't crash
483         if sym->as is NULL.
484         * iresolve.c (gfc_resolve_extends_type_of): Set the
485         type of the dummy argument to the one of the actual.
486
487 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
488
489         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
490
491 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
492
493         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
494         comment, not -lg2c.
495
496 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
497
498         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
499
500 2010-08-19  Daniel Kraft  <d@domob.eu>
501
502         PR fortran/29785
503         PR fortran/45016
504         * trans.h (struct gfc_se): New flag `byref_noassign'.
505         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
506         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
507         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
508         and check for compile-time errors with those.
509         * trans-decl.c (trans_associate_var): Use new routine
510         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
511         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
512         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
513         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
514         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
515         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
516         rank remapping for assignment.
517
518 2010-08-19  Tobias Burnus  <burnus@net-b.de>
519
520         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
521         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
522         into recurrence.
523
524 2010-08-19  Tobias Burnus  <burnus@net-b.de>
525
526         PR fortran/36158
527         PR fortran/33197
528         * check.c (gfc_check_bessel_n2): New function.
529         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
530         * intrinsic.c (add_functions): Add transformational version
531         of the Bessel_jn/yn intrinsics.
532         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
533         gfc_simplify_bessel_yn2): New prototypes.
534         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
535         transformational variant.
536         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
537         Check for negative order.
538         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
539         gfc_simplify_bessel_yn2): New functions.
540
541 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
542
543         PR fortran/41859
544         * resolve.c (resolve_transfer): Traverse operands and set expression
545         to be checked to a non EXPR_OP type.
546
547 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
548
549         PR fortran/45290
550         * gfortran.h (gfc_add_save): Modified prototype.
551         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
552         (match_pointer_init): New function to match F08 pointer initialization.
553         (variable_decl,match_procedure_decl,match_ppc_decl): Use
554         'match_pointer_init'.
555         (match_attr_spec): Module variables are implicitly SAVE.
556         (gfc_match_save): Modified call to 'gfc_add_save'.
557         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
558         initialization.
559         * primary.c (gfc_variable_attr): Handle SAVE attribute.
560         * resolve.c (resolve_structure_cons): Add new argument and do pointer
561         initialization checks.
562         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
563         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
564         (resolve_fl_variable): Handle SAVE_IMPLICIT.
565         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
566         SAVE_IMPLICIT.
567         * trans-decl.c (gfc_create_module_variable): Module variables with
568         TARGET can already exist.
569         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
570         (gfc_conv_initializer): Implement non-NULL pointer
571         initialization.
572
573 2010-08-18  Tobias Burnus  <burnus@net-b.de>
574
575         PR fortran/45295
576         * intrinsic.texi (selected_char_kind): Document ISO_10646
577         support.
578
579 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
580
581         PR fortran/45304
582         * trans-decl.c (build_library_function_decl_1): Chain on
583         void_list_node instead of creating a new TREE_LIST.
584         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
585         * trans-types.c (gfc_get_function_type): Likewise.  Set
586         typelist to void_list_node for the main program.
587
588 2010-08-17  Daniel Kraft  <d@domob.eu>
589
590         PR fortran/38936
591         * gfortran.h (struct gfc_association_list): New member `where'.
592         (gfc_is_associate_pointer) New method.
593         * match.c (gfc_match_associate): Remember locus for each associate
594         name matched and do not try to set variable flag.
595         * parse.c (parse_associate): Use remembered locus for symbols.
596         * primary.c (match_variable): Instead of variable-flag check for
597         associate names set it for all such names used.
598         * symbol.c (gfc_is_associate_pointer): New method.
599         * resolve.c (resolve_block_construct): Don't generate assignments
600         to give associate-names their values.
601         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
602         (resolve_symbol): Set some more attributes for associate variables,
603         set variable flag here and check it and don't try to build an
604         explicitely shaped array-spec for array associate variables.
605         * trans-expr.c (gfc_conv_variable): Dereference in case of association
606         to scalar variable.
607         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
608         (gfc_sym_type): Return pointer type for association to scalar vars.
609         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
610         (trans_associate_var): New method.
611         (gfc_trans_deferred_vars): Handle association symbols.
612
613 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
614
615         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
616         RejectDriver.
617         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
618         RejectDriver.
619         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
620         OPT_MDX and OPT_MMDX.
621
622 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
623
624         * lang.opt (MDX, MMDX): Mark RejectDriver.
625
626 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
627
628         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
629         vtabs for generics any more).
630
631 2010-08-15  Daniel Kraft  <d@domob.eu>
632
633         PR fortran/38936
634         * gfortran.h (gfc_find_proc_namespace): New method.
635         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
636         around with namespace.
637         * symbol.c (gfc_find_proc_namespace): New method.
638         * trans-decl.c (gfc_build_qualified_array): Use it for correct
639         value of nest.
640         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
641         * parse.c (parse_associate): Removed assignment-generation here...
642         * resolve.c (resolve_block_construct): ...and added it here.
643         (resolve_variable): Handle names that are arrays but were not parsed
644         as such because of association.
645         (resolve_code): Fix BLOCK resolution.
646         (resolve_symbol): Generate array-spec for associate-names.
647
648 2010-08-15  Tobias Burnus  <burnus@net-b.de>
649
650         PR fortran/45211
651         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
652         (verify_c_interop): Handle unresolved DT with bind(C).
653
654 2010-08-15  Tobias Burnus  <burnus@net-b.de>
655
656         * trans-expr.c (gfc_conv_expr_present): Regard nullified
657         pointer arrays as absent.
658         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
659         dummys as absent argument.
660         * interface.c (compare_actual_formal,compare_parameter):
661         Ditto.
662
663 2010-08-15  Tobias Burnus  <burnus@net-b.de>
664
665         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
666         dummies with intent(in).
667
668 2010-08-15  Daniel Kraft  <d@domob.eu>
669
670         PR fortran/45197
671         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
672         routines not IMPURE also as PURE.
673         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
674         `NO_CLASS' in `CLASS_IMPURE'.
675         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
676         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
677         (add_functions): Ditto.
678         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
679         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
680         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
681         are not ALLOCATABLE and have their INTENT specified.
682
683 2010-08-13  Daniel Kraft  <d@domob.eu>
684
685         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
686         * array.c (gfc_match_array_spec): Match implied-shape specification and
687         handle AS_IMPLIED_SHAPE correctly otherwise.
688         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
689         (variable_decl): Some checks for implied-shape declaration.
690         * resolve.c (resolve_symbol): Assert that array-spec is no longer
691         AS_IMPLIED_SHAPE in any case.
692
693 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
694
695         * lang.opt (MD, MMD): Change to MDX and MMDX.
696         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
697
698 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
699
700         PR fortran/44595
701         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
702         'gfc_intrinsic_arg'.
703         (check_arglist,check_specific): Add reference to 'name' field.
704         (init_arglist): Remove reference to 'name' field.
705         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
706         * check.c (variable_check): Reverse order of checks. Respect intent of
707         formal arg.
708         (int_or_proc_check): New function.
709         (coarray_check): New function.
710         (allocatable_check): New function.
711         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
712         (gfc_check_complex): Use 'int_or_real_check'.
713         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
714         gfc_check_ucobound): Use 'coarray_check'.
715         (gfc_check_pack): Use 'real_or_complex_check'.
716         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
717         'int_or_proc_check'.
718         (scalar_check,type_check,numeric_check,int_or_real_check,
719         real_or_complex_check,kind_check,double_check,logical_array_check,
720         array_check,same_type_check,rank_check,nonoptional_check,
721         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
722         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
723         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
724         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
725         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
726         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
727         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
728         to 'name' field.
729
730 2010-08-10  Daniel Kraft  <d@domob.eu>
731
732         * gfortran.texi (Interoperability with C): Fix ordering in menu
733         and add new subsection about pointers.
734         (Interoperable Subroutines and Functions): Split off the pointer part.
735         (working with Pointers): New subsection with extended discussion
736         of pointers (especially procedure pointers).
737
738 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
739
740         PR fortran/44235
741         * array.c (gfc_ref_dimen_size):  Add end argument.
742         If end is non-NULL, calculate it.
743         (ref_size):  Adjust call to gfc_ref_dimen_size.
744         (gfc_array_dimen_size):  Likewise.
745         (gfc_array_res_shape):  Likewise.
746         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
747         * resolve.c (resolve_array_ref):  For stride not equal to -1,
748         fill in the lowest possible end.
749
750 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
751
752         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
753
754 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
755
756         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
757         alloca.
758         (check_some_aliasing): Likewise.
759         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
760         (gfc_conv_intrinsic_int): Likewise.
761         (gfc_conv_intrinsic_lib_function): Likewise.
762         (gfc_conv_intrinsic_cmplx): Likewise.
763         (gfc_conv_intrinsic_ctime): Likewise.
764         (gfc_conv_intrinsic_fdate): Likewise.
765         (gfc_conv_intrinsic_ttynam): Likewise.
766         (gfc_conv_intrinsic_minmax): Likewise.
767         (gfc_conv_intrinsic_minmax_char): Likewise.
768         (gfc_conv_intrinsic_ishftc): Likewise.
769         (gfc_conv_intrinsic_index_scan_verify): Likewise.
770         (gfc_conv_intrinsic_merge): Likewise.
771         (gfc_conv_intrinsic_trim): Likewise.
772         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
773
774 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
775
776         PR fortran/45159
777         * dependency.c (check_section_vs_section):  Handle cases where
778         the start expression coincides with the lower or upper
779         bound of the array.
780
781 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
782
783         PR fortran/42207
784         PR fortran/44064
785         PR fortran/44065
786         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
787         container types. Do not artificially increase refs. Commit symbols one
788         by one.
789         * interface.c (compare_parameter): Make sure vtabs are present before
790         generating module variables.
791         * resolve.c (resolve_allocate_expr): Ditto.
792
793 2010-08-04  Tobias Burnus  <burnus@net-b.de>
794
795         PR fortran/45183
796         PR fortran/44857
797         * resolve.c (resolve_structure_cons): Fix
798         freeing of charlen.
799
800 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
801
802         PR fortran/42051
803         PR fortran/44064
804         * symbol.c (changed_syms): Made static again.
805         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
806         Changed conditional internal error into assert.
807         Rename function to ...
808         (gfc_enforce_clean_symbol_state): ... this.
809         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
810         Rename the former to the latter.
811         * parse.c (decode_statement, decode_omp_directive,
812         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
813         on GFC_DEBUG.
814         (changed_syms): Remove declaration.
815         (next_statement): Use gfc_enforce_clean_symbol_state.
816
817 2010-08-04  Tobias Burnus  <burnus@net-b.de>
818
819         PR fortran/44857
820         * resolve.c (resolve_structure_cons): Fix handling of
821         initialization structure constructors with character
822         elements of the wrong length.
823         * array.c (gfc_check_iter_variable): Add NULL check.
824         (gfc_resolve_character_array_constructor): Also truncate
825         character length.
826
827 2010-08-04  Tobias Burnus  <burnus@net-b.de>
828
829         * trans-io.c (gfc_build_io_library_fndecls): Fix return
830         value of some libgfortran functions.
831
832 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
833
834         PR fortran/45159
835         * dependency.c (gfc_deb_compare_expr):  Remove any integer
836         conversion functions to larger types from both arguments.
837         Remove handling these functions futher down.
838
839 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
840
841         PR fortran/44584
842         PR fortran/45161
843         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
844         * resolve.c (resolve_tb_generic_targets): Check for errors.
845
846 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
847
848         PR fortran/45159
849         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
850         can be reversed.
851
852 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
853
854         PR fortran/36854
855         * dependency.h:  Add prototype for gfc_are_identical_variables.
856         * frontend-passes.c:  Include depencency.h.
857         (optimimize_equality):  Use gfc_are_identical_variables.
858         * dependency.c (identical_array_ref): New function.
859         (gfc_are_identical_variables):  New function.
860         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
861         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
862         prefix from statc function.
863         (check_section_vs_section): Change arguments to gfc_array_ref,
864         adjust function body accordingly.
865
866 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
867             Janus Weil  <janus@gcc.gnu.org>
868
869         PR fortran/42051
870         PR fortran/44064
871         PR fortran/45151
872         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
873         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
874         gfc_copy_formal_args, gfc_copy_formal_args_intr,
875         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
876         * parse.c (parse_derived_contains, parse_spec, parse_progunit): 
877         Call reject_statement in case of error. 
878         (match_deferred_characteritics): Call gfc_undo_symbols in case match
879         fails.
880
881 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
882
883         PR fortran/44912
884         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
885         (gfc_find_derived_vtab): Make vtabs and vtypes public.
886         * module.c (read_module): When reading module files, always import
887         vtab and vtype symbols.
888
889 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
890
891         PR fortran/42051
892         PR fortran/44064
893         * symbol.c (changed_syms): Made non-static.
894         * parse.c (changed_syms): Declare new external. 
895         (next_statement): Assert changed_syms is NULL at the beginning.
896
897 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
898             Steven G. Kargl  <kargl@gcc.gnu.org>
899
900         PR fortran/44929
901         * match.c (match_type_spec): Try to parse derived types before
902         intrinsic types.
903
904 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
905
906         * gfortran.h (gfc_release_symbol): New prototype.
907         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
908         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
909         Use gfc_release_symbol.
910         * parse.c (gfc_fixup_sibling_symbols): Ditto.
911         * resolve.c (resolve_symbol): Ditto.
912
913 2010-07-29  Tobias Burnus  <burnus@net-b.de>
914
915         PR fortran/45087
916         PR fortran/45125
917         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
918         external procedure declarations in modules.
919         (gfc_get_symbol_decl): Modify assert.
920
921 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
922
923         PR fortran/44962
924         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
925
926 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
927
928         PR fortran/45004
929         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
930         (gfc_trans_class_assign): Modified prototype.
931         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
932         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
933         (gfc_trans_class_assign): ... here. Modified actual arguments.
934         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
935         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
936         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
937
938 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
939
940         PR fortran/42051
941         PR fortran/44064
942         * class.c (gfc_find_derived_vtab): Accept or discard newly created
943         symbols before returning.
944
945 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
946
947         * lang.opt (cpp): Remove Joined and Separate markers.
948         (cpp=): New internal option.
949         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
950         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
951         OPT_cpp.
952
953 2010-07-29  Daniel Kraft  <d@domob.eu>
954
955         PR fortran/45117
956         * array.c (resolve_array_bound): Fix error message to properly handle
957         non-variable expressions.
958
959 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
960
961         * decl.c (free_value): Also free repeat field.
962         * data.c (gfc_assign_data_value): Always free offset before returning.
963
964 2010-07-28  Daniel Kraft  <d@domob.eu>
965
966         * gfortran.h (gfc_build_intrinsic_call): New method.
967         * expr.c (gfc_build_intrinsic_call): New method.
968         * simplify.c (range_check): Ignore non-constant value.
969         (simplify_bound_dim): Handle non-variable expressions and
970         fix memory leak with non-free'ed expression.
971         (simplify_bound): Handle non-variable expressions.
972         (gfc_simplify_shape): Ditto.
973         (gfc_simplify_size): Ditto, but only in certain cases possible.
974
975 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
976
977         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
978         Remove.
979
980 2010-07-28  Tobias Burnus  <burnus@net-b.de>
981
982         PR fortran/45077
983         * trans-types.c (gfc_get_derived_type): Fix DT declaration
984         from modules for whole-file mode.
985
986 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
987
988         * gfortran.h (gfc_handle_option): Update prototype and return
989         value type.
990         * options.c (gfc_handle_option): Update prototype and return value
991         type.
992
993 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
994
995         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
996         decoded options in allocating deferred_opt.
997         * cpp.h (gfc_cpp_init_options): Update prototype.
998         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
999         * gfortran.h (gfc_option_lang_mask): New.
1000         (gfc_init_options): Update prototype.
1001         * options.c (gfc_option_lang_mask): New.
1002         (gfc_init_options): Update prototype.  Pass new arguments to
1003         gfc_cpp_init_options.
1004
1005 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1006
1007         PR fortran/40873
1008         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
1009         for functions which are later in the same file.
1010         (gfc_create_function_decl, build_function_decl,
1011         build_entry_thunks): Add global argument.
1012         * trans.c (gfc_generate_module_code): Update
1013         gfc_create_function_decl call.
1014         * trans.h (gfc_create_function_decl): Update prototype.
1015         * resolve.c (resolve_global_procedure): Also resolve for
1016         IFSRC_IFBODY.
1017
1018 2010-07-26  Richard Henderson  <rth@redhat.com>
1019
1020         PR target/44132
1021         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
1022         (gfc_write_global_declarations): New.
1023
1024 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1025
1026         PR fortran/45066
1027         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
1028         for call to transfer_namelist_element.
1029         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
1030         for -fwhole-file.
1031
1032 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1033
1034         PR fortran/40628
1035         * Make-lang.in:  Add fortran/frontend-passes.o.
1036         * gfortran.h:  Add prototype for gfc_run_passes.
1037         * resolve.c (gfc_resolve):  Call gfc_run_passes.
1038         * frontend-passes.c:  New file.
1039
1040 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1041
1042         PR fortran/42852
1043         * scanner.c (gfc_next_char_literal): Enable truncation warning for
1044         free-form '&'.
1045
1046 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
1047
1048         PR fortran/44660
1049         * gfortran.h (gfc_namespace): New field old_equiv.
1050         (gfc_free_equiv_until): New prototype.
1051         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
1052         a parameterized stop condition.
1053         (gfc_free_equiv): Use gfc_free_equiv_until.
1054         * parse.c (next_statement): Save equivalence list.
1055         (reject_statement): Restore equivalence list. 
1056
1057 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1058
1059         PR fortran/42852
1060         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
1061         in the function so that it does not get missed by early exits.
1062         (load_line): Add checks for quoted strings and free form comments to
1063         disable warnings on comments. Add check for ampersand as first
1064         character after truncation and don't warn for this case, but warn if
1065         there are subsequent non-whitespace characters.
1066
1067 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1068
1069         PR fortran/40011
1070         * parse.c (gfc_parse_file): Do not override
1071         gfc_global_ns_list items.
1072
1073 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1074
1075         * options.c (gfc_init_options): Enable -fwhole-file by default.
1076         * interface.c (compare_parameter): Assume a Hollerith constant is
1077         compatible with all other argument types.
1078
1079 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1080
1081         PR fortran/44945
1082         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
1083         -fwhole-file also for derived types.
1084         * trans-types.c (copy_dt_decls_ifequal): Remove static and
1085         rename to gfc_copy_dt_decls_ifequal.
1086         (gfc_get_derived_type): Update call.
1087         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
1088
1089 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1090
1091         PR fortran/45030
1092         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
1093
1094 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
1095
1096         * trans-types.c (gfc_get_array_descriptor_base,
1097         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
1098         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
1099         instead of clearing DECL_NAME.
1100         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
1101
1102 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
1103
1104         PR fortran/24524
1105         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
1106         field.
1107         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
1108         reverse the scalarization loop.
1109         gfc_conv_resolve_dependencies: Pass the reverse field of the
1110         loopinfo to gfc_dep_resolver.
1111         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
1112         assignment by resetting loop.reverse.
1113         gfortran.h : Add the gfc_reverse enum.
1114         trans.h : Add the reverse field to gfc_loopinfo.
1115         dependency.c (gfc_check_dependency): Pass null to the new arg
1116         of gfc_dep_resolver.
1117         (gfc_check_section_vs_section): Check for reverse dependencies.
1118         (gfc_dep_resolver): Add reverse argument and deal with the loop
1119         reversal logic.
1120         dependency.h : Modify prototype for gfc_dep_resolver to include
1121         gfc_reverse *.
1122
1123 2010-07-23  Daniel Kraft  <d@domob.eu>
1124
1125         PR fortran/44709
1126         * gfortran.h (gfc_find_symtree_in_proc): New method.
1127         * symbol.c (gfc_find_symtree_in_proc): New method.
1128         * match.c (match_exit_cycle): Look for loop name also in parent
1129         namespaces within current procedure.
1130
1131 2010-07-22  Tobias Burnus  <burnus@net-b.de>
1132
1133         PR fortran/45019
1134         * dependency.c (gfc_check_dependency): Add argument alising check.
1135         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
1136
1137 2010-07-22  Daniel Kraft  <d@domob.eu>
1138
1139         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
1140         now in the correct place.
1141
1142 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
1143
1144         PR fortran/44929
1145         * Revert my commit r162325.
1146
1147 2010-07-21  Daniel Kraft  <d@domob.eu>
1148
1149         * trans.h (gfc_get_return_label): Removed.
1150         (gfc_generate_return): New method.
1151         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1152         returning a tree directly.
1153         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
1154         (gfc_trans_block_construct): Update for new interface to
1155         `gfc_trans_deferred_vars'.
1156         * trans-decl.c (current_function_return_label): Removed.
1157         (current_procedure_symbol): New variable.
1158         (gfc_get_return_label): Removed.
1159         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1160         returning a tree directly.
1161         (get_proc_result), (gfc_generate_return): New methods.
1162         (gfc_generate_function_code): Clean up and do init/cleanup here
1163         also with gfc_wrapped_block.  Remove return-label but rather
1164         return directly.
1165
1166 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1167
1168         PR fortran/44929
1169         * fortran/match.c (match_type_spec): Check for derived type before
1170         intrinsic types.
1171
1172 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1173
1174         PR fortran/42385
1175         * interface.c (matching_typebound_op): Add argument for the
1176         return of the generic name for the procedure.
1177         (build_compcall_for_operator): Add an argument for the generic
1178         name of an operator procedure and supply it to the expression.
1179         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
1180         calls to the above procedures.
1181         * resolve.c (resolve_typebound_function): Catch procedure
1182         component calls for CLASS objects, check that the vtable is
1183         complete and insert the $vptr and procedure components, to make
1184         the call.
1185         (resolve_typebound_function): The same.
1186         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
1187         an allocatable scalar if it is a result.
1188
1189 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1190
1191         PR fortran/44353
1192         * match.c (gfc_match_iterator): Reverted.
1193
1194 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
1195
1196         PR fortran/44353
1197         * match.c (gfc_match_iterator): Remove error that iterator
1198         cannot be INTENT(IN).
1199
1200 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
1201
1202         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
1203         Access subscript through the "dim" field index.
1204         (gfc_trans_create_temp_array): Access ss info through the "dim" field
1205         index.
1206         (gfc_conv_array_index_offset): Ditto.
1207         (gfc_conv_loop_setup): Ditto.
1208         (gfc_conv_expr_descriptor): Ditto.
1209         (gfc_conv_ss_startstride): Ditto.  Update call to
1210         gfc_conv_section_startstride.
1211         (gfc_conv_section_startstride): Set values along the array dimension.
1212         Get array dimension directly from the argument.
1213
1214 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1215
1216         * trans.h (gfc_string_to_single_character): New prototype.
1217         * trans-expr.c (string_to_single_character): Renamed to ...
1218         (gfc_string_to_single_character): ... this.  No longer static.
1219         (gfc_conv_scalar_char_value, gfc_build_compare_string,
1220         gfc_trans_string_copy): Adjust callers.
1221         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
1222         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
1223         (select_struct): Move to toplevel, add GTY(()).
1224         (gfc_trans_character_select): Optimize SELECT CASE
1225         with character length 1.
1226
1227 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1228
1229         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1230         * trans-common.c: Likewise.
1231         * trans-decl.c: Likewise.
1232         * trans-types.c: Likewise.
1233         * trans.c: Likewise.
1234
1235 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
1236
1237         PR fortran/44936
1238         * resolve.c (resolve_typebound_generic_call): Resolve generic
1239         non-polymorphic type-bound procedure calls to the correct specific
1240         procedure.
1241         (resolve_typebound_subroutine): Remove superfluous code.
1242
1243 2010-07-15  Daniel Kraft  <d@domob.eu>
1244
1245         PR fortran/44709
1246         * trans.h (struct gfc_wrapped_block): New struct.
1247         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1248         (gfc_finish_wrapped_block): New method.
1249         (gfc_init_default_dt): Add new init code to block rather than
1250         returning it.
1251         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
1252         (gfc_trans_dummy_array_bias): Ditto.
1253         (gfc_trans_g77_array): Ditto.
1254         (gfc_trans_deferred_array): Ditto.
1255         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
1256         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
1257         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1258         (gfc_finish_wrapped_block): New method.
1259         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
1260         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
1261         (gfc_trans_deferred_array): Ditto.
1262         * trans-decl.c (gfc_trans_dummy_character): Ditto.
1263         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
1264         (init_intent_out_dt): Ditto.
1265         (gfc_init_default_dt): Add new init code to block rather than
1266         returning it.
1267         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
1268         and cleanup code and put it all together.
1269
1270 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1271
1272         * trans.h (gfc_build_compare_string): Add CODE argument.
1273         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
1274         gfc_build_compare_string.
1275         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
1276         gfc_build_compare_string.
1277         (string_to_single_character): Rename len variable to length.
1278         (gfc_optimize_len_trim): New function.
1279         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
1280         or NE_EXPR and one of the strings is string literal with LEN_TRIM
1281         bigger than the length of the other string, they compare unequal.
1282
1283         PR fortran/40206
1284         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
1285         in CASE_LABEL_EXPR and use NULL for low for the default case.
1286
1287 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
1288
1289         * trans-array.c (gfc_conv_section_upper_bound): Remove
1290         (gfc_conv_section_startstride): Don't set the upper bound in the 
1291         vector subscript case.
1292         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
1293
1294 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
1295
1296         PR fortran/44925
1297         * gfortran.h (gfc_is_data_pointer): Remove prototype.
1298         * dependency.c (gfc_is_data_pointer): Make it static.
1299         * intrinsic.texi: Update documentation on C_LOC.
1300         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
1301         and add a check for polymorphic variables.
1302
1303 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
1304
1305         * trans-expr.c (string_to_single_character): Also optimize
1306         string literals containing a single char followed only by spaces.
1307         (gfc_trans_string_copy): Remove redundant string_to_single_character
1308         calls.
1309
1310         * trans-decl.c (gfc_build_intrinsic_function_decls,
1311         gfc_build_builtin_function_decls): Mark functions as
1312         DECL_PURE_P or TREE_READONLY.
1313
1314 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
1315
1316         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
1317         instead of build_function_call_expr.
1318         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
1319
1320 2010-07-13  Tobias Burnus  <burnus@net-b.de>
1321             Daniel Franke  <franke.daniel@gmail.com>
1322
1323         PR fortran/43665
1324         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
1325         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
1326         static.
1327         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
1328
1329 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
1330             Tobias Burnus  <burnus@net-b.de>
1331
1332         PR fortran/43665
1333         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
1334         noclobber/noescape annotations to function calls.
1335         (gfc_build_builtin_function_decls): Likewise.
1336
1337 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
1338
1339         PR fortran/44434
1340         PR fortran/44565
1341         PR fortran/43945
1342         PR fortran/44869
1343         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
1344         * class.c (gfc_build_class_symbol): Modified call to
1345         'gfc_find_derived_vtab'.
1346         (add_proc_component): Removed, moved code into 'add_proc_comp'.
1347         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
1348         generics.
1349         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
1350         Removed treatment of generics.
1351         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
1352         Call 'add_proc_comp' instead of duplicating code.
1353         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
1354         and 'declared'.
1355         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
1356         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
1357         Removed treatment of generics.
1358         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
1359         'gfc_find_derived_vtab'.
1360         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1361         Removed treatment of generics.
1362         (resolve_select_type,resolve_fl_derived): Modified call to
1363         'gfc_find_derived_vtab'.
1364         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1365         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1366         Ditto.
1367         * trans-stmt.c (gfc_trans_allocate): Ditto.
1368
1369 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1370
1371         PR fortran/37077
1372         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
1373         internal unit.
1374
1375 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
1376
1377         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
1378         * resolve.c (build_default_init_expr): Ditto.
1379
1380 2010-07-11  Tobias Burnus  <burnus@net-b.de>
1381
1382         PR fortran/44702
1383         * module.c (sort_iso_c_rename_list): Remove.
1384         (import_iso_c_binding_module,use_iso_fortran_env_module):
1385         Allow multiple imports of the same symbol.
1386
1387 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
1388
1389         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
1390
1391 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
1392
1393         PR fortran/44869
1394         * decl.c (build_sym,attr_decl1): Only build the class container if the
1395         symbol has sufficient attributes.
1396         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
1397         pointer attribute for classes.
1398         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
1399         * module.c (MOD_VERSION): Bump.
1400         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
1401         (mio_symbol_attribute): Handle class_pointer attribute.
1402         * parse.c (parse_derived): Use class_pointer instead of pointer
1403         attribute for classes.
1404         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
1405         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
1406         resolve_allocate_expr,resolve_fl_derived): Ditto.
1407         (resolve_fl_var_and_proc): Check for class_ok attribute.
1408
1409 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
1410
1411         * trans-io.c (gfc_build_st_parameter): Update calls to
1412         gfc_add_field_to_struct.
1413         * trans-stmt.c (ADD_FIELD): Ditto.
1414         * trans-types.c
1415         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
1416         C_ADDRESS field.
1417         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
1418         fieldlist, remove fieldlist from argument list.
1419         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
1420         and remove fieldlist from argument list.
1421         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
1422         gfc_get_mixed_entry_union): Move setting
1423         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
1424         * trans-types.h (gfc_add_field_to_struct): Update prototype.
1425
1426 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
1427
1428         PR fortran/44773
1429         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
1430         if the lhs has never been host associated, as well as not being
1431         use associated, a pointer or a target.
1432         * resolve.c (resolve_variable): Mark variables that are host
1433         associated.
1434         * gfortran.h: Add the host_assoc bit to the symbol_attribute
1435         structure.
1436
1437 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
1438
1439         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
1440         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
1441         SIZEOF and C_SIZEOF.
1442
1443 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
1444
1445         PR fortran/44649
1446         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
1447         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
1448         gfc_resolve_storage_size): New prototypes.
1449         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
1450         * intrinsic.c (add_functions): Add STORAGE_SIZE.
1451         * iresolve.c (gfc_resolve_storage_size): New function.
1452         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
1453         arguments.
1454         (gfc_conv_intrinsic_storage_size): New function.
1455         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
1456
1457 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1458
1459         PR fortran/44847
1460         * match.c (match_exit_cycle): Error on EXIT also from collapsed
1461         !$omp do loops.  Error on CYCLE to non-innermost collapsed
1462         !$omp do loops.
1463
1464 2010-07-08  Tobias Burnus  <burnus@net-b.de>
1465
1466         PR fortran/18918
1467         * array.c (gfc_match_array_ref): Better error message for
1468         coarrays with too few ranks.
1469         (match_subscript): Move one diagnostic to caller.
1470         * gfortran.h (gfc_get_corank): Add prottype.
1471         * expr.c (gfc_get_corank): New function.
1472         * iresolve.c (resolve_bound): Fix rank for cobounds.
1473         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
1474         gfc_resolve_ucobound, gfc_resolve_this_image): Update
1475         resolve_bound call.
1476
1477 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1478
1479         PR fortran/44742
1480         * array.c (gfc_expand_constructor): Add optional diagnostic.
1481         * gfortran.h (gfc_expand_constructor): Update prototype.
1482         * expr.c (gfc_simplify_expr, check_init_expr,
1483         gfc_reduce_init_expr): Update gfc_expand_constructor call.
1484         * resolve.c (gfc_resolve_expr): Ditto.
1485
1486 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1487
1488         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
1489         * trans-intrinsic.c: Ditto.
1490         * trans-types.c: Ditto.
1491         * convert.c: Include diagnostic-core.h instead of toplev.h.
1492         * options.c: Ditto.
1493         * trans-array.c: Ditto.
1494         * trans-const.c: Ditto.
1495         * trans-expr.c: Ditto.
1496         * trans-io.c: Ditto.
1497         * trans-openmp.c: Ditto.
1498         * trans.c: Ditto.
1499
1500 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1501
1502         PR fortran/PR44693
1503         * check.c (dim_rank_check):  Also check intrinsic functions.
1504         Adjust permissible rank for functions which reduce the rank of
1505         their argument.  Spread is an exception, where DIM can
1506         be one larger than the rank of array.
1507
1508 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1509
1510         PR fortran/44797
1511         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
1512
1513 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
1514
1515         PR fortran/44596
1516         * trans-types.c (gfc_get_derived_type): Derived type fields
1517         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
1518         but build_pointer_type_for_mode must be used for this.
1519
1520 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1521
1522         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
1523         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
1524         type of gfc_conv_procedure_call.
1525         (conv_generic_with_optional_char_arg): Likewise.
1526         * trans-stmt.c (gfc_trans_call): Likewise.
1527         * trans-expr.c (gfc_conv_function_expr): Likewise.
1528         (gfc_conv_procedure_call): Use build_call_vec instead of
1529         build_call_list.
1530
1531 2010-07-04  Daniel Kraft  <d@domob.eu>
1532
1533         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
1534
1535 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
1536
1537         PR fortran/44596
1538         PR fortran/44745
1539         * trans-types.c (gfc_get_derived_type): Derived type fields
1540         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
1541
1542 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
1543
1544         PR fortran/44662
1545         * decl.c (match_procedure_in_type): Clear structure before using.
1546         (gfc_match_generic): Ditto.
1547
1548 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
1549
1550         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
1551         * trans-types.c (gfc_add_field_to_struct_1): New function, most
1552         of which comes from...
1553         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
1554         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
1555         building fields.
1556         (gfc_get_array_descriptor_base): Likewise.
1557         (gfc_get_mixed_entry_union): Likewise.
1558         (gfc_get_derived_type): Add extra chain parameter for
1559         gfc_add_field_to_struct.
1560         * trans-stmt.c (gfc_trans_character_select): Likewise.
1561         * trans-io.c (gfc_build_st_parameter): Likewise.
1562
1563 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1564
1565         PR fortran/44718
1566         * resolve.c (is_external_proc): Prevent procedure pointers from being
1567         regarded as external procedures.
1568
1569 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1570
1571         PR fortran/44696
1572         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
1573         passed as second argument of ASSOCIATED.
1574
1575 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
1576
1577         PR fortran/44582
1578         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
1579         to determine if a function assignment can be made without a
1580         temporary.
1581         (gfc_trans_arrayfunc_assign): Move all the conditions that
1582         suppress the direct function call to the above new functon and
1583         call it.
1584
1585 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
1586
1587         PR fortran/40158
1588         * interface.c (argument_rank_mismatch): New function.
1589         (compare_parameter): Call new function instead of generating
1590         the error directly.
1591
1592 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1593
1594         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
1595         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
1596         initializers.
1597
1598 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1599
1600         * Make-lang.in: Update dependencies.
1601
1602 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
1603
1604         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
1605         and exit_label fields.
1606         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
1607         individually.
1608         * trans-stmt.c (gfc_trans_simple_do): Likewise.
1609         (gfc_trans_do): Likewise.
1610         (gfc_trans_do_while): Likewise.
1611         (gfc_trans_cycle): Use cycle_label directly.
1612         (gfc_trans_exit): Use exit_label directly.
1613
1614 2010-06-27  Daniel Kraft  <d@domob.eu>
1615
1616         * dump-parse-tree.c (show_symbol): Dump target-expression for
1617         associate names.
1618         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
1619         (show_namespace): Use show_level for correct indentation of
1620         "inner namespaces" (contained procedures or BLOCK).
1621
1622 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1623
1624         PR fortran/44678
1625         * dump-parse-tree.c (show_code_node):  Show namespace for
1626         EXEC_BLOCK.
1627
1628 2010-06-26  Tobias Burnus  <burnus@net-b.de>
1629
1630         * decl.c (gfc_match_decl_type_spec): Support
1631         TYPE(intrinsic-type-spec).
1632
1633 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1634
1635         * intrinsic.h (gfc_check_selected_real_kind,
1636         gfc_simplify_selected_real_kind): Update prototypes.
1637         * intrinsic.c (add_functions): Add radix support to
1638         selected_real_kind.
1639         * check.c (gfc_check_selected_real_kind): Ditto.
1640         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
1641         * trans-decl.c (gfc_build_intrinsic_function_decls):
1642         Change call from selected_real_kind to selected_real_kind2008.
1643         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
1644         (PRECISION, RANGE, RADIX): Add cross @refs.
1645
1646 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1647
1648         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
1649         * gfortran.texi (_gfortran_set_options): Update for
1650         GFC_STD_F2008_OBS addition.
1651         * libgfortran.h: Add GFC_STD_F2008_OBS.
1652         * options.c (set_default_std_flags, gfc_handle_option): Handle
1653         GFC_STD_F2008_OBS.
1654         io.c (check_format): Fix allow_std check.
1655
1656 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1657
1658         * decl.c (gfc_match_entry): Allow END besides
1659         END SUBROUTINE/END FUNCTION for contained procedures.
1660
1661 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1662
1663         * parse.c (next_free, next_fixed): Allow ";" as first character.
1664
1665 2010-06-24  Tobias Burnus  <burnus@net-b.de>
1666
1667         PR fortran/44614
1668         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
1669
1670 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
1671
1672         PR fortran/44616
1673         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
1674         containers.
1675
1676 2010-06-21  Tobias Burnus  <burnus@net-b.de>
1677
1678         PR fortran/40632
1679         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
1680         checks.
1681         * symbol.c (gfc_add_contiguous): New function.
1682         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
1683         * decl.c (match_attr_spec): Ditto.
1684         (gfc_match_contiguous): New function.
1685         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
1686         contiguous.
1687         * gfortran.h (symbol_attribute): Add contiguous.
1688         (gfc_is_simply_contiguous): Add prototype.
1689         (gfc_add_contiguous): Add prototype.
1690         * match.h (gfc_match_contiguous): Add prototype.
1691         * parse.c (decode_specification_statement,
1692         decode_statement): Handle contiguous attribute.
1693         * expr.c (gfc_is_simply_contiguous): New function.
1694         * dump-parse-tree.c (show_attr): Handle contiguous.
1695         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
1696         Ditto.
1697         * trans-expr.c (gfc_add_interface_mapping): Copy
1698         attr.contiguous.
1699         * trans-array.c (gfc_conv_descriptor_stride_get,
1700         gfc_conv_array_parameter): Handle contiguous arrays.
1701         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
1702         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
1703         Ditto.
1704         * trans.h (gfc_array_kind): Ditto.
1705         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1706
1707 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
1708
1709         * options.c (gfc_handle_option): Don't handle N_OPTS.
1710
1711 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
1712
1713         PR fortran/44584
1714         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
1715         to avoid ICE.
1716
1717 2010-06-18  Tobias Burnus  <burnus@net-b.de>
1718
1719         PR fortran/44556
1720         * resolve.c (resolve_allocate_deallocate): Properly check
1721         part-refs in stat=/errmsg= for invalid use.
1722
1723 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
1724
1725         PR fortran/44558
1726         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1727         Return directly in case of an error.
1728
1729 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
1730
1731         PR fortran/44549
1732         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
1733         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
1734         structure to each procedure in a procedure list.
1735         * module.c (mio_typebound_proc): Add NULL argument to
1736         'gfc_get_typebound_proc'.
1737         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
1738         to initialize the new structure.
1739
1740 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
1741
1742         PR fortran/43388
1743         * gfortran.h (gfc_expr): Add new member 'mold'.
1744         * match.c (gfc_match_allocate): Implement the MOLD tag.
1745         * resolve.c (resolve_allocate_expr): Ditto.
1746         * trans-stmt.c (gfc_trans_allocate): Ditto.
1747
1748 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1749
1750         PR fortran/44536
1751         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
1752         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
1753         GFC_DECL_SAVED_DESCRIPTOR set.
1754         (gfc_omp_report_decl): New function.
1755         * trans.h (gfc_omp_report_decl): New prototype.
1756         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
1757
1758 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
1759
1760         PR fortran/31588
1761         PR fortran/43954
1762         * gfortranspec.c (lang_specific_driver): Removed deprecation
1763         warning for -M.
1764         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
1765         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
1766         * cpp.h (gfc_cpp_makedep): New.
1767         (gfc_cpp_add_dep): New.
1768         (gfc_cpp_add_target): New.
1769         * cpp.c (gfc_cpp_option): Add deps* members.
1770         (gfc_cpp_makedep): New.
1771         (gfc_cpp_add_dep): New.
1772         (gfc_cpp_add_target): New.
1773         (gfc_cpp_init_options): Initialize new options.
1774         (gfc_cpp_handle_option): Handle new options.
1775         (gfc_cpp_post_options): Map new options to libcpp-options.
1776         (gfc_cpp_init): Handle deferred -MQ and -MT options.
1777         (gfc_cpp_done): If requested, write dependencies to file.
1778         * module.c (gfc_dump_module): Add a module filename as target.
1779         * scanner.c (open_included_file): New parameter system; add the
1780         included file as dependency.
1781         (gfc_open_included_file): Add the included file as dependency.
1782         (gfc_open_intrinsic_module): Likewise.
1783         * invoke.texi: Removed deprecation warning for -M.
1784         * gfortran.texi: Removed Makefile-dependencies project.
1785
1786 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
1787
1788         * resolve.c (resolve_global_procedure): Improved checking if an
1789         explicit interface is required.
1790
1791 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1792
1793         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
1794         return type.
1795         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
1796         (gfc_conv_intrinsic_ttynam): Likewise.
1797         (gfc_conv_intrinsic_trim): Likewise.
1798
1799 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
1800
1801         PR fortran/40117
1802         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
1803
1804 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1805
1806         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
1807
1808 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1809
1810         * mathbuiltins.def: Add builtins that do not directly correspond
1811         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
1812         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
1813         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
1814         code_{r,c}{4,8,10,16} fields. Add
1815         {,complex}{float,double,long_double}_built_in fields.
1816         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
1817         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
1818         definition of OTHER_BUILTIN.
1819         (real_compnt_info): Remove unused struct.
1820         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
1821         functions.
1822         (build_round_expr): Call builtin_decl_for_precision instead of
1823         series of if-else.
1824         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
1825         instead of a switch.
1826         (gfc_build_intrinsic_lib_fndecls): Match
1827         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
1828         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
1829         kinds.
1830         (gfc_conv_intrinsic_lib_function): Go through all the extended
1831         gfc_intrinsic_map.
1832         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
1833         instead of a switch.
1834         (gfc_conv_intrinsic_abs): Likewise.
1835         (gfc_conv_intrinsic_mod): Likewise.
1836         (gfc_conv_intrinsic_sign): Likewise.
1837         (gfc_conv_intrinsic_fraction): Likewise.
1838         (gfc_conv_intrinsic_nearest): Likewise.
1839         (gfc_conv_intrinsic_spacing): Likewise.
1840         (gfc_conv_intrinsic_rrspacing): Likewise.
1841         (gfc_conv_intrinsic_scale): Likewise.
1842         (gfc_conv_intrinsic_set_exponent): Likewise.
1843
1844 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
1845
1846         PR fortran/42051
1847         PR fortran/43896
1848         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
1849         functions with CLASS formal arguments.
1850
1851 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
1852
1853         PR fortran/44207
1854         * resolve.c (conformable_arrays): Handle allocatable components.
1855
1856 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1857
1858         PR fortran/38273
1859         * gfortran.texi: Document that Cray pointers cannot be function
1860         results.
1861
1862 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1863
1864         PR fortran/36234
1865         * gfortran.texi: Document lack of support for syntax
1866         "complex FUNCTION name*16()", and existence of alternative
1867         legacy syntax "complex*16 FUNCTION name()".
1868
1869 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1870
1871         PR fortran/43032
1872         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
1873         POSIX's fsync(), and how to call the latter from Fortran code.
1874
1875 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
1876
1877         PR fortran/44457
1878         * interface.c (compare_actual_formal): Reject actual arguments with
1879         array subscript passed to ASYNCHRONOUS dummys.
1880
1881 2010-06-10  Daniel Kraft  <d@domob.eu>
1882
1883         PR fortran/38936
1884         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
1885         (struct gfc_symbol): New field `assoc'.
1886         (struct gfc_association_list): New struct.
1887         (struct gfc_code): New struct `block' in union, move `ns' there
1888         and add association list.
1889         (gfc_free_association_list): New method.
1890         (gfc_has_vector_subscript): Made public;
1891         * match.h (gfc_match_associate): New method.
1892         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
1893         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
1894         * interface.c (gfc_has_vector_subscript): Made public.
1895         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
1896         * match.c (gfc_match_associate): New method.
1897         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
1898         * primary.c (match_variable): Don't allow names associated to expr here.
1899         * parse.c (decode_statement): Try matching ASSOCIATE statement.
1900         (case_exec_markers, case_end): Add ASSOCIATE statement.
1901         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
1902         (parse_associate): New method.
1903         (parse_executable): Handle ST_ASSOCIATE.
1904         (parse_block_construct): Change reference to gfc_code's `ns' field.
1905         * resolve.c (resolve_select_type): Ditto.
1906         (resolve_code): Ditto.
1907         (resolve_block_construct): Ditto and add comment.
1908         (resolve_select_type): Set association list in generated BLOCK to NULL.
1909         (resolve_symbol): Resolve associate names.
1910         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
1911         and free association list.
1912         (gfc_free_association_list): New method.
1913         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
1914         * trans-stmt.c (gfc_trans_block_construct): Change reference to
1915         gfc_code's `ns' field.
1916
1917 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
1918
1919         * error.c (error_print): Pre-initialize loc by NULL.
1920         * openmp.c (resolve_omp_clauses): Add explicit
1921         braces to avoid ambigous else.
1922         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
1923
1924 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1925
1926         * gfc-internals.texi: Move to GFDL 1.3.
1927         * gfortran.texi: Ditto.
1928         * intrinsic.texi: Ditto.
1929         * invoke.texi: Ditto.
1930
1931 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
1932
1933         PR fortran/44347
1934         * check.c (gfc_check_selected_real_kind): Verify that the
1935         actual arguments are scalar.
1936
1937 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
1938
1939         PR fortran/44359
1940         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
1941
1942 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
1943
1944         PR fortran/44430
1945         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
1946
1947 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1948
1949         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
1950
1951 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1952
1953         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
1954         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
1955         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
1956         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
1957         gfc_check_bitfcn.
1958         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
1959         less_than_bitsize2): New functions.
1960         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
1961         nonnegative_check and less_than_bitsize1.
1962         (gfc_check_ibclr, gfc_check_ibset): Removed.
1963         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
1964         less_than_bitsize1.
1965
1966 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
1967
1968         PR fortran/44211
1969         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1970         Resolve references.
1971
1972 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
1973
1974         * resolve.c (resolve_deallocate_expr): Avoid warning
1975         about possible use of iunitialized sym.
1976         (resolve_allocate_expr): Pre-initialize sym by NULL.
1977
1978 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1979
1980         PR fortran/43040
1981         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
1982
1983 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1984
1985         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
1986         allocation.
1987         (gfc_get_array_type_bounds): Likewise.
1988
1989         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
1990         (gfc_find_module): Likewise.
1991
1992         * f95-lang.c (pushlevel): Likewise.
1993
1994         * trans.h (struct lang_type): Add variable_size GTY option.
1995         (struct lang_decl): Likewise.
1996
1997 2010-06-08  Tobias Burnus  <burnus@net-b.de>
1998
1999         PR fortran/44446
2000         * symbol.c (check_conflict): Move protected--external/procedure check ...
2001         * resolve.c (resolve_select_type): ... to the resolution stage.
2002
2003 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2004
2005         * options.c (gfc_handle_option): Fix -fno-recursive.
2006
2007 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2008
2009         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
2010         * gfortran.texi (copyrights-gfortran): Ditto.
2011
2012 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2013
2014         * lang.opt (fshort-enums): Define using Var and VarExists.
2015         * options.c (gfc_handle_option): Don't set flag_short_enums here.
2016
2017 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2018             Janus Weil  <janus@gcc.gnu.org>
2019
2020         PR fortran/43945
2021         * resolve.c (get_declared_from_expr): Move to before
2022         resolve_typebound_generic_call.  Make new_ref and class_ref
2023         ignorable if set to NULL.
2024         (resolve_typebound_generic_call): Once we have resolved the
2025         generic call, check that the specific instance is that which
2026         is bound to the declared type.
2027         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
2028         freeing 'class_ref->next' twice.
2029
2030 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2031
2032         PR fortran/43895
2033         * trans-array.c (structure_alloc_comps): Dereference scalar
2034         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
2035         TREE_TYPE (decl).
2036
2037 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
2038
2039         * gfortranspec.c (append_arg, lang_specific_driver): Use
2040         GCC-specific formats in diagnostics.
2041
2042 2010-06-02  Tobias Burnus  <burnus@net-b.de>
2043
2044         PR fortran/44360
2045         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
2046         symbols.
2047
2048 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2049
2050         PR fortran/44371
2051         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
2052         condition block.
2053
2054 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
2055
2056         * fortran/gfortran.texi:  Fix typos in description of variable-format-
2057         expressions.
2058
2059 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2060
2061         PR fortran/36928
2062         * dependency.c (gfc_check_section_vs_section):  Check
2063         for interleaving array assignments without conflicts.
2064
2065 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
2066
2067         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
2068         $data component of a class container.
2069         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
2070         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
2071         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
2072         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
2073         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
2074         * gcc/fortran/parse.c (parse_derived): Ditto.
2075         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
2076         gfc_expr_attr): Ditto.
2077         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
2078         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
2079         resolve_fl_var_and_proc, resolve_typebound_procedure,
2080         resolve_fl_derived): Ditto.
2081         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
2082         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
2083         CLASS_DATA.
2084         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
2085         gfc_trans_deferred_vars): Ditto.
2086         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
2087
2088 2010-05-28  Tobias Burnus  <burnus@net-b.de>
2089
2090         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
2091
2092 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2093
2094         * gfortranspec.c (append_arg, lang_specific_driver): Use
2095         fatal_error instead of fatal.  Use warning instead of fprintf for
2096         warnings.
2097
2098 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2099
2100         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
2101         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
2102         xstrerror instead of strerror.
2103
2104 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2105
2106         * cpp.c (cb_cpp_error): Save and restore
2107         global_dc->warn_system_headers, not variable warn_system_headers.
2108
2109 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2110
2111         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
2112
2113 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2114
2115         * trans-common.c: Do not include rtl.h, include output.h instead.
2116         * trans-decl.c: Likewise.
2117
2118 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
2119
2120         PR fortran/40011
2121         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
2122         namespace before trying to reorder the gsymbols.
2123
2124 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
2125
2126         PR fortran/30668
2127         PR fortran/31346
2128         PR fortran/34260
2129         * resolve.c (resolve_global_procedure): Add check for global
2130         procedures with implicit interfaces and assumed-shape or optional
2131         dummy arguments. Verify that function return type, kind and string
2132         lengths match.
2133
2134 2010-05-21  Tobias Burnus  <burnus@net-b.de>
2135
2136         * gfortran.h: Do not include system.h.
2137         * bbt.c: Include system.h.
2138         * data.c: Ditto.
2139         * dependency.c: Ditto.
2140         * dump-parse-tree.c: Ditto.
2141         * arith.h: Do not include gfortran.h.
2142         * constructor.h: Do not include gfortran.h and splay-tree.h.
2143         * match.h: Do not include gfortran.h.
2144         * parse.h: Ditto.
2145         * target-memory.h: Ditto.
2146         * openmp.c: Do not include toplev.h and target.h.
2147         * trans-stmt.c: Ditto not include toplev.h.
2148         * primary.c: Ditto.
2149         * trans-common.c: Tell why toplev.h is needed. And
2150         do not include target.h.
2151         * trans-expr.c: Tell why toplev.h is needed.
2152         * trans-array.c: Ditto.
2153         * trans-openmp.c: Ditto.
2154         * trans-const.c: Ditto.
2155         * trans.c: Ditto.
2156         * trans-types.c: Ditto.
2157         * trans-io.c: Ditto.
2158         * trans-decl.c: Ditto.
2159         * scanner.c: Ditto.
2160         * convert.c: Ditto.
2161         * trans-intrinsic.c: Ditto.
2162         * options.c: Ditto.
2163
2164 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2165
2166         PR fortran/43851
2167         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
2168         before returning MATCH_ERROR. Add check for scalar. Add check for
2169         default integer kind.
2170
2171 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2172
2173         PR fortran/44212
2174         * match.c (gfc_match_select_type): On error jump back out of the local
2175         namespace.
2176         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
2177         stage, more precisely to ...
2178         * resolve.c (resolve_fl_derived): ... this place.
2179
2180 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2181
2182         PR fortran/44213
2183         * resolve.c (ensure_not_abstract): Allow abstract types with
2184         non-abstract ancestors.
2185
2186 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2187
2188         * trans-const.c: Include realmpfr.h.
2189         * Make-lang.in: Update dependencies.
2190
2191 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2192
2193         * trans-const.c, trans-types.c, trans-intrinsic.c:
2194         Clean up redundant includes.
2195
2196 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
2197
2198         PR fortran/38407
2199         * lang.opt (Wunused-dummy-argument): New option.
2200         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
2201         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
2202         (set_Wall): Enable warn_unused_dummy_argument.
2203         (gfc_handle_option): Set warn_unused_dummy_argument according to
2204         command line.
2205         * trans-decl.c (generate_local_decl): Separate warnings about
2206         unused variables and unused dummy arguments.
2207         * invoke.texi: Documented new option.
2208
2209 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
2210
2211         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
2212         (gfc_conv_string_tmp): Do not assert type comparibilty.
2213         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
2214         (gfc_conv_expr_descriptor): Remove assert.
2215         * trans-common.c: Clarify why rtl.h and tm.h are included.
2216         * trans-openmp.c: Do not include ggc.h and real.h.
2217         Explain why gimple.h is included.
2218         * trans-const.c: Do not include ggc.h.
2219         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
2220         * trans.c: Do not include ggc.h and real.h.
2221         Explain why gimple.h is included.
2222         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
2223         and dwarf2out.h are included.
2224         * trans-io.c: Do not include gimple.h and real.h.
2225         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
2226         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
2227         is included.
2228
2229 2010-05-20  Tobias Burnus  <burnus@net-b.de>
2230
2231         * options.c (gfc_init_options,gfc_post_options): Enable
2232         flag_associative_math by default.
2233
2234 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2235
2236         PR fortran/43851
2237         * trans-stmt.c (gfc_trans_stop): Add generation of call to
2238         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
2239         blank STOP, handling a null expression. (gfc_trans_pause): Use
2240         pause_string for blank PAUSE.
2241         * trans.h: Add external function declaration for error_stop_numeric.
2242         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
2243         the declaration for the library call. Adjust whitespaces.
2244         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
2245         signal no stop code. Match the expression following the stop and pass
2246         that to the translators. Remove the old use of digit matching.  Add
2247         checks that the stop_code expression is INTEGER or CHARACTER, constant,
2248         and if CHARACTER, default character KIND.
2249
2250 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2251
2252         PR fortran/44055
2253         * lang.opt (Wconversion-extra): New option.
2254         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
2255         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
2256         (set_Wall): Enable -Wconversion.
2257         (gfc_handle_option): Set warn_conversion_extra.
2258         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
2259         introduced for -Wconversion if -Wconversion-extra is present.
2260         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
2261         -Wconversion; document -Wconversion-extra.
2262
2263 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2264
2265         PR fortran/42360
2266         * gfortran.h (gfc_has_default_initializer): New.
2267         * expr.c (gfc_has_default_initializer): New.
2268         * resolve.c (has_default_initializer): Removed, use
2269         gfc_has_default_initializer() instead. Updated all callers.
2270         * trans-array.c (has_default_initializer): Removed, use
2271         gfc_has_default_initializer() instead. Updated all callers.
2272         * trans-decl.c (generate_local_decl): Do not check the
2273         first component only to check for initializers, but use
2274         gfc_has_default_initializer() instead.
2275
2276 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2277
2278         PR fortran/38404
2279         * primary.c (match_string_constant): Move start_locus just inside 
2280         the string.
2281         * data.c (create_character_intializer): Clarified truncation warning.
2282
2283 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2284
2285         PR fortran/34505
2286         * intrinsic.h (gfc_check_float): New prototype.
2287         (gfc_check_sngl): New prototype.
2288         * check.c (gfc_check_float): New.
2289         (gfc_check_sngl): New.
2290         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
2291         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
2292         and SNGL.
2293         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
2294         added them to the list of specifics of REAL instead.
2295
2296 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2297
2298         PR fortran/43990
2299         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
2300         This is now handled via 'gfc_class_null_initializer'.
2301
2302 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2303
2304         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
2305         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
2306         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2307         add_procs_to_declared_vtab,add_generic_specifics, 
2308         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2309         find_typebound_proc_uop,gfc_find_typebound_proc,
2310         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
2311         gfc_get_tbp_symtree): Moved here from other places.
2312         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
2313         class.c.
2314         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
2315         gfc_find_typebound_proc,gfc_find_typebound_user_op,
2316         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
2317         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
2318         * Make-lang.in: Add class.o.
2319         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
2320         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2321         add_procs_to_declared_vtab,add_generic_specifics,
2322         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2323         find_typebound_proc_uop,gfc_find_typebound_proc,
2324         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
2325         gfc_get_tbp_symtree): Move to class.c.
2326
2327 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2328
2329         * trans-types.c (gfc_init_types): Use build_function_type_list.
2330         (gfc_get_ppc_type): Likewise.
2331         * trans-decl.c (gfc_generate_constructors): Likewise.
2332         * f95-lang.c (build_builtin_fntypes): Likewise.
2333         (gfc_init_builtin_functions): Likewise.
2334         (DEF_FUNCTION_TYPE_0): Likewise.
2335         (DEF_FUNCTION_TYPE_1): Likewise.
2336         (DEF_FUNCTION_TYPE_2): Likewise.
2337         (DEF_FUNCTION_TYPE_3): Likewise.
2338         (DEF_FUNCTION_TYPE_4): Likewise.
2339         (DEF_FUNCTION_TYPE_5): Likewise.
2340         (DEF_FUNCTION_TYPE_6): Likewise.
2341         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
2342         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
2343  
2344 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2345
2346         * trans-array.c (gfc_trans_array_constructor_value): Use
2347         build_constructor instead of build_constructor_from_list.
2348         (gfc_build_constant_array_constructor): Likewise.
2349         * trans-decl.c (create_main_function): Likewise.
2350         * trans-stmt.c (gfc_trans_character_select): Likewise.
2351
2352 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2353
2354         PR fortran/44044
2355         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
2356         (resolve_fl_variable_derived): ... this place.
2357         (resolve_symbol): Make sure function symbols (and their result
2358         variables) are not resolved twice.
2359
2360 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
2361
2362         PR fortran/35779
2363         * array.c (match_array_list): Revert change from 2010-05-13.
2364
2365 2010-05-16  Richard Guenther  <rguenther@suse.de>
2366
2367         * trans-decl.c (module_htab_decls_hash): Revert last change.
2368
2369 2010-05-16  Richard Guenther  <rguenther@suse.de>
2370
2371         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
2372
2373 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2374
2375         * options.c (set_Wall): Remove special logic for Wuninitialized
2376         without -O.
2377
2378 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2379
2380         PR fortran/44154
2381         PR fortran/42647
2382         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
2383         if branches.
2384
2385 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2386
2387         PR fortran/43207
2388         PR fortran/43969
2389         * gfortran.h (gfc_class_null_initializer): New prototype.
2390         * expr.c (gfc_class_null_initializer): New function to build a NULL
2391         initializer for CLASS pointers.
2392         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
2393         containers. Remove default NULL initialization of $data component.
2394         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
2395         message.
2396         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
2397         Use new function 'gfc_class_null_initializer'.
2398         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
2399         class variables.
2400
2401 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2402
2403         PR fortran/44135
2404         * fortran/interface.c (get_sym_storage_size): Use signed instead of
2405         unsigned mpz_get_?i routines.
2406
2407 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2408
2409         * trans.c (trans_code): Set backend locus early.
2410         * trans-decl.c (gfc_get_fake_result_decl): Use source location
2411         of the function instead of current input_location.
2412
2413 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
2414
2415         PR fortran/35779
2416         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
2417         Updated all usages.
2418         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
2419         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
2420         iterators.
2421
2422 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2423
2424         PR fortran/44036
2425         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
2426         variable lists.
2427         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
2428         by reference dummy procedures or non-dummy procedure pointers.
2429         (gfc_omp_predetermined_sharing): Return
2430         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
2431
2432 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2433
2434         PR fortran/43711
2435         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
2436         after OMP statement.
2437         (gfc_match_omp_critical): Likewise.
2438         (gfc_match_omp_flush): Likewise.
2439         (gfc_match_omp_workshare): Likewise.
2440         (gfc_match_omp_master): Likewise.
2441         (gfc_match_omp_ordered): Likewise.
2442         (gfc_match_omp_atomic): Likewise.
2443         (gfc_match_omp_barrier): Likewise.
2444         (gfc_match_omp_end_nowait): Likewise.
2445
2446 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2447
2448         PR fortran/31820
2449         * resolve.c (validate_case_label_expr): Removed FIXME.
2450         (resolve_select): Raise default warning on case labels out of range
2451         of the case expression.
2452
2453 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
2454
2455         PR fortran/27866
2456         PR fortran/35003
2457         PR fortran/42809
2458         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
2459         about conversion warnings.
2460
2461 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
2462
2463         PR fortran/44044
2464         * match.c (gfc_match_select_type): Move error message to
2465         resolve_select_type.
2466         * resolve.c (resolve_select_type): Error message moved here from
2467         gfc_match_select_type. Correctly set type of temporary.
2468
2469 2010-05-10  Richard Guenther  <rguenther@suse.de>
2470
2471         * trans-decl.c (gfc_build_library_function_decl): Split out
2472         worker to ...
2473         (build_library_function_decl_1): ... this new function.
2474         Set a fnspec attribute if a specification was provided.
2475         (gfc_build_library_function_decl_with_spec): New function.
2476         (gfc_build_intrinsic_function_decls): Annotate internal_pack
2477         and internal_unpack.
2478
2479 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
2480
2481         PR fortran/40728
2482         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
2483         as external.
2484
2485 2010-05-07  Jason Merrill  <jason@redhat.com>
2486
2487         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2488         to avoid -Wc++-compat warning.
2489
2490 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2491
2492         PR 40989
2493         * options.c (gfc_handle_option): Add argument kind.
2494         * gfortran.h (gfc_handle_option): Update declaration.
2495
2496 2010-05-06  Tobias Burnus  <burnus@net-b.de>
2497
2498         PR fortran/43985
2499         * trans-types.c (gfc_sym_type): Mark Cray pointees as
2500         GFC_POINTER_TYPE_P.
2501
2502 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2503
2504         PR fortran/32331
2505         * resolve.c (traverse_data_list): Rephrase error message for
2506         non-constant bounds in data-implied-do.
2507
2508 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2509
2510         PR fortran/24978
2511         * gfortran.h: Removed repeat count from constructor, removed
2512         all usages.
2513         * data.h (gfc_assign_data_value_range): Changed return value from
2514         void to gfc_try.
2515         * data.c (gfc_assign_data_value): Add location to constructor element.
2516         (gfc_assign_data_value_range): Call gfc_assign_data_value()
2517         for each element in range. Return early if an error was generated.
2518         * resolve.c (check_data_variable): Stop early if range assignment
2519         generated an error.
2520
2521 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
2522
2523         PR fortran/43696
2524         * resolve.c (resolve_fl_derived): Some fixes for class variables.
2525         * symbol.c (gfc_build_class_symbol): Add separate class container for
2526         class pointers.
2527
2528 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2529
2530         PR fortran/43592
2531         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
2532
2533 2010-05-02  Tobias Burnus  <burnus@net-b.de>
2534
2535         PR fortran/18918
2536         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
2537         for lcobound, ucobound, image_index and this_image.
2538         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
2539         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
2540         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
2541         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
2542         functions.
2543         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
2544
2545 2010-04-30  Tobias Burnus  <burnus@net-b.de>
2546
2547         PR fortran/18918
2548         PR fortran/43931
2549         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
2550         calculation for array descriptor types.
2551
2552 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2553
2554         PR fortran/43896
2555         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
2556         initializers for PPC members of the vtabs.
2557
2558 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2559
2560         PR fortran/42274
2561         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
2562         attribute for all PPC members of the vtypes.
2563         (copy_vtab_proc_comps): Copy the correct interface.
2564         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
2565         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
2566         a dummy argument and make sure all PPC members of the vtab are
2567         initialized correctly.
2568         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
2569         in call to gfc_trans_assign_vtab_procs.
2570         * trans-stmt.c (gfc_trans_allocate): Ditto.
2571
2572 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2573
2574         PR fortran/43326
2575         * resolve.c (resolve_typebound_function): Renamed
2576         resolve_class_compcall.Do all the detection of class references
2577         here.
2578         (resolve_typebound_subroutine): resolve_class_typebound_call
2579         renamed. Otherwise same as resolve_typebound_function.
2580         (gfc_resolve_expr): Call resolve_typebound_function.
2581         (resolve_code): Call resolve_typebound_subroutine.
2582
2583 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2584
2585         PR fortran/43492
2586         * resolve.c (resolve_typebound_generic_call): For CLASS methods
2587         pass back the specific symtree name, rather than the target
2588         name.
2589
2590 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2591
2592         PR fortran/42353
2593         * resolve.c (resolve_structure_cons): Make the initializer of
2594         the vtab component 'extends' the same type as the component.
2595
2596 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2597
2598         PR fortran/42680
2599         * interface.c (check_interface1): Pass symbol name rather than NULL to
2600         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
2601         trap MULL. (gfc_compare_derived_types): Revert previous change
2602         incorporated incorrectly during merge from trunk, r155778.
2603         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
2604         than NULL to gfc_compare_interfaces.
2605         * symbol.c (add_generic_specifics): Likewise.
2606
2607 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
2608
2609         PR fortran/42353
2610         * interface.c (gfc_compare_derived_types): Add condition for vtype.
2611         * symbol.c (gfc_find_derived_vtab): Sey access to private.
2612         (gfc_find_derived_vtab): Likewise.
2613         * module.c (ab_attribute): Add enumerator AB_VTAB.
2614         (mio_symbol_attribute): Use new attribute, AB_VTAB.
2615         (check_for_ambiguous): Likewise.
2616
2617 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2618             Janus Weil  <janus@gcc.gnu.org>
2619
2620         PR fortran/41829
2621         * trans-expr.c (select_class_proc): Remove function.
2622         (conv_function_val): Delete reference to previous.
2623         (gfc_conv_derived_to_class): Add second argument to the call to
2624         gfc_find_derived_vtab.
2625         (gfc_conv_structure): Exclude proc_pointer components when
2626         accessing $data field of class objects.
2627         (gfc_trans_assign_vtab_procs): New function.
2628         (gfc_trans_class_assign): Add second argument to the call to
2629         gfc_find_derived_vtab.
2630         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
2631         implement holding off searching for the vptr derived type.
2632         (add_proc_component): New function.
2633         (add_proc_comps): New function.
2634         (add_procs_to_declared_vtab1): New function.
2635         (copy_vtab_proc_comps): New function.
2636         (add_procs_to_declared_vtab): New function.
2637         (void add_generic_specifics): New function.
2638         (add_generics_to_declared_vtab): New function.
2639         (gfc_find_derived_vtab): Add second argument to the call to
2640         gfc_find_derived_vtab. Add the calls to
2641         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
2642         * decl.c (build_sym, build_struct): Use new arg in calls to
2643         gfc_build_class_symbol.
2644         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
2645         definition of struct gfc_class_esym_list. Modify prototypes
2646         of gfc_build_class_symbol and gfc_find_derived_vtab.
2647         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
2648         call to gfc_find_derived_vtab.
2649         * module.c : Add the vtype attribute.
2650         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
2651         * resolve.c (resolve_typebound_generic_call): Add second arg
2652         to pass along the generic name for class methods.
2653         (resolve_typebound_call): The same.
2654         (resolve_compcall): Use the second arg to carry the generic
2655         name from the above. Remove the reference to class_esym.
2656         (check_members, check_class_members, resolve_class_esym,
2657         hash_value_expr): Remove functions.
2658         (resolve_class_compcall, resolve_class_typebound_call): Modify
2659         to use vtable rather than member by member calls.
2660         (gfc_resolve_expr): Modify second arg in call to
2661         resolve_compcall.
2662         (resolve_select_type): Add second arg in call to
2663         gfc_find_derived_vtab.
2664         (resolve_code): Add second arg in call resolve_typebound_call.
2665         (resolve_fl_derived): Exclude vtypes from check for late
2666         procedure definitions. Likewise for checking of explicit
2667         interface and checking of pass arg.
2668         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
2669         calls to gfc_find_derived_vtab.
2670         * match.c (select_type_set_tmp): Use new arg in call to
2671         gfc_build_class_symbol.
2672         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
2673         necessary.
2674         * parse.c (endType): Finish incomplete classes.
2675
2676 2010-04-28  Tobias Burnus  <burnus@net-b.de>
2677
2678         PR fortran/18918
2679         PR fortran/43919
2680         * simplify.c (simplify_cobound): Handle scalar coarrays.
2681
2682 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2683
2684         * gfc-internals.texi: Update copyright year.
2685         * gfortran.texi: Ditto.
2686         * invoke.texi: Ditto.
2687
2688 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2689
2690         PR fortran/18918
2691         * resolve.c (resolve_allocate_expr): Allow array coarrays.
2692         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
2693         * trans-types.c (gfc_get_array_type_bounds,
2694         gfc_get_array_descriptor_base): Add corank argument.
2695         * trans-array.c (gfc_array_init_size): Handle corank.
2696         (gfc_trans_create_temp_array, gfc_array_allocate,
2697         gfc_conv_expr_descriptor): Add corank argument to call.
2698         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
2699
2700 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
2701
2702         PR fortran/30073
2703         PR fortran/43793
2704         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
2705         of mucking with a tree directly.
2706
2707 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2708
2709         PR fortran/43832
2710         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
2711         gfc_error with new error message.
2712
2713 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
2714
2715         PR fortran/43841
2716         PR fortran/43843
2717         * trans-expr.c (gfc_conv_expr): Supply an address expression for
2718         GFC_SS_REFERENCE.
2719         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
2720         GFC_SS_REFERENCE.
2721         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
2722         than the address of a GFC_SS_REFERENCE.
2723         * trans.h : Change comment on GFC_SS_REFERENCE. 
2724
2725 2010-04-22  Richard Guenther  <rguenther@suse.de>
2726
2727         PR fortran/43829
2728         * resolve.c (gfc_resolve_index): Wrap around ...
2729         (gfc_resolve_index_1): ... this.  Add parameter to allow
2730         any integer kind index type.
2731         (resolve_array_ref): Allow any integer kind for the start
2732         index of an array ref.
2733
2734 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2735
2736         PR fortran/43836
2737         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
2738         the decl.
2739
2740 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
2741
2742         * intrinsic.c (sort_actual): Remove 'is' in error message.
2743
2744 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
2745
2746         PR fortran/43227
2747         * resolve.c (resolve_fl_derived): If a component character
2748         length has not been resolved, do so now.
2749         (resolve_symbol): The same as above for a symbol character
2750         length.
2751         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
2752         not needed for a character valued, procedure pointer.
2753
2754         PR fortran/43266
2755         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
2756         not found, return FAILURE rather than ICEing.
2757
2758 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2759
2760         PR fortran/43339
2761         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
2762         sequential loops private in the innermost containing task region.
2763
2764 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
2767         to build_common_tree_nodes.
2768
2769 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
2770
2771         PR fortran/31538
2772         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
2773         gfc_msg_bounds by using 'Array bound mismatch' directly.
2774         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
2775         error message to include the mismatch in the extent of array bound.
2776         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
2777         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
2778
2779 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2780
2781         * gfortran.texi: Update information on temporary file locations.
2782
2783 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2784
2785         * trans-decl.c (gfc_build_qualified_array): Ensure
2786         ubound.N and lbound.N artificial variable names don't appear
2787         in debug info.
2788
2789 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
2790
2791         PR fortran/30073
2792         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
2793         block of code.  Set name to the variable associated with the descriptor.
2794
2795 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
2796
2797         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
2798         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
2799
2800 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2801
2802         * intrinsic.texi: Add the missing specific name of intrinsic
2803         procedure where the specific name is identical to the generic name.
2804         Fix inconsistent or mismatch in the argument names in intrinsic
2805         procedure descriptions.  Add the SCALAR allocatable description to
2806         ALLOCATED.
2807
2808 2010-04-14  Tobias Burnus  <burnus@net-b.de>
2809
2810         PR fortran/18918
2811         * array.c (gfc_find_array_ref): Handle codimensions.
2812         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
2813         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
2814         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
2815         New functions.
2816         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
2817         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
2818         GFC_ISYM_UCOBOUND.
2819         * intrinsic.h (add_functions): Add this_image, image_index,
2820         lcobound and ucobound intrinsics.
2821         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
2822         gfc_check_image_index, gfc_check_this_image,
2823         gfc_simplify_image_index, gfc_simplify_lcobound,
2824         gfc_simplify_this_image, gfc_simplify_ucobound):
2825         New function prototypes.
2826         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
2827         IMAGE_INDEX): Document new intrinsic functions.
2828         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
2829         error fatal.
2830         * simplify.c (simplify_bound_dim): Handle coarrays.
2831         (simplify_bound): Update simplify_bound_dim call.
2832         (gfc_simplify_num_images): Add -fcoarray=none check.
2833         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
2834         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
2835
2836 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2837
2838         PR fortran/43747
2839         * constructor.c: Fix typo in comment.
2840         * expr.c (find_array_section): Add check for max array limit.
2841
2842 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
2843
2844         PR bootstrap/31400
2845         * gfortranspec.c (lookup_option): Check for -static and return
2846         OPTION_static.
2847         (lang_specific_driver): Break when OPTION_static is discovered.
2848
2849 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2850
2851         * array.c (extract_element): Restore function from trunk.
2852         (gfc_get_array_element): Restore function from trunk.
2853         (gfc_expand_constructor): Restore check against
2854         flag_max_array_constructor.
2855         * constructor.c (node_copy_and_append): Delete unused.
2856         * gfortran.h: Delete comment and extra include.
2857         * constructor.h: Bump copyright and clean up TODO comments.
2858         * resolve.c: Whitespace.
2859
2860 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2861
2862         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
2863         with direct access access to elements. Adjusted prototype, fixed all
2864         callers.
2865         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
2866         array.
2867         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
2868         (gfc_simplify_spread): Removed workaround, directly insert elements
2869         at a given array position.
2870         (gfc_simplify_transpose): Likewise.
2871         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
2872         function calls.
2873         (gfc_simplify_unpack): Likewise.
2874
2875 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2876
2877         * simplify.c (only_convert_cmplx_boz): Renamed to ...
2878         (convert_boz): ... this and moved to start of file.
2879         (gfc_simplify_abs): Whitespace fix.
2880         (gfc_simplify_acos): Whitespace fix.
2881         (gfc_simplify_acosh): Whitespace fix.
2882         (gfc_simplify_aint): Whitespace fix.
2883         (gfc_simplify_dint): Whitespace fix.
2884         (gfc_simplify_anint): Whitespace fix.
2885         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
2886         (gfc_simplify_dnint): Whitespace fix.
2887         (gfc_simplify_asin): Whitespace fix.
2888         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
2889         (gfc_simplify_atan): Likewise.
2890         (gfc_simplify_atanh): Whitespace fix.
2891         (gfc_simplify_atan2): Whitespace fix.
2892         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
2893         (gfc_simplify_bessel_j1): Likewise.
2894         (gfc_simplify_bessel_jn): Likewise.
2895         (gfc_simplify_bessel_y0): Likewise.
2896         (gfc_simplify_bessel_y1): Likewise.
2897         (gfc_simplify_bessel_yn): Likewise.
2898         (gfc_simplify_ceiling): Reorderd statements.
2899         (simplify_cmplx): Use convert_boz(), check for constant arguments.
2900         Whitespace fix.
2901         (gfc_simplify_cmplx): Use correct default kind. Removed check for
2902         constant arguments.
2903         (gfc_simplify_complex): Replaced if-gate. Removed check for
2904         constant arguments.
2905         (gfc_simplify_conjg): Whitespace fix.
2906         (gfc_simplify_cos): Whitespace fix.
2907         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
2908         (gfc_simplify_dcmplx): Removed check for constant arguments.
2909         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
2910         (gfc_simplify_digits): Whitespace fix.
2911         (gfc_simplify_dim): Whitespace fix.
2912         (gfc_simplify_dprod): Reordered statements.
2913         (gfc_simplify_erf): Whitespace fix.
2914         (gfc_simplify_erfc): Whitespace fix.
2915         (gfc_simplify_epsilon): Whitespace fix.
2916         (gfc_simplify_exp): Whitespace fix.
2917         (gfc_simplify_exponent): Use convert_boz().
2918         (gfc_simplify_floor): Reorderd statements.
2919         (gfc_simplify_gamma): Whitespace fix.
2920         (gfc_simplify_huge): Whitespace fix.
2921         (gfc_simplify_iand): Whitespace fix.
2922         (gfc_simplify_ieor): Whitespace fix.
2923         (simplify_intconv): Use gfc_convert_constant().
2924         (gfc_simplify_int): Use simplify_intconv().
2925         (gfc_simplify_int2): Reorderd statements.
2926         (gfc_simplify_idint): Reorderd statements.
2927         (gfc_simplify_ior): Whitespace fix.
2928         (gfc_simplify_ishftc): Removed duplicate type check.
2929         (gfc_simplify_len): Use range_check() instead of manual range check.
2930         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
2931         (gfc_simplify_log): Whitespace fix.
2932         (gfc_simplify_log10): Whitespace fix.
2933         (gfc_simplify_minval): Whitespace fix.
2934         (gfc_simplify_maxval): Whitespace fix.
2935         (gfc_simplify_mod): Whitespace fix.
2936         (gfc_simplify_modulo): Whitespace fix.
2937         (simplify_nint): Reorderd statements.
2938         (gfc_simplify_not): Whitespace fix.
2939         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
2940         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
2941         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
2942         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
2943         (gfc_simplify_realpart): Whitespace fix.
2944         (gfc_simplify_selected_char_kind): Removed unused result-variable.
2945         (gfc_simplify_selected_int_kind): Removed unused result-variable.
2946         (gfc_simplify_selected_real_kind): Removed unused result-variable.
2947         (gfc_simplify_sign): Whitespace fix.
2948         (gfc_simplify_sin): Whitespace fix.
2949         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
2950         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
2951         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
2952         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
2953         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
2954
2955 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2956
2957         * gfortran.h (gfc_start_constructor): Removed.
2958         (gfc_get_array_element): Removed.
2959         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
2960         instead. Fixed all callers.
2961         (extract_element): Removed.
2962         (gfc_expand_constructor): Temporarily removed check for
2963         max-array-constructor. Will be re-introduced later if still required.
2964         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
2965         instead. Fixed all callers.
2966         * expr.c (find_array_section): Replaced manual lookup of elements
2967         by gfc_constructor_lookup.
2968
2969 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
2970
2971         * gfortran.h (gfc_get_null_expr): New prototype.
2972         (gfc_get_operator_expr): New prototype.
2973         (gfc_get_character_expr): New prototype.
2974         (gfc_get_iokind_expr): New prototype.
2975         * expr.c (gfc_get_null_expr): New.
2976         (gfc_get_character_expr): New.
2977         (gfc_get_iokind_expr): New.
2978         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
2979         * matchexp.c (build_node): Renamed and moved to
2980         expr.c (gfc_get_operator_expr). Reordered arguments to match 
2981         other functions. Fixed all callers.
2982         (gfc_get_parentheses): Use specific function to build expr.
2983         * array.c (gfc_match_array_constructor): Likewise.
2984         * arith.c (eval_intrinsic): Likewise.
2985         (gfc_hollerith2int): Likewise.
2986         (gfc_hollerith2real): Likewise.
2987         (gfc_hollerith2complex): Likewise.
2988         (gfc_hollerith2logical): Likewise.
2989         * data.c (create_character_intializer): Likewise.
2990         * decl.c (gfc_match_null): Likewise.
2991         (enum_initializer): Likewise.
2992         * io.c (gfc_match_format): Likewise.
2993         (match_io): Likewise.
2994         * match.c (gfc_match_nullify): Likewise.
2995         * primary.c (match_string_constant): Likewise.
2996         (match_logical_constant): Likewise.
2997         (build_actual_constructor): Likewise.
2998         * resolve.c (build_default_init_expr): Likewise.
2999         * symbol.c (generate_isocbinding_symbol): Likewise.
3000         (gfc_build_class_symbol): Likewise.
3001         (gfc_find_derived_vtab): Likewise.
3002         * simplify.c (simplify_achar_char): Likewise.
3003         (gfc_simplify_adjustl): Likewise.
3004         (gfc_simplify_adjustr): Likewise.
3005         (gfc_simplify_and): Likewise.
3006         (gfc_simplify_bit_size): Likewise.
3007         (gfc_simplify_is_iostat_end): Likewise.
3008         (gfc_simplify_is_iostat_eor): Likewise.
3009         (gfc_simplify_isnan): Likewise.
3010         (simplify_bound): Likewise.
3011         (gfc_simplify_leadz): Likewise.
3012         (gfc_simplify_len_trim): Likewise.
3013         (gfc_simplify_logical): Likewise.
3014         (gfc_simplify_maxexponent): Likewise.
3015         (gfc_simplify_minexponent): Likewise.
3016         (gfc_simplify_new_line): Likewise.
3017         (gfc_simplify_null): Likewise.
3018         (gfc_simplify_or): Likewise.
3019         (gfc_simplify_precision): Likewise.
3020         (gfc_simplify_repeat): Likewise.
3021         (gfc_simplify_scan): Likewise.
3022         (gfc_simplify_size): Likewise.
3023         (gfc_simplify_trailz): Likewise.
3024         (gfc_simplify_trim): Likewise.
3025         (gfc_simplify_verify): Likewise.
3026         (gfc_simplify_xor): Likewise.
3027         * trans-io.c (build_dt): Likewise.
3028         (gfc_new_nml_name_expr): Removed.
3029
3030 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3031
3032         * arith.h (gfc_constant_result): Removed prototype.
3033         * constructor.h (gfc_build_array_expr): Removed prototype.
3034         (gfc_build_structure_constructor_expr): Removed prototype.
3035         * gfortran.h (gfc_int_expr): Removed prototype.
3036         (gfc_logical_expr): Removed prototype.
3037         (gfc_get_array_expr): New prototype.
3038         (gfc_get_structure_constructor_expr): New prototype.
3039         (gfc_get_constant_expr): New prototype.
3040         (gfc_get_int_expr): New prototype.
3041         (gfc_get_logical_expr): New prototype.
3042         * arith.c (gfc_constant_result): Moved and renamed to
3043         expr.c (gfc_get_constant_expr). Fixed all callers.
3044         * constructor.c (gfc_build_array_expr): Moved and renamed to
3045         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
3046         and kind. Fixed all callers.
3047         (gfc_build_structure_constructor_expr): Moved and renamed to
3048         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
3049         to type and kind. Fixed all callers.
3050         * expr.c (gfc_logical_expr): Renamed to ...
3051         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
3052         (gfc_int_expr): Renamed to ...
3053         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
3054         callers.
3055         (gfc_get_constant_expr): New.
3056         (gfc_get_array_expr): New.
3057         (gfc_get_structure_constructor_expr): New.
3058         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
3059         instead.
3060
3061 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3062
3063         * constructor.h: New.
3064         * constructor.c: New.
3065         * Make-lang.in: Add new files to F95_PARSER_OBJS.
3066         * arith.c (reducy_unary): Use constructor API.
3067         (reduce_binary_ac): Likewise.
3068         (reduce_binary_ca): Likewise.
3069         (reduce_binary_aa): Likewise.
3070         * check.c (gfc_check_pack): Likewise.
3071         (gfc_check_reshape): Likewise.
3072         (gfc_check_unpack): Likewise.
3073         * decl.c (add_init_expr_to_sym): Likewise.
3074         (build_struct): Likewise.
3075         * dependency.c (gfc_check_dependency): Likewise.
3076         (contains_forall_index_p): Likewise.
3077         * dump-parse-tree.c (show_constructor): Likewise.
3078         * expr.c (free_expr0): Likewise.
3079         (gfc_copy_expr): Likewise.
3080         (gfc_is_constant_expr): Likewise.
3081         (simplify_constructor): Likewise.
3082         (find_array_element): Likewise.
3083         (find_component_ref): Likewise.
3084         (find_array_section): Likewise.
3085         (find_substring_ref): Likewise.
3086         (simplify_const_ref): Likewise.
3087         (scalarize_intrinsic_call): Likewise.
3088         (check_alloc_comp_init): Likewise.
3089         (gfc_default_initializer): Likewise.
3090         (gfc_traverse_expr): Likewise.
3091         * iresolve.c (check_charlen_present): Likewise.
3092         (gfc_resolve_reshape): Likewise.
3093         (gfc_resolve_transfer): Likewise.
3094         * module.c (mio_constructor): Likewise.
3095         * primary.c (build_actual_constructor): Likewise.
3096         (gfc_match_structure_constructor): Likewise.
3097         * resolve.c (resolve_structure_cons): Likewise.
3098         * simplify.c (is_constant_array_expr): Likewise.
3099         (init_result_expr): Likewise.
3100         (transformational_result): Likewise.
3101         (simplify_transformation_to_scalar): Likewise.
3102         (simplify_transformation_to_array): Likewise.
3103         (gfc_simplify_dot_product): Likewise.
3104         (simplify_bound): Likewise.
3105         (simplify_matmul): Likewise.
3106         (simplify_minval_maxval): Likewise.
3107         (gfc_simplify_pack): Likewise.
3108         (gfc_simplify_reshape): Likewise.
3109         (gfc_simplify_shape): Likewise.
3110         (gfc_simplify_spread): Likewise.
3111         (gfc_simplify_transpose): Likewise.
3112         (gfc_simplify_unpack): Likewise.q
3113         (gfc_convert_constant): Likewise.
3114         (gfc_convert_char_constant): Likewise.
3115         * target-memory.c (size_array): Likewise.
3116         (encode_array): Likewise.
3117         (encode_derived): Likewise.
3118         (interpret_array): Likewise.
3119         (gfc_interpret_derived): Likewise.
3120         (expr_to_char): Likewise.
3121         (gfc_merge_initializers): Likewise.
3122         * trans-array.c (gfc_get_array_constructor_size): Likewise.
3123         (gfc_trans_array_constructor_value): Likewise.
3124         (get_array_ctor_strlen): Likewise.
3125         (gfc_constant_array_constructor_p): Likewise.
3126         (gfc_build_constant_array_constructor): Likewise.
3127         (gfc_trans_array_constructor): Likewise.
3128         (gfc_conv_array_initializer): Likewise.
3129         * trans-decl.c (check_constant_initializer): Likewise.
3130         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
3131         (gfc_apply_interface_mapping_to_cons): Likewise.
3132         (gfc_trans_structure_assign): Likewise.
3133         (gfc_conv_structure): Likewise.
3134         * array.c (check_duplicate_iterator): Likewise.
3135         (match_array_list): Likewise.
3136         (match_array_cons_element): Likewise.
3137         (gfc_match_array_constructor): Likewise.
3138         (check_constructor_type): Likewise.
3139         (check_constructor): Likewise.
3140         (expand): Likewise.
3141         (expand_constructor): Likewise.
3142         (extract_element): Likewise.
3143         (gfc_expanded_ac): Likewise.
3144         (resolve_array_list): Likewise.
3145         (gfc_resolve_character_array_constructor): Likewise.
3146         (copy_iterator): Renamed to ...
3147         (gfc_copy_iterator): ... this.
3148         (gfc_append_constructor): Removed.
3149         (gfc_insert_constructor): Removed unused function.
3150         (gfc_get_constructor): Removed.
3151         (gfc_free_constructor): Removed.
3152         (qgfc_copy_constructor): Removed.
3153         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
3154         Removed all references. Replaced constructor list by splay-tree.
3155         (struct gfc_constructor): Removed member 'next', moved 'offset' from
3156         the inner struct, added member 'base'.
3157         (gfc_append_constructor): Removed prototype.
3158         (gfc_insert_constructor): Removed prototype.
3159         (gfc_get_constructor): Removed prototype.
3160         (gfc_free_constructor): Removed prototype.
3161         (qgfc_copy_constructor): Removed prototype.
3162         (gfc_copy_iterator): New prototype.
3163         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
3164
3165 2010-04-10  Tobias Burnus  <burnus@net-b.de>
3166
3167         PR fortran/43591
3168         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
3169         proc-pointers and type-bound procedures.
3170         (gfc_specification_expr): Check proc-pointers for pureness.
3171
3172 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3173
3174         PR bootstrap/43684
3175         * gfortranspec.c (lang_specific_driver): Do not expose vars 
3176         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
3177         for such.
3178
3179 2010-04-09  Tobias Burnus  <burnus@net-b.de>
3180
3181         PR fortran/18918
3182         * decl.c (variable_decl, match_attr_spec): Fix setting the array
3183         spec.
3184         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
3185         * data.c (gfc_assign_data_value): Ditto.
3186         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
3187         (gfc_traverse_expr): Traverse also through codimension expressions.
3188         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3189         gfc_has_ultimate_pointer): New functions.
3190         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
3191         (gfc_array_ref): Add codimen.
3192         (gfc_array_ref): Add in_allocate.
3193         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3194         gfc_has_ultimate_pointer): Add prototypes.
3195         * interface.c (compare_parameter, compare_actual_formal,
3196         check_intents): Add coarray constraints.
3197         * match.c (gfc_match_iterator): Add coarray constraint.
3198         * match.h (gfc_match_array_ref): Update interface.
3199         * primary.c (gfc_match_varspec): Handle codimensions.
3200         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
3201         (check_class_members): Return gfc_try instead for error recovery.
3202         (resolve_typebound_function,resolve_typebound_subroutine,
3203         check_members): Handle return value of check_class_members.
3204         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
3205         check_dimension, compare_spec_to_ref, resolve_array_ref,
3206         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
3207         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
3208         support.
3209         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
3210         Skip over coarray refs.
3211         (gfc_array_allocate) Add support for references containing coindexes.
3212         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
3213         (gfc_map_intrinsic_function): Ignore codimensions.
3214
3215 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
3216
3217         PR fortran/28039
3218         * io.c (check_format_string):  Added check for additional non 
3219         blank characters after the format string was successfully 
3220         parsed.
3221         * io.c (check_format): Changed the error messages for positive
3222         int required and period required to drop through the error logic
3223         and report with gfc_error instead of gfc_error_now.  Corrected
3224         format postion for hollerith strings.
3225
3226 2010-04-08  Tobias Burnus  <burnus@net-b.de>
3227
3228         * module.c (use_iso_fortran_env_module): Fix standard check.
3229
3230 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3231
3232         * parse.c (parse_derived, parse_enum): Avoid set but not used
3233         warning.
3234
3235 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
3236
3237         PR fortran/40539
3238         * gfortran.texi: Add section about representation of
3239         LOGICAL variables.
3240
3241 2010-04-07  Simon Baldwin  <simonb@google.com>
3242
3243         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
3244         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
3245
3246 2010-04-07  Richard Guenther  <rguenther@suse.de>
3247
3248         * options.c (gfc_init_options): Do not set.
3249
3250 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3251
3252         PR fortran/18918
3253         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
3254         * match.c (gfc_match_critical, sync_statement): Ditto.
3255         * gfortran.h (gfc_fcoarray): New enum.
3256         (gfc_option_t): Use it.
3257         * lang.opt (fcoarray): Add new flag.
3258         * invoke.texi (fcoarray): Document it.
3259         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
3260         (gfc_handle_coarray_option): New function.
3261
3262 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3263
3264         PR fortran/18918
3265         * gfortran.h (gfc_array_spec): Add cotype.
3266         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
3267         and defer error diagnostic.
3268         * resolve.c (resolve_fl_derived): Add missing check.
3269         (resolve_symbol): Add cotype/type check.
3270         * parse.c (parse_derived): Fix setting of coarray_comp.
3271
3272 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3273
3274         PR fortran/18918
3275         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
3276         match_array_element_spec,gfc_copy_array_spec,
3277         gfc_compare_array_spec): Include corank.
3278         (match_array_element_spec,gfc_set_array_spec): Support codimension.
3279         * decl.c (build_sym,build_struct,variable_decl,
3280         match_attr_spec,attr_decl1,cray_pointer_decl,
3281         gfc_match_volatile): Add codimension.
3282         (gfc_match_codimension): New function.
3283         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
3284         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
3285         (gfc_add_codimension): New function prototype.
3286         * match.h (gfc_match_codimension): New function prototype.
3287         (gfc_match_array_spec): Update prototype
3288         * match.c (gfc_match_common): Update gfc_match_array_spec call.
3289         * module.c (MOD_VERSION): Bump.
3290         (mio_symbol_attribute): Support coarray attributes.
3291         (mio_array_spec): Add corank support.
3292         * parse.c (decode_specification_statement,decode_statement,
3293         parse_derived): Add coarray support.
3294         * resolve.c (resolve_formal_arglist, was_declared,
3295         is_non_constant_shape_array, resolve_fl_variable,
3296         resolve_fl_derived, resolve_symbol): Add coarray support.
3297         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
3298         gfc_build_class_symbol): Add coarray support.
3299         (gfc_add_codimension): New function.
3300
3301 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3302
3303         PR fortran/18918
3304         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
3305         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
3306         stat_locked_other_image, stat_stopped_image and stat_unlocked of
3307         Fortran 2008.
3308         * intrinsic.texi (iso_fortran_env): Ditto.
3309         * libgfortran.h (libgfortran_stat_codes): New enum.
3310         * module.c (use_iso_fortran_env_module): Honour -std= when loading
3311         constants from the intrinsic module.
3312
3313 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3314
3315         PR fortran/39997
3316         * intrinsic.c (add_functions): Add num_images.
3317         * decl.c (gfc_match_end): Handle END CRITICAL.
3318         * intrinsic.h (gfc_simplify_num_images): Add prototype.
3319         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
3320         and SYNC.
3321         * gfortran.h (gfc_statement): Add enum items for those.
3322         (gfc_exec_op) Ditto.
3323         (gfc_isym_id): Add num_images.
3324         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
3325         (gfc_trans_sync,gfc_trans_critical): New functions.
3326         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
3327         gfc_trans_critical): Add/update prototypes.
3328         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
3329         and SYNC statements.
3330         * trans.h (gfor_fndecl_error_stop_string) Add variable.
3331         * resolve.c (resolve_sync): Add function.
3332         (gfc_resolve_blocks): Handle CRITICAL.
3333         (resolve_code): Handle CRITICAL, ERROR STOP,
3334         (resolve_branch): Add CRITICAL constraint check.
3335         and SYNC statements.
3336         * st.c (gfc_free_statement): Add new statements.
3337         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
3338         (gfc_build_builtin_function_decls): Initialize it.
3339         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
3340         (gfc_match_critical, gfc_match_error_stop, sync_statement,
3341         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
3342         New functions.
3343         (match_exit_cycle): Handle CRITICAL constraint.
3344         (gfc_match_stopcode): Handle ERROR STOP.
3345         * match.h (gfc_match_critical, gfc_match_error_stop,
3346         gfc_match_sync_all, gfc_match_sync_images,
3347         gfc_match_sync_memory): Add prototype.
3348         * parse.c (decode_statement, gfc_ascii_statement,
3349         parse_executable): Handle new statements.
3350         (parse_critical_block): New function.
3351         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
3352         * intrinsic.texi (num_images): Document new function.
3353         * simplify.c (gfc_simplify_num_images): Add function.
3354
3355 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3356
3357         PR fortran/43178
3358         * trans-array.c (gfc_conv_expr_descriptor): Update
3359         gfc_trans_scalar_assign call.
3360         (has_default_initializer): New function.
3361         (gfc_trans_deferred_array): Nullify less often.
3362         * trans-expr.c (gfc_conv_subref_array_arg,
3363         gfc_trans_subcomponent_assign): Update call to
3364         gfc_trans_scalar_assign.
3365         (gfc_trans_scalar_assign): Add parameter and pass it on.
3366         (gfc_trans_assignment_1): Optionally, do not dealloc before
3367         assignment.
3368         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
3369         call to gfc_trans_scalar_assign.
3370         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
3371         initializer to static variables.
3372         (gfc_init_default_dt): Add dealloc parameter and pass it on.
3373         * trans-stmt.c (forall_make_variable_temp,
3374         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
3375         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
3376         gfc_trans_allocate): Update gfc_trans_assignment call.
3377         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
3378         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
3379         parameter to prototype.
3380
3381 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
3382
3383         * ioparm.def : Update copyright.
3384         * lang.opt : ditto
3385         * trans-array.c : ditto
3386         * trans-array.h : ditto
3387         * expr.c: ditto
3388         * trans-types.c: ditto
3389         * dependency.c : ditto
3390         * gfortran.h : ditto
3391         * options.c : ditto
3392         * trans-io.c : ditto
3393         * trans-intrinsic.c : ditto
3394         * libgfortran.h : ditto
3395         * invoke.texi : ditto
3396         * intrinsic.texi : ditto
3397         * trans.c : ditto
3398         * trans.h : ditto
3399         * intrinsic.c : ditto
3400         * interface.c : ditto
3401         * iresolve.c : ditto
3402         * trans-stmt.c : ditto
3403         * trans-stmt.h : ditto
3404         * parse,c : ditto
3405         * match.h : ditto
3406         * error.c : ditto
3407
3408 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
3409
3410         PR fortran/43450
3411         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
3412         do not assert the context of derived types.
3413
3414 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3415
3416         PR fortran/43409
3417         * ioparm.def: Change inquire size variable to type pointer to
3418         GFC_IO_INT type.
3419
3420 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
3421
3422         PR fortran/43039
3423         * trans-expr.c (conv_parent_component_references): Ensure that
3424         'dt' has a backend_decl.
3425
3426         PR fortran/43043
3427         * trans-expr.c (gfc_conv_structure): Ensure that the derived
3428         type has a backend_decl.
3429
3430         PR fortran/43044
3431         * resolve.c (resolve_global_procedure): Check that the 'cl'
3432         structure is not NULL.
3433
3434 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3435
3436         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
3437         redundant tab.
3438
3439 2010-03-17  Tobias Burnus  <burnus@net-b.de>
3440
3441         PR fortran/43331
3442         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
3443         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
3444         check.
3445         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
3446         pointees as having explizit size.
3447         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
3448         check.
3449         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
3450         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
3451         * resolve.c (resolve_symbol): Handle cp_was_assumed.
3452         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
3453         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
3454         pointers.
3455
3456 2010-03-14  Tobias Burnus  <burnus@net-b.de>
3457
3458         PR fortran/43362
3459         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
3460         (resolve_ordinary_assign): Add check to avoid segfault.
3461
3462 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
3463
3464         PR fortran/43291
3465         PR fortran/43326
3466         * resolve.c (resolve_compcall): Add new boolean dummy argument
3467         'class_members'. Only resolve expression at end if false.
3468         Remove redundant, static variable 'class_object'.
3469         (check_class_members): Add extra argument to call of
3470         resolve_compcall.
3471         (resolve_typebound_function): Renamed resolve_class_compcall.
3472         Do all the detection of class references here. Correct calls to
3473         resolve_compcall for extra argument.
3474         (resolve_typebound_subroutine): resolve_class_typebound_call
3475         renamed. Otherwise same as resolve_typebound_function.
3476         (gfc_resolve_expr): Call resolve_typebound_function.
3477         (resolve_code): Call resolve_typebound_subroutine.
3478
3479 2010-03-10  Tobias Burnus  <burnus@net-b.de
3480
3481         PR fortran/43303
3482         * symbol.c (get_iso_c_sym): Set sym->result.
3483
3484 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
3485
3486         PR fortran/43256
3487         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
3488         for TBPs, otherwise they will not be resolved properly.
3489         (resolve_function): Use 'value.function.esym' instead of
3490         'value.function.name' to check if we're dealing with a TBP.
3491         (check_class_members): Set correct type of passed object for all TBPs,
3492         not only generic ones, except if the type is abstract.
3493
3494 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
3495
3496         PR fortran/43244
3497         * decl.c (gfc_match_final_decl): Make sure variable names starting with
3498         'final...' are not misinterpreted as FINAL statements.
3499
3500 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
3501
3502         PR fortran/43243
3503         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3504         allocatable ultimate components do not need temporaries, whilst
3505         ultimate pointer components do.
3506
3507 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
3508
3509         PR fortran/43169
3510         * resolve.c (resolve_code): Correctly set gfc_current_ns for
3511         EXEC_SELECT_TYPE.
3512         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
3513         (gfc_pure): Ditto.
3514
3515 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
3516
3517         PR fortran/43180
3518         * trans-array.c (gfc_conv_array_parameter): A full array of
3519         derived type need not be restricted to a symbol without an
3520         array spec to use the call to gfc_conv_expr_descriptor.
3521
3522         PR fortran/43173
3523         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3524         allocatable arrays do not need temporaries.
3525
3526 2010-03-01  Tobias Burnus  <burnus@net-b.de>
3527
3528         PR fortran/43199
3529         * resolve.c (find_array_spec): Handle REF_COMPONENT with
3530         CLASS components.
3531
3532 2010-02-28  Tobias Burnus  <burnus@net-b.de>
3533
3534         PR fortran/43205
3535         * trans-expr.c (is_zero_initializer_p): Move up in the file.
3536         (gfc_conv_initializer): Handle zero initializer as special case.
3537
3538 2010-02-27  Tobias Burnus  <burnus@net-b.de>
3539
3540         PR fortran/43185
3541         * resolve.c (resolve_fl_variable_derived): Imply SAVE
3542         for module variables for Fortran 2008.
3543
3544 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
3545
3546         PR debug/43166
3547         * trans-common.c (build_common_decl): Also update DECL_MODE,
3548         and DECL_SIZE when encountering a larger common block and call
3549         layout_decl.
3550
3551 2010-02-24  Tobias Burnus  <burnus@net-b.de>
3552
3553         PR fortran/43042
3554         * trans-expr.c (gfc_conv_initializer): Call directly
3555         gfc_conv_constant for C_NULL_(FUN)PTR.
3556
3557 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
3558
3559         PR fortran/43072
3560         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
3561         checking the rest of the dimensions for elements.
3562
3563 2010-02-21  Tobias Burnus  <burnus@net-b.de>
3564
3565         PR fortran/35259
3566         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
3567         * lang.opt: Ditto.
3568         * option.c (gfc_init_options,gfc_handle_option): Ditto.
3569         * trans-expr.c (gfc_conv_expr_op): Use the flag.
3570         * invoke.texi: Document new -fno-protect-parens flag.
3571
3572 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
3573
3574         PR fortran/36932
3575         PR fortran/36933
3576         PR fortran/43072
3577         PR fortran/43111
3578         * dependency.c (gfc_check_argument_var_dependency): Use enum
3579         value instead of arithmetic vaue for 'elemental'.
3580         (check_data_pointer_types): New function.
3581         (gfc_check_dependency): Call check_data_pointer_types.
3582         * trans-array.h : Change fourth argument of
3583         gfc_conv_array_parameter to boolean.
3584         * trans-array.c (gfc_conv_array_parameter): A contiguous array
3585         can be a dummy but it must not be assumed shape or deferred.
3586         Change fourth argument to boolean. Array constructor exprs will
3587         always be contiguous and do not need packing and unpacking.
3588         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
3589         space and change fourth argument of gfc_conv_array_parameter
3590         to boolean.
3591         (gfc_trans_arrayfunc_assign): Change fourth argument of
3592         gfc_conv_array_parameter to boolean.
3593         * trans-io.c (gfc_convert_array_to_string): The same.
3594         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
3595
3596 2010-02-20  Tobias Burnus  <burnus@net-b.de>
3597
3598         PR fortran/42958
3599         * libgfortran.h: Add GFC_RTCHECK_MEM.
3600         * invoke.texi (-fcheck=): Document -fcheck=mem.
3601         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
3602         and enable malloc-success check only with -fcheck=mem.
3603         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
3604
3605 2010-02-16  Tobias Burnus  <burnus@net-b.de>
3606
3607         PR fortran/43040
3608         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
3609         * intrinsic.c (add_functions): Ditto.
3610         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
3611         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
3612
3613 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3614
3615         PR fortran/32382
3616         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
3617         gfc_trans_do prototype.
3618         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
3619         a loop exit condition.  If exit condition is given, build the loop exit
3620         code, checking IO results of implied do loops in READ and WRITE.
3621         (gfc_trans_do): Likewise.
3622         * trans.c (trans_code): New static work function, previously
3623         gfc_trans_code. Passes exit condition to gfc_trans_do.
3624         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
3625         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
3626         * trans-io.c (build_dt): Build an exit condition to allow checking IO
3627         result status bits in the dtparm structure. Use this condition in call
3628         to gfc_trans_code_cond.
3629
3630 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
3631
3632         PR fortran/41113
3633         PR fortran/41117
3634         * trans-array.c (gfc_conv_array_parameter): Use
3635         gfc_full_array_ref_p to detect full and contiguous variable
3636         arrays. Full array components and contiguous arrays do not need
3637         internal_pack and internal_unpack.
3638
3639 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR fortran/43030
3642         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
3643
3644         PR fortran/43029
3645         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
3646         here.
3647         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
3648         MATCH_ERROR.
3649
3650 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
3651             Tobias Burnus <burnus@net-b.de>
3652
3653         PR fortran/40823
3654         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
3655
3656 2010-02-10  Tobias Burnus  <burnus@net-b.de>
3657
3658         PR fortran/43015
3659         * trans-decl.c (gfc_generate_function_code): Only check
3660         actual-vs.-dummy character bounds if not bind(C).
3661
3662 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
3663
3664         PR fortran/42309
3665         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
3666         info->dimen after info has been freed.
3667
3668 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3669
3670         PR fortran/42999
3671         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
3672         with iterators.
3673
3674 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
3675
3676         * module.c (fix_mio_expr): Declare sym.
3677
3678 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
3679
3680         PR fortran/41869
3681         * module.c (fix_mio_expr): Fix for private generic procedures.
3682
3683 2010-02-09  Daniel Kraft  <d@domob.eu>
3684
3685         PR fortran/39171
3686         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
3687         length to be correct and issue only with -Wsurprising.
3688         * invoke.texi (Wsurprising): Mention this new warning that is
3689         turned on by -Wsurprising.
3690
3691 2010-02-09  Daniel Kraft  <d@domob.eu>
3692
3693         PR fortran/41507
3694         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
3695         can be CHARACTER type.
3696         (MINVAL), (MAXLOC), (MINLOC): Ditto.
3697
3698 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
3699
3700         PR fortran/42309
3701         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
3702         'formal_ptr'. If this is true, give returned descriptor unity
3703         lbounds, in all dimensions, and the appropriate offset.
3704         (gfc_conv_procedure_call); If formal is a pointer, set the last
3705         argument of gfc_conv_subref_array_arg to true.
3706         * trans.h : Add last argument for gfc_conv_subref_array_arg.
3707         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
3708         new arg of gfc_conv_subref_array_arg to false.
3709         * trans-stmt.c (forall_make_variable_temp): The same.
3710
3711 2010-02-03  Tobias Burnus  <burnus@net-b.de>
3712
3713         PR fortran/42936
3714         * interface.c (compare_parameter): Disable rank-checking
3715         for NULL().
3716
3717 2010-02-02  Tobias Burnus  <burnus@net-b.de>
3718
3719         PR fortran/42650
3720         * parse.c (decode_specification_statement): Use sym->result not sym.
3721
3722 2010-02-01  Tobias Burnus  <burnus@net-b.de>
3723
3724         PR fortran/42922
3725         * decl.c (variable_decl): Allow default initializer in
3726         TYPE declarations in PURE functions.
3727
3728 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
3729
3730         PR fortran/42888
3731         * resolve.c (resolve_allocate_expr): Move default initialization code
3732         here from gfc_trans_allocate.
3733         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
3734         EXEC_INIT_ASSIGN.
3735         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
3736         of CLASS variables via memcpy.
3737         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
3738         to resolve_allocate_expr.
3739
3740 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
3741
3742         PR fortran/38324
3743         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
3744         * gfortran.h : Add prototype for above.
3745         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
3746         (gfc_trans_subcomponent_assign): Call new function to replace
3747         the code to deal with allocatable components.
3748         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
3749         gfc_get_full_arrayspec_from_expr to replace existing code.
3750
3751 2010-01-25  Tobias Burnus  <burnus@net-b.de>
3752
3753         PR fortran/42858
3754         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
3755         check.
3756
3757 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
3758
3759         PR fortran/41044
3760         PR fortran/41167
3761         * expr.c (remove_subobject_ref): If the constructor is NULL use
3762         the expression as the source.
3763         (simplify_const_ref): Change the type of expression if
3764         there are component references.  Allow for substring to be at
3765         the end of an arbitrarily long chain of references.  If an
3766         element is found that is not in an EXPR_ARRAY, assume that this
3767         is scalar initialization of array. Call remove_subobject_ref in
3768         this case with NULL second argument.
3769
3770 2010-01-24  Tobias Burnus  <burnus@net-b.de>
3771
3772         PR fortran/39304
3773         * array.c (gfc_array_dimen_size): Use correct specific
3774         function in the check.
3775
3776 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
3777
3778         PR fortran/42736
3779         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
3780         is required, turn any trailing array elements after a range
3781         into ranges so that offsets can be calculated.
3782
3783 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
3784
3785         * module.c (mio_f2k_derived): Use enumerator as initializer of
3786         enum variable.
3787
3788         PR bootstrap/42812
3789         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
3790         bitfield of width 2.
3791
3792 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3793
3794         PR fortran/42804
3795         * resolve.c (extract_compcall_passed_object): Set locus for
3796         passed-object argument.
3797         (extract_ppc_passed_object): Set locus and correctly remove PPC
3798         reference.
3799
3800 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
3801
3802         PR fortran/42783
3803         * trans-decl.c (add_argument_checking): Do not use the backend
3804         decl directly to test for the presence of an optional dummy
3805         argument.  Use gfc_conv_expr_present, remembering to set the
3806         symbol referenced.
3807
3808         PR fortran/42772
3809         * trans-decl.c (gfc_generate_function_code): Small white space
3810         changes. If 'recurcheckvar' is NULL do not try to reset it.
3811
3812 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3813
3814         PR fortran/42545
3815         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
3816         component for extended types.
3817         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
3818         and take care of parent component accessibility.
3819
3820 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
3821
3822         PR fortran/42677
3823         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
3824         * interface.c (check_interface1): Move a warning message here from
3825         resolve_fl_procedure.
3826         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
3827         * module.c (read_module): Remove call to gfc_check_interfaces, since
3828         this comes too early here.
3829         * resolve.c (resolve_fl_procedure): Move warning message to
3830         check_interface1.
3831
3832 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3833
3834         PR fortran/42684
3835         * interface.c (check_interface1): Pass symbol name rather than NULL to
3836         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
3837         trap MULL.
3838         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3839         than NULL to gfc_compare_interfaces.
3840
3841 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
3842
3843         PR fortran/41478
3844         * trans-array.c (duplicate_allocatable):  Static version of
3845         gfc_duplicate_allocatable with provision to handle scalar
3846         components. New boolean argument to switch off call to malloc
3847         if true.
3848         (gfc_duplicate_allocatable): New function to call above with
3849         new argument false.
3850         (gfc_copy_allocatable_data): New function to call above with
3851         new argument true.
3852         (structure_alloc_comps): Do not apply indirect reference to
3853         scalar pointers. Add new section to copy allocatable components
3854         of arrays. Extend copying of allocatable components to include
3855         scalars.
3856         (gfc_copy_only_alloc_comp): New function to copy allocatable
3857         component derived types, without allocating the base structure.
3858         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
3859         Add primitive for gfc_copy_only_alloc_comp.
3860         * trans-expr.c (gfc_conv_procedure_call): After calls to
3861         transformational functions with results that are derived types
3862         with allocatable components, copy the components in the result.
3863         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
3864         of lhs derived types before allocation.
3865         
3866 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
3867
3868         PR fortran/42481
3869         * module.c (load_generic_interfaces): If a procedure that is
3870         use associated but not generic is given an interface that
3871         includes itself, then make it generic.
3872
3873 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
3874             Shujing Zhao  <pearly.zhao@oracle.com>
3875
3876         PR translation/42469
3877         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
3878         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
3879         character between option name and help text.
3880
3881 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3882
3883         PR fortran/20923
3884         PR fortran/32489
3885         * trans-array.c (gfc_conv_array_initializer): Change call to
3886         gfc_error_now to call to gfc_fatal_error.
3887         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
3888         (is_constant_element): Changed name from constant_element.
3889         (gfc_constant_ac): Only use expand_construuctor for expression
3890         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
3891         call gfc_is_constant_expr.
3892         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
3893         message.
3894         * resolve.c (gfc_is_expandable_expr): New function that determiners if
3895         array expressions should have their constructors expanded.
3896         (gfc_resolve_expr): Use new function to determine whether or not to call
3897         gfc_expand_constructor.
3898
3899 2010-01-09  Tobias Burnus  <burnus@net-b.de>
3900
3901         PR fortran/41298
3902         * trans-expr.c (gfc_trans_structure_assign): Handle
3903         c_null_(fun)ptr.
3904         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
3905         to the constructor for c_null_(fun)ptr.
3906         * resolve.c (resolve_structure_cons): Add special case
3907         for c_null_(fun)ptr.
3908
3909 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
3910
3911         * gfortranspec.c (lang_specific_driver): Update copyright notice
3912         dates.
3913
3914 2010-01-08  Tobias Burnus  <burnus@net-b.de>
3915
3916         PR/fortran 25829
3917         * symbol.c (check_conflict, gfc_copy_attr): Add
3918         ASYNCHRONOUS support.
3919         (gfc_add_asynchronous): New function.
3920         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
3921         (gfc_match_asynchronous): New function.
3922         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
3923         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
3924         (gfc_add_asynchronous): New Prototype.
3925         * module.c (ab_attribute, mio_symbol_attribute): Add
3926         ASYNCHRONOUS support.
3927         * resolve.c (was_declared): Ditto.
3928         * match.h (gfc_match_asynchronous): New prototype.
3929         * parse.c (decode_specification_statement,decode_statement):
3930         Add ASYNCHRONOUS support.
3931
3932 2010-01-07  Tobias Burnus  <burnus@net-b.de>
3933
3934         PR fortran/42597
3935         * trans-decl.c (get_proc_pointer_decl): Fix call to
3936         gfc_conv_initializer for array-valued proc-pointer funcs.
3937
3938 2010-01-07  Tobias Burnus  <burnus@net-b.de>
3939
3940         PR fortran/41872
3941         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
3942         allocatable scalars with SAVE attribute.
3943
3944 2010-01-05  Tobias Burnus  <burnus@net-b.de>
3945
3946         PR fortran/42517
3947         * options.c (gfc_post_options): Set -frecursion
3948         when -fopenmp is used.
3949
3950 2010-01-05  Tobias Burnus  <burnus@net-b.de>
3951
3952         PR fortran/41872
3953         * trans-expr.c (gfc_conv_procedure_call): Nullify
3954         return value for allocatable-scalar character functions.
3955
3956 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3957
3958         PR fortran/36161
3959         * error.c (error_printf, gfc_warning, gfc_notify_std,
3960         gfc_warning_now, gfc_error, gfc_error_now,
3961         gfc_fatal_error): Change argument name from nocmsgid to
3962         gmsgid to enable (x)gettext's % checking.
3963
3964 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3965         
3966         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
3967
3968 2010-01-04  Tobias Burnus  <burnus@net-b.de>
3969
3970         PR fortran/41872
3971         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
3972         for functions returning allocatable scalars.
3973         * trans-stmt.c (gfc_trans_allocate): Emmit error when
3974         reallocating an allocatable scalar.
3975         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
3976         in comment.
3977         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
3978         allocatable scalars.
3979         (gfc_generate_function_code): Nullify result variable for
3980         allocatable scalars.
3981         
3982         PR fortran/40849
3983         * module.c (gfc_use_module): Fix warning string to allow
3984         for translation.
3985
3986         PR fortran/42517
3987         * invoke.texi (-fcheck=recursion): Mention that the checking
3988         is also disabled for -frecursive.
3989         * trans-decl.c (gfc_generate_function_code): Disable
3990         -fcheck=recursion when -frecursive is used.
3991
3992         * intrinsic.texi (iso_c_binding): Improve wording.
3993
3994 \f
3995 Copyright (C) 2010 Free Software Foundation, Inc.
3996
3997 Copying and distribution of this file, with or without modification,
3998 are permitted in any medium without royalty provided the copyright
3999 notice and this notice are preserved.