OSDN Git Service

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