OSDN Git Service

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