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