OSDN Git Service

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