OSDN Git Service

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