OSDN Git Service

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