OSDN Git Service

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