OSDN Git Service

2008-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2008-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org
2
3         PR fortran/37498
4         * trans-io.c (gfc_build_io_library_fndecls): Bump pad size.
5         (build_dt): Set mask bit for IOPARM_dt_f2003.
6         * ioparm.def: Add IOPARM_dt_f2003.
7
8 2008-09-22  Janus Weil  <janus@gcc.gnu.org>
9
10         PR fortran/37486
11         * gfortran.h (gfc_option_t): New members flag_align_commons and
12         warn_align_commons. 
13         * lang.opt: New options falign-commons and Walign-commons.
14         * invoke.texi: Documentation for new options.
15         * options.c (gfc_init_options): Initialize new options.
16         (gfc_handle_options): Handle new options.
17         * trans-common.c (translate_common): Implement new options.
18         (gfc_trans_common): Set correct locus.
19
20 2008-09-21  Paul Thomas  <pault@gcc.gnu.org>
21
22         PR fortran/37583
23         * decl.c (scalarize_intrinsic_call): Both subroutines and
24         functions can give a true for get_proc_mame's last argument so
25         remove the &&gfc_current_ns->proc_name->attr.function.
26         resolve.c (resolve_actual_arglist): Add check for recursion by
27         reference to procedure as actual argument.
28
29 2008-09-21  Daniel Kraft  <d@domob.eu>
30
31         PR fortran/35846
32         * trans.h (gfc_conv_string_length): New argument `expr'.
33         * trans-expr.c (flatten_array_ctors_without_strlen): New method.
34         (gfc_conv_string_length): New argument `expr' that is used in a new
35         special case handling if cl->length is NULL.
36         (gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length.
37         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
38         (gfc_trans_auto_array_allocation): Pass NULL as new expr.
39         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
40         (gfc_trans_deferred_array): Ditto.
41         (gfc_trans_array_constructor): Save and restore old values of globals
42         used for bounds checking.
43         * trans-decl.c (gfc_trans_dummy_character): Ditto.
44         (gfc_trans_auto_character_variable): Ditto.
45
46 2008-09-21  Daniel Kraft  <d@domob.eu>
47
48         * decl.c (match_procedure_in_type): Changed misleading error message
49         for not yet implemented PROCEDURE(interface) syntax.
50
51 2008-09-18  Paul Thomas  <pault@gcc.gnu.org>
52
53        PR fortran/35945
54        * resolve.c (resolve_fl_variable_derived):  Remove derived type
55        comparison for use associated derived types.  Host association
56        of a derived type will not arise if there is a local derived type
57        whose use name is the same.
58
59        PR fortran/36700
60        * match.c (gfc_match_call):  Use the existing symbol even if
61        it is a function.
62
63 2008-09-18  Daniel Kraft  <d@domob.eu>
64
65         PR fortran/37507
66         * trans.h (gfc_trans_runtime_error): New method.
67         (gfc_trans_runtime_error_vararg): New method.
68         (gfc_allocate_array_with_status): New argument `expr' for locus/varname.
69         (gfc_deallocate_array_with_status): Ditto.
70         * trans-array.h (gfc_array_deallocate): Ditto.
71         * trans.c (gfc_trans_runtime_error): New method.
72         (gfc_trans_runtime_error_vararg): New method, moved parts of the code
73         from gfc_trans_runtime_check here.
74         (gfc_trans_runtime_error_check): Moved code partly to new method.
75         (gfc_call_malloc): Fix tab-indentation.
76         (gfc_allocate_array_with_status): New argument `expr' and call
77         gfc_trans_runtime_error for error reporting to include locus.
78         (gfc_deallocate_with_status): Ditto.
79         * trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
80         * trans-array.c (gfc_array_allocate): Ditto.
81         (gfc_array_deallocate): New argument `expr', passed on.
82         (gfc_trans_dealloc_allocated): Pass NULL for expr.
83         * trans-openmp.c (gfc_omp_clause_default): Ditto.
84
85 2008-09-18  Paul Thomas  <pault@gcc.gnu.org>
86
87         PR fortran/37274
88         PR fortran/36374
89         * module.c (check_for_ambiguous): New function to test loaded
90         symbol for ambiguity with fixup symbol.
91         (read_module): Call check_for_ambiguous.
92         (write_symtree): Do not write the symtree for symbols coming
93         from an interface body.
94
95         PR fortran/36374
96         * resolve.c (count_specific_procs ): New function to count the
97         number of specific procedures with the same name as the generic
98         and emit appropriate errors for and actual argument reference.
99         (resolve_assumed_size_actual): Add new argument no_formal_args.
100         Correct logic around passing generic procedures as arguments.
101         Call count_specific_procs from two locations.
102         (resolve_function): Evaluate and pass no_formal_args.
103         (resolve call): The same and clean up a bit by using csym more
104         widely.
105
106         PR fortran/36454
107         * symbol.c (gfc_add_access): Access can be updated if use
108         associated and not private.
109
110 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
111
112         PR fortran/37536
113         * trans-stmt.c (gfc_trans_do): Optimize integer type non-simple
114         do loop initialization.
115
116 2008-09-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
117             Tobias Burnus  <burnus@net.b.de>
118
119         PR fortran/35840
120         * io.c (match_vtag): Add tag name to error message.
121         (match_out_tag): Cleanup whitespace.
122         (gfc_resolve_dt): Resolve id and async tags. 
123
124 2008-09-13  Daniel Kraft  <d@domob.eu>
125
126         PR fortran/35770
127         * primary.c (gfc_match_varspec): Added missing type-spec clearing
128         after wrong implicit character typing.
129
130 2008-09-12  Richard Guenther  <rguenther@suse.de>
131
132         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
133         build_fold_addr_expr to properly mark the argument
134         addressable.
135
136 2008-09-11  Daniel Kraft  <d@domob.eu>
137
138         PR fortran/36214
139         * simplify.c (simplify_cmplx): Added linebreak to long line.
140         * target-memory.c (gfc_convert_boz): Fix indentation.
141         (gfc_interpret_float): Set mpfr precision to right value before
142         calling mpfr_init.
143
144 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
145
146         * expr.c (find_array_element): Reformat comment.
147
148 2008-09-10  H.J. Lu  <hongjiu.lu@intel.com>
149
150         * expr.c (find_array_element): Reformat.
151
152 2008-09-10  Tobias Burnus  <burnus@net-b.de>
153
154         PR fortran/37420
155         * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.
156
157 2008-09-09  Daniel Kraft  <d@domob.eu>
158
159         PR fortran/37429
160         * resolve.c (expression_rank): Added assertion to guard against
161         EXPR_COMPCALL expressions.
162         (resolve_compcall): Set expression's rank from the target procedure's.
163
164 2008-09-09  Daniel Kraft  <d@domob.eu>
165
166         PR fortran/37411
167         * trans-array.c (gfc_conv_array_parameter): Added assertion that the
168         symbol has an array spec.
169
170 2008-09-08  Daniel Kraft  <d@domob.eu>
171
172         PR fortran/37199
173         * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
174         (gfc_map_intrinsic_function): Added checks against NULL bounds in
175         array specs.
176
177 2008-09-08  Tobias Burnus  <burnus@net.b.de>
178
179         PR fortran/37400
180         * symbol.c (gfc_set_default_type): Copy char len.
181
182 2008-09-06  Steven G. Kargl  <kargls@comcast.net>
183
184         PR fortran/36153
185         * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
186         UBOUND if 2nd argument is KIND.
187
188 2008-09-06  Steven G. Kargl  <kargls@comcast.net>
189
190         PR fortran/33229
191         * resolve.c (resolve_function): An intrinsic subroutine should not be
192         called as a function.
193
194 2008-09-05  Daniel Kraft  <d@domob.eu>
195
196         PR fortran/35837
197         * resolve.c (resolve_types): Restore gfc_current_ns on exit.
198         * symbol.c (gfc_save_all): Removed blank line.
199
200 2008-09-05  Daniel Kraft  <d@domob.eu>
201
202         PR fortran/36746
203         * primary.c (gfc_match_rvalue): Removed logic to handle implicit
204         typing to a derived-type if a component reference is found.
205         (gfc_match_varspec): Moved it here.
206
207 2008-09-04  Richard Guenther  <rguenther@suse.de>
208
209         * trans-array.c (gfc_conv_array_parameter): Use correct types
210         in building COND_EXPRs.
211         * trans-expr.c (gfc_conv_missing_dummy): Likewise.
212         * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
213
214 2008-09-04  Daniel Kraft  <d@domob.eu>
215
216         * PR fortran/37099
217         * expr.c (simplify_const_ref): Update expression's character length
218         when pulling out a substring reference.
219
220 2008-09-04  Ian Lance Taylor  <iant@google.com>
221
222         * symbol.c (generate_isocbinding_symbol): Compare
223         gfc_notification_std with ERROR rather than FAILURE.
224         * resolve.c (check_assumed_size_reference): Compare array type
225         with AR_FULL rather than DIMEN_ELEMENT.
226         (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
227         FL_VARIABLE.
228
229 2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
230
231         PR fortran/37228
232         * io.c (check_format): Allow specifying precision with g0 format.
233
234 2008-09-02  Daniel Kraft  <d@domob.eu>
235
236         * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
237         (gfc_add_abstract): New method.
238         * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
239         (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
240         * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
241         only to allow for ABSTRACT types.
242         * parse.c (parse_interface): Use new gfc_add_abstract.
243         * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
244         type is constructed.
245         * resolve.c (resolve_typespec_used): New method.
246         (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
247         check that no component is of an ABSTRACT type.
248         (resolve_symbol): Check that no symbol is of an ABSTRACT type.
249         (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
250         * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
251         (gfc_add_abstract): New method.
252
253 2008-09-01  Daniel Kraft  <d@domob.eu>
254
255         PR fortran/37193
256         * module.c (read_module): Initialize use_only flag on used symbols.
257
258 2008-09-01  Daniel Kraft  <d@domob.eu>
259
260         * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
261         and section to document the internals of type-bound procedures.
262         (gfc_expr): Document EXPR_COMPCALL.
263         * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
264         * dump-parse-tree.c (show_compcall): New method.
265         (show_expr): Call it for EXPR_COMPCALL.
266         (show_typebound), (show_f2k_derived): New methods.
267         (show_symbol): Call show_f2k_derived.
268         (show_code_node): Handle EXEC_COMPCALL.
269         * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
270         primary->value.compcall.
271
272 2008-08-31  Richard Guenther  <rguenther@suse.de>
273
274         * trans-expr.c (gfc_trans_string_copy): Use the correct types
275         to compute slen and dlen.
276
277 2008-08-31  Daniel Kraft  <d@domob.eu>
278
279         * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
280         (struct gfc_tbp_generic): New type.
281         (struct gfc_typebound_proc): Removed `target' and added union with
282         `specific' and `generic' members; new members `overridden',
283         `subroutine', `function' and `is_generic'.
284         (struct gfc_expr): New members `derived' and `name' in compcall union
285         member and changed type of `tbp' to gfc_typebound_proc.
286         (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
287         * match.h (gfc_typebound_default_access): New global.
288         (gfc_match_generic): New method.
289         * decl.c (gfc_match_generic): New method.
290         (match_binding_attributes): New argument `generic' and handle it.
291         (match_procedure_in_type): Mark matched binding as non-generic.
292         * interface.c (gfc_compare_interfaces): Made public.
293         (gfc_compare_actual_formal): Ditto.
294         (check_interface_1), (compare_parameter): Use new public names.
295         (gfc_procedure_use), (gfc_search_interface): Ditto.
296         * match.c (match_typebound_call): Set base-symbol referenced.
297         * module.c (binding_generic): New global array.
298         (current_f2k_derived): New global.
299         (mio_typebound_proc): Handle IO of GENERIC bindings.
300         (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
301         * parse.c (decode_statement): Handle GENERIC statement.
302         (gfc_ascii_statement): Ditto.
303         (typebound_default_access), (set_typebound_default_access): Removed.
304         (gfc_typebound_default_access): New global.
305         (parse_derived_contains): New default-access implementation and handle
306         GENERIC statements encountered.
307         * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
308         structure and removed check for SUBROUTINE/FUNCTION from here.
309         * resolve.c (extract_compcall_passed_object): New method.
310         (update_compcall_arglist): Use it.
311         (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
312         (resolve_typebound_generic_call): New method.
313         (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
314         to GENERIC bindings.
315         (resolve_compcall): Ditto (check for target being FUNCTION).
316         (check_typebound_override): Handle GENERIC bindings.
317         (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
318         (resolve_typebound_procedure): Handle GENERIC bindings and set new
319         attributes subroutine, function and overridden in gfc_typebound_proc.
320         (resolve_fl_derived): Ensure extended type is resolved before the
321         extending one is.
322         * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
323         * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
324
325 2008-08-29  Jan Hubicka  <jh@suse.cz>
326         
327         * parse.c (parse_interface): Silence uninitialized var warning.
328
329 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
330
331         * trans.h (struct lang_type): Add span.
332         (GFC_TYPE_ARRAY_SPAN): Define.
333         * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
334         copy TREE_STATIC from decl to span instead of setting it
335         unconditionally, set DECL_ARTIFICIAL, fix type of initializer
336         and set GFC_TYPE_ARRAY_SPAN on decl's type.
337         * trans-types.c (gfc_get_array_descr_info): If
338         GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
339
340         * trans-decl.c (check_constant_initializer,
341         gfc_emit_parameter_debug_info): New functions.
342         (gfc_generate_module_vars, gfc_generate_function_code): Emit
343         PARAMETERs and unreferenced variables with initializers into
344         debug info.
345
346         * gfortran.h (gfc_use_list): Add where field.
347         * module.c (use_locus): New static variable.
348         (gfc_match_use): Set it.
349         (gfc_use_module): Copy it to gfc_use_list's where field.
350         * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
351         (gfc_trans_use_stmts): Set backend locus before calling the debug
352         hook.  Allow non-VAR_DECLs to be created even for non-external
353         module.  Don't emit anything so far for renames from different
354         modules.
355
356         PR fortran/24790
357         * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
358         PARM_DECLs with pointer or reference type.
359
360         * trans-decl.c (gfc_build_qualified_array): Build non-flat
361         array type for debug info purposes.
362
363         PR fortran/29635
364         PR fortran/23057
365         * f95-lang.c (gfc_init_ts): New function.
366         (LANG_HOOKS_INIT_TS): Define.
367         * gfortran.h (gfc_use_rename): New type, moved from module.c.
368         (gfc_get_use_rename): New macro, moved from module.c.
369         (gfc_use_list): New type.
370         (gfc_get_use_list): New macro.
371         (gfc_namespace): Add use_stmts field.
372         (gfc_free_use_stmts): New prototype.
373         * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
374         * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
375         gfortran.h.
376         (gfc_use_module): Chain the USE statement info to
377         ns->use_stmts.
378         (gfc_free_use_stmts): New function.
379         * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
380         * trans.h (struct module_htab_entry): New type.
381         (gfc_find_module, gfc_module_add_decl): New functions.
382         * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
383         the module, adjust DECL_CONTEXTs of module procedures and
384         call gfc_module_add_decl for them.
385         * trans-common.c (build_common_decl): Set DECL_IGNORED_P
386         on the common variable.
387         (create_common): Set DECL_IGNORED_P for use associated vars.
388         * trans-decl.c: Include debug.h.
389         (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
390         modules.
391         (build_function_decl): Allow current_function_decl's context
392         to be a NAMESPACE_DECL.
393         (module_htab, cur_module): New variables.
394         (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
395         module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
396         functions.
397         (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
398         variables and types and call gfc_module_add_decl for them.
399         (gfc_generate_module_vars): Temporarily set cur_module.
400         (gfc_trans_use_stmts): New function.
401         (gfc_generate_function_code): Call it.
402         (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
403         * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
404         and TYPE_CONTEXT of module derived types.
405
406 2008-08-28  Daniel Kraft  <d@domob.eu>
407
408         * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
409         (gfc_get_typebound_proc): New macro.
410         (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
411         (enum gfc_exec_op): New value `EXEC_COMPCALL'.
412         (gfc_find_typebound_proc): New argument.
413         (gfc_copy_ref), (gfc_match_varspec): Made public.
414         * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
415         * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
416         (gfc_copy_ref): Made public and use new name.
417         (simplify_const_ref): Use new name of gfc_copy_ref.
418         (simplify_parameter_variable): Ditto.
419         (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
420         * match.c (match_typebound_call): New method.
421         (gfc_match_call): Allow for CALL's to typebound procedures.
422         * module.c (binding_passing), (binding_overriding): New variables.
423         (expr_types): Add EXPR_COMPCALL.
424         (mio_expr): gcc_unreachable for EXPR_COMPCALL.
425         (mio_typebound_proc), (mio_typebound_symtree): New methods.
426         (mio_f2k_derived): Handle type-bound procedures.
427         * primary.c (gfc_match_varspec): Made public and parse trailing
428         references to type-bound procedures; new argument `sub_flag'.
429         (gfc_match_rvalue): New name and argument of gfc_match_varspec.
430         (match_variable): Ditto.
431         * resolve.c (update_arglist_pass): New method.
432         (update_compcall_arglist), (resolve_typebound_static): New methods.
433         (resolve_typebound_call), (resolve_compcall): New methods.
434         (gfc_resolve_expr): Handle EXPR_COMPCALL.
435         (resolve_code): Handle EXEC_COMPCALL.
436         (resolve_fl_derived): New argument to gfc_find_typebound_proc.
437         (resolve_typebound_procedure): Ditto and removed not-implemented error.
438         * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
439         * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
440         implement access-checking.
441         * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
442         on EXPR_COMPCALL.
443         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
444         * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
445         intialization of ref->type.
446
447 2008-08-28  Janus Weil  <janus@gcc.gnu.org>
448
449         PR fortran/37253
450         * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
451         saving attr.procedure and attr.proc_ptr to the module file.
452
453 2008-08-25  Daniel Kraft  <d@domob.eu>
454
455         * gfortran.h (gfc_find_component): Add new arguments.
456         * parse.c (parse_derived_contains): Check if the derived-type containing
457         the CONTAINS section is SEQUENCE/BIND(C).
458         * resolve.c (resolve_typebound_procedure): Check for name collision with
459         components.
460         (resolve_fl_derived): Check for name collision with inherited
461         type-bound procedures.
462         * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
463         (gfc_add_component): Adapt for new arguments.
464         * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
465
466 2008-08-24  Tobias Burnus  <burnus@net-b.de>
467
468         PR fortran/37201
469         * decl.c (verify_bind_c_sym): Reject array/string returning
470         functions.
471
472 2008-08-24  Tobias Burnus  <burnus@net-b.de>
473
474         PR fortran/37201
475         * trans-expr.c (gfc_conv_function_call): Add string_length
476         for character-returning bind(C) functions.
477
478 2008-08-24  Daniel Kraft  <d@domob.eu>
479
480         * gfortran.h (gfc_typebound_proc):  New struct.
481         (gfc_symtree):  New member typebound.
482         (gfc_find_typebound_proc):  Prototype for new method.
483         (gfc_get_derived_super_type):  Prototype for new method.
484         * parse.h (gfc_compile_state):  New state COMP_DERIVED_CONTAINS.
485         * decl.c (gfc_match_procedure):  Handle PROCEDURE inside derived-type
486         CONTAINS section.
487         (gfc_match_end):  Handle new context COMP_DERIVED_CONTAINS.
488         (gfc_match_private):  Ditto.
489         (match_binding_attributes), (match_procedure_in_type):  New methods.
490         (gfc_match_final_decl):  Rewrote to make use of new
491         COMP_DERIVED_CONTAINS parser state.
492         * parse.c (typebound_default_access):  New global helper variable.
493         (set_typebound_default_access):  New callback method.
494         (parse_derived_contains):  New method.
495         (parse_derived):  Extracted handling of CONTAINS to new parser state
496         and parse_derived_contains.
497         * resolve.c (resolve_bindings_derived), (resolve_bindings_result):  New.
498         (check_typebound_override), (resolve_typebound_procedure):  New methods.
499         (resolve_typebound_procedures):  New method.
500         (resolve_fl_derived):  Call new resolving method for typebound procs.
501         * symbol.c (gfc_new_symtree):  Initialize new member typebound to NULL.
502         (gfc_find_typebound_proc):  New method.
503         (gfc_get_derived_super_type):  New method.
504
505 2008-08-23  Janus Weil  <janus@gcc.gnu.org>
506
507         * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
508         fields "pointer", "allocatable", "dimension", "access".
509         Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
510         * interface.c (gfc_compare_derived_types): Ditto.
511         * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
512         * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
513         gfc_conv_structure): Ditto.
514         * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
515         gfc_get_component_attr,verify_bind_c_derived_type,
516         generate_isocbinding_symbol): Ditto.
517         * decl.c (build_struct): Ditto.
518         * dump-parse-tree.c (show_components): Ditto.
519         * trans-stmt.c (gfc_trans_deallocate): Ditto.
520         * expr.c (gfc_check_assign,gfc_check_pointer_assign,
521         gfc_default_initializer): Ditto.
522         * module.c (mio_component): Ditto.
523         * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
524         * resolve.c (has_default_initializer,resolve_structure_cons,
525         gfc_iso_c_func_interface,find_array_spec,resolve_ref,
526         resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
527         resolve_equivalence_derived): Ditto.
528         * trans-io.c (transfer_expr): Ditto.
529         * parse.c (parse_derived): Ditto.
530         * dependency.c (gfc_check_dependency): Ditto.
531         * primary.c (gfc_variable_attr): Ditto.
532
533 2008-08-23  Tobias Burnus  <burnus@net-b.de>
534
535         PR fortran/37076
536         * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
537
538 2008-08-23  Tobias Burnus  <burnus@net-b.de>
539
540         PR fortran/37025
541         * target-memory.c (gfc_interpret_character): Support
542         kind=4 characters.
543
544 2008-08-22  Daniel Kraft  <d@domob.eu>
545
546         PR fortran/30239
547         * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
548         type is re-declared but neither -pedantic nor -std=f* is given and so
549         this is no error.
550         * invoke.texi (-Wsurprising): Document this new behaviour.
551
552 2008-08-22  Daniel Kraft  <d@domob.eu>
553
554         * gfortran.h (in_prefix): Removed from this header.
555         * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
556         * decl.c (in_prefix): Removed from here.
557         (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
558         * symbol.c (gfc_check_symbol_typed): Ditto.
559         * expr.c (check_typed_ns): New helper variable.
560         (expr_check_typed_help): New helper method.
561         (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
562         work, fixing a minor problem.
563         * match.c (gfc_matching_prefix): New variable.
564
565 2008-08-22  Daniel Kraft  <d@domob.eu>
566
567         PR fortran/32095
568         PR fortran/34228
569         * gfortran.h (in_prefix): New global.
570         (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
571         * array.c (match_array_element_spec): Check that bounds-expressions
572         don't have symbols not-yet-typed in them.
573         * decl.c (var_element): Check that variable used is already typed.
574         (char_len_param_value): Check that expression does not contain
575         not-yet-typed symbols.
576         (in_prefix): New global.
577         (gfc_match_prefix): Record using `in_prefix' if we're at the moment
578         parsing a prefix or not.
579         * expr.c (gfc_expr_check_typed): New method.
580         * parse.c (verify_st_order): New argument to disable error output.
581         (check_function_result_typed): New helper method.
582         (parse_spec): Check that the function-result declaration, if given in
583         a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
584         parsed.
585         * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
586         a type associated to it, otherwise use the IMPLICIT rules or signal
587         an error.
588
589 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
590
591         * f95-lang.c: Update all calls to pedwarn.
592
593 2008-08-18  Daniel Franke  <franke.daniel@gmail.com>
594
595         PR fortran/37032
596         * gfortran.texi: Document decision on include file handling in
597         preprocessed files.
598
599 2008-08-16  Tobias Burnus  <burnus@net-b.de>
600
601         PR fortran/36825
602         * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
603
604 2008-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
605
606         PR fortran/35863
607         * io.c (gfc_match_open): Enable UTF-8 in checks.
608         * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
609
610 2008-08-14  Janus Weil  <janus@gcc.gnu.org>
611
612         PR fortran/36705
613         * symbol.c (check_conflict): Move conflict checks for (procedure,save)
614         and (procedure,intent) to resolve_fl_procedure.
615         * resolve.c (resolve_fl_procedure): Ditto.
616
617 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
618
619         PR 36901
620         * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
621         'pedwarn0'.
622
623 2008-08-09  Paul Thomas  <pault@gcc.gnu.org>
624
625         PR fortran/37011
626         * symbol.c (gfc_add_extension): New function.
627         * decl.c (gfc_get_type_attr_spec): Call it.
628         (gfc_match_derived_decl): Set symbol extension attribute from
629         attr.extension.
630         * gfortran.h : Add prototype for gfc_add_extension.
631
632 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
633
634         PR 28875
635         * options.c (set_Wall): Replace set_Wunused by warn_unused.
636
637 2008-08-08  Daniel Kraft  <d@domob.eu>
638
639         * gfortran.h (gfc_finalizer):  Replaced member `procedure' by two
640         new members `proc_sym' and `proc_tree' to store the symtree after
641         resolution.
642         (gfc_find_sym_in_symtree):  Made public.
643         * decl.c (gfc_match_final_decl):  Adapted for new member name.
644         * interface.c (gfc_find_sym_in_symtree):  Made public.
645         (gfc_extend_expr), (gfc_extend_assign):  Changed call accordingly.
646         * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
647         New methods for module-file IO of f2k_derived.
648         (mio_symbol):  Do IO of f2k_derived namespace.
649         * resolve.c (gfc_resolve_finalizers):  Adapted for new member name and
650         finding the symtree for the symbol here.
651         * symbol.c (gfc_free_finalizer):  Adapted for new members.
652
653 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
654
655         * gfc-internals.texi: Update to GFDL 1.2.  Do not list GPL as
656         Invariant Section.
657         * gfortran.texi: Likewise.
658         * intrinsic.texi: Do not list GPL as Invariant Section.
659         * invoke.texi: Likewise.  Update copyright years.
660
661 2008-07-29  Paul Thomas  <pault@gcc.gnu.org>
662
663         * trans-expr.c (conv_parent_component_references): New function
664         to build missing parent references.
665         (gfc_conv_variable): Call it
666         * symbol.c (gfc_add_component): Check that component name in a
667         derived type extension does not appear in parent.
668         (gfc_find_component): For a derived type extension, check if
669         the component appears in the parent derived type by calling
670         self. Separate errors for private components and private types.
671         * decl.c (match_data_constant): Add extra arg to call to
672         gfc_match_structure_constructor.
673         (check_extended_derived_type): New function to check that a
674         parent derived type exists and that it is OK for exension.
675         (gfc_get_type_attr_spec): Add extra argument 'name' and return
676         it if extends is specified.
677         (gfc_match_derived_decl): Match derived type extension and
678         build a first component of the parent derived type if OK. Add
679         the f2k namespace if not present.
680         * gfortran.h : Add the extension attribute.
681         * module.c : Handle attribute 'extension'.
682         * match.h : Modify prototypes for gfc_get_type_attr_spec and
683         gfc_match_structure_constructor.
684         * primary.c (build_actual_constructor): New function extracted
685         from gfc_match_structure_constructor and modified to call self
686         iteratively to build derived type extensions, when f2k named
687         components are used.
688         (gfc_match_structure_constructor): Do not throw error for too
689         many components if a parent type is being handled. Use
690         gfc_find_component to generate errors for non-existent or
691         private components.  Iteratively call self for derived type
692         extensions so that parent constructor is built.  If extension
693         and components left over, throw error.
694         (gfc_match_rvalue): Add extra arg to call to
695         gfc_match_structure_constructor.
696
697         * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
698         are the same symbol, aliassing does not matter.
699
700 2008-07-29  Jan Hubicka  <jh@suse.cz>
701
702         * options.c (gfc_post_options): Do not set flag_no_inline.
703
704 2008-07-29  Daniel Kraft  <d@domob.eu>
705
706         PR fortran/36403
707         * trans-intrinsic.c (conv_generic_with_optional_char_arg):  New method
708         to append a string-length even if the string argument is missing, e.g.
709         for EOSHIFT.
710         (gfc_conv_intrinsic_function):  Call the new method for EOSHIFT, PACK
711         and RESHAPE.
712
713 2008-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
714
715         * gfortran.h (try): Remove macro.  Replace try with gfc_try
716         throughout.
717         * array.c: Likewise.
718         * check.c: Likewise.
719         * cpp.c: Likewise.
720         * cpp.h: Likewise.
721         * data.c: Likewise.
722         * data.h: Likewise.
723         * decl.c: Likewise.
724         * error.c: Likewise.
725         * expr.c: Likewise.
726         * interface.c: Likewise.
727         * intrinsic.c: Likewise.
728         * intrinsic.h: Likewise.
729         * io.c: Likewise.
730         * match.h: Likewise.
731         * parse.c: Likewise.
732         * parse.h: Likewise.
733         * resolve.c: Likewise.
734         * scanner.c: Likewise.
735         * simplify.c: Likewise.
736         * symbol.c: Likewise.
737         * trans-openmp.c: Likewise.
738         * trans-types.c: Likewise.
739
740 2008-07-28  Tobias Burnus  <burnus@net-b.de>
741
742         * Make-lang.in: Remove -Wno-* from fortran-warn.
743
744 2008-07-28  Richard Guenther  <rguenther@suse.de>
745
746         Merge from gimple-tuples-branch.
747
748         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
749
750         * trans-expr.c: Include gimple.h instead of tree-gimple.h.
751         * trans-array.c: Same.
752         * trans-openmp.c: Same.
753         * trans-stmt.c: Same.
754         * f95-lang.c: Same.
755         * trans-io.c: Same.
756         * trans-decl.c: Same.
757         * trans-intrinsic.c: Same.
758         * trans.c: Same.  Include tree-iterator.h.
759         * Make-lang.in (trans.o): Depend on tree-iterator.h
760
761         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
762
763         * trans-array.h (gfc_conv_descriptor_data_set_internal):
764         Rename to gfc_conv_descriptor_data_set.
765         (gfc_conv_descriptor_data_set_tuples): Remove.
766         * trans-array.c (gfc_conv_descriptor_data_get): Rename
767         from gfc_conv_descriptor_data_set_internal.
768         Remove last argument to gfc_add_modify.
769         (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
770         gfc_add_modify.
771         (gfc_trans_create_temp_array): Same.
772         (gfc_conv_array_transpose): Same.
773         (gfc_grow_array): Same.
774         (gfc_put_offset_into_var): Same.
775         (gfc_trans_array_ctor_element): Same.
776         (gfc_trans_array_constructor_subarray): Same.
777         (gfc_trans_array_constructor_value): Same.
778         (gfc_trans_scalarized_loop_end): Same.
779         (gfc_array_init_size): Same.
780         (gfc_array_allocate): Same.
781         (gfc_trans_array_bounds): Same.
782         (gfc_trans_auto_array_allocation): Same.
783         (gfc_trans_g77_array): Same.
784         (gfc_trans_dummy_array_bias): Same.
785         (gfc_conv_expr_descriptor): Same.
786         (structure_alloc_comps): Same.
787         * trans-expr.c: Same.
788         * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
789         Rename gfc_conv_descriptor_data_set_tuples to
790         gfc_conv_descriptor_data_set.
791         (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
792         build2_v.
793         (gfc_omp_clause_assign_op): Same.
794         (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
795         gfc_add_modify.
796         (gfc_trans_omp_atomic): Same.
797         (gfc_trans_omp_do): Same.  Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
798         Rename gfc_add_modify_stmt to gfc_add_modify.
799         * trans-stmt.c: Rename gfc_add_modify_expr to
800         gfc_add_modify.
801         * trans.c: Rename gfc_add_modify_expr to
802         gfc_add_modify.
803         (gfc_add_modify): Remove last argument.
804         Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
805         * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
806         Add prototype for gfc_add_modify.
807         * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
808         * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
809         * trans-io.c: Same.
810         * trans-intrinsic.c: Same.
811
812         2008-02-25  Aldy Hernandez  <aldyh@redhat.com>
813
814         * Make-lang.in (fortran-warn): Add -Wno-format.
815
816         2008-02-19  Diego Novillo  <dnovillo@google.com>
817
818         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
819
820         * fortran/Make-lang.in (fortran-warn): Remove.
821
822         2007-11-22  Aldy Hernandez  <aldyh@redhat.com>
823
824         * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
825         memset.
826
827         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
828
829         * Make-lang.in (fortran-warn): Set to -Wno-format.
830         * trans.c (gfc_trans_code): Update comment to say GENERIC.
831         Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
832
833 2008-07-27  Tobias Burnus  <burnus@net-b.de>
834
835         PR fortran/36132
836         PR fortran/29952
837         PR fortran/36909
838         * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
839         run-time error.
840         * trans.h (gfc_trans_runtime_check): Update declaration.
841         * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
842         gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
843         Updated gfc_trans_runtime_check calls.
844         (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
845         fix packing/unpacking for nonpresent optional actuals to optional
846         formals.
847         * trans-array.h (gfc_conv_array_parameter): Update declaration.
848         * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
849         gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
850         (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
851         * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
852         calls.
853         * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
854         (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
855         gfc_conv_array_parameter.
856         * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
857         * trans-decl.c (gfc_build_builtin_function_decls): Add
858         gfor_fndecl_runtime_warning_at.
859         * lang.opt: New option fcheck-array-temporaries.
860         * gfortran.h (gfc_options): New flag_check_array_temporaries.
861         * options.c (gfc_init_options, gfc_handle_option): Handle flag.
862         * invoke.texi: New option fcheck-array-temporaries.
863
864 2008-07-24  Jan Hubicka  <jh@suse.cz>
865
866         * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
867
868 2008-07-24  Daniel Kraft  <d@domob.eu>
869
870         PR fortran/33141
871         * lang.opt (Wnonstd-intrinsics):  Removed option.
872         (Wintrinsics-std), (Wintrinsic-shadow):  New options.
873         * invoke.texi (Option Summary):  Removed -Wnonstd-intrinsics
874         from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
875         (Error and Warning Options):  Documented the new options and removed
876         the documentation for -Wnonstd-intrinsics.
877         * gfortran.h (gfc_option_t):  New members warn_intrinsic_shadow and
878         warn_intrinsics_std, removed warn_nonstd_intrinsics.
879         (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name.
880         (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard):  New.
881         * decl.c (match_procedure_decl):  Replaced gfc_intrinsic_name by
882         the new name gfc_is_intrinsic.
883         (warn_intrinsic_shadow):  New helper method.
884         (gfc_match_function_decl), (gfc_match_subroutine):  Call the new method
885         warn_intrinsic_shadow to check the just-parsed procedure.
886         * expr.c (check_init_expr):  Call new gfc_is_intrinsic to check whether
887         the function called is really an intrinsic in the selected standard.
888         * intrinsic.c (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name and
889         extended to take into account the selected standard settings when trying
890         to find out whether a symbol is an intrinsic or not.
891         (gfc_check_intrinsic_standard):  Made public and extended.
892         (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface):  Removed
893         the calls to check_intrinsic_standard, this check now happens inside
894         gfc_is_intrinsic.
895         (gfc_warn_intrinsic_shadow):  New method defined.
896         * options.c (gfc_init_options):  Initialize new warning flags to false
897         and removed intialization of Wnonstd-intrinsics flag.
898         (gfc_post_options):  Removed logic for Wnonstd-intrinsics flag.
899         (set_Wall):  Set new warning flags and removed Wnonstd-intrinsics flag.
900         (gfc_handle_option):  Handle the new flags and removed handling of the
901         old Wnonstd-intrinsics flag.
902         * primary.c (gfc_match_rvalue):  Replaced call to gfc_intrinsic_name by
903         the new name gfc_is_intrinsic.
904         * resolve.c (resolve_actual_arglist):  Ditto.
905         (resolve_generic_f), (resolve_unknown_f):  Ditto.
906         (is_external_proc):  Ditto.
907         (resolve_generic_s), (resolve_unknown_s):  Ditto.
908         (resolve_symbol):  Ditto and ensure for symbols declared INTRINSIC that
909         they are really available in the selected standard setting.
910
911 2008-07-24  Daniel Kraft  <d@domob.eu>
912
913         * match.c (gfc_match):  Add assertion to catch wrong calls trying to
914         match upper-case characters.
915
916 2008-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
917
918         PR fortran/29952
919         * gfortran.h:  Add "warn_array_temp" to gfc_option_t.
920         * lang.opt:  Add -Warray-temporaries.
921         * invoke.texi:  Document -Warray-temporaries
922         * trans-array.h (gfc_trans_create_temp_array):  Add argument of
923         type *locus.
924         (gfc_conv_loop_setup):  Likewise.
925         * trans-array.c (gfc_trans_create_temp_array):  If
926         -Warray-temporaries is given and locus is present, warn about
927         creation of array temporaries.
928         (gfc_trans_array_constructor_subarray):  Add locus to call
929         of gfc_conv_loop_setup.
930         (gfc_trans_array_constructor):  Add where argument.  Pass where
931         argument to call of gfc_trans_create_temp_array.
932         (gfc_add_loop_ss_code):  Add where argument.  Pass where argument
933         to recursive call of gfc_add_loop_ss_code and to call of
934         gfc_trans_array_constructor.
935         (gfc_conv_loop_setup):  Add where argument.  Pass where argument
936         to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
937         (gfc_conv_expr_descriptor):  Pass location to call of
938         gfc_conv_loop_setup.
939         (gfc_conv_array_parameter):  If -Warray-temporaries is given,
940         warn about creation of temporary arrays.
941         * trans-expr.c (gfc_conv_subref_array_arg):  Add where argument
942         to call to gfc_conv_loop_setup.
943         (gfc_conv_function_call):  Add where argument to call to
944         gfc_trans_creat_temp_array.
945         (gfc_trans_subarray_assign):  Likewise.
946         (gfc_trans_assignment_1):  Add where argument to call to
947         gfc_conv_loop_setup.
948         * trans-stmt.c (gfc_conv_elemental_dependencies):  Add where
949         argument to call to gfc_trans_create_temp_array.
950         (gfc_trans_call):  Add where argument to call to gfc_conv_loop_setup.
951         (generate_loop_for_temp_to_lhs):  Likewise.
952         (generate_loop_for_rhs_to_temp):  Likewise.
953         (compute_inner_temp_size):  Likewise.
954         (gfc_trans-pointer_assign_need_temp):  Likewise.
955         (gfc_evaluate_where_mask):  Likewise.
956         (gfc_trans_where_assign):  Likewise.
957         (gfc_trans_where_3):  Likewise.
958         * trans-io.c (transfer_srray_component):  Add where argument
959         to function. Add where argument to call to gfc_conv_loop_setup.
960         (transfer_expr):  Add where argument to call to
961         transfer_array_component.
962         (gfc_trans_transfer):  Add where expression to call to
963         gfc_conv_loop_setup.
964         * trans-intrinsic.c (gfc_conv_intrinsic_anyall):  Add
965         where argument to call to gfc_conv_loop_setup.
966         (gfc_conv_intrinsic_count):  Likewise.
967         (gfc_conv_intrinsic_arith):  Likewise.
968         (gfc_conv_intrinsic_dot_product):  Likewise.
969         (gfc_conv_intrinsic_minmaxloc):  Likewise.
970         (gfc_conv_intrinsic_minmaxval):  Likewise.
971         (gfc_conv_intrinsic_array_transfer):  Warn about
972         creation of temporary array.
973         Add where argument to call to gfc_trans_create_temp_array.
974         * options.c (gfc_init_options):  Initialize gfc_option.warn_array_temp.
975         (gfc_handle_option):  Set gfc_option.warn_array_temp.
976
977 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
978
979         PR 35058
980         * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
981
982 2008-07-22  Daniel Kraft  <d@domob.eu>
983
984         PR fortran/29835
985         * io.c (error_element), (format_locus):  New static globals.
986         (unexpected_element):  Spelled out this message fully.
987         (next_char):  Keep track of locus when not MODE_STRING.
988         (next_char_not_space):  Remember last parsed element in error_element.
989         (format_lex):  Fix two indentation errors.
990         (check_format):  Use format_locus and possibly error_element for a
991         slightly better error message on invalid format.
992         (check_format_string):  Set format_locus to start of the string
993         expression used as format.
994
995 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
996
997         * expr.c (gfc_check_pointer_assign): Fix typo in string.
998         * io.c (check_format): Fix typo in string.  Fix comment typos.
999         * parse.c (gfc_global_used): Likewise.
1000         * resolve.c (resolve_allocate_expr): Likewise.
1001         * symbol.c (gfc_set_default_type): Likewise.
1002         * arith.c: Fix typos in comments.
1003         * array.c: Likewise.
1004         * data.c: Likewise.
1005         * decl.c: Likewise.
1006         * dependency.c: Likewise.
1007         * f95-lang.c: Likewise.
1008         * gfortran.h: Likewise.
1009         * matchexp.c: Likewise.
1010         * module.c: Likewise.
1011         * primary.c: Likewise.
1012         * scanner.c: Likewise.
1013         * trans-array.c: Likewise.
1014         * trans-common.c: Likewise.
1015         * trans-decl.c: Likewise.
1016         * trans-expr.c: Likewise.
1017         * trans-intrinsic.c: Likewise.
1018         * trans-types.c: Likewise.
1019         * trans.c: Likewise.
1020         * trans.h: Likewise.
1021
1022 2008-07-19  Tobias Burnus  <burnus@net-b.de>
1023
1024         PR fortran/36795
1025         * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
1026         which caused the generation of wrong code.
1027
1028 2008-07-19  Tobias Burnus  <burnus@net-b.de>
1029
1030         PR fortran/36342
1031         * scanner.c (load_file): Add argument to destinguish between
1032         true filename and displayed filename.
1033         (include_line,gfc_new_file): Adapt accordingly.
1034
1035 2008-07-19  Tobias Burnus  <burnus@net-b.de>
1036
1037         * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
1038         checks for cshift's shift and eoshift's shift and boundary args.
1039         (gfc_check_unpack): Add rank and shape tests for unpack.
1040
1041 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1042
1043         * gfortran.h (new): Remove macro.
1044         * array.c (gfc_append_constructor, match_array_list,
1045         gfc_match_array_constructor): Likewise.
1046         * bbt.c (insert, gfc_insert_bbt): Likewise.
1047         * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
1048         get_proc_name): Likewise.
1049         * expr.c (gfc_copy_actual_arglist): Likewise.
1050         * interface.c (compare_actual_formal, check_new_interface,
1051         gfc_add_interface): Likewise.
1052         * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
1053         Likewise.
1054         * io.c (match_io_iterator, match_io_list): Likewise.
1055         * match.c (match_forall_header): Likewise.
1056         * matchexp.c (build_node): Likewise.
1057         * module.c (gfc_match_use): Likewise.
1058         * scanner.c (load_file): Likewise.
1059         * st.c (gfc_append_code): Likewise.
1060         * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1061         gfc_commit_symbols): Likewise.
1062         * trans-common.c (build_field): Likewise.
1063         * trans-decl.c (gfc_finish_var_decl): Likewise.
1064         * trans-expr.c (gfc_free_interface_mapping,
1065         gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
1066         gfc_finish_interface_mapping,
1067         gfc_apply_interface_mapping_to_expr): Likewise.
1068         * trans.h (gfc_interface_sym_mapping): Likewise.
1069
1070 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1071
1072         * gfortran.h (operator): Remove macro.
1073         (gfc_namespace, gfc_expr): Avoid C++ keywords.
1074         * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
1075         Likewise.
1076         * decl.c (access_attr_decl): Likewise.
1077         * dependency.c (gfc_dep_compare_expr): Likewise.
1078         * dump-parse-tree.c (show_expr, show_uop, show_namespace):
1079         Likewise.
1080         * expr.c (gfc_copy_expr, gfc_type_convert_binary,
1081         simplify_intrinsic_op, check_intrinsic_op): Likewise.
1082         * interface.c (fold_unary, gfc_match_generic_spec,
1083         gfc_match_interface, gfc_match_end_interface,
1084         check_operator_interface, check_uop_interfaces,
1085         gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
1086         gfc_add_interface, gfc_current_interface_head,
1087         gfc_set_current_interface_head): Likewise.
1088         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
1089         Likewise.
1090         * matchexp.c (gfc_get_parentheses, build_node): Likewise.
1091         * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
1092         number_use_names, mio_expr, load_operator_interfaces, read_module,
1093         write_operator, write_module): Likewise.
1094         * openmp.c (resolve_omp_atomic): Likewise.
1095         * resolve.c (resolve_operator, gfc_resolve_character_operator,
1096         gfc_resolve_uops): Likewise.
1097         * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
1098         * trans-expr.c (gfc_conv_expr_op): Likewise.
1099         * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
1100
1101 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1102
1103         * gfortran.h (protected): Remove macro.
1104         * dump-parse-tree.c (show_attr): Avoid C++ keywords.
1105         * expr.c (gfc_check_pointer_assign): Likewise.
1106         * interface.c (compare_parameter_protected): Likewise.
1107         * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
1108         add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
1109         add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
1110         add_sym_5s): Likewise.
1111         * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
1112         Likewise.
1113         * module.c (mio_symbol_attribute): Likewise.
1114         * primary.c (match_variable): Likewise.
1115         * resolve.c (resolve_equivalence): Likewise.
1116         * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
1117         Likewise.
1118         * trans-types.c (gfc_get_array_type_bounds): Likewise.
1119
1120 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1121
1122         * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
1123         * gfortran.h (try, protected, operator, new): Likewise.
1124
1125 2008-07-17  Tobias Burnus  <burnus@net-b.de>
1126
1127         PR fortran/36825
1128         PR fortran/36824
1129         * array.c (gfc_match_array_spec): Fix array-rank check.
1130         * resolve.c (resolve_fl_derived): Fix constentness check
1131         for the array dimensions.
1132
1133 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1134
1135         * Make-lang.in (gfortranspec.o): Fix dependencies.
1136
1137 2008-07-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1138
1139         PR fortran/36725
1140         * io.c: Add error check for g0 edit descriptor followed by '.'.
1141
1142 2008-07-12  Daniel Kraft  <d@domob.eu>
1143
1144         * resolve.c (resolve_fl_derived):  Allow pointer components to empty
1145         derived types fixing a missing part of PR fortran/33221.
1146
1147 2008-07-10  Daniel Kraft  <d@domob.eu>
1148
1149         * gfc-internals.texi (section gfc_expr):  Created documentation about
1150         the gfc_expr internal data structure.
1151
1152 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1153
1154         PR fortran/36670
1155         * iresolve.c (gfc_resolve_product):  Set shape of return
1156         value from array.
1157         (gfc_resolve_sum):  Likewise.
1158
1159 2008-07-07  Jakub Jelinek  <jakub@redhat.com>
1160
1161         PR middle-end/36726
1162         * f95-lang.c (poplevel): Don't ever add subblocks to
1163         global_binding_level.
1164
1165 2008-07-02  Janus Weil  <janus@gcc.gnu.org>
1166             Tobias Burnus  <burnus@net-b.de>
1167             Paul Thomas  <pault@gcc.gnu.org>
1168
1169         PR fortran/32580
1170         * gfortran.h (struct gfc_symbol): New member "proc_pointer".
1171         * check.c (gfc_check_associated,gfc_check_null): Implement
1172         procedure pointers.
1173         * decl.c (match_procedure_decl): Ditto.
1174         * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
1175         * interface.c (compare_actual_formal): Ditto.
1176         * match.h: Ditto.
1177         * match.c (gfc_match_pointer_assignment): Ditto.
1178         * parse.c (parse_interface): Ditto.
1179         * primary.c (gfc_match_rvalue,match_variable): Ditto.
1180         * resolve.c (resolve_fl_procedure): Ditto.
1181         * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
1182         gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
1183         * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
1184         create_function_arglist): Ditto.
1185         * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
1186         gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
1187
1188 2008-07-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1189
1190         PR fortran/36590
1191         PR fortran/36681
1192         * iresolve.c (resolve_mask_arg):  Don't convert mask to
1193         kind=1 logical if it is of that type already.
1194
1195 2008-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1196
1197         PR fortran/36341
1198         * iresolve.c (gfc_resolve_matmul): Copy shapes
1199         from arguments.
1200
1201 2008-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1202
1203         * invoke.texi: Add documentation for runtime behavior of
1204         -fno-range-check.
1205
1206 2008-06-28  Daniel Kraft  <d@domob.eu>
1207
1208         * gfc-internals.texi (section gfc_code):  Extended documentation about
1209         gfc_code in the internal datastructures chapter including details about
1210         how IF, DO and SELECT blocks look like and an example for how the
1211         block-chaining works.
1212
1213 2008-06-25  Paul Thomas  <pault@gcc.gnu.org>
1214
1215         PR fortran/36526
1216         * interface.c (check_intents):  Correct error where the actual
1217         arg was checked for a pointer argument, rather than the formal.
1218
1219 2008-06-24  Paul Thomas  <pault@gcc.gnu.org>
1220
1221         PR fortran/34371
1222         * expr.c (gfc_check_assign):  Change message and locus for
1223         error when conform == 0.
1224
1225 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
1226
1227         PR fortran/36597
1228         * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
1229
1230 2008-06-20  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1231             Tobias Burnus  <burnus@net-b.de>
1232
1233         PR fortran/34908
1234         PR fortran/36276
1235         * scanner.c (preprocessor_line): do not call gfc_free for
1236         current_file->filename if it differs from filename.
1237
1238 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1239
1240         * arith.c (hollerith2representation): Fix for -Wc++-compat.
1241         * array.c (gfc_get_constructor): Likewise.
1242         * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
1243         create_enum_history, gfc_match_final_decl): Likewise.
1244         * error.c (error_char): Likewise.
1245         * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
1246         * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
1247         gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
1248         gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
1249         gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
1250         gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
1251         gfc_get_alloc, gfc_get_wide_string): Likewise.
1252         * interface.c (count_types_test): Likewise.
1253         * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
1254         Likewise.
1255         * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
1256         gfc_match_inquire, gfc_match_wait): Likewise.
1257         * match.c (gfc_match, match_forall_iterator): Likewise.
1258         * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
1259         add_true_name, parse_string, write_atom, quote_string,
1260         mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
1261         * options.c (gfc_post_options): Likewise.
1262         * primary.c (match_integer_constant, match_hollerith_constant,
1263         match_boz_constant, match_real_constant,
1264         gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
1265         * scanner.c (gfc_widechar_to_char, add_path_to_list,
1266         add_file_change, load_line, get_file, preprocessor_line,
1267         load_file, unescape_filename, gfc_read_orig_filename): Likewise.
1268         * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
1269         gfc_simplify_ishftc): Likewise.
1270         * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
1271         gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
1272         Likewise.
1273         * target-memory.c (gfc_target_interpret_expr): Likewise.
1274         * trans-const.c (gfc_build_wide_string_const): Likewise.
1275         * trans-expr.c (gfc_add_interface_mapping): Likewise.
1276         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1277         gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
1278         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
1279         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
1280         gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
1281         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
1282         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
1283         * trans.c (gfc_get_backend_locus): Likewise.
1284         * trans.h (gfc_get_ss): Likewise.
1285
1286 2008-06-18  Daniel Kraft  <d@domob.eu>
1287
1288         PR fortran/36517, fortran/36492
1289         * array.c (gfc_resolve_character_array_constructor):  Call
1290         gfc_set_constant_character_len with changed length-chec argument.
1291         * decl.c (gfc_set_constant_character_len):  Changed array argument to
1292         be a generic length-checking argument that can be used for correct
1293         checking with typespec and in special cases where the should-be length
1294         is different from the target length.
1295         (build_struct):  Call gfc_set_constant_character_len with changed length
1296         checking argument and introduced additional checks for exceptional
1297         conditions on invalid code.
1298         (add_init_expr_to_sym), (do_parm):  Call gfc_set_constant_character_len
1299         with changed argument.
1300         * match.h (gfc_set_constant_character_len):  Changed third argument to
1301         int for the should-be length rather than bool.
1302
1303 2008-06-17  Daniel Kraft  <d@domob.eu>
1304
1305         PR fortran/36112
1306         * array.c (gfc_resolve_character_array_constructor):  Check that all
1307         elements with constant character length have the same one rather than
1308         fixing it if no typespec is given, emit an error if they don't.  Changed
1309         return type to "try" and return FAILURE for the case above.
1310         (gfc_resolve_array_constructor):  Removed unneeded call to
1311         gfc_resolve_character_array_constructor in this function.
1312         * gfortran.h (gfc_resolve_character_array_constructor):  Returns try.
1313         * trans-array.c (get_array_ctor_strlen):  Return length of first element
1314         rather than last element.
1315         * resolve.c (gfc_resolve_expr):  Handle FAILURE return from
1316         gfc_resolve_character_array_constructor.
1317
1318 2008-06-17  Paul Thomas  <pault@gcc.gnu.org>
1319
1320         PR fortran/34396
1321         * resolve.c (add_dt_to_dt_list):  New function.
1322         (resolve_fl_derived): Call new function for pointer components
1323         and when derived type resolved.
1324
1325 2008-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1326
1327         PR fortran/36515
1328         * trans-decl.c (gfc_generate_function_code): Add range_check to options
1329         array.
1330
1331 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1332
1333         * gfc-internals.texi: Expand TABs, drop indentation outside examples.
1334         * gfortran.texi: Likewise.
1335         * intrinsic.texi: Likewise.
1336         * invoke.texi: Likewise.
1337
1338 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1339
1340         PR fortran/35863
1341         * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
1342         transfer_character_wide which includes passing in the character kind to
1343         support wide character IO. (transfer_expr): If the kind == 4, create the
1344         argument and build the call.
1345         * gfortran.texi: Fix typo.
1346
1347 2008-06-13  Tobias Burnus  <burnus@net-b.de>
1348
1349         PR fortran/36476
1350         * decl.c (do_parm): Handle init expression for len=*.
1351
1352 2008-06-12  Tobias Burnus  <burnus@net-b.de>
1353
1354         PR fortran/36462
1355         * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
1356         Fix passing of the BACK= argument.
1357
1358 2008-06-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1359
1360         * cpp.c: Add copyright notice.
1361         * cpp.h: Add copyright notice.
1362
1363 2008-06-08  Janus Weil  <janus@gcc.gnu.org>
1364
1365         PR fortran/36459
1366         * decl.c (match_procedure_decl): Correctly recognize if the interface
1367         is an intrinsic procedure.
1368
1369 2008-06-08  Tobias Burnus  <burnus@net-b.de>
1370
1371         PR fortran/35830
1372         * resolve.c (resolve_symbol): Copy more attributes for
1373         PROCEDUREs with interfaces.
1374
1375 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1376
1377         PR fortran/36420
1378         PR fortran/36422
1379         * io.c (check_format): Add new error message for zero width.
1380         Use new error message for FMT_A and with READ, FMT_G.  Allow
1381         FMT_G with WRITE except when -std=F95 and -std=F2003.
1382
1383 2008-06-07  Tobias Burnus  <burnus@net-b.de>
1384
1385         PR fortran/36437
1386         * intrinsic.c (add_functions): Implement c_sizeof.
1387         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
1388         create unneeded variable in the scalar case.
1389         * intrinsic.texi: Add C_SIZEOF documentation.
1390
1391 2008-06-06  Tobias Burnus  <burnus@net-b.de>
1392
1393         * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
1394
1395 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1396
1397         * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
1398         * parse.c (next_free): Allow tab after !$omp.
1399         (decode_omp_directive): Handle !$omp task, !$omp taskwait
1400         and !$omp end task.
1401         (case_executable): Add ST_OMP_TASKWAIT.
1402         (case_exec_markers): Add ST_OMP_TASK.
1403         (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
1404         ST_OMP_TASKWAIT.
1405         (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
1406         * gfortran.h (gfc_find_sym_in_expr): New prototype.
1407         (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
1408         (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
1409         OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
1410         untied fields.
1411         (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
1412         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
1413         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
1414         LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
1415         * trans.h (gfc_omp_clause_default_ctor): Add another argument.
1416         (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1417         gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
1418         * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
1419         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
1420         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1421         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
1422         BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
1423         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
1424         (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
1425         than boolean_type_node.
1426         * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
1427         EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
1428         untied and collapse clauses.
1429         (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
1430         * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
1431         EXEC_OMP_TASKWAIT.
1432         * st.c (gfc_free_statement): Likewise.
1433         * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
1434         (find_sym_in_expr): Rename to...
1435         (gfc_find_sym_in_expr): ... this.  No longer static.
1436         (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
1437         * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
1438         prototypes.
1439         * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
1440         firstprivate, lastprivate, reduction, copyprivate and copyin
1441         clauses.
1442         (omp_current_do_code): Made static.
1443         (omp_current_do_collapse): New variable.
1444         (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
1445         clear omp_current_do_code and omp_current_do_collapse on return.
1446         (gfc_resolve_do_iterator): Handle collapsed do loops.
1447         (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
1448         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
1449         (gfc_match_omp_clauses): Handle default (firstprivate),
1450         schedule (auto), untied and collapse (n) clauses.
1451         (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
1452         (OMP_TASK_CLAUSES): Define.
1453         (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
1454         * trans-openmp.c (gfc_omp_private_outer_ref): New function.
1455         (gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
1456         arrays allocate them with the bounds of the outer var if outer
1457         var is allocated.
1458         (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1459         gfc_omp_clause_dtor): New functions.
1460         (gfc_trans_omp_array_reduction): If decl is allocatable array,
1461         allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
1462         and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
1463         (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
1464         for assumed-size arrays.
1465         (gfc_trans_omp_do): Add par_clauses argument.  If dovar is
1466         present in lastprivate clause and do loop isn't simple,
1467         set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
1468         parallel's lastprivate clause, change it to shared and add
1469         lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
1470         (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
1471         (gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
1472         OMP_FOR from OMP_PARALLEL.
1473         (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
1474         OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
1475         (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
1476         (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
1477         EXEC_OMP_TASKWAIT.
1478
1479 2008-06-04  Janus Weil  <janus@gcc.gnu.org>
1480
1481         PR fortran/36322
1482         PR fortran/36275
1483         * resolve.c (resolve_symbol): Correctly copy the interface for a
1484         PROCEDURE declaration.
1485
1486 2008-06-02  Janus Weil  <janus@gcc.gnu.org>
1487
1488         PR fortran/36361
1489         * symbol.c (gfc_add_allocatable,gfc_add_dimension,
1490         gfc_add_explicit_interface): Added checks.
1491         * decl.c (attr_decl1): Added missing "var_locus".
1492         * parse.c (parse_interface): Checking for errors.
1493
1494 2008-06-02  Daniel Kraft  <d@domob.eu>
1495
1496         * gfortran.h:  New statement-type ST_FINAL for FINAL declarations.
1497         (struct gfc_symbol):  New member f2k_derived.
1498         (struct gfc_namespace):  New member finalizers, for use in the above
1499         mentioned f2k_derived namespace.
1500         (struct gfc_finalizer):  New type defined for finalizers linked list.
1501         * match.h (gfc_match_final_decl):  New function header.
1502         * decl.c (gfc_match_derived_decl):  Create f2k_derived namespace on
1503         constructed symbol node.
1504         (gfc_match_final_decl):  New function to match a FINAL declaration line.
1505         * parse.c (decode_statement):  match-call for keyword FINAL.
1506         (parse_derived):  Parse CONTAINS section and accept FINAL statements.
1507         * resolve.c (gfc_resolve_finalizers):  New function to resolve (that is
1508         in this case, check) a list of finalizer procedures.
1509         (resolve_fl_derived):  Call gfc_resolve_finalizers here.
1510         * symbol.c (gfc_get_namespace):  Initialize new finalizers to NULL.
1511         (gfc_free_namespace):  Free finalizers list.
1512         (gfc_new_symbol):  Initialize new f2k_derived to NULL.
1513         (gfc_free_symbol):  Free f2k_derived namespace.
1514         (gfc_free_finalizer):  New function to free a single gfc_finalizer node.
1515         (gfc_free_finalizer_list):  New function to free a linked list of
1516         gfc_finalizer nodes.
1517
1518 2008-06-02  Daniel Franke  <franke.daniel@gmail.com>
1519
1520         PR fortran/36375
1521         PR fortran/36377
1522         * cpp.c (gfc_cpp_init): Do not initialize builtins if
1523         processing already preprocessed input.
1524         (gfc_cpp_preprocess): Finalize output with newline.
1525
1526 2008-05-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1527
1528         * intrinsic.texi: Revert wrong commit.
1529
1530 2008-05-31  Steven G. Kargl  <kargls@comcast.net>
1531
1532         * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
1533         Cleanup numerical inquiry function initialization.
1534         (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
1535         a single mpfr_clears().
1536         (gfc_check_real_range): Re-arrange logic to eliminate multiple
1537         unnecessary branching and assignments.
1538         (gfc_arith_times): Use mpfr_clears() in preference to multiple
1539         mpfr_clear().
1540         (gfc_arith_divide): Ditto.
1541         (complex_reciprocal): Eliminate now unused variables a, re, im.
1542         Cleanup the mpfr abuse.  Use mpfr_clears() in preference to
1543         multiple mpfr_clear().
1544         (complex_pow): Fix comment whitespace.  Use mpfr_clears() in
1545         preference to multiple mpfr_clear().
1546         * simplify.c (gfc_simplify_and): Remove blank line.
1547         (gfc_simplify_atan2): Move error checking earlier to eliminate
1548         a now unnecessay gfc_free_expr().
1549         (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
1550         (gfc_simplify_bessel_j1): Ditto.
1551         (gfc_simplify_bessel_jn): Ditto.
1552         (gfc_simplify_bessel_y0): Ditto.
1553         (gfc_simplify_bessel_y1): Ditto.
1554         (gfc_simplify_bessel_yn): Ditto. 
1555         (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
1556         combine nested if statement rational expressions.
1557         (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
1558         mpfr_clear().
1559         (gfc_simplify_exp): Ditto.
1560         (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
1561         special case of 0.  Use mpfr_clears() in preference to multiple
1562         mpfr_clear().
1563         (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
1564         (gfc_simplify_lgamma): Ditto.
1565         (gfc_simplify_log10): Ditto.
1566         (gfc_simplify_log): Move gfc_set_model_kind () inside switch
1567         statement. Use mpfr_clears() in preference to multiple mpfr_clear().
1568         (gfc_simplify_mod):  Eliminate now unused variables quot, iquot,
1569         and term.  Simplify the mpfr magic.
1570         (gfc_simplify_modulo): Ditto.
1571         (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
1572         (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
1573         mpfr_clear().
1574         (gfc_simplify_sin): Ditto
1575         (gfc_simplify_sqrt): Ditto
1576         (gfc_simplify_set_exponent):  Move gfc_set_model_kind() to after the
1577         special case of 0.  Use mpfr_clears() in preference to multiple
1578         mpfr_clear().
1579
1580 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1581
1582         PR target/36348
1583         * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
1584
1585 2008-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1586
1587         * scanner.c (load_line): Add first_char argument. Don't call ungetc.
1588         (gfc_read_orig_filename): Adjust call to load_line. Don't call
1589         ungetc.
1590         (load_file): Adjust call to load_line.
1591
1592 2008-05-28  Janus Weil  <janus@gcc.gnu.org>
1593
1594         PR fortran/36325
1595         PR fortran/35830
1596         * interface.c (gfc_procedure_use): Enable argument checking for
1597         external procedures with explicit interface.
1598         * symbol.c (check_conflict): Fix conflict checking for externals.
1599         (copy_formal_args): Fix handling of arrays.
1600         * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
1601         of intrinsics.
1602         * parse.c (parse_interface): Non-abstract INTERFACE statement implies
1603         EXTERNAL attribute.
1604
1605 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1606
1607         PR fortran/36319
1608         * intrinsic.c (gfc_convert_chartype): Don't mark conversion
1609         function as pure.
1610         * trans-array.c (gfc_trans_array_ctor_element): Divide element
1611         size by the size of one character to obtain length.
1612         * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
1613         appropriate.
1614         (gfc_resolve_eoshift): Likewise.
1615         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
1616         (gfc_conv_intrinsic_fdate): Minor beautification.
1617         (gfc_conv_intrinsic_ttynam): Minor beautification.
1618         (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
1619         (size_of_string_in_bytes): New function.
1620         (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
1621         character expressions.
1622         (gfc_conv_intrinsic_sizeof): Likewise.
1623         (gfc_conv_intrinsic_array_transfer): Likewise.
1624         (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
1625         beautification.
1626         (gfc_conv_intrinsic_repeat): Fix comment typo.
1627         * simplify.c (gfc_convert_char_constant): Take care of conversion
1628         of array constructors.
1629
1630 2008-05-27  Tobias Burnus  <burnus@net-b.de>
1631
1632         PR fortran/36316
1633         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1634         Add missing fold_convert.
1635
1636 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1637
1638         * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
1639         added FIXME instead.
1640
1641 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1642
1643         PR fortran/18428
1644         * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
1645         imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
1646         o, undef, v): New options.
1647         * options.c (gfc_init_options): Also initialize preprocessor
1648         options.
1649         (gfc_post_options): Also handle post-initialization of preprocessor
1650         options.
1651         (gfc_handle_option): Check if option is a preprocessor option.
1652         If yes, let gfc_cpp_handle_option() handle the option.
1653         * lang-specs.h: Reorganized to handle new options.
1654         * scanner.c (gfc_new_file): Read temporary file instead of
1655         input source if preprocessing is enabled.
1656         * f95-lang.c (gfc_init): Initialize preprocessor.
1657         (gfc_finish): Clean up preprocessor.
1658         * cpp.c: New.
1659         * cpp.h: New.
1660         * Make-lang.in: Added new objects and dependencies.
1661         * gfortran.texi: Updated section "Preprocessing and
1662         conditional compilation".
1663         * invoke.texi: Added new section "Preprocessing Options",
1664         listed and documented the preprocessing options handled
1665         by gfortran.
1666
1667 2008-05-25  Tobias Burnus  <burnus@net-b.de>
1668
1669         PR fortran/32600
1670         * trans-expr.c (gfc_conv_function_call): Remove library
1671         call for c_f_pointer with scalar Fortran pointers and for
1672         c_f_procpointer.
1673
1674 2008-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1675
1676         PR fortran/36257
1677         * iresolve.c (check_charlen_present): Don't force the rank to 1.
1678
1679 2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1680
1681         PR fortran/36265
1682         * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
1683         the temporary variable.
1684
1685 2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1686
1687         * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
1688         result variable to avoid warnings.
1689
1690 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1691
1692         * intrinsic.c (char_conversions, ncharconv): New static variables.
1693         (find_char_conv): New function.
1694         (add_functions): Add simplification functions for ADJUSTL and
1695         ADJUSTR. Don't check the kind of their argument. Add checking for
1696         LGE, LLE, LGT and LLT.
1697         (add_subroutines): Fix argument type for SLEEP. Fix argument name
1698         for SYSTEM.
1699         (add_char_conversions): New function.
1700         (gfc_intrinsic_init_1): Call add_char_conversions.
1701         (gfc_intrinsic_done_1): Free char_conversions.
1702         (check_arglist): Use kind == 0 as a signal that we don't want
1703         the kind value to be checked.
1704         (do_simplify): Also simplify character functions.
1705         (gfc_convert_chartype): New function
1706         * trans-array.c (gfc_trans_array_ctor_element): Don't force the
1707         use of default character type.
1708         (gfc_trans_array_constructor_value): Likewise.
1709         (get_array_ctor_var_strlen): Use integer kind to build an integer
1710         instead of a character kind!
1711         (gfc_build_constant_array_constructor): Don't force the use of
1712         default character type.
1713         (gfc_conv_loop_setup): Likewise.
1714         * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
1715         default character type. Allocate enough memory for wide strings.
1716         (gfc_conv_concat_op): Make sure operand kind are the same.
1717         (string_to_single_character): Remove gfc_ prefix. Reindent.
1718         Don't force the use of default character type.
1719         (gfc_conv_scalar_char_value): Likewise.
1720         (gfc_build_compare_string): Call string_to_single_character.
1721         (fill_with_spaces): New function
1722         (gfc_trans_string_copy): Add kind arguments. Use them to deal
1723         with wide character kinds.
1724         (gfc_conv_statement_function): Whitespace fix. Call
1725         gfc_trans_string_copy with new kind arguments.
1726         (gfc_conv_substring_expr): Call gfc_build_wide_string_const
1727         instead of using gfc_widechar_to_char.
1728         (gfc_conv_string_parameter): Don't force the use of default
1729         character type.
1730         (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
1731         * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
1732         gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
1733         * decl.c (gfc_set_constant_character_len): Don't assert the
1734         existence of a single character kind.
1735         * trans-array.h (gfc_trans_string_copy): New prototype.
1736         * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
1737         New prototypes.
1738         * error.c (print_wide_char_into_buffer): New function lifting
1739         code from gfc_print_wide_char. Fix order to output '\x??' instead
1740         of 'x\??'.
1741         (gfc_print_wide_char): Call print_wide_char_into_buffer.
1742         (show_locus): Call print_wide_char_into_buffer with buffer local
1743         to this function.
1744         * trans-const.c (gfc_build_wide_string_const): New function.
1745         (gfc_conv_string_init): Deal with wide characters strings
1746         constructors.
1747         (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
1748         * trans-stmt.c (gfc_trans_label_assign): Likewise.
1749         (gfc_trans_character_select): Deal with wide strings.
1750         * expr.c (gfc_check_assign): Allow conversion between character
1751         kinds on assignment.
1752         * trans-const.h (gfc_build_wide_string_const): New prototype.
1753         * trans-types.c (gfc_get_character_type_len_for_eltype,
1754         gfc_get_character_type_len): Create too variants of the old
1755         gfc_get_character_type_len, one getting kind argument and the
1756         other one directly taking a type tree.
1757         * trans.h (gfor_fndecl_select_string_char4,
1758         gfor_fndecl_convert_char1_to_char4,
1759         gfor_fndecl_convert_char4_to_char1): New prototypes.
1760         * trans-types.h (gfc_get_character_type_len_for_eltype): New
1761         prototype.
1762         * resolve.c (resolve_operator): Exit early when kind mismatches
1763         are detected, because that makes us issue an error message later.
1764         (validate_case_label_expr): Fix wording of error message.
1765         * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
1766         functions.
1767         (gfc_resolve_pack): Call _char4 variants of library function
1768         when dealing with wide characters.
1769         (gfc_resolve_reshape): Likewise.
1770         (gfc_resolve_spread): Likewise.
1771         (gfc_resolve_transpose): Likewise.
1772         (gfc_resolve_unpack): Likewise.
1773         * target-memory.c (size_character): Take character kind bit size
1774         correctly into account (not that it changes anything for now, but
1775         it's more generic).
1776         (gfc_encode_character): Added gfc_ prefix. Encoding each
1777         character of a string by calling native_encode_expr for the
1778         corresponding unsigned integer.
1779         (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
1780         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1781         gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
1782         and gfor_fndecl_convert_char4_to_char1.
1783         * target-memory.h (gfc_encode_character): New prototype.
1784         * arith.c (gfc_check_character_range): New function.
1785         (eval_intrinsic): Allow non-default character kinds.
1786         * check.c (gfc_check_access_func): Only allow default
1787         character kind arguments.
1788         (gfc_check_chdir): Likewise.
1789         (gfc_check_chdir_sub): Likewise.
1790         (gfc_check_chmod): Likewise.
1791         (gfc_check_chmod_sub): Likewise.
1792         (gfc_check_lge_lgt_lle_llt): New function.
1793         (gfc_check_link): Likewise.
1794         (gfc_check_link_sub): Likewise.
1795         (gfc_check_symlnk): Likewise.
1796         (gfc_check_symlnk_sub): Likewise.
1797         (gfc_check_rename): Likewise.
1798         (gfc_check_rename_sub): Likewise.
1799         (gfc_check_fgetputc_sub): Likewise.
1800         (gfc_check_fgetput_sub): Likewise.
1801         (gfc_check_stat): Likewise.
1802         (gfc_check_stat_sub): Likewise.
1803         (gfc_check_date_and_time): Likewise.
1804         (gfc_check_ctime_sub): Likewise.
1805         (gfc_check_fdate_sub): Likewise.
1806         (gfc_check_gerror): Likewise.
1807         (gfc_check_getcwd_sub): Likewise.
1808         (gfc_check_getarg): Likewise.
1809         (gfc_check_getlog): Likewise.
1810         (gfc_check_hostnm): Likewise.
1811         (gfc_check_hostnm_sub): Likewise.
1812         (gfc_check_ttynam_sub): Likewise.
1813         (gfc_check_perror): Likewise.
1814         (gfc_check_unlink): Likewise.
1815         (gfc_check_unlink_sub): Likewise.
1816         (gfc_check_system_sub): Likewise.
1817         * primary.c (got_delim): Perform correct character range checking
1818         for all kinds.
1819         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
1820         calls to library functions convert_char4_to_char1 and
1821         convert_char1_to_char4 for character conversions.
1822         (gfc_conv_intrinsic_char): Allow all character kings.
1823         (gfc_conv_intrinsic_strcmp): Fix whitespace.
1824         (gfc_conv_intrinsic_repeat): Take care of all character kinds.
1825         * intrinsic.texi: For all GNU intrinsics accepting character
1826         arguments, mention that they're restricted to the default kind.
1827         * simplify.c (simplify_achar_char): New function.
1828         (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
1829         gfc_simplify_ichar): Don't error out for wide characters.
1830         (gfc_convert_char_constant): New function.
1831
1832 2008-05-18  Steven G. Kargl  <kargls@comcast.net>
1833
1834         PR fortran/36251
1835         * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
1836         and BIND(C).
1837         * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
1838
1839 2008-05-17  Tobias Burnus  <burnus@net-b.de>
1840
1841         * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
1842         and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
1843         GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
1844         Move LOG_GAMMA after LOG10.
1845
1846 2008-05-17  Tobias Burnus  <burnus@net-b.de>
1847
1848         * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
1849         * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
1850         ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
1851         CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
1852
1853 2008-05-16  Paul Thomas  <pault@gcc.gnu.org>
1854
1855         PR fortran/35756
1856         PR fortran/35759
1857         * trans-stmt.c (gfc_trans_where): Tighten up the dependency
1858         check for calling gfc_trans_where_3.
1859
1860         PR fortran/35743
1861         * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
1862         if it is calculated to be negative.
1863
1864         PR fortran/35745
1865         * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
1866         ss->where for scalar right hand sides.
1867         * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
1868         not evaluate scalars outside the loop.  Clean up whitespace.
1869         * trans.h : Add a bitfield 'where' to gfc_ss.
1870
1871 2008-05-16  Tobias Burnus  <burnus@net-b.de>
1872
1873         * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
1874         * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
1875
1876 2008-04-16  Daniel Kraft  <d@domob.eu>
1877
1878         PR fortran/27997
1879         * gfortran.h:  Added field "length_from_typespec" to gfc_charlength.
1880         * aray.c (gfc_match_array_constructor):  Added code to parse typespec.
1881         (check_element_type, check_constructor_type, gfc_check_constructor_type):
1882         Extended to support explicit typespec on constructor.
1883         (gfc_resolve_character_array_constructor):  Pad strings correctly for
1884         explicit, constant character length.
1885         * trans-array.c:  New static global variable "typespec_chararray_ctor"
1886         (gfc_trans_array_constructor):  New code to support explicit but dynamic
1887         character lengths.
1888
1889 2008-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1890
1891         PR fortran/34325
1892         * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
1893         * expr.c (gfc_specification_expr): Supplement the error message with the
1894         type that was found.
1895         * resolve.c (gfc_resolve_index): Likewise.
1896         * match.c (gfc_match_parens): Clarify error message with "at or before".
1897         (gfc_match_do): Check for matching pairs of parenthesis.
1898
1899 2008-05-16  Tobias Burnus  <burnus@net-b.de
1900
1901         * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
1902         add missing KIND argument to ACHAR and NINT; and state that
1903         the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
1904         ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
1905
1906 2008-05-16  Daniel Kraft  <d@domob.eu>
1907
1908         * primary.c:  New private structure "gfc_structure_ctor_component".
1909         (gfc_free_structure_ctor_component):  New helper function.
1910         (gfc_match_structure_constructor):  Extended largely to support named
1911         arguments and default initialization for structure constructors.
1912
1913 2008-05-15  Steven G. Kargl  <kargls@comcast.net>
1914
1915         * simplify.c (gfc_simplify_dble, gfc_simplify_float,
1916         simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
1917         possible memory leaks.
1918         (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
1919         of NULL pointers.
1920
1921 2008-05-15  Steven G. Kargl  <kargls@comcast.net>
1922
1923         PR fortran/36239
1924         * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
1925         rolled integer conversion with gfc_int2int, gfc_real2int, and
1926         gfc_complex2int.
1927         (gfc_simplify_intconv): Renamed to simplify_intconv.
1928         
1929 2008-05-15  Steven G. Kargl,   <kargl@comcast.net>
1930         * gfortran.dg/and_or_xor.f90: New test
1931
1932         * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
1933         gfc_simplify_xor): Don't range check logical results.
1934
1935 2008-05-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1936
1937         * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
1938         character kinds.
1939         (gfc_build_compare_string): Add kind argument and use it.
1940         (gfc_conv_statement_function): Fix indentation.
1941         * gfortran.h (gfc_character_info): New structure.
1942         (gfc_character_kinds): New array.
1943         * trans-types.c (gfc_character_kinds, gfc_character_types,
1944         gfc_pcharacter_types): New array.
1945         (gfc_init_kinds): Fill character kinds array.
1946         (validate_character): Take care of nondefault character kinds.
1947         (gfc_build_uint_type): New function.
1948         (gfc_init_types): Take care of nondefault character kinds.
1949         (gfc_get_char_type, gfc_get_pchar_type): New functions.
1950         (gfc_get_character_type_len): Use gfc_get_char_type.
1951         * trans.h (gfc_build_compare_string): Adjust prototype.
1952         (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
1953         gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1954         gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1955         gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1956         gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
1957         prototypes.
1958         * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
1959         prototypes.
1960         * trans-decl.c (gfor_fndecl_compare_string_char4,
1961         gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1962         gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1963         gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1964         gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
1965         gfor_fndecl_concat_string_char4): New function decls.
1966         (gfc_build_intrinsic_function_decls): Define new *_char4 function
1967         decls.
1968         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
1969         gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
1970         gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
1971         gfc_conv_intrinsic_function): Deal with nondefault character kinds.
1972
1973 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1974
1975         * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
1976         All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
1977         c_int128_t, c_int_least128_t and c_int_fast128_t are added as
1978         GNU extensions.
1979         * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
1980         to macro NAMED_INTCST.
1981         * symbol.c (std_for_isocbinding_symbol): New helper function to 
1982         return the standard that supports this isocbinding symbol.
1983         (generate_isocbinding_symbol): Do not generate GNU extension symbols
1984         if std=f2003. Add new parameter to NAMED_INTCST.
1985         * module.c (use_iso_fortran_env_module): Add new parameter to
1986         NAMED_INTCST and new field standard to struct intmod_sym.
1987         * gfortran.h: Add new parameter to NAMED_INTCST.
1988         * trans-types.c (init_c_interop_kinds): Add new parameter to 
1989         NAMED_INTCST.
1990         * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
1991         and C_INT_FAST128_T.
1992
1993 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1994
1995         PR fortran/36059
1996         * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
1997         arrays that have the TARGET attribute.
1998
1999 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2000
2001         PR fortran/36186
2002         * simplify.c (only_convert_cmplx_boz): New function.
2003         (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
2004         Call only_convert_cmplx_boz.
2005
2006 2008-05-14  Paul Thomas  <pault@gcc.gnu.org>
2007
2008         PR fortran/36233
2009         * interface.c (compare_actual_formal): Do not check sizes if the
2010         actual is BT_PROCEDURE.
2011
2012 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2013
2014         PR fortran/35682
2015         * trans-array.c (gfc_conv_ss_startstride): Any negative size is
2016         the same as zero size.
2017         (gfc_conv_loop_setup): Fix size calculation.
2018
2019 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2020
2021         PR fortran/35685
2022         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
2023         handle zero-size sections.
2024
2025 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2026
2027         PR fortran/36215
2028         * scanner.c (preprocessor_line): Allocate enough memory for a
2029         wide string.
2030
2031 2008-05-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2032
2033         PR fortran/36176
2034         * target-memory.c (gfc_target_expr_size): Correctly treat
2035         substrings.
2036         (gfc_target_encode_expr): Likewise.
2037         (gfc_interpret_complex): Whitespace change.
2038
2039 2008-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2040
2041         PR fortran/35719
2042         * trans.c (gfc_call_malloc): If size equals zero, allocate one
2043         byte; don't return a null pointer.
2044
2045 2008-05-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2046
2047         PR fortran/36197
2048         * module.c (quote_string): Fix sprintf format.
2049
2050 2008-05-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2051
2052         PR fortran/36162
2053         * module.c (quote_string, unquote_string,
2054         mio_allocated_wide_string): New functions.
2055         (mio_expr): Call mio_allocated_wide_string where needed.
2056
2057 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2058
2059          * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
2060          Rename DECL_IS_PURE to DECL_PURE_P.
2061
2062 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2063
2064         * arith.c: (gfc_arith_concat, gfc_compare_string,
2065         gfc_compare_with_Cstring, hollerith2representation,
2066         gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
2067         gfc_hollerith2character, gfc_hollerith2logical): Use wide
2068         characters for character constants.
2069         * data.c (create_character_intializer): Likewise.
2070         * decl.c (gfc_set_constant_character_len): Likewise.
2071         * dump-parse-tree.c (show_char_const): Correctly dump wide
2072         character strings.
2073         error.c (print_wide_char): Rename into gfc_print_wide_char.
2074         (show_locus): Adapt to new prototype of gfc_print_wide_char.
2075         expr.c (free_expr0): Representation is now disjunct from
2076         character string value, so we always free it.
2077         (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
2078         to wide character strings.
2079         * gfortran.h (gfc_expr): Make value.character.string a wide string.
2080         (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
2081         gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
2082         (gfc_get_wide_string): New macro.
2083         (gfc_print_wide_char): New prototype.
2084         * io.c (format_string): Make a wide string.
2085         (next_char, gfc_match_format, compare_to_allowed_values, 
2086         gfc_match_open): Deal with wide strings.
2087         * module.c (mio_expr): Convert between wide strings and ASCII ones.
2088         * primary.c (match_hollerith_constant, match_charkind_name): 
2089         Handle wide strings.
2090         * resolve.c (build_default_init_expr): Likewise.
2091         * scanner.c (gfc_wide_toupper, gfc_wide_memset,
2092         gfc_char_to_widechar): New functions.
2093         (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
2094         Changes in prototypes.
2095         (gfc_define_undef_line, load_line, preprocessor_line,
2096         include_line, load_file, gfc_read_orig_filename): Handle wide
2097         strings.
2098         * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
2099         gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
2100         gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
2101         gfc_simplify_repeat): Handle wide strings.
2102         (wide_strspn, wide_strcspn): New helper functions.
2103         (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
2104         Handle wide strings.
2105         * symbol.c (generate_isocbinding_symbol): Likewise.
2106         * target-memory.c (size_character, gfc_target_expr_size,
2107         encode_character, gfc_target_encode_expr, gfc_interpret_character,
2108         gfc_target_interpret_expr): Handle wide strings.
2109         * trans-const.c (gfc_conv_string_init): Lower wide strings to
2110         narrow ones.
2111         (gfc_conv_constant_to_tree): Likewise.
2112         * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
2113         * trans-io.c (gfc_new_nml_name_expr): Likewise.
2114         * trans-stmt.c (gfc_trans_label_assign): Likewise.
2115
2116 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2117
2118         * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
2119         gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
2120         gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
2121         with ATTRIBUTE_UNUSED.
2122
2123 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2124
2125         * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
2126         * simplify.c (gfc_simplify_lgamma): Likewise.
2127
2128 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2129
2130         * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
2131         gfc_peek_ascii_char.
2132         * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
2133         gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
2134         match_string_p, match_attr_spec, gfc_match_suffix,
2135         match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
2136         Likewise.
2137         * gfortran.h (gfc_char_t): New type.
2138         (gfc_linebuf): Make line member a gfc_char_t.
2139         (locus): Make nextc member a gfc_char_t.
2140         (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
2141         gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
2142         gfc_peek_ascii_char, gfc_check_digit): New prototypes.
2143         * error.c (print_wide_char): New function.
2144         (show_locus): Use print_wide_char and gfc_wide_strlen.
2145         * io.c (next_char): Use gfc_char_t type.
2146         (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
2147         * match.c (gfc_match_parens, gfc_match_eos,
2148         gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
2149         gfc_match_intrinsic_op, gfc_match_char,  gfc_match_return,
2150         gfc_match_common): Likewise.
2151         * match.h (gfc_match_special_char): Change prototype.
2152         * parse.c (decode_specification_statement, decode_statement,
2153         decode_omp_directive, next_free, next_fixed): Use
2154         gfc_peek_ascii_char and gfc_next_ascii_char.
2155         * primary.c (gfc_check_digit): Change name.
2156         (match_digits, match_hollerith_constant, match_boz_constant,
2157         match_real_constant, next_string_char, match_charkind_name,
2158         match_string_constant, match_logical_constant_string,
2159         match_complex_constant, match_actual_arg, match_varspec,
2160         gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
2161         gfc_next_ascii_char.
2162         * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
2163         gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
2164         gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
2165         wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
2166         gfc_next_ascii_char, gfc_peek_ascii_char):
2167         New functions.
2168         (next_char, gfc_define_undef_line, skip_free_comments,
2169         gfc_next_char_literal, gfc_next_char, gfc_peek_char,
2170         gfc_error_recovery, load_line, preprocessor_line, include_line,
2171         load_file, gfc_read_orig_filename): Use gfc_char_t for source
2172         characters and the {gfc_,}wide_* functions to manipulate wide
2173         strings.
2174
2175 2008-05-06  Tobias Burnus  <burnus@net-b.de>
2176
2177         PR fortran/36117
2178         * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
2179         * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
2180         * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
2181         gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
2182         gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
2183
2184 2008-05-03  Janus Weil  <jaydub66@gmail.com>
2185
2186         * misc.c (gfc_clear_ts): Set interface to NULL.
2187
2188 2008-05-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2189
2190         PR fortran/33268
2191         * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
2192         gfc_expr value union. Add io_kind enum to here from io.c.
2193         * io.c (gfc_free_dt): Free extra_comma.
2194         (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
2195         BT_CHARACTER, resolve to format_expr and set default unit.  Error if
2196         io_kind is M_WRITE. (match_io):  Match the extra comma and set new
2197         pointer, extra_comma.
2198
2199 2008-05-01  Bud Davis  <bdavis9659@sbcglobal.net>
2200
2201         PR35940/Fortran
2202         * simplify.c (gfc_simplify_index): Check for direction argument 
2203         being a constant.
2204
2205 2008-05-01  Janus Weil  <jaydub66@gmail.com>
2206
2207         * gfortran.h (struct gfc_symbol): Moving "interface" member to
2208         gfc_typespec (plus fixing a small docu error).
2209         * interface.c (gfc_procedure_use): Ditto.
2210         * decl.c (match_procedure_decl): Ditto.
2211         * resolve.c (resolve_specific_f0,
2212         resolve_specific_f0, resolve_symbol): Ditto.
2213
2214 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2215
2216         * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
2217         * intrinsic.h (gfc_check_selected_char_kind,
2218         gfc_simplify_selected_char_kind): New prototypes.
2219         * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
2220         * trans.h (gfor_fndecl_sc_kind): New function decl.
2221         * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
2222         * arith.c (gfc_compare_with_Cstring): New function.
2223         * arith.h (gfc_compare_with_Cstring): New prototype.
2224         * check.c (gfc_check_selected_char_kind): New function.
2225         * primary.c (match_string_constant, match_kind_param): Mark
2226         symbols used as literal constant kind param as referenced.
2227         * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
2228         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
2229         * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
2230         * simplify.c (gfc_simplify_selected_char_kind): New function.
2231
2232 2008-04-28  Paul Thomas  <pault@gcc.gnu.org>
2233
2234         PR fortran/35997
2235         * module.c (find_symbol): Do not return a result for a symbol
2236         that has been renamed in another module.
2237
2238 2008-04-26  George Helffrich <george@gcc.gnu.org>
2239
2240         PR fortran/35892
2241         PR fortran/35154
2242         * trans-common.c (create_common):  Add decl to function
2243         chain (if inside one) to preserve identifier scope in debug output.
2244
2245 2008-04-25  Jan Hubicka  <jh@suse.cz>
2246
2247         * trans-decl.c (trans_function_start): Update.
2248
2249 2008-04-25  Tobias Burnus  <burnus@net-b.de>
2250             Daniel Franke <franke.daniel@gmail.com>
2251
2252         PR fortran/35156
2253         * gfortranspec.c (lang_specific_driver): Deprecate
2254         -M option; fix ICE when "-M" is last argument and
2255         make "-M<dir>" work.
2256         * options.c (gfc_handle_module_path_options): 
2257         Use -J instead of -M in error messages.
2258         * invoke.texi: Mark -M as depecated.
2259
2260 2008-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2261             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2262
2263         PR fortran/35994
2264         * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
2265         loop counter offset.
2266
2267 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
2268
2269         * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
2270         * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
2271         (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
2272         (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
2273         (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
2274         * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
2275         (create_common): Don't set TREE_INVARIANT.
2276         * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
2277         * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
2278
2279 2008-04-21  Steve Ellcey  <sje@cup.hp.com>
2280
2281         * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
2282
2283 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
2284
2285         PR fortran/35019
2286         * gfortranspec.c (lookup_option): Properly handle separated arguments
2287         in -J option, print missing argument message when necessary.
2288
2289 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2290
2291         PR fortran/35882
2292         * scanner.c (skip_fixed_comments): Update continue_line when comment is
2293         detected. (gfc_next_char_literal): Likewise.
2294
2295 2008-04-19  Paul Thomas  <pault@gcc.gnu.org>
2296
2297         PR fortran/35944
2298         PR fortran/35946
2299         PR fortran/35947
2300         * trans_array.c (gfc_trans_array_constructor): Temporarily
2301         realign loop, if loop->from is not zero, before creating
2302         the temporary array and provide an offset.
2303
2304         PR fortran/35959
2305         * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
2306         and allow for NULL body.  Change all references from
2307         init_default_dt to gfc_init_default_dt.
2308         * trans.h : Add prototype for gfc_init_default_dt.
2309         * trans-array.c (gfc_trans_deferred_vars): After nullification
2310         call gfc_init_default_dt for derived types with allocatable
2311         components.
2312
2313 2008-04-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2314
2315         PR fortran/35892
2316         * trans-common.c (create_common): Revert patch causing regression.
2317
2318 2008-04-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2319
2320         PR fortran/35724
2321         * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
2322         optional argument attribute.
2323         
2324 2008-04-16  Paul Thomas  <pault@gcc.gnu.org>
2325
2326         PR fortran/35932
2327         * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
2328         is not used, the argument must be converted.
2329
2330 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
2331
2332         PR target/35662
2333         * f95-lang.c (gfc_init_builtin_functions): Make sure
2334         BUILT_IN_SINCOS{,F,L} types aren't varargs.
2335
2336 2008-04-15  Paul Thomas  <pault@gcc.gnu.org>
2337
2338         PR fortran/35864
2339         * expr.c (scalarize_intrinsic_call): Reorder identification of
2340         array argument so that if one is not found a segfault does not
2341         occur.  Return FAILURE if all scalar arguments.
2342
2343 2008-04-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2344             Tobias Burnus  <burnus@net-b.de>
2345
2346         PR fortran/35882
2347         * options.c (gfc_init_options): Set the default maximum continuation
2348         lines to 255 for both free and fixed form source for warnings.
2349         (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
2350         the -std=f95 free form max continuations to 39 for warnings.
2351         * scanner.c (gfc_next_char_literal): Adjust the current_line number only
2352         if it is less than the current locus.
2353
2354 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2355
2356         PR fortran/25829 28655
2357         * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
2358         round, sign, and id. (match_open_element): Match new tags.
2359         (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
2360         for DEFAULT only. Update error messages. (match_dt_element): Fix match
2361         tag for asynchronous. Update error messages. (gfc_free_inquire): Free
2362         new expressions. (match_inquire_element): Match new tags.
2363         (gfc_match_inquire): Add constraint for ID and PENDING.
2364         (gfc_resolve_inquire): Resolve new tags.
2365         * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
2366         mask for ID parameter.
2367         * ioparm.def: Fix order of parameters for pending, round, and sign.
2368         NOTE: These must line up with the definitions in libgfortran/io/io.h. or
2369         things don't work.
2370
2371 2008-04-06  Paul Thomas  <pault@gcc.gnu.org>
2372
2373         PR fortran/35780
2374         * expr.c (scalarize_intrinsic_call): Identify which argument is
2375         an array and use that as the template.
2376         (check_init_expr): Remove tests that first argument is an array
2377         in the call to scalarize_intrinsic_call.
2378
2379 2008-04-06  Tobias Schlüter  <tobi@gcc.gnu.org>
2380
2381         PR fortran/35832
2382         * io.c (io_tag): Add field 'value'.  Split 'spec' field in
2383         existing io_tags.
2384         (match_etag, match_vtag, match_ltag): Split parsing in two steps
2385         to give better error messages.
2386
2387 2008-04-06  Tobias Burnus  <burnus@net-b.de>
2388
2389         * io.c (check_io_constraints): Add constrains. ID= requires
2390         asynchronous= and asynchronous= must be init expression.
2391
2392 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2393
2394         * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
2395
2396 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2397
2398         * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
2399         gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
2400         functions and make them static. Add new gfc_dump_parse_tree
2401         function.
2402         * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
2403         (gfc_status, gfc_status_char): Delete prototypes.
2404         * error.c (gfc_status, gfc_status_char): Remove functions.
2405         * scanner.c (gfc_new_file): Use printf instead of gfc_status.
2406         * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
2407         (gfc_handle_module_path_options): Use gfc_fatal_error instead of
2408         gfc_status and exit.
2409         (gfc_handle_option): Rename verbose into dump_parse_tree.
2410         * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
2411
2412 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2413             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2414
2415         PR fortran/25829 28655
2416         * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
2417         * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
2418         (gfc_open): Add pointers for decimal, encoding, round, sign,
2419         asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
2420         encoding, pending, round, sign, size, id.
2421         (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
2422         asynchronous, blank, decimal, delim, pad, round, sign.
2423         (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
2424         wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
2425         * trans-stmt.h (gfc_trans_wait): New function prototype.
2426         * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
2427         * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
2428         ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
2429         (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
2430         tags. (gfc_resolve_open): Remove comment around check for allowed
2431         values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
2432         ROUND, and SIGN. (match_dt_element): Add matching for new tags.
2433         (gfc_free_wait): New function. (gfc_resolve_wait): New function.
2434         (match_wait_element): New function. (gfc_match_wait): New function.
2435         * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
2436         (resolve_code): Add case for EXEC_WAIT. 
2437         * st.c (gfc_free_statement): Add case for EXEC_WAIT.
2438         * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
2439         Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
2440         (gfc_build_io_library_fndecls): Add function declaration for st_wait.
2441         (gfc_trans_open): Add mask bits for new I/O tags.
2442         (gfc_trans_inquire): Add mask bits for new I/O tags.
2443         (gfc_trans_wait): New translation function.
2444         (build_dt): Add mask bits for new I/O tags.
2445         * match.c (gfc_match_if) Add matcher for "wait".
2446         * match.h (gfc_match_wait): Prototype for new function.
2447         * ioparm.def: Add new I/O parameter definitions.
2448         * parse.c (decode_statement): Add match for "wait" statement.
2449         (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
2450
2451 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
2452
2453         PR fortran/35786
2454         * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
2455         isn't a variable.
2456
2457 2008-04-03  Tom Tromey  <tromey@redhat.com>
2458
2459         * Make-lang.in (fortran_OBJS): New variable.
2460
2461 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
2462
2463         * f95-lang.c (insert_block): Kill.
2464
2465 2008-04-01  George Helffrich <george@gcc.gnu.org>
2466
2467         PR fortran/35154, fortran/23057
2468         * trans-common.c (create_common):  Add decl to function
2469         chain to preserve identifier scope in debug output.
2470
2471 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
2472
2473         * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
2474         * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
2475         gpl.texi.
2476
2477 2008-03-30  Paul Thomas  <pault@gcc.gnu.org>
2478
2479         PR fortran/35740
2480         * resolve.c (resolve_function, resolve_call): If the procedure
2481         is elemental do not look for noncopying intrinsics.
2482
2483 2008-03-29  Paul Thomas  <pault@gcc.gnu.org>
2484
2485         PR fortran/35698
2486         * trans-array.c (gfc_array_init_size): Set 'size' zero if
2487         negative in one dimension.
2488
2489         PR fortran/35702
2490         * trans-expr.c (gfc_trans_string_copy): Only assign a char
2491         directly if the lhs and rhs types are the same.
2492
2493 2008-03-28  Daniel Franke  <franke.daniel@gmail.com>
2494             Paul Richard Thomas <paul.richard.thomas@gmail.com>
2495
2496         PR fortran/34714
2497         * primary.c (match_variable): Improved matching of function 
2498         result variables.
2499         * resolve.c (resolve_allocate_deallocate): Removed checks if
2500         the actual argument for STAT is a variable.
2501
2502 2008-03-28  Tobias Burnus  <burnus@net-b.de>
2503
2504         * symbol.c (gfc_get_default_type): Fix error message; option
2505         -fallow_leading_underscore should be -fallow-leading-underscore
2506
2507 2008-03-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2508
2509         PR fortran/35724
2510         * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
2511         optional argument attribute.
2512
2513 2008-03-27  Tom Tromey  <tromey@redhat.com>
2514
2515         * Make-lang.in: Revert automatic dependency patch.
2516
2517 2008-03-25  Tom Tromey  <tromey@redhat.com>
2518
2519         * Make-lang.in: Remove .o targets.
2520         (fortran_OBJS): New variable.
2521         (fortran/gfortranspec.o): Move to fortran/.  Reduce to variable
2522         setting.
2523         (GFORTRAN_D_OBJS): Update.
2524         (GFORTRAN_TRANS_DEPS): Remove.
2525
2526 2008-03-24  Paul Thomas  <pault@gcc.gnu.org>
2527
2528         PR fortran/34813
2529         * resolve.c (resolve_structure_cons): It is an error to assign
2530         NULL to anything other than a pointer or allocatable component.
2531
2532         PR fortran/33295
2533         * resolve.c (resolve_symbol): If the symbol is a derived type,
2534         resolve the derived type.  If the symbol is a derived type
2535         function, ensure that the derived type is visible in the same
2536         namespace as the function.
2537
2538 2008-03-23  Tobias Schlüter  <tobi@gcc.gnu.org>
2539
2540         * trans.h: Use fold_build in build1_v, build2_v and build3_v
2541         macros.
2542         * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
2543         Don't use build2_v macro.
2544
2545 2008-03-19  Daniel Franke  <franke.daniel@gmail.com>
2546
2547         PR fortran/35152
2548         * interface.c (gfc_procedure_use): Check for keyworded arguments in
2549         procedures without explicit interfaces.
2550
2551 2008-03-16  Paul Thomas  <pault@gcc.gnu.org>
2552
2553         PR fortran/35470
2554         * resolve.c (check_assumed_size_reference):  Only visit the
2555         first reference and look directly at the highest dimension.
2556
2557 2008-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2558
2559         PR fortran/35184
2560         * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
2561         assert.
2562
2563 2008-03-15  Daniel Franke  <franke.daniel@gmail.com>
2564
2565         PR fortran/35584
2566         * resolve.c (resolve_branch): Less strict and pessimistic warning
2567         message.
2568
2569 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
2570
2571         * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
2572         (gfc_be_parse_file): Call clear_binding_stack from here.
2573         (gfc_clear_binding_stack): Rename to clear_binding_stack.
2574                 
2575 2008-03-09  Paul Thomas  <pault@gcc.gnu.org>
2576
2577         PR fortran/35474
2578         * module.c (mio_symtree_ref): After providing a symbol for a
2579         missing equivalence member, resolve and NULL the fixups.
2580
2581 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2582
2583         * invoke.texi (Error and Warning Options): Document
2584         -Wline-truncation.
2585
2586 2008-03-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2587
2588         PR fortran/34956
2589         * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
2590         checking bounds of absent optional arguments.
2591
2592 2008-03-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2593
2594         PR fortran/33197
2595         * intrinsic.c (add_functions): Add simplification routines for
2596         ERF, DERF, ERFC and DERFC.
2597         * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
2598         extensions into Fortran 2008 features.
2599         * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
2600         prototypes.
2601         * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
2602
2603 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2604
2605         PR fortran/33197
2606         * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
2607         ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
2608         ERFC_SCALED, LOG_GAMMA and HYPOT.
2609         * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
2610         gfc_resolve_hypot): New prototypes.
2611         * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
2612         ACOSH, ASINH and ATANH available.
2613         * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
2614         * lang.opt: Add -std=f2008 option.
2615         * libgfortran.h: Define GFC_STD_F2008.
2616         * lang-specs.h: Add .f08 and .F08 file suffixes.
2617         * iresolve.c (gfc_resolve_hypot): New function.
2618         * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
2619         * check.c (gfc_check_hypot): New function.
2620         * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
2621         * options.c (set_default_std_flags): Allow Fortran 2008 by default.
2622         (form_from_filename): Add .f08 suffix.
2623         (gfc_handle_option): Handle -std=f2008 option.
2624         * simplify.c (gfc_simplify_hypot): New function.
2625         * gfortran.texi: Document Fortran 2008 status and file extensions.
2626         * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
2627         as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
2628         ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
2629         * invoke.texi: Document the new -std=f2008 option.
2630
2631 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
2632
2633         * gfortranspec.c (lang_specific_driver): Update copyright notice
2634         dates.
2635
2636 2008-02-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2637
2638         PR fortran/35059
2639         * expr.c (find_array_element): Modify traversing the constructor to
2640         avoid trying to access NULL memory pointed to by next for the
2641         last element. (find_array_section): Exit while loop if cons->next is
2642         NULL.
2643         * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
2644         (gfc_conv_function_call): Same.
2645         * decl.c (gfc_match_implicit): Same.
2646         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
2647
2648 2008-02-28  Daniel Franke  <franke.daniel@gmail.com>
2649
2650         PR fortran/31463
2651         PR fortran/33950
2652         PR fortran/34296
2653         * lang.opt: Added -Wreturn-type.
2654         * options.c (gfc_handle_option): Recognize -Wreturn-type.
2655         * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
2656         where the result value is not set.
2657         (gfc_generate_function_code): Likewise.
2658         (generate_local_decl): Emit warnings for funtions whose RESULT
2659         variable is not set.
2660
2661 2008-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2662
2663         PR fortran/34868
2664         * trans-expr.c (gfc_conv_variable): Don't build indirect
2665         references when explicit interface is mandated.
2666         * resolve.c (resolve_formal_arglist): Set attr.always_explicit
2667         on the result symbol as well as the procedure symbol.
2668
2669 2008-02-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2670
2671         PR fortran/33387
2672         * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
2673         gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2674         gfor_fndecl_math_exponent16.
2675         * f95-lang.c (build_builtin_fntypes): Add new function types.
2676         (gfc_init_builtin_functions): Add new builtins for nextafter,
2677         frexp, ldexp, fabs, scalbn and inf.
2678         * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
2679         (gfc_resolve_scale): Don't convert type of second argument.
2680         (gfc_resolve_set_exponent): Likewise.
2681         (gfc_resolve_size): Don't add hidden arguments.
2682         * trans-decl.c: Remove gfor_fndecl_math_exponent4,
2683         gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2684         gfor_fndecl_math_exponent16.
2685         * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
2686         for scalbn, fraction, nearest, rrspacing, set_exponent and
2687         spacing.
2688         (gfc_conv_intrinsic_exponent): Directly call frexp.
2689         (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
2690         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2691         gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
2692         functions.
2693         (gfc_conv_intrinsic_function): Use the new functions above.
2694
2695 2008-02-26  Tobias Burnus  <burnus@net-b.de>
2696
2697         PR fortran/35033
2698         * interface.c (check_operator_interface): Show better line for error
2699         messages; fix constrains for user-defined assignment operators.
2700         (gfc_extend_assign): Fix constrains for user-defined assignment
2701         operators.
2702
2703 2008-02-26  Tom Tromey  <tromey@redhat.com>
2704
2705         * trans-io.c (set_error_locus): Remove old location code.
2706         * trans-decl.c (gfc_set_decl_location): Remove old location code.
2707         * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
2708         * scanner.c (gfc_gobble_whitespace): Remove old location code.
2709         (get_file): Likewise.
2710         (preprocessor_line): Likewise.
2711         (load_file): Likewise.
2712         (gfc_new_file): Likewise.
2713         * trans.c (gfc_trans_runtime_check): Remove old location code.
2714         (gfc_get_backend_locus): Likewise.
2715         (gfc_set_backend_locus): Likewise.
2716         * data.c (gfc_assign_data_value): Remove old location code.
2717         * error.c (show_locus): Remove old location code.
2718         * gfortran.h (gfc_linebuf): Remove old location code.
2719         (gfc_linebuf_linenum): Remove old-location variant.
2720
2721 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2722
2723         PR fortran/34729
2724         * trans-const.c (gfc_build_string_const): Don't call gettext.
2725         (gfc_build_localized_string_const): New function.
2726         * trans-const.h (gfc_build_localized_string_const): New prototype.
2727         * trans.c (gfc_trans_runtime_check): Use
2728         gfc_build_localized_string_const instead of gfc_build_string_const.
2729         (gfc_call_malloc): Likewise.
2730         (gfc_allocate_with_status): Likewise.
2731         (gfc_allocate_array_with_status): Likewise.
2732         (gfc_deallocate_with_status): Likewise.
2733         (gfc_call_realloc): Likewise.
2734         * trans-io.c (gfc_trans_io_runtime_check): Likewise.
2735
2736 2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>
2737
2738         * arith.c: Update copyright years.
2739         * arith.h: Likewise.
2740         * array.c: Likewise.
2741         * bbt.c: Likewise.
2742         * check.c: Likewise.
2743         * data.c: Likewise.
2744         * data.h: Likewise.
2745         * decl.c: Likewise.
2746         * dependency.c: Likewise.
2747         * dependency.h: Likewise.
2748         * dump-parse-tree.c: Likewise.
2749         * error.c: Likewise.
2750         * expr.c: Likewise.
2751         * gfc-internals.texi: Likewise.
2752         * gfortran.h: Likewise.
2753         * gfortran.texi: Likewise.
2754         * gfortranspec.c: Likewise.
2755         * interface.c: Likewise.
2756         * intrinsic.c: Likewise.
2757         * intrinsic.h: Likewise.
2758         * intrinsic.texi: Likewise.
2759         * invoke.texi: Likewise.
2760         * io.c: Likewise.
2761         * iresolve.c: Likewise.
2762         * iso-c-binding.def: Likewise.
2763         * iso-fortran-env.def: Likewise.
2764         * lang-specs.h: Likewise.
2765         * lang.opt: Likewise.
2766         * libgfortran.h: Likewise.
2767         * match.c: Likewise.
2768         * match.h: Likewise.
2769         * matchexp.c: Likewise.
2770         * misc.c: Likewise.
2771         * module.c: Likewise.
2772         * openmp.c: Likewise.
2773         * options.c: Likewise.
2774         * parse.c: Likewise.
2775         * parse.h: Likewise.
2776         * primary.c: Likewise.
2777         * resolve.c: Likewise.
2778         * scanner.c: Likewise.
2779         * simplify.c: Likewise.
2780         * st.c: Likewise.
2781         * symbol.c: Likewise.
2782         * target-memory.c: Likewise.
2783         * target-memory.h: Likewise.
2784         * trans-array.h: Likewise.
2785         * trans-const.h: Likewise.
2786         * trans-stmt.h: Likewise.
2787         * trans-types.c: Likewise.
2788         * trans-types.h: Likewise.
2789         * types.def: Likewise.
2790
2791 2008-02-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2792
2793         PR fortran/35223
2794         * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
2795         (gfc_simplify_ibset): Remove call to range_check.
2796         (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
2797         (gfc_simplify_real): Add call gfc_clear_ts to initialize the
2798         temporary gfc_typspec variable.
2799
2800 2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>
2801
2802         * trans-array.c (gfc_conv_descriptor_data_get,
2803         gfc_conv_descriptor_data_set_internal,
2804         gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
2805         gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
2806         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2807         gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
2808         gfc_conv_array_transpose, gfc_grow_array,
2809         gfc_trans_array_constructor_subarray,
2810         gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
2811         gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
2812         gfc_conv_array_initializer, gfc_trans_array_bounds,
2813         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2814         gfc_get_dataptr_offset, gfc_conv_array_parameter,
2815         gfc_trans_dealloc_allocated, get_full_array_size,
2816         gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
2817         instead of buildN.
2818         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
2819         gfc_conv_component_ref, gfc_conv_cst_int_power,
2820         gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
2821         * trans-common.c (create_common): Likewise.
2822         * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
2823         Likewise.
2824         * trans-const.c (gfc_conv_constant_to_tree): Likewise.
2825         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
2826         gfc_trans_integer_select, gfc_trans_character_select,
2827         gfc_trans_forall_loop, compute_overall_iter_number,
2828         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
2829         gfc_trans_deallocate): Likewise.
2830         * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
2831         gfc_allocate_with_status, gfc_allocate_array_with_status,
2832         gfc_deallocate_with_status): Likewise.
2833         * f95-lang.c (gfc_truthvalue_conversion): Likewise.
2834         * trans-io.c (set_parameter_const, set_parameter_value,
2835         set_parameter_ref, set_string, set_internal_unit, io_result,
2836         set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
2837         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
2838         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
2839         gfc_generate_function_code): Likewise.
2840         * convert.c (convert): Likewise.
2841         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
2842         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
2843         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
2844         gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
2845         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2846         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
2847         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
2848         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
2849         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
2850         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
2851         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2852         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
2853         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2854         gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
2855         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
2856         gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
2857         gfc_conv_intrinsic_repeat): Likewise.
2858
2859 2008-02-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2860
2861         PR target/25477
2862         * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
2863         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
2864         * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
2865         gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
2866         * trans-decl.c: Likewise.
2867
2868 2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2869
2870         PR fortran/35059
2871         * expr.c (find_array_element): Modify traversing the constructor to
2872         avoid trying to access NULL memory pointed to by next for the
2873         last element. (find_array_section): Exit while loop if cons->next is
2874         NULL.
2875
2876 2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2877
2878         PR fortran/34907
2879         * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
2880         structure.
2881         (gfc_resolve_aint): Likewise.
2882         (gfc_resolve_anint): Likewise.
2883         (gfc_resolve_besn): Likewise.
2884         (gfc_resolve_cshift): Likewise.
2885         (gfc_resolve_ctime): Likewise.
2886         (gfc_resolve_eoshift): Likewise.
2887         (gfc_resolve_index_func): Likewise.
2888         (gfc_resolve_isatty): Likewise.
2889         (gfc_resolve_malloc): Likewise.
2890         (gfc_resolve_rrspacing): Likewise.
2891         (gfc_resolve_scale): Likewise.
2892         (gfc_resolve_set_exponent): Likewise.
2893         (gfc_resolve_spacing): Likewise.
2894         (gfc_resolve_spacing): Likewise.
2895         (gfc_resolve_fgetc): Likewise.
2896         (gfc_resolve_fputc): Likewise.
2897         (gfc_resolve_ftell): Likewise.
2898         (gfc_resolve_ttynam): Likewise.
2899         (gfc_resolve_alarm_sub): Likewise.
2900         (gfc_resolve_mvbits): Likewise.
2901         (gfc_resolve_getarg): Likewise.
2902         (gfc_resolve_signal_sub): Likewise.
2903         (gfc_resolve_exit): Likewise.
2904         (gfc_resolve_flush): Likewise.
2905         (gfc_resolve_free): Likewise.
2906         (gfc_resolve_ctime_sub): Likewise.
2907         (gfc_resolve_fgetc_sub): Likewise.
2908         (gfc_resolve_fputc_sub): Likewise.
2909         (gfc_resolve_fseek_sub): Likewise.
2910         (gfc_resolve_ftell_sub): Likewise.
2911         (gfc_resolve_ttynam_sub): Likewise.
2912
2913 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2914
2915         * gfc-internals.texi: Fix typos and markup nits.
2916         * gfortran.texi: Likewise.
2917         * intrinsic.texi: Likewise.
2918
2919 2008-02-21  Richard Guenther  <rguenther@suse.de>
2920
2921         * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
2922         as unary PAREN_EXPR for real and complex typed expressions.
2923         (gfc_conv_unary_op): Fold the built tree.
2924
2925 2008-02-20  Tobias Burnus  <burnus@net-b.de>
2926
2927         PR fortran/34997
2928         * match.c (gfc_match_name): Improve error message for '$'.
2929
2930 2008-02-19  Daniel Franke  <franke.daniel@gmail.com>
2931
2932         PR fortran/35030
2933         * expr.c (gfc_check_pointer_assign): Add type and kind information
2934         to type-mismatch message.
2935         (gfc_check_assign): Unify error messages.
2936
2937 2008-02-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2938
2939         PR fortran/34952
2940         * gfortran.texi: Create new section for unimplemented extensions.
2941         Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
2942         Remove "smaller projects" list. Fix a few typos.
2943
2944 2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2945
2946         * intrinsic.texi: Rename INDEX node to avoid clashing with
2947         index.html on case-insensitive systems.
2948
2949 2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2950
2951         PR fortran/35150
2952         * trans-expr.c (gfc_conv_function_call): Force evaluation of
2953         se->expr.
2954
2955 2008-02-10  Daniel Franke  <franke.daniel@gmail.com>
2956
2957         PR fortran/35019
2958         * lang.opt: Allow '-J<dir>' next to '-J <dir>', 
2959         likewise '-I <dir>' and '-I<dir>'.
2960
2961 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2962
2963         PR other/35107
2964         * Make-lang.in (f951): Add $(GMPLIBS).
2965
2966 2008-02-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2967
2968         PR fortran/35037
2969         * trans-common.c (build_field): Mark fields as volatile when needed.
2970
2971 2008-02-05  Tobias Burnus  <burnus@net-b.de>
2972
2973         PR fortran/35093
2974         * data.c (gfc_assign_data_value): Only free "size" if
2975         it has not already been freed.
2976
2977 2008-02-05  Paul Thomas  <pault@gcc.gnu.org>
2978
2979         PR fortran/34945
2980         * array.c (match_array_element_spec): Remove check for negative
2981         array size.
2982         (gfc_resolve_array_spec): Add check for negative size.
2983
2984 2008-02-05  Paul Thomas  <pault@gcc.gnu.org>
2985
2986         PR fortran/32315
2987         * data.c (gfc_assign_data_value): Add bounds check for array
2988         references.
2989
2990 2008-02-04  Daniel Franke  <franke.daniel@gmail.com>
2991
2992         * resolve.c (resolve_where): Fix typo.
2993         (gfc_resolve_where_code_in_forall): Likewise.
2994
2995 2008-02-03  Paul Thomas  <pault@gcc.gnu.org>
2996
2997         PR fortran/32760
2998         * resolve.c (resolve_allocate_deallocate): New function.
2999         (resolve_code): Call it for allocate and deallocate.
3000         * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
3001         the checking of the STAT tag and put in above new function.
3002         * primary,c (match_variable): Do not fix flavor of host
3003         associated symbols yet if the type is not known.
3004
3005 2008-01-31  Paul Thomas  <pault@gcc.gnu.org>
3006
3007         PR fortran/34910
3008         * expr.c (gfc_check_assign): It is an error to assign
3009         to a sibling procedure.
3010
3011 2008-01-30  Paul Thomas  <pault@gcc.gnu.org>
3012
3013         PR fortran/34975
3014         * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
3015         delete_symtree to gfc_delete_symtree.
3016         * gfortran.h : Add prototype for gfc_delete_symtree.
3017         * module.c (load_generic_interfaces): Transfer symbol to a
3018         unique symtree and delete old symtree, instead of renaming.
3019         (read_module): The rsym and the found symbol are the same, so
3020         the found symtree can be deleted.
3021
3022         PR fortran/34429
3023         * decl.c (match_char_spec): Remove the constraint on deferred
3024         matching of functions and free the length expression.
3025         delete_symtree to gfc_delete_symtree.
3026         (gfc_match_type_spec): Whitespace.
3027         (gfc_match_function_decl): Defer characteristic association for
3028         all types except BT_UNKNOWN.
3029         * parse.c (decode_specification_statement): Only derived type
3030         function matching is delayed to the end of specification.
3031
3032 2008-01-28  Tobias Burnus  <burnus@net-b.de>
3033
3034         PR libfortran/34980
3035         * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
3036
3037 2008-01-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3038
3039         PR fortran/34990
3040         * array.c (gfc_check_constructor_type): Revert clearing the expression.
3041
3042 2008-01-26  Tobias Burnus  <burnus@net-b.de>
3043
3044         PR fortran/34848
3045         * trans-expr.c (gfc_conv_function_call): Don't call
3046         gfc_add_interface_mapping if the expression is NULL.
3047
3048 2008-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3049
3050         PR fortran/31610
3051         * trans-array.c (gfc_trans_create_temp_array): Remove call to
3052         gcc_assert (integer_zerop (loop->from[n])).
3053
3054 2008-01-25  Daniel Franke  <franke.daniel@gmail.com>
3055
3056         PR fortran/34661
3057         * resolve.c (resolve_where): Added check if user-defined assignment 
3058         operator is an elemental subroutine.
3059         (gfc_resolve_where_code_in_forall): Likewise.
3060
3061 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
3062
3063         PR fortran/33375
3064         PR fortran/34858
3065         * gfortran.h: Revert changes from 2008-01-17.
3066         * match.c: Likewise.
3067         * symbol.c: Likewise.
3068         (gfc_undo_symbols): Undo namespace changes related to common blocks.
3069
3070 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
3071
3072         PR fortran/34202
3073         * data.c (formalize_structure_cons): Skip formalization on
3074         empty structures.
3075
3076 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
3077
3078         * gfortran.texi (OpenMP): Extended existing documentation.
3079         (contributors): Added major contributors of 2008 that were
3080         not listed yet.
3081         (proposed extensions): Removed implemented items.
3082
3083 2008-01-24  Paul Thomas  <pault@gcc.gnu.org>
3084
3085         PR fortran/34872
3086         * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS  is
3087         seen, check for a statement label and, if present, delete it
3088         and set the locus to the start of the statement.
3089
3090 2008-01-22  Paul Thomas  <pault@gcc.gnu.org>
3091
3092         PR fortran/34875
3093         * trans-io.c (gfc_trans_transfer): If the array reference in a
3094         read has a vector subscript, use gfc_conv_subref_array_arg to
3095         copy back the temporary.
3096
3097 2008-01-22  Tobias Burnus  <burnus@net-b.de>
3098
3099         PR fortran/34848
3100         * interface.c (compare_actual_formal): Fix adding type
3101         to missing_arg_type for absent optional arguments.
3102
3103 2008-01-22  Tobias Burnus  <burnus@net-b.de>
3104
3105         PR fortran/34907
3106         * parse.c (parse_spec): Change = into ==.
3107
3108 2008-01-22  Daniel Franke  <franke.daniel@gmail.com>
3109
3110         PR fortran/34915
3111         * expr.c (check_elemental): Fix check for valid data types.
3112
3113 2008-01-22  Tobias Burnus  <burnus@net-b.de>
3114
3115         PR fortran/34899
3116         * scanner.c (load_line): Support <tab><digit> continuation lines.
3117         * invoke.texi (-Wtabs): Document this.
3118
3119 2008-01-22  Paul Thomas  <pault@gcc.gnu.org>
3120
3121         PR fortran/34896
3122         * module.c (read_module): Set use_rename attribute.
3123
3124 2007-01-21  Tobias Burnus  <burnus@net-b.de>
3125
3126         PR fortran/34901
3127         * interface.c (compare_parameter): Improved error message
3128         for arguments of same type and mismatched kinds.
3129
3130 2008-01-20  Paul Thomas  <pault@gcc.gnu.org>
3131
3132         PR fortran/34861
3133         * resolve.c (resolve_entries): Do not do an array bounds check
3134         if the result symbols are the same.
3135
3136         PR fortran/34854
3137         * module.c (read_module) : Hide the symtree of the previous
3138         version of the symbol if this symbol is renamed.
3139
3140 2008-01-20  Paul Thomas  <pault@gcc.gnu.org>
3141
3142         PR fortran/34784
3143         * array.c (gfc_check_constructor_type): Clear the expression ts
3144         so that the checking starts from the deepest level of array
3145         constructor.
3146         * primary.c (match_varspec): If an unknown type is changed to
3147         default character and the attempt to match a substring fails,
3148         change it back to unknown.
3149
3150         PR fortran/34785
3151         * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
3152         NULL for an array constructor, use the cl.length expression to
3153         build it.
3154         (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
3155         a tree assignment.
3156
3157 2008-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
3158
3159         PR fortran/34817
3160         PR fortran/34838
3161         * iresolve.c (gfc_resolve_all):  Remove conversion of mask
3162         argument to kind=1 by removing call to resolve_mask_arg().
3163         (gfc_resolve_any):  Likewise.
3164
3165 2008-01-19  Tobias Burnus  <burnus@net-b.de>
3166
3167         PR fortran/34760
3168         * primary.c (match_variable): Handle FL_UNKNOWN without
3169         uneducated guessing.
3170         (match_variable): Improve error message.
3171
3172 2008-01-18  Tobias Burnus  <burnus@net-b.de>
3173
3174         PR fortran/32616
3175         * interface.c (get_expr_storage_size): Return storage size
3176         for array element designators.
3177         (compare_actual_formal): Reject unequal string sizes for
3178         assumed-shape dummy arguments. And fix error message for
3179         array-sections with vector subscripts.
3180
3181 2008-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3182
3183         PR fortran/34556
3184         * simplify.c (is_constant_array_expr): New static function that returns
3185         true if the given expression is an array and is constant.
3186         (gfc_simplify_reshape): Use new function.
3187
3188 2008-01-17  H.J. Lu  <hongjiu.lu@intel.com>
3189
3190         PR fortran/33375
3191         * symbol.c (free_common_tree): Renamed to ...
3192         (gfc_free_common_tree): This.  Remove static.
3193         (gfc_free_namespace): Updated.
3194
3195         * gfortran.h (gfc_free_common_tree): New.
3196
3197         * match.c (gfc_match_common): Call gfc_free_common_tree () with
3198         gfc_current_ns->common_root and set gfc_current_ns->common_root
3199         to NULL on syntax error.
3200
3201 2008-01-18  Richard Sandiford  <rsandifo@nildram.co.uk>
3202
3203         PR fortran/34686
3204         * trans-expr.c (gfc_conv_function_call): Use proper
3205         type for returned character pointers.
3206
3207 2008-01-17  Paul Thomas  <pault@gcc.gnu.org>
3208
3209         PR fortran/34429
3210         PR fortran/34431
3211         PR fortran/34471
3212         * decl.c : Remove gfc_function_kind_locus and
3213         gfc_function_type_locus. Add gfc_matching_function.
3214         (match_char_length): If matching a function and the length
3215         does not match, return MATCH_YES and try again later.
3216         (gfc_match_kind_spec): The same.
3217         (match_char_kind): The same.
3218         (gfc_match_type_spec): The same for numeric and derived types.
3219         (match_prefix): Rename as gfc_match_prefix.
3220         (gfc_match_function_decl): Except for function valued character
3221         lengths, defer applying kind, type and charlen info until the
3222         end of specification block.
3223         gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
3224         parse.c (decode_specification_statement): New function.
3225         (decode_statement): Call it when a function has kind = -1. Set
3226         and reset gfc_matching function, as function statement is being
3227         matched.
3228         (match_deferred_characteristics): Simplify with a single call
3229         to gfc_match_prefix. Do appropriate error handling. In any
3230         case, make sure that kind = -1 is reset or corrected.
3231         (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
3232         Throw an error if kind = -1 after last specification statement.
3233         parse.h : Prototype for gfc_match_prefix.
3234
3235 2008-01-16  Tobias Burnus  <burnus@net-b.de>
3236
3237         PR fortran/34796
3238         * interface.c (compare_parameter): Allow AS_DEFERRED array
3239         elements and reject attr.pointer array elemenents.
3240         (get_expr_storage_size): Return storage size of elements of
3241         assumed-shape and pointer arrays.
3242
3243 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
3244
3245         * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
3246         for flag_tree_parallelize_loops.
3247
3248 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
3249
3250         PR libfortran/34671
3251         * iresolve.c (gfc_resolve_all):  Call resolve_mask_arg.
3252         (gfc_resolve_any):  Likewise.
3253         (gfc_resolve_count):  Likewise.  Don't append kind of
3254         argument to function name.
3255
3256 2008-01-13  Tobias Burnus  <burnus@net-b.de>
3257
3258         PR fortran/34665
3259         * resolve.c (resolve_actual_arglist): For expressions,
3260         also check for assume-sized arrays.
3261         * interface.c (compare_parameter): Move F2003 character checks
3262         here, print error messages here, reject elements of
3263         assumed-shape array as argument to dummy arrays.
3264         (compare_actual_formal): Update for the changes above.
3265
3266 2008-01-13  Tobias Burnus  <burnus@net-b.de>
3267
3268         PR fortran/34763
3269         * decl.c (contained_procedure): Only check directly preceeding state.
3270
3271 2008-01-13  Tobias Burnus  <burnus@net-b.de>
3272
3273         PR fortran/34759
3274         * check.c (gfc_check_shape): Accept array ranges of
3275         assumed-size arrays.
3276
3277 2008-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3278
3279         PR fortran/34432
3280         * match.c (gfc_match_name): Don't error if leading character is a '(',
3281         just return MATCH_NO.
3282
3283 2008-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3284
3285         PR fortran/34722
3286         * trans-io.c (create_dummy_iostat): Commit the symbol.
3287
3288 2008-01-11  Paul Thomas  <pault@gcc.gnu.org>
3289
3290         PR fortran/34537
3291         * simplify.c (gfc_simplify_transfer): Return NULL if the size
3292         of the element is unavailable and only assign character length
3293         to the result, if 'mold' is constant.
3294
3295 2008-01-10  Paul Thomas  <pault@gcc.gnu.org>
3296
3297         PR fortran/34396
3298         * trans-array.c (gfc_trans_array_ctor_element):  Use gfc_trans_string_copy
3299         to assign strings and perform bounds checks on the string length.
3300         (get_array_ctor_strlen): Remove bounds checking.
3301         (gfc_trans_array_constructor): Initialize string length checking.
3302         * trans-array.h : Add prototype for gfc_trans_string_copy.
3303
3304 2008-01-08  Richard Guenther  <rguenther@suse.de>