OSDN Git Service

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