OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2
3         PR fortran/24784
4         PR fortran/28004
5         * trans-decl.c (generate_local_decl): Adjusted warning on unused 
6         dummy arguments, tell middle-end not to emit additional warnings.
7
8 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
9             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
10
11         PR fortran/17711
12         * gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS,
13         INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, 
14         INTRINSIC_LT_OS and INTRINSIC_LE_OS.
15         * arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise.
16         * arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le):
17         Added gfc_intrinsic_op as third argument type.
18         * dump-parse-tree.c (gfc_show_expr): Account for new enum values.
19         * expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise.
20         * interface.c (check_operator_interface): Likewise.
21         (gfc_check_interfaces): Added cross-checks for FORTRAN 77 and 
22         Fortran 90 style operators using new enum values.
23         (gfc_extend_expr): Likewise.
24         (gfc_add_interface): Likewise.
25         * match.c (intrinsic_operators): Distinguish FORTRAN 77 style
26         operators from Fortran 90 style operators using new enum values.
27         * matchexp.c (match_level_4): Account for new enum values.
28         * module.c (mio_expr): Likewise.
29         * resolve.c (resolve_operator): Deal with new enum values, fix
30         inconsistent error messages.
31         * trans-expr.c (gfc_conv_expr_op): Account for new enum values.
32
33 2007-07-08  Tobias Burnus  <burnus@net-b.de>
34
35         PR fortran/32669
36         * interface.c (get_expr_storage_size): Properly obtain lower bound.
37         (compare_actual_formal): Add space before parenthesis.
38
39 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
40
41         PR fortran/25094
42         * resolve.c (resolve_fl_procedure): Added check for PRIVATE types 
43         in PUBLIC interfaces.
44
45 2007-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
46
47         PR fortran/32644
48         * decl.c (match_attr_spec): Don't return MATCH_ERROR if comma found and
49         gfc_match_bind_c does not return MATCH_YES.
50
51 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
52
53         * decl.c, gfortran.h, interface.c, module.c, resolve.c,
54         trans-array.c, trans-decl.c: Fix comment typos.  Follow
55         spelling conventions.
56         * intrinsic.texi: Fix typos.  Follow spelling conventions.
57
58 2007-05-06  Daniel Franke  <franke.daniel@gmail.com>
59
60         PR fortran/32633
61         * symbol.c (save_status): New.
62         * gfortran.h (save_status): Added external declaration.
63         (check_conflict): Check for conflicting explicite SAVE statements
64         only.
65         (gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant.
66         * module.c (ab_attribute, attr_bits): Removed enumerator value 
67         AB_SAVE for save attribute.
68         (mio_symbol_attribute): Import/export the full SAVE status, 
69         removed usage of AB_SAVE.
70         * dump-parse-tree.c (gfc_show_attr): Dump full SAVE status.
71         * decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not
72         already explicit.
73
74 2007-07-05  Daniel Franke  <franke.daniel@gmail.com>
75             Tobias Burnus  <burnus@net-b.de>
76
77         PR fortran/32359
78         * gfortran.h (symbol_attribute): Change save attribute into an enum.
79         * decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT.
80         * symbol.c (gfc_add_save): Check for SAVE_EXPLICIT.
81         * resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT.
82         (resolve_symbol): Allow OMP threadprivate with
83         initialization SAVEd and save_all variable.
84         * trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check.
85
86 2007-07-05  Paul Thomas  <pault@gcc.gnu.org>
87
88         PR fortran/32526
89         * match.c (gfc_match_call): Check, in all cases, that a symbol
90         is neither generic nor a subroutine before trying to add it as
91         a subroutine.
92
93         PR fortran/32613
94         * match.c (gfc_match_do): Reset the implied_index attribute.
95
96 2007-07-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
97
98         PR fortran/31198
99         * trans-intrinsic.c (trans-intrinsic.c): Handle optional
100         arguments correctly for MIN and MAX intrinsics.
101
102 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
103
104         PR fortran/32545
105         * io.c (check_format): Always call gfc_error for errors.
106         (check_format_string): Change type of this function to try and
107         return the result of check_format.
108         (check_io_constraints): Return MATCH_ERROR if check_format_string
109         returns FAILURE.
110
111 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
112
113         PR fortran/32612
114         * decl.c (get_proc_name): Include attr->mod_proc in check for error.
115
116 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
117
118         PR fortran/32432
119         * gfortran.h: Change type of gfc_assign_data_value from void to try.
120         * data.c (gfc_assign_data_value): Return FAILURE if error found.
121         * resolve.c (check_data_variable): If gfc_assign_data_value returns
122         failure, break out of loop and return failure.
123
124 2007-07-03  Christopher D. Rickett  <crickett@lanl.gov>
125
126         PR fortran/32579
127         * symbol.c (gen_cptr_param): Generate C_PTR and C_FUNPTR if necessary.
128         (build_formal_args): Pass intrinsic module symbol id to
129         gen_cptr_param.
130
131 2007-07-03  Tobias Burnus  <burnus@net-b.de>
132
133         PR fortran/25062
134         * resolve.c (resolve_common_blocks): New check function.
135         (resolve_types): Use it.
136
137 2007-07-03  Tobias Burnus  <burnus@net-b.de>
138
139         PR fortran/30940
140         * interface.c (get_sym_storage_size): New function.
141         (get_sym_storage_size): New function.
142         (compare_actual_formal): Enhance sequence association
143         support and improve checking.
144
145 2007-07-03  Janne Blomqvist  <jb@gcc.gnu.org>
146
147         * trans-decl.c (gfc_build_builtin_function_decls): Mark
148         internal_realloc as a malloc function.
149
150 2007-07-03  Tobias Burnus  <burnus@net-b.de>
151
152         PR fortran/20888
153         * resolve.c (resolve_operator): Check for NULL as operand.
154
155 2007-07-02  Tobias Burnus  <burnus@net-b.de>
156
157         * gfortran.texi (Fortran 2003): Add ISO Bind C.
158         * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER,
159         C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics.
160
161 2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>
162
163         * interface.c (gfc_compare_derived_types): Special case for comparing
164         derived types across namespaces.
165         (gfc_compare_types): Deal with BT_VOID.
166         (compare_parameter): Use BT_VOID to accept ISO C Binding pointers.
167         * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind
168         to SCALAR
169         (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and 
170         NULL_FUNPTR.
171         (gfc_conv_expr): Convert expressions for ISO C Binding derived types.
172         * symbol.c (gfc_set_default_type): BIND(C) variables should not be
173         Implicitly declared.
174         (check_conflict): Add BIND(C) and check for conflicts.
175         (gfc_add_explicit_interface): Whitespace.       
176         (gfc_add_is_bind_c): New function.  
177         (gfc_copy_attr): Use it.
178         (gfc_new_symbol): Initialize ISO C Binding objects.
179         (get_iso_c_binding_dt):  New function.
180         (verify_bind_c_derived_type): Ditto.
181         (gen_special_c_interop_ptr): Ditto.
182         (add_formal_arg): Ditto.
183         (gen_cptr_param): Ditto.
184         (gen_fptr_param): Ditto.
185         (gen_shape_param): Ditto.
186         (add_proc_interface): Ditto.
187         (build_formal_args): Ditto.
188         (generate_isocbinding_symbol):  Ditto.
189         (get_iso_c_sym):  Ditto.
190         * decl.c (num_idents_on_line, has_name_equals): New variables.
191         (verify_c_interop_param): New function.
192         (build_sym): Finish binding labels and deal with COMMON blocks.
193         (add_init_expr_to_sym): Check if the initialized expression is
194         an iso_c_binding named constants
195         (variable_decl): Set ISO C Binding type_spec components.
196         (gfc_match_kind_spec): Check match for C interoperable kind.
197         (match_char_spec): Fix comment. Chnage gfc_match_small_int
198         to gfc_match_small_int_expr.  Check for C interoperable kind.
199         (match_type_spec): Clear the current binding label.
200         (match_attr_spec): Add DECL_IS_BIND_C.  If BIND(C) is found, use it
201         to set attributes.
202         (set_binding_label): New function.
203         (set_com_block_bind_c): Ditto.
204         (verify_c_interop): Ditto.
205         (verify_com_block_vars_c_interop): Ditto.
206         (verify_bind_c_sym): Ditto.
207         (set_verify_bind_c_sym): Ditto.
208         (set_verify_bind_c_com_block): Ditto.
209         (get_bind_c_idents): Ditto.
210         (gfc_match_bind_c_stmt): Ditto.
211         (gfc_match_data_decl): Use num_idents_on_line.
212         (match_result): Deal with right paren in BIND(C).
213         (gfc_match_suffix): New function.
214         (gfc_match_function_decl): Use it.  Code is re-arranged to deal with
215         ISO C Binding result clauses.
216         (gfc_match_subroutine):  Deal with BIND(C).
217         (gfc_match_bind_c): New function.
218         (gfc_get_type_attr_spec): New function.  Code is re-arranged in and
219         taken from gfc_match_derived_decl.
220         (gfc_match_derived_decl): Add check for BIND(C).
221         * trans-common.c: Forward declare gfc_get_common.
222         (gfc_sym_mangled_common_id): Change arg from 'const char *name' to
223         'gfc_common_head *com'.  Check for ISO C Binding of the common block.
224         (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME.
225         * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN
226         (bt): Add BT_VOID
227         (sym_flavor): Add FL_VOID.
228         (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum
229         (CInteropKind_t): New struct.
230         (c_interop_kinds_table): Use it.  Declare an array of structs.
231         (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c
232         bitfields.
233         (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members.
234         (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and
235         common_block members.
236         (gfc_common_head): Add binding_label and is_bind_c members.
237         (gfc_gsymbol): Add sym_name, mod_name, and binding_label members.
238         Add prototypes for get_c_kind, gfc_validate_c_kind, 
239         gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value,
240         verify_c_interop, verify_c_interop_param, verify_bind_c_sym,
241         verify_bind_c_derived_type, verify_com_block_vars_c_interop,
242         generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface
243         * iso-c-binding.def: New file. This file contains the definitions
244         of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic
245         module.
246         * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR
247          or C_NULL_FUNPTR expressions.
248         * expr.c (gfc_copy_expr): Add BT_VOID case.  For BT_CHARACTER, the
249         ISO C Binding requires a minimum string length of 1 for '\0'.  
250         * module.c (intmod_sym): New struct.
251         (pointer_info): Add binding_label member.
252         (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p.
253         (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C.
254         (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C".
255         (mio_symbol_attribute): Deal with ISO C Binding attributes.
256         (bt_types): Add "VOID".
257         (mio_typespec): Deal with ISO C Binding components.
258         (mio_namespace_ref): Add intmod variable. 
259         (mio_symbol): Check for symbols from an intrinsic module.
260         (load_commons): Check for BIND(C) common block.
261         (read_module): Read binding_label and use it.
262         (write_common): Add label.  Write BIND(C) info.
263         (write_blank_common): Blank commons are not BIND(C).  Explicitly
264         set is_bind_c=0.
265         (write_symbol): Deal with binding_label.
266         (sort_iso_c_rename_list): New function.
267         (import_iso_c_binding_module): Ditto.
268         (create_int_parameter): Add to args.
269         (use_iso_fortran_env_module): Adjust to deal with iso_c_binding
270         intrinsic module.
271         * trans-types.c (c_interop_kinds_table): new array of structs. 
272         (gfc_validate_c_kind): New function.
273         (gfc_check_any_c_kind): Ditto.
274         (get_real_kind_from_node): Ditto.
275         (get_int_kind_from_node): Ditto.
276         (get_int_kind_from_width): Ditto.
277         (get_int_kind_from_minimal_width): Ditto.
278         (init_c_interop_kinds): Ditto.
279         (gfc_init_kinds): call init_c_interop_kinds.
280         (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers.
281         Adjust handling of BT_DERIVED.
282         (gfc_sym_type): Whitespace.
283         (gfc_get_derived_type):  Account for iso_c_binding derived types
284         * resolve.c (is_scalar_expr_ptr): New function.
285         (gfc_iso_c_func_interface): Ditto.
286         (resolve_function): Use gfc_iso_c_func_interface. 
287         (set_name_and_label): New function.
288         (gfc_iso_c_sub_interface): Ditto.
289         (resolve_specific_s0): Use gfc_iso_c_sub_interface.
290         (resolve_bind_c_comms): New function.
291         (resolve_bind_c_derived_types): Ditto.
292         (gfc_verify_binding_labels): Ditto.
293         (resolve_fl_procedure): Check for ISO C interoperability.
294         (resolve_symbol): Check C interoperability.
295         (resolve_types): Walk the namespace.  Check COMMON blocks.
296         * trans-decl.c (gfc_sym_mangled_identifier):  Prevent the mangling
297         of identifiers that have an assigned binding label.
298         (gfc_sym_mangled_function_id): Use the binding label rather than
299         the mangled name.
300         (gfc_finish_var_decl): Put variables that are BIND(C) into a common
301         segment of the object file, because this is what C would do.
302         (gfc_create_module_variable): Conver to proper types
303         (set_tree_decl_type_code): New function.
304         (generate_local_decl): Check dummy variables and derived types for
305         ISO C Binding attributes.
306         * match.c (gfc_match_small_int_expr): New function.
307         (gfc_match_name_C): Ditto.
308         (match_common_name): Deal with ISO C Binding in COMMON blocks
309         * trans-io.c (transfer_expr):  Deal with C_NULL_PTR or C_NULL_FUNPTR
310         expressions
311         * match.h: Add prototypes for gfc_match_small_int_expr,
312         gfc_match_name_C, match_common_name, set_com_block_bind_c,
313         set_binding_label, set_verify_bind_c_sym,
314         set_verify_bind_c_com_block, get_bind_c_idents,
315         gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c,
316         gfc_get_type_attr_spec
317         * parse.c (decode_statement): Use gfc_match_bind_c_stmt
318         (parse_derived): Init *derived_sym = NULL, and gfc_current_block
319         later for valiadation.
320         * primary.c (got_delim): Set ISO C Binding components of ts.
321         (match_logical_constant): Ditto.
322         (match_complex_constant): Ditto.
323         (match_complex_constant): Ditto.
324         (gfc_match_rvalue): Check for existence of at least one arg for
325         C_LOC, C_FUNLOC, and C_ASSOCIATED.
326         * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts.
327         (get_c_kind): New function.
328
329 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
330
331         PR fortran/32239
332         * trans-expr.c (gfc_conv_power_op): Use builtin_powi for
333         real**int4 powers.
334         * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the
335         builtins table.
336
337 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
338
339         * trans.h: Remove decls for 64-bit allocation functions.
340         * trans-array.c (gfc_grow_array): Always pick the standard realloc
341         function decl.
342         (gfc_array_allocate): Likewise.
343         * trans-decl.c: Remove trees for 64-bit allocation functions.
344         (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit
345         allocations functions, use index_int_type for normal allocation
346         functions.
347
348 2007-06-30  Daniel Franke  <franke.daniel@gmail.com>
349
350         PR fortran/20373
351         * intrinsic.c (add_functions): Additional function types.
352         (gfc_convert_type_warn): Remove intrinsic-flag from
353         conversion functions.
354         * resolve.c (resolve_symbol): Added type checks to 
355         explicitly defined intrinsics.
356
357 2007-06-30  Tobias Burnus  <burnus@net-b.de>
358
359         PR fortran/32555
360         * io.c (check_format): Allow zero to precede the
361         P edit descriptor.
362
363 2007-06-30  Paul Thomas  <pault@gcc.gnu.org>
364
365         PR fortran/32472
366         * simplify.c (gfc_simplify_repeat): Add handling of character
367         literal for first argument.
368
369 2007-06-29  Daniel Franke  <franke.daniel@gmail.com>
370
371         * resolve.c (resolve_operator): Added check whether a user
372         defined operator is available.
373
374 2007-06-29  Daniel Franke <franke.daniel@gmail.com>
375
376         * openmp.c (resolve_omp_clauses): Adjust error message to
377         better reflect the actual requirement.
378
379 2007-06-29  Tobias Burnus  <burnus@net-b.de>
380
381         PR fortran/32483
382         * io.c (format_lex): Fix FMT_ZERO.
383         (check_format,check_format_string,gfc_match_format,
384         check_io_constraints) Additional checking for READ.
385
386 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
387
388         PR other/31400
389         * lang.opt (static-libgfortran): New option.
390         * gfortranspec.c (ADD_ARG_LIBGFORTRAN): New macro.
391         (Option): Add OPTION_static and OPTION_static_libgfortran.
392         (lookup_option): Handle the new -static-libgfortran option.
393         (lang_specific_driver): Check whether -static is passed.
394         Handle the new -static-libgfortran option.
395         * options.c (gfc_handle_option): If -static-libgfortran is
396         passed and isn't supported on this configuration, error out.
397
398 2007-06-27  Daniel Franke  <franke.daniel@gmail.com>
399
400         PR fortran/32467
401         * openmp.c (resolve_omp_clauses): Emit error on allocatable
402         components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE
403         clauses.
404
405 2007-06-25  Paul Thomas  <pault@gcc.gnu.org>
406
407         PR fortran/32464
408         * resolve.c (check_host_association): Return if the old symbol
409         is use associated.  Introduce retval to reduce the number of
410         evaluations of the first-order return value.
411
412         PR fortran/31494
413         * match.c (gfc_match_call): If a host associated symbol is not
414         a subroutine, build a new symtree/symbol in the current name
415         space.
416
417 2007-06-24  Tobias Burnus  <burnus@net-de>
418
419         PR fortran/32460
420         * interface.c (gfc_compare_derived_types): Add access check.
421         * symbol.c (gfc_find_component): Ditto.
422         (gfc_set_component_attr,gfc_get_component_attr) Copy access state.
423         * dump-parse-tree.c (gfc_show_components): Dump access state.
424         * gfortran.h (struct gfc_component): Add gfc_access.
425         * module.c (mio_component): Add access state.
426         * (gfc_match_structure_constructor): Check for private access state.
427
428 2007-06-24  Paul Thomas  <pault@gcc.gnu.org>
429
430         PR fortran/32298
431         PR fortran/31726
432         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Calculate
433         the offset between the loop counter and the position as
434         defined. Add the offset within the loop so that the mask acts
435         correctly.  Do not advance the location on the basis that it
436         is zero.
437
438 2007-06-22  Daniel Franke  <franke.daniel@gmail.com>
439
440         PR fortran/31473
441         * symbol.c (gfc_copy_attr): Emit errors for duplicate 
442         EXTERNAL/INTRINSIC statements.
443
444 2007-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
445
446         PR fortran/32360
447         * expr.c (gfc_check_assign): If the rvalue expression type is NULL_EXPR,
448         check to see if the lvalue has attribute pointer and data.  
449
450 2007-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
451
452         PR fortran/31162
453         * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using
454         gfc_notify_standard. (gfc_resolve_iterator): Remove check.
455         (resolve_branch): Change "Obsolete" to "Deleted feature".
456         * io.c (resolve_tag): Ditto.
457         * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto.
458
459 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
460
461         PR fortran/32361
462         * match.c (gfc_match_common): If the symbol value expression type is
463         NULL_EXPR, don't error if previously initialized.
464
465 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
466
467         PR fortran/25061
468         * decl.c (get_proc_name) Check symbol for generic interface
469         and issue an error.
470
471 2007-06-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
472         Richard Guenther  <rguenther@suse.de>
473
474         PR fortran/32140
475         * trans.c (gfc_build_addr_expr): Use the correct types.
476
477 2007-06-19  Paul Thomas  <pault@gcc.gnu.org>
478
479         PR fortran/20863
480         PR fortran/20882
481         * resolve.c (resolve_code): Use gfc_impure_variable as a
482         condition for rejecting derived types with pointers, in pure
483         procedures.
484         (gfc_impure_variable): Add test for dummy arguments of pure
485         procedures; any for functions and INTENT_IN for subroutines.
486
487         PR fortran/32236
488         * data.c (gfc_assign_data_value): Change the ICE on an array
489         reference initializer not being an array into an error and
490         clear init to prevent a repetition of the error.
491
492 2007-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
493
494         * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
495         environment variables. Fix documentation for
496         GFORTRAN_UNBUFFERED_ALL environment variable.
497
498 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
499
500         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
501         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition.
502         * trans-expr.c (gfc_trans_string_copy): Create
503         POINTER_PLUS_EXPR instead of a PLUS_EXPR
504         for pointer types.
505
506 2007-06-14  Paul Thomas  <pault@gcc.gnu.org>
507
508         PR fortran/32302
509         * trans-common.c (build_common_decl): If resizing of common
510         decl is needed, update the TREE_TYPE.
511
512 2007-06-13  Tobias Burnus  <burnus@net-b.de>
513
514         PR fortran/32323
515         * interface.c (has_vector_section): New.
516         (compare_actual_formal): Check for array sections with vector subscript.
517
518 2007-06-12  Dirk Mueller  <dmueller@suse.de>
519
520         * trans-stmt.c (gfc_trans_call): fix gcc_assert to
521         a comparison, not an assignment.
522
523 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
524
525         * trans-common.c (create_common): Initialize 'field_init'.
526
527 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
528
529         PR fortran/29786
530         PR fortran/30875
531         * trans-common.c (get_init_field): New function.
532         (create_common): Call get_init_field for overlapping
533         initializers in equivalence blocks.
534         * resolve.c (resolve_equivalence_derived, resolve_equivalence):
535         Remove constraints on initializers in equivalence blocks.
536         * target-memory.c (expr_to_char, gfc_merge_initializers):
537         New functions.
538         (encode_derived): Add the bit offset to the byte offset to get
539         the total offset to the field.
540         * target-memory.h : Add prototype for gfc_merge_initializers.
541
542 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
543
544         * trans-types.c (gfc_signed_type): Remove.
545         * trans-types.h (gfc_signed_type): Remove.
546         * f95-lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
547
548 2007-06-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
549
550         * trans-intrinsic.c: Revert Lee's 2007-06-04 patch.
551
552 2007-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
553             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
554
555         PR fortran/32223
556         * match.c (gfc_match_special_char): New function.  Match special char.
557         Add handling '\0'.
558         * match.h: Add prototype.
559         * io.c (next_char): Use it.
560         * primary.c (next_string_char): Ditto.
561
562 2007-06-06  Steven G. Kargl  <kargl@gcc.gnu.org>
563
564         * decl.c: Miscellaneous whitespace fixes.
565         * expr.c: Likewise.
566         * gfortran.h: Likewise.
567         * interface.c : Likewise.
568         * io.c: Likewise.
569         * match.c: Likewise.
570         * match.h: Likewise.
571         * module.c: Likewise.
572         * parse.c: Likewise.
573         * resolve.c: Likewise.
574         * symbol.c: Likewise.
575         * trans-array.c: Likewise.
576         * trans-common.c: Likewise.
577         * trans-decl.c: Likewise.
578         * trans-intrinsic.c: Likewise.
579         * trans-io.c: Likewise.
580         * trans-stmt.c: Likewise.
581         * trans-types.c: Likewise.
582
583 2007-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
584
585         PR fortran/18923
586         * parse.c (decode_statement): Don't call gfc_undo_symbols on MATCH_ERROR
587         for ST_FUNCTION since it is called in reject_statement.
588         (parse_contained): If error, loop back after reject_statement and try
589         again.  Free the namespace if an error occured.
590
591 2007-06-04 Lee Millward <lee.millward@codesourcery.com>
592
593         * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
594         to operate on a stack allocated array for the intrinsic arguments
595         instead of creating a TREE_LIST. Add two new parameters for the
596         array and the number of elements. Update all callers to allocate
597         an array of the correct length to pass in. Update comment.
598         (gfc_intrinsic_argument_list_length): New function.
599         (gfc_conv_intrinsic_mnimax): Call it.
600         (gfc_conv_intrinsic_merge): Likewise.
601         (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
602         constructors.
603         (gfc_conv_intrinsic_cmplx): Likewise.
604         (gfc_conv_intrinsic_ctime): Likewise.
605         (gfc_covn_intrinsic_fdate): Likewise.
606         (gfc_conv_intrinsic_ttynam): Likewise.
607         (gfc_conv_intrinsic_ishftc): Likewise.
608         (gfc_conv_intrinsic_index): Likewise.
609         (gfc_conv_intrinsic_scan): Likewise.
610         (gfc_conv_intrinsic_verify): Likewise.
611         (gfc_conv_intrinsic_trim): Likewise.
612         (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
613         (gfc_conv_intrinsic_exponent): Likewise.
614         (gfc_conv_intrinsic_bound): Likewise.
615         (gfc_conv_intrinsic_abs): Likewise.
616         (gfc_conv_intrinsic_mod): Likewise.
617         (gfc_conv_intrinsic_sign): Likewise.
618         (gfc_conv_intrinsic_len): Likewise.
619         (gfc_conv_intrinsic_adjust): Likewise.
620         (gfc_conv_intrinsic_si_kind): Likewise.
621
622 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
623
624         * trans-array.c (gfc_conv_array_parameter): Initialize tmp.
625
626 2007-05-31  Richard Guenther  <rguenther@suse.de>
627
628         * trans-expr.c (gfc_conv_expr_op): Use zero constant
629         that matches the lse type.
630         (gfc_trans_string_copy): Use sizetype zero constant.
631         * intrinsic.c (add_functions): The sizeof intrinsic has
632         index type result.
633         * trans-types.c (gfc_get_dtype): Convert size to index
634         type before shifting.
635         * trans-array.c (gfc_trans_array_constructor_value): Use
636         index type for offset computation.
637         * trans-intrinsic.c (gfc_conv_associated): Use correct type
638         for zero constant.
639
640 2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
641
642         PR fortran/32156
643         * trans-array.c (gfc_trans_array_constructor): Treat the case
644         where the ss expression charlen is missing.
645
646 22007-05-31  Paul Thomas  <pault@gcc.gnu.org>
647
648         PR fortran/32103
649         * module.c (mio_symtree_ref): If an equivalence group member
650         is not used, give it a hidden symbol and set the pointer_info.
651         (load_equiv): Only free the equivalence if none of the members
652         are used.
653
654 2007-05-29  Daniel Franke  <franke.daniel@gmail.com>
655
656         * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id',
657         added missing GFC_ISYM_* enumerators, ordered alphabetically.
658         (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'.
659         (gfc_find_subroutine): New prototype.
660         * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers.
661         (find_subroutine): Renamed to 'gfc_find_subroutine', removed static.  
662         * dependency.c: Changed usage of isym->generic_id to isym->id.  
663         * openmp.c: Likewise.  
664         * resolve.c: Likewise.  
665         * trans-array.c: Likewise.  
666         * trans-expr.c: Likewise.  
667         * trans-intrinsic.c: Likewise.  
668         * trans-openmp.c: Likewise.
669
670 2007-05-28  Tobias Schlüter  <tobi@gcc.gnu.org>
671
672         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF.
673         * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic.
674         * intrinsic.h (gfc_check_sizeof): Add prototype of ...
675         * check.c (gfc_check_sizeof): .. new function.
676         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function.
677         (gfc_conv_intrinsic_strcmp): Whitespace fix.
678         (gfc_conv_intrinsic_array_transfer): Remove double initialization,
679         use fold_build. where appropriate.
680         (gfc_conv_intrinsic_function): Add case for SIZEOF.
681         * intrinsic.texi: Add documentation for SIZEOF.
682
683 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
684
685         * trans-array.c (gfc_conv_expr_descriptor): Edit comment.
686
687 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
688
689         PR fortran/31972
690         * target-memory.c (gfc_target_expr_size): Add handling
691         for size of BT_HOLLERITH variables.
692         * check.c (gfc_check_transfer): Reject BT_HOLLERITH
693         variables in MOLD argument of TRANSFER.
694
695 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
696
697         * gfortran.h (gfc_expr): Remove from_H, add "representation"
698         struct.
699         * primary.c (match_hollerith_constant): Store the representation
700         of the Hollerith in representation, not in value.character.
701         * arith.c: Add dependency on target-memory.h.
702         (eval_intrinsic): Remove check for from_H.
703         (hollerith2representation): New function.
704         (gfc_hollerith2int): Determine value of the new constant.
705         (gfc_hollerith2real): Likewise.
706         (gfc_hollerith2complex): Likewise.
707         (gfc_hollerith2logical): Likewise.
708         (gfc_hollerith2character): Point both representation.string and
709         value.character.string at the value string.
710         * data.c (create_character_initializer): For BT_HOLLERITH
711         rvalues, get the value from the representation rather than
712         value.character.
713         * expr.c (free_expr0): Update handling of BT_HOLLERITH values
714         and values with representation.string.
715         (gfc_copy_expr): Likewise.
716         * intrinsic.c (do_simplify): Remove special treatement of
717         variables resulting from Hollerith constants.
718         * dump-parse-trees.c (gfc_show_expr): Update handling of
719         Holleriths.
720         * trans-const.c (gfc_conv_constant_to_tree): Replace from_H
721         check with check for representation.string; get Hollerith
722         representation from representation.string, not value.character.
723         * trans-expr.c (is_zero_initializer_p): Replace from_H check
724         with check for representation.string.
725         * trans-stmt.c (gfc_trans_integer_select): Use
726         gfc_conv_mpz_to_tree for case values, so as to avoid picking up
727         the memory representation if the case is given by a transfer
728         expression.
729         * target-memory.c (gfc_target_encode_expr): Use the known memory
730         representation rather than the value, if it exists.
731         (gfc_target_interpret_expr): Store the memory representation of
732         the interpreted expression as well as its value.
733         (interpret_integer): Move to gfc_interpret_integer, make
734         non-static.
735         (interpret_float): Move to gfc_interpret_float, make non-static.
736         (interpret_complex): Move to gfc_interpret_complex, make
737         non-static.
738         (interpret_logical): Move to gfc_interpret_logical, make
739         non-static.
740         (interpret_character): Move to gfc_interpret_character, make
741         non-static.
742         (interpret_derived): Move to gfc_interpret_derived, make
743         non-static.
744         * target-memory.h: Add prototypes for newly-exported
745         gfc_interpret_* functions.
746
747 2007-05-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
748
749         PR fortran/31812
750         * parse.c (next_statement): Warn for truncated lines if source is free
751         form.
752
753 2007-05-27 Paul Thomas  <pault@gcc.gnu.org>
754            Tobias Burnus  <burnus@net-b.de>
755
756         PR fortran/32088
757         * symbol.c (gfc_check_function_type): Copy dimensions of
758           result variable.
759         * resolve.c (resolve_contained_fntype): Improve symbol output in
760           the error message.
761
762 2007-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
763
764         PR fortran/31813
765         * io.c (check_format): Add warning for H specifier in format.
766         
767 2007-05-26  Tobias Burnus  <burnus@net-b.de>
768
769         * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and
770         GFORTRAN_ERROR_BACKTRACE environment variables.
771
772 2007-05-26  Paul Thomas  <pault@gcc.gnu.org>
773
774         PR fortran/31219
775         * trans.h : Add no_function_call bitfield to gfc_se structure.
776         Add stmtblock_t argument to prototype of get_array_ctor_strlen.
777         * trans-array.c (get_array_ctor_all_strlen): New function.
778         (get_array_ctor_strlen): Add new stmtblock_t argument and call
779         new function for character elements that are not constants,
780         arrays or variables.
781         (gfc_conv_array_parameter): Call get_array_ctor_strlen to get
782         good string length.
783         * trans-intrinsic (gfc_conv_intrinsic_len): Add new argument
784         to call of get_array_ctor_strlen.
785
786 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
787
788         * intrinsic.texi: Fix typos.
789
790 2007-05-25  Paul Thomas  <pault@gcc.gnu.org>
791
792         PR fortran/32047
793         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Change
794         order in logic under EXPR_FUNCTION to handle functions with
795         no arguments.
796
797 2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
798
799         PR fortran/31716
800         * array.c (spec_dimen_size): Test for correct BT_INTEGER type. 
801
802 2007-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
803
804         PR fortran/32046
805         * trans-expr.c (gfc_trans_zero_assign): Convert the result of
806         TYPE_SIZE_UNIT into a signed type.
807         (gfc_trans_array_copy):  Likewise.
808         (gfc_trans_array_constructor_copy): Likewise.
809         * trans-array.c (gfc_trans_create_temp_array): Likewise.
810         (gfc_grow_array): Likewise.
811         (gfc_array_init_size): Likewise.
812         (gfc_duplicate_allocatable): Likewise.
813         * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise.
814
815 2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
816
817         PR fortran/18923
818         * resolve.c (resolve_function): Don't call resolve_global_procedure if
819         there is no name. Delete duplicated statement in ELSE clause.
820
821 2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
822
823         PR fortran/31627
824         * trans-array.c (gfc_trans_array_bound_check): Take extra argument to
825         indicate whether we should check the upper bound in that dimension.
826         (gfc_conv_array_index_offset): Check only the lower bound of the
827         last dimension for assumed-size arrays.
828         (gfc_conv_array_ref): Likewise.
829         (gfc_conv_ss_startstride): Likewise.
830
831 2007-05-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
832             Daniel Franke  <franke.daniel@gmail.com>
833
834         PR fortran/32002
835         * resolve.c (resolve_actual_arglist): Resolve actual argument after
836         being identified as variable.
837
838 2007-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
839
840         PR fortran/32027
841         * trans-stmt.c (gfc_trans_do): Fix the value of loop variable
842         when the loop ends.
843
844 2007-05-21  H.J. Lu  <hongjiu.lu@intel.com>
845
846         * trans-stmt.c (gfc_trans_do): Fix a typo in comment.
847
848 2007-05-21  Paul Thomas  <pault@gcc.gnu.org>
849
850         PR fortran/31867
851         PR fortran/31994
852         * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored
853         offset for non-descriptor, source arrays and correct for stride
854         not equal to one before writing to field of output descriptor.
855
856 2007-05-20  Daniel Franke  <franke.daniel@gmail.com>
857
858         PR fortran/32001
859         * check.c (check_rest): Improved argument conformance check and 
860         fixed error message generation.
861
862 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
863
864         PR fortran/30820
865         * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o,
866         simplify.o and trans-common.o.
867
868 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
869
870         PR fortran/31974
871         * trans-array.c (gfc_trans_auto_array_allocation): Avoid
872         multiplication of mismatched types.
873
874 2007-05-18  Daniel Franke  <franke.daniel@gmail.com>
875
876         PR fortran/24633
877         * symbol.c (gfc_add_flavor): Add the NAME to error message if
878         available.
879
880 2007-05-15  Daniel Franke  <franke.daniel@gmail.com>
881
882         PR fortran/31919
883         PR fortran/31929
884         PR fortran/31930
885         * intrinsic.c (check_specific): Check elemental intrinsics for
886         rank and shape.
887         (add_functions): Fixed dummy argument names of BESJN and BESYN.
888         Fixed elemental status of MCLOCK and MCLOCK8.
889         * check.c (check_rest): Added check for array conformance.
890         (gfc_check_merge): Removed check for array conformance.
891         (gfc_check_besn): Removed check for scalarity.
892         * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos.
893         (BESJN, BESYN): Clarified documentation.
894
895 2007-05-17  Tobias Burnus  <burnus@net-b.de>
896
897         * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
898
899 2007-05-16  Brooks Moses  <brooks.moses@codesourcery.com>
900
901         PR fortran/18769
902         PR fortran/30881
903         PR fortran/31194
904         PR fortran/31216
905         PR fortran/31427
906         * target-memory.c: New file.
907         * target-memory.h: New file.
908         * simplify.c: Add #include "target-memory.h".
909         (gfc_simplify_transfer): Implement constant-
910         folding for TRANSFER intrinsic.
911         * Make-lang.in: Add dependencies on new target-memory.* files.
912
913 2007-05-15  Paul Brook  <paul@codesourcery.com>
914
915         * trans-types.c (gfc_type_for_size): Handle signed TImode.
916
917 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
918
919         PR fortran/30723
920         * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64,
921         gfor_fndecl_internal_free): Remove prototypes.
922         (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes.
923         * trans.c (gfc_call_malloc, gfc_call_free): New functions.
924         * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free
925         and __builtin_malloc builtins.
926         * trans-decl.c (gfor_fndecl_internal_malloc,
927         gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove.
928         (gfor_fndecl_os_error): Add.
929         (gfc_build_builtin_function_decls): Don't create internal_malloc,
930         internal_malloc64 and internal_free library function declaration.
931         Create os_error library call function declaration.
932         * trans-array.c (gfc_trans_allocate_array_storage,
933         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
934         gfc_conv_array_parameter, gfc_duplicate_allocatable): Use
935         gfc_call_malloc and gfc_call_free instead of building calls to
936         internal_malloc and internal_free.
937         * trans-expr.c (gfc_conv_string_tmp): Likewise.
938         * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp,
939         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
940         gfc_trans_where_2: Likewise.
941         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
942         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
943         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise.
944
945 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
946
947         PR fortran/31725
948         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
949         only once.
950
951 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
952
953         * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
954         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
955         instead of gfc_unsigned_type.
956         * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
957         gfc_unsigned_type.
958         * trans-types.c (gfc_unsigned_type): Remove.
959         * trans-types.h (gfc_unsigned_type): Remove.
960
961 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
962
963         PR fortran/30746
964         * resolve.c (check_host_association): New function that detects
965         incorrect host association and corrects it.
966         (gfc_resolve_expr): Call the new function for variables and
967         functions.
968         * match.h : Remove prototype for gfc_match_rvalue.
969         * gfortran.h : Add prototype for gfc_match_rvalue.
970
971 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
972
973         PR fortran/30876
974         * trans-expr.c (gfc_conv_function_call): Reduce indirection for
975         direct assignments of recursive array valued functions.
976         * primary.c (gfc_match_rvalue): Correct error for recursive
977         function calls such that directly recursive calls of scalar
978         function without an explicit result are disallowed.
979
980 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
981
982         PR fortran/30878
983         * resolve.c (resolve_fl_namelist): It is not an error if the
984         namelist element is the result variable of the enclosing
985         function.  Search for the symbol in current and all parent
986         namespaces for a potential conflict.
987         * symbol.c (check_conflict): Remove the conflict between
988         'in_namelist' and 'FL_PROCEDURE' because the symbol info
989         is not available to exclude function result variables.
990         * trans-io.c (nml_get_addr_expr): Use the fake result decl
991         if the symbol is an implicit result variable.
992
993 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
994
995         PR fortran/31474
996         * decl.c (get_proc_name): If an entry has already been declared
997         as a module procedure, pick up the symbol and the symtree and
998         use them for the entry.
999
1000 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
1001
1002         PR fortran/31630
1003         * resolve.c (resolve_symbol): Remove the flagging mechanism from the
1004         formal namespace resolution and instead check that the formal
1005         namespace is not the current namespace.
1006
1007 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
1008
1009         PR fortran/31692
1010         * trans-array.c (gfc_conv_array_parameter): Convert full array
1011         references to the result of the procedure enclusing the call.
1012
1013 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
1014
1015         PR fortran/29397
1016         PR fortran/29400
1017         * decl.c (add_init_expr_to_sym): Expand a scalar initializer
1018         for a parameter array into an array expression with the right
1019         shape.
1020         * array.c (spec_dimen_size): Remove static attribute.
1021         * gfortran.h : Prototype for spec_dimen_size.
1022
1023 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1024
1025         PR fortran/31399
1026         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
1027
1028 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1029
1030         PR fortran/31764
1031         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
1032         even for non constant arguments.
1033
1034 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1035             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1036
1037         PR fortran/31201
1038         * gfortran.h: Add runtime error codes from libgfortran.h. Define
1039         MAX_UNIT_NUMBER.
1040         * trans.c (gfc_trans_runtime_check): Update the format of runtime error
1041         messages to match library runtime errors.  Use call to new library
1042         function runtime_error_at().
1043         * trans.h: Add prototype for new function gfc_trans_io_runtime_check.
1044         Add declaration for library functions runtime_error_at and
1045         generate_error.
1046         * trans_io.c (gfc_trans_io_runtime_check): New function.
1047         (set_parameter_value): Add error checking for UNIT numbers.
1048         (set_parameter_ref): Initialize the users variable to zero. 
1049         (gfc_trans_open): Move setting of unit number to after setting of common
1050         flags so that runtime error trapping can be detected.
1051         (gfc_trans_close): Likewise. (build_filepos): Likewise.
1052         (gfc_trans_inquire): Likewise. (build_dt): Likewise.
1053         * trans-decl.c: Add declarations for runtime_error_at and
1054         generate_error. (gfc_build_builtin_function_decls): Build function
1055         declarations for runtime_error_at and generate_error.
1056
1057 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
1058
1059         PR fortran/31540
1060         * resolve.c (resolve_fl_procedure): Resolve constant character
1061         lengths.
1062
1063 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1064
1065         PR fortran/31251
1066         * decl.c (match_char_spec): Add check for invalid character lengths.
1067
1068 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
1069
1070         * intrinsic.texi (CMPLX): Document result kind.
1071         (COMPLEX): Add documentation.
1072
1073 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
1074
1075         PR fortran/31760
1076         * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
1077         by gfc_check_fn_r to avoid checks for scalarity.
1078         * check.c (gfc_check_besn): Removed check for scalarity.
1079         (gfc_check_g77_math1): Removed.
1080         * intrinsic.h (gfc_check_g77_math1): Removed.
1081
1082 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
1083
1084         * check.c (gfc_check_fseek_sub): Fixed typo.
1085
1086 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
1087
1088         PR fortran/22359
1089         * intrinsic.c (add_subroutines): Added FSEEK.
1090         * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
1091         * iresolve.c (gfc_resolve_fseek_sub): New.
1092         * check.c (gfc_check_fseek_sub): New.
1093         * intrinsic.texi (FSEEK): Updated.
1094
1095 2007-05-04  Tobias Burnus  <burnus@net-b.de>
1096
1097         PR fortran/31803
1098         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
1099
1100 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1101
1102         PR fortran/31251
1103         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
1104
1105 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1106
1107         PR fortran/31781
1108         * simplify.c (gfc_simplify_repeat): Don't put function call with
1109         side effect in a gcc_assert().
1110
1111 2007-05-04  Tobias Burnus  <burnus@net-b.de>
1112
1113         PR fortran/25071
1114         * interface.c (compare_actual_formal): Check character length.
1115
1116 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1117
1118         PR fortran/31732
1119         * dependency.c (gfc_full_array_ref_p):  If the reference is
1120         to a single element, check that the array has a single
1121         element and that the correct element is referenced.
1122
1123 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
1124
1125         * intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
1126         (add_subroutines): Replaced magic numbers in function calls by
1127         ELEMENTAL and NOT_ELEMENTAL respectively.
1128         * intrinsic.texi (MVBITS): Changed class to elemental subroutine.
1129         (RANDOM_NUMBER): Changed class to subroutine.
1130         (HUGE, TINY): Changed class to inquiry function.
1131
1132 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
1133
1134         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
1135         (gfc_conv_tree_to_mpz): New function.
1136         (gfc_conv_mpfr_to_tree): Use real_from_mpfr.
1137         (gfc_conv_tree_to_mpfr): New function.
1138         * trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
1139         (gfc_conv_tree_to_mpfr): New prototype.
1140
1141 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
1142
1143         * intrinsic.texi (IERRNO): Changed class to non-elemental function.
1144         (LOG10): Removed COMPLEX as accepted argument type.
1145         (NEW_LINE): Changed class from elemental to inquiry function.
1146         (SIGN): Removed requirement of scalar arguments.
1147         (SNGL): Changed class to elemental function.
1148
1149 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1150
1151         PR fortran/31591
1152         * simplify.c (simplify_bound_dim): New function.
1153         (simplify_bound): Use the above. Perform simplification of LBOUND
1154         and UBOUND when DIM argument is not present.
1155
1156 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
1157
1158         * gfortran.texi: Cleaned up keyword index.
1159         * invoke.texi: Likewise.
1160         * intrinsic.texi: Likewise.
1161                         
1162 2007-04-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1163
1164         PR fortran/31645
1165         * scanner.c (load_file): Discard the byte order mark if one is
1166         found on the first non-preprocessor line of a file.
1167
1168 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
1169
1170         PR fortran/31711
1171         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
1172         whenever a dependency is found.
1173
1174 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
1175
1176         * options.c (gfc_handle_option): Ensure requested free form line
1177         length is not too small.
1178
1179 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
1180
1181         * intrinsic.texi (Transfer): Improve documentation.
1182
1183 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
1184
1185         * gfortran.texi (Option Index): Add @samp as needed.
1186
1187 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
1188
1189         * gfortran.texi: Added node and menu entry for an option index.
1190         * invoke.texi: Moved command line option related entries of the concept 
1191         index to the option index.
1192
1193 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
1194
1195         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
1196         XOR): Fixed examples.
1197
1198 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
1199
1200         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
1201         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
1202         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
1203
1204 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
1205
1206         * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, 
1207         SIZE, TRANSPOSE, TRIM, VERIFY): New.
1208         (ADJUSTL, ADJUSTR, INDEX): Added cross references.
1209         (INT, INT2, INT8, LONG): Enabled section header.
1210
1211 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
1212
1213         * module.c (module_char): Replace fgetc() with
1214         getc(). 
1215         (write_char): Replace fputc() with putc().
1216         * scanner.c (load_line): Replace fgetc() with getc().
1217         (gfc_read_orig_filename): Likewise.
1218
1219 2007-04-25  Tobias Burnus  <burnus@net-b.de>
1220
1221         PR fortran/31668
1222         * error.c (error_print): Fix %% support.
1223         * intrinsic.c (sort_actual): Improve error message.
1224         * resolve.c (resolve_actual_arglist): Allow %VAL for
1225         interfaces defined in the module declaration part.
1226
1227 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1228
1229         PR libfortran/31299
1230         * intrinsic.texi (GETLOG): Update documentation to reflect
1231         library changes.
1232
1233 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1234
1235         PR fortran/31587
1236         * module.c (write_char): Add character to the MD5 buffer.
1237         (read_md5_from_module_file): New function.
1238         (gfc_dump_module): Compute MD5 for new module file. Call
1239         read_md5_from_module_file. Only overwrite old module file
1240         if the new MD5 is different.
1241
1242 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
1243
1244         PR fortran/31630
1245         * resolve.c (resolve_symbol): Allow resolution of formal
1246         namespaces nested within formal namespaces coming from modules.
1247
1248         PR fortran/31620
1249         * trans-expr.c (gfc_trans_assignment): Make the call to
1250         gfc_trans_zero_assign conditional on the lhs array ref being
1251         the only reference.
1252
1253 2007-04-23  Tobias Burnus  <burnus@net-b.de>
1254
1255         * primary.c (match_integer_constant): Mention -fno-range-check
1256         in the error message.
1257
1258 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1259
1260         PR fortran/31495
1261         * scanner.c (load_line):  Remove check for comment after ampersand and
1262         adjust tracking of ampersand.
1263
1264 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1265
1266         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
1267         instead of checking GIMPLE_STMT_P in chain_next.
1268
1269 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
1270
1271         * trans-types.h (gfc_packed): New enum.
1272         (gfc_get_nodesc_array_type): Change prototype to use new enum.
1273         * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for
1274         argument packed.  Adapt all references to values accordingly.
1275         (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array.
1276         (gfc_get_derived_type): Likewise.
1277         * trans-array.c (gfc_build_constant_array_constructor): Likewise.
1278         * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed
1279         argument to type gfc_packed.
1280         (gfc_add_interface_mapping): Use enum values in call to
1281         gfc_get_interface_mapping.
1282         * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum
1283         values when determining packing.
1284
1285         * trans-decl.c (gfc_finish_decl): Remove unused second argument
1286         'init'.  Simplify code accordingly.  Remove calls to
1287         gfc_fatal_error in favor of gcc_assert.
1288         (create_function_arglist): Remove second argument from calls to
1289         gfc_finish-decl.
1290         (gfc_trans_dummy_character): Likewise.
1291
1292         * arith.h: Update copyright years.
1293         * dependency.h: Likewise.
1294         * gfortran.h: Likewise.
1295         * lang-specs.h: Likewise.
1296         * parse.h: Likewise.
1297         * symbol.c: Likewise.
1298         * trans.h: Likewise.
1299         * trans.c: Likewise.
1300         * trans-array.c: Likewise.
1301         * trans-common.c: Likewise.
1302         * trans-const.h: Likewise.
1303         * trans-const.c: Likewise.
1304         * trans-decl.c: Likewise.
1305         * trans-expr.c: Likewise.
1306         * trans-io.c: Likewise.
1307         * trans-openmp.c: Likewise.
1308         * trans-types.h: Likewise.
1309         * types.def: Likewise.
1310
1311 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
1312
1313         PR fortran/31144
1314         * decl.c (gfc_sym_mangled_identifier): Use capital letters in name
1315         mangling.
1316         (gfc_sym_mangled_function_id): Likewise.
1317
1318 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
1319
1320         PR fortran/31204
1321         * primary.c (check_for_implicit_index): New function to check
1322         that a host associated variable is not an undeclared implied
1323         do loop index.
1324         (gfc_match_rvalue, match_variable): Use it and reset the
1325         implied_index attribute.
1326         * gfortran.h : Add the implied_index field to symbol_attribute.
1327         * match.c (gfc_match_iterator): Mark the iterator variable
1328         with the new attribute.
1329         * decl.c (build_sym): Reset the new attribute.
1330
1331 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
1332
1333         * gfc-internals.texi: Fix typos.
1334         * simplify.c: Fix a comment typo.
1335
1336 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
1337
1338         * primary.c: Commentary typo fix; Add question about redundant (?)
1339         set.
1340
1341 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
1342
1343         PR fortran/29507
1344         PR fortran/31404
1345         * expr.c (scalarize_intrinsic_call): New function to
1346         scalarize elemental intrinsic functions in initialization
1347         expressions.
1348         (check_init_expr): Detect elemental intrinsic functions
1349         in initalization expressions and call previous.
1350
1351 2007-04-13  Tobias Burnus  <burnus@net-b.de>
1352
1353         PR fortran/31559
1354         * primary.c (match_variable): External functions
1355         are no variables.
1356
1357 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
1358
1359         PR fortran/31550
1360         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
1361         derived type components.
1362
1363 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
1364
1365         PR fortran/18937
1366         * resolve.c: Include obstack.h and bitmap.h.  New variable
1367         labels_obstack.
1368         (code_stack): Add tail and reachable_labels fields.
1369         (reachable_labels): New function.
1370         (resolve_branch): Rework to use new fields in code_stack.
1371         (resolve_code): Call reachable_labels.
1372         (resolve_codes): Allocate and free labels_obstack.
1373
1374 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
1375
1376         PR fortran/31250
1377         * decl.c (match_char_spec): Move check for negative CHARACTER
1378         length ...
1379         * resolve.c (resolve_charlen): ... here.
1380         (resolve_types): Resolve CHARACTER lengths earlier.
1381
1382 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
1383
1384         PR fortran/31234
1385         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
1386
1387 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
1388
1389         PR fortran/31266
1390         * primary.c (gfc_variable_attr): Don't copy string length if it
1391         doesn't make sense.
1392         * resolve.c (resolve_code): Clarify error message.
1393
1394         PR fortran/31471
1395         * decl.c (gfc_match_end): Also check for construct name in END
1396         FORALL and END WERE statements.
1397         * match.c (match_case_eos): Use uppercase for statement name in
1398         error message.
1399         (match_elsewhere): Construct name may appear iff construct has a
1400         name.
1401
1402         * trans-types.c: Update copyright years.  Reformat long comment
1403         explaining array descriptor format.  Remove obsolete mention of
1404         TYPE_SET.
1405
1406         * arith.c (gfc_arith_uplus): Rename to ...
1407         (gfc_arith_identity): ... this.
1408         (gfc_parentheses): New function.
1409         (gfc_uplus): Adapt to renamed function.
1410         * arith.h (gfc_parentheses): Add prototype.
1411         * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
1412         (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
1413         INTRINSIC_PARENTHESES.
1414
1415 2007-04-12  Tobias Burnus  <burnus@net-b.de>
1416
1417         PR fortran/31472
1418         * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
1419         attribute in type definitions.
1420         (gfc_match_private): Allow PRIVATE statement only
1421         in specification part of modules.
1422         (gfc_match_public): Ditto for PUBLIC.
1423         (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
1424         specificification part of modules.
1425
1426 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1427
1428         PR fortran/31257
1429         * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
1430         * intrinsic.h : Add prototype for gfc_resolve_achar.
1431         * iresolve.c (gfc_resolve_achar): New function.
1432
1433 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1434
1435         PR fortran/30880
1436         * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
1437         arrays.  Make condition for automatic array error explicit.
1438         If a dummy, no error on an INTENT(OUT) derived type.
1439
1440 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1441
1442         PR fortran/30872
1443         * expr.c (find_array_element): Correct arithmetic for rank > 1.
1444
1445 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1446
1447         PR fortran/31222
1448         * check.c (numeric_check): If an expresson has not got a type,
1449         see if it is a symbol for which a default type applies.
1450
1451 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1452
1453         PR fortran/31214
1454         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
1455         associated symbols.
1456
1457 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
1458
1459         PR fortran/31293
1460         * symbol.c (gfc_check_function_type): New function.
1461         * gfortran.h : Add prototype for previous.
1462         * parse.c (parse_progunit): Call it after parsing specification
1463         statements.
1464
1465 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
1466
1467         PR fortran/31483
1468         * trans-expr.c (gfc_conv_function_call): Give a dummy
1469         procedure the correct type if it has alternate returns.
1470
1471 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
1472
1473         PR fortran/31292
1474         * decl.c (gfc_match_modproc): Go up to the top of the namespace
1475         tree to find the module namespace for gfc_get_symbol.
1476
1477 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1478
1479         PR fortran/31304
1480         * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
1481         * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
1482         (gfc_init_types): Define gfc_charlen_int_kind. 
1483         * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
1484         * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
1485         (gfc_build_intrinsic_function_decls): Don't set
1486         gfor_fndecl_string_repeat.
1487         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
1488         so that we don't have to call a library function.
1489         * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
1490         checks on the NCOPIES argument, and work with arbitrary size
1491         arguments.
1492
1493 2007-03-31  Tobias Burnus  <burnus@net-b.de>
1494
1495         * intrinsic.c (add_functions): Fix name of dummy argument
1496           for new_line and exit intrinsic.
1497
1498 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
1499
1500         PR fortran/31160
1501         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
1502         extensions.
1503
1504 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
1505
1506         * trans-types.c (gfc_signed_or_unsigned_type): Remove.
1507         (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
1508         gfc_signed_or_unsigned_type.
1509         (gfc_signed_type): Ditto.
1510         * trans-types.h (gfc_signed_or_unsigned_type): Remove.
1511         * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
1512
1513 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
1514
1515         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
1516         descend into all branches.
1517
1518 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
1519
1520         * intrinsic.c (conv_name): Let gfc_get_string handle the format.
1521         (find_conv): Compare pointers instead of calling strcmp.
1522         (find_sym): Likewise, but ensure that the compared pointer is in
1523         the global string table.
1524
1525 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
1526
1527         * gfc-internals.texi: Fix output filename.  Merge type index into
1528         concept index.  Start documentation of gfc_code structure.
1529
1530 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
1531
1532         * gfc-internals.texi: New file,
1533         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
1534
1535 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
1536  
1537         * error.c (show_locus): Remove always-false test.
1538
1539 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
1540
1541         * lang.opt: Minor edits to descriptions.
1542
1543 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1544
1545         PR fortran/30877
1546         * fortran/interface.c (check_operator_interface): Implement
1547         the standard checks on user operators extending intrinsic operators.
1548         * fortran/resolve.c (resolve_operator): If the ranks of operators
1549         don't match, don't error out but try the user-defined ones first.
1550
1551 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1552
1553         PR fortran/30655
1554         * expr.c (check_dimension): Fix logic of comparisons.
1555
1556 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
1557
1558         PR fortran/31215
1559         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
1560         int result that is non-zero if the expression is the function
1561         result.  Only the characteristics of the result expression
1562         can be used in a procedure interface, so simplify LEN in situ
1563         using its character length.
1564
1565         PR fortran/31209
1566         PR fortran/31200
1567         * trans-expr.c (gfc_conv_function_call): Do not use
1568         gfc_conv_expr_reference for actual pointer function with formal
1569         target because a temporary is created that does not transfer
1570         the reference correctly.  Do not indirect formal pointer
1571         functions since it is the function reference that is needed.
1572
1573 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
1574
1575         * gfortran.h: Edit comments on GFC_STD_*.
1576
1577 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
1578
1579         * invoke.texi: Misc. small typo fixes.
1580         (-Wcharacter-truncation): Add.
1581         (-Wnonstd-intrinsics): Correct spelling.
1582         (-std=): Edit.
1583         (-fintrinsic-modules-path): Add.
1584
1585 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1586
1587         PR fortran/30834
1588         * arith.c (complex_pow): Rewrite to handle large power.
1589         (gfc_arith_power): Handle large power in the real and integer
1590         cases.
1591
1592 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1593
1594         PR fortran/31262
1595         * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
1596         larger than twice the width of a HOST_WIDE_INT.
1597
1598 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
1599
1600         PR fortran/31193
1601         * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
1602         (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
1603         Explicitly extract TREE_TYPEs for source and mold.  Use these
1604         to calculate length of source and mold, except for characters,
1605         where the se string_length is used.  For mold, the TREE_TYPE is
1606         recalculated using gfc_get_character_type_len so that the
1607         result is correctly cast for character literals and substrings.
1608         Do not use gfc_typenode_for_spec for the final cast.
1609
1610 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
1611
1612         PR fortran/20897
1613         * decl.c (gfc_match_derived_decl): Reliably reject
1614         'doubleprecision' and 'doublecomplex' as type names.
1615
1616 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1617
1618         PR fortran/31203
1619         * trans-expr.c (gfc_trans_init_string_length): Length should
1620         never be negative.
1621         (gfc_conv_function_call): Likewise.
1622
1623 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
1624
1625         PR fortran/30531
1626         PR fortran/31086
1627         * symbo.c : Add gfc_derived_types.
1628         (gfc_free_dt_list): Free derived type list gfc_derived_types.
1629         (gfc_free_namespace): Remove call to gfc_free_dt_list.
1630         (gfc_symbol_done_2): Call  gfc_free_dt_list.
1631         * gfortran.h : Declare gfc_derived_types to be external. Remove
1632         derived types field from gfc_namespace.
1633         * resolve.c (resolve_fl_derived): Refer to gfc_derived types
1634         rather than namespace derived_types.
1635         (resolve_fntype): Remove special treatment for module
1636         derived type functions.
1637         * trans-types.c (gfc_get_derived_type): Remove search for like
1638         derived types.  Finish by copying back end declaration to like
1639         derived types in the derived type list gfc_derived_types.
1640
1641         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1642
1643         PR fortran/31120
1644         * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
1645         (gfc_conv_cst_int_power): Handle integer exponent with care,
1646         since it might be too large for us.
1647
1648 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1649
1650         PR fortran/31184
1651         * invoke.texi: Fix typo.
1652
1653 2007-03-16  Tobias Burnus  <burnus@net-b.de>
1654
1655         * trans-decl.c (gfc_generate_function_code): Use all arguments of
1656           set_std.
1657
1658 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1659
1660         * gfortran.h (gfc_option_t): Add flag_backtrace field.
1661         * lang.opt: Add -fbacktrace option.
1662         * invoke.texi: Document the new option.
1663         * trans-decl.c (gfc_build_builtin_function_decls): Add new
1664         option to the call to set_std.
1665         * options.c (gfc_init_options, gfc_handle_option): Handle the
1666         new option.
1667
1668 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
1669             Paul Thomas  <pault@gcc.gnu.org>
1670
1671         PR fortran/30922
1672         * decl.c (gfc_match_import): If the parent of the current name-
1673         space is null, try looking for an imported symbol in the parent
1674         of the proc_name interface.
1675         * resolve.c (resolve_fl_variable): Do not check for blocking of
1676         host association by a same symbol, if the symbol is in an
1677         interface body.
1678
1679 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
1680
1681         PR fortran/30879
1682         * decl.c (match_data_constant): Before going on to try to match
1683         a name, try to match a structure component.
1684
1685
1686         PR fortran/30870
1687         * resolve.c (resolve_actual_arglist): Do not reject a generic
1688         actual argument if it has a same name specific interface.
1689
1690         PR fortran/31163
1691         * trans-array.c (parse_interface): Do not nullify allocatable
1692         components if the symbol has the saved attribute.
1693
1694 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1695
1696         * trans-array.c (gfc_trans_auto_array_allocation): Replace
1697         fold(convert()) by fold_convert().
1698         (gfc_duplicate_allocatable): Likewise.
1699         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
1700         build_int_cst instead of converting an integer_zero_node
1701         to the final type.
1702
1703 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
1704
1705         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
1706
1707 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
1708
1709         PR fortran/30933
1710         PR fortran/30948
1711         PR fortran/30953
1712         * intrinsics.texi (CHDIR): Fix argument names, note
1713         that STATUS must be a default integer.
1714         (CTIME): Fix argument names, note that RESULT must
1715         be a default integer.
1716         (EXIT): Note that STATUS must be a default integer.
1717
1718 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
1719
1720         PR fortran/28068
1721         * intrinsic.texi: General whitespace cleanup, remove
1722         comment about missing intrinsics.
1723         (menu): Add lines for new entries listed below.
1724         (ACOSH): Mention specific function DACOSH, correct
1725         description phrasing.
1726         (ASINH): Mention specific function DASINH, correct
1727         description phrasing.
1728         (ATANH): Mention specific function DATANH, correct
1729         description phrasing.
1730         (COS): Add index entry for CCOS.
1731         (CPU_TIME): Correct "REAL" to "REAL(*)".
1732         (EXP): Add index entry for CEXP.
1733         (INT): Correct argument name to "A".
1734         (INT2): New entry.
1735         (INT8): New entry.
1736         (LONG): New entry.
1737         (MAX): Add index entries for specific variants.
1738         (MCLOCK): New entry.
1739         (MCLOCK8): New entry.
1740         (SECNDS): Adjust to a more standard form.
1741         (SECOND): New entry.
1742         (TIME): Add cross-reference to MCLOCK.
1743         (TIME8): Add cross-reference to MCLOCK8.
1744
1745 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
1746
1747         PR fortran/30883
1748         * parse.c (parse_interface): Use the default types from the
1749         formal namespace if a function or its result do not have a type
1750         after parsing the specification statements.
1751
1752 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
1753
1754         * intrinsic.texi: (ICHAR) Improve internal I/O note.
1755         (ACHAR): Reference it.
1756         (CHAR): Reference it.
1757         (IACHAR): Reference it.
1758
1759 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
1760
1761         * intrinsic.texi: (LINK) Document function form.
1762         (RENAME): Likewise.
1763         (SYMLNK): Likewise.
1764         (SYSTEM): Likewise.
1765         (UNLINK): Likewise.
1766
1767 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
1768
1769         * intrinsic.texi: minor typo fixes, removed prologue.
1770         (FSEEK): moved to correct place in alphabetical order.
1771
1772 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
1773
1774         PR fortran/30947
1775         * check.c (gfc_check_alarm_sub): Added check for default integer 
1776         kind of status argument.
1777         * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
1778         status argument.
1779         * intrinsic.texi (ALARM): Extended documentation.
1780
1781 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
1782
1783         * intrinsic.texi (GERROR, ISATTY, TTYNAM): New.
1784         (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo.
1785         * intrinsic.c (add_subroutines): Adjusted dummy argument names 
1786         of GERROR and TTYNAM.
1787
1788 2007-07-08  Tobias Burnus  <burnus@net-b.de>
1789
1790         * module.c (gfc_match_use): Support renaming of operators
1791         in USE statements.
1792         * gfortran.texi (Fortran 2003 Status): Document support of
1793         renaming of operators.
1794
1795 2007-07-08  Tobias Burnus  <burnus@net-b.de>
1796
1797         PR fortran/30973
1798         * module.c (read_module): Always import module name as symbol.
1799         (gfc_match_use): Disallow module name in the only clause of
1800         a use statement.
1801
1802 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
1803
1804         PR fortran/31011
1805         * expr.c (find_array_section): Correct arithmetic for section
1806         size.
1807
1808 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
1809
1810         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
1811
1812 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
1813
1814         PR documentation/30950
1815         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
1816         (FREE): Fix call syntax.
1817
1818 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
1819
1820         * intrinsic.texi: Limit column widths to a total of .85.
1821
1822 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1823
1824         * gfortran.texi (GFortran and G77): Rewrite completely.
1825
1826 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1827
1828         * match.c (gfc_match_name): Expanded comment.
1829
1830 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1831
1832         * gfortran.texi (Old-style kind specifications): Document
1833         special handling of old-style kind specifiers for COMPLEX.
1834         * decl.c (gfc_match_old_kind_spec): Document kind/bytesize
1835         assumptions for COMPLEX in comment.
1836
1837 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
1838
1839         PR 31050
1840         * gfortranspec.c (lang_specific_driver): Update program
1841         name and copyright date.
1842
1843 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
1844
1845         PR fortran/30882
1846         * check.c (dim_rank_check): The shape of subsections of
1847         assumed-size arrays is known.
1848
1849 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
1850             Tobias Burnus  <burnus@net-b.de>
1851
1852         PR fortran/30873
1853         * decl.c (gfc_match_entry): Remove erroneous entry result check.
1854
1855 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1856
1857         * Make-lang.in: Add install-pdf target as copied from
1858         automake v1.10 rules.
1859
1860 2007-03-01  Tobias Burnus  <burnus@net-b.de>
1861
1862         PR fortran/30865
1863         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
1864
1865 2007-02-28  Tobias Burnus  <burnus@net-b.de>
1866             Paul Thomas  <pault@gcc.gnu.org>
1867
1868         PR fortran/30888
1869         PR fortran/30887
1870         * resolve.c (resolve_actual_arglist): Allow by-value
1871         arguments and non-default-kind for %VAL().
1872         * trans-expr.c (conv_arglist_function): Allow
1873         non-default-kind for %VAL().
1874
1875 2007-02-28  Tobias Burnus  <burnus@net-b.de>
1876
1877         PR fortran/30968
1878         * primary.c (next_string_char): Correct reading a character
1879         after the delimiter.
1880         (match_string_constant): Print warning message only once.
1881
1882 2007-02-27  Richard Guenther  <rguenther@suse.de>
1883
1884         * trans-array.c (structure_alloc_comps): Use correct type
1885         for null pointer constant.
1886
1887 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
1888
1889         * gfortran.texi: Standardize title page, remove version number
1890         from copyright page.
1891
1892 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
1893             Paul Thomas  <pault@gcc.gnu.org>
1894
1895         PR fortran/30865
1896         * trans-intrinsic.c (gfc_conv_intrinsic_size):
1897         If dim is an optional argument, check for its
1898         presence and call size0 or size1, respectively.
1899
1900 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
1901
1902         PR fortran/30660
1903         * resolve.c (has_default_initializer): New function.
1904         (resolve_fl_variable): Call has_default_initializer to determine if
1905         the derived type has a default initializer to its ultimate
1906         components.
1907
1908
1909 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1910
1911         * options.c (set_default_std_flags): New function to consolidate
1912         setting the flags.
1913         (gfc_init_options): Use new function.
1914         (gfc_handle_option): Use new function.
1915
1916 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
1917
1918         * gfortran.texi (Old-style kind specifications): Document
1919         special handling of old-style kind specifiers for COMPLEX.
1920         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
1921         assumptions in comment.
1922
1923 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1924
1925         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
1926
1927 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
1928
1929         PR fortran/30869
1930         * match.c (gfc_match_iterator): Remove conflict between
1931         loop variable and pointer.
1932
1933 2007-02-20  Tobias Burnus  <burnus@net-b.de>
1934
1935         PR fortran/30522
1936         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
1937           attribute for host-associated variables.
1938         * gfortran.h (symbol_attribute): Save namespace
1939           where VOLATILE has been set.
1940         * trans-decl.c (gfc_finish_var_decl): Move variable
1941           declaration to the top.
1942
1943 2007-02-20  Tobias Burnus  <burnus@net-b.de>
1944
1945         PR fortran/30783
1946         * resolve.c (resolve_symbol): Add character dummy VALUE check.
1947
1948 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
1949
1950         PR libfortran/30533
1951         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
1952         argument to default integer.
1953         (gfc_resolve_minloc): Likewise.
1954
1955 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1956
1957         PR fortran/30681
1958         * options.c (gfc_init_options): Relax warning level for obsolescent.
1959         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
1960         (gfc_match_if): Same.
1961
1962 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1963
1964         * trans-array.c (gfc_build_constant_array_constructor): When the
1965         shape of the constructor is known, use that to construct the
1966         gfc_array_spec.
1967         (gfc_trans_constant_array_constructor): Initialize the "info"
1968         information for all of the dimensions of the array constructor.
1969         (constant_array_constructor_loop_size): New function.
1970         (gfc_trans_array_constructor): Use it to determine whether a
1971         loop is suitable for "constant array constructor" optimization.
1972
1973         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
1974         instead of build2, to avoid conditions like "(a != b) != 0".
1975
1976 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1977             Paul Thomas <pault@gcc.gnu.org>
1978
1979         PR fortran/30400
1980         * match.c (match_forall_iterator): Use gfc_match_expr instead
1981         of gfc_match_variable to match the iterator variable.  Return
1982         MATCH_NO if not a variable.  Remove the reset of the symbol's
1983         flavor in cleanup.
1984
1985 2007-02-16  Tobias Burnus  <burnus@net-b.de>
1986
1987         PR fortran/30793
1988         * trans-decl.c (gfc_generate_function_code): Do not initialize
1989         pointers to derived components.
1990
1991 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1992             Brooks Moses  <brooks.moses@codesourcery.com>
1993             Lee Millward  <lee.millward@codesourcery.com>
1994
1995         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
1996         (gfc_conv_string_tmp): Likewise.
1997         (gfc_conv_concat_op): Likewise.
1998         (gfc_build_compare_string): Likewise.
1999         (gfc_conv_function_call): Use build_call_list instead of build3.
2000
2001         * trans-array.c (gfc_trans_allocate_array_storage): Use
2002         build_call_expr.
2003         (gfc_grow_array): Likewise.
2004         (gfc_trans_array_ctor_element): Likewise.
2005         (gfc_trans_array_constructor_value): Likewise.
2006         (gfc_array_allocate): Likewise.
2007         (gfc_array_deallocate): Likewise.
2008         (gfc_trans_auto_array_allocation): Likewise.
2009         (gfc_trans_dummy_array_bias): Likewise.
2010         (gfc_conv_array_parameter): Likewise.
2011         (gfc_trans_dealloc_allocated): Likewise.
2012         (gfc_duplicate_allocatable): Likewise.
2013
2014         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
2015         (gfc_trans_omp_flush): Likewise.
2016
2017         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
2018         (gfc_trans_pause): Likewise.
2019         (gfc_trans_stop): Likewise.
2020         (gfc_trans_character_select): Likewise.
2021         (gfc_do_allocate): Likewise.
2022         (gfc_trans_assign_need_temp): Likewise.
2023         (gfc_trans_pointer_assign_need_temp): Likewise.
2024         (gfc_trans_forall_1): Likewise.
2025         (gfc_trans_where_2): Likewise.
2026         (gfc_trans_allocate): Likewise.
2027         (gfc_trans_deallocate): Likewise.
2028
2029         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
2030
2031         * trans-io.c (gfc_trans_open): Use build_call_expr.
2032         (gfc_trans_close): Likewise.
2033         (build_filepos): Likewise.
2034         (gfc_trans_inquire): Likewise.
2035         (NML_FIRST_ARG): Delete.
2036         (NML_ADD_ARG): Delete.
2037         (transfer_namelist_element): Use build_call_expr.
2038         (build_dt): Likewise.
2039         (gfc_trans_dt_end): Likewise.
2040         (transfer_expr): Likewise.
2041         (transfer_array-desc): Likewise.
2042
2043         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
2044         (gfc_generate_constructors): Likewise.
2045
2046         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
2047         (gfc_conv_intrinsic_fdate): Likewise.
2048         (gfc_conv_intrinsic_ttynam): Likewise.
2049         (gfc_conv_intrinsic_array_transfer): Likewise.
2050         (gfc_conv_associated): Likewise.
2051         (gfc_conv_intrinsic_si_kind): Likewise.
2052         (gfc_conv_intrinsic_trim): Likewise.
2053         (gfc_conv_intrinsic_repeat: Likewise.
2054         (gfc_conv_intrinsic_iargc): Likewise.
2055
2056 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2057
2058         PR fortran/30779
2059         * scanner.c (gfc_next_char_literal): Add check for end of file after
2060         call to advance_line.
2061
2062 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2063
2064         PR fortran/30799
2065         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
2066         kind.
2067
2068 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2069
2070         * misc.c (gfc_typename): Fix potential buffer overflow.
2071
2072 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
2073
2074         PR fortran/30554
2075         * module.c (read_module): Set pointer_info to referenced if the
2076         symbol has no namespace.
2077
2078 2007-02-12  Nick Clifton  <nickc@redhat.com>
2079
2080         * lang.opt: Add Warning attribute to warning options.
2081
2082 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
2083
2084         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
2085         (SLEEP): Added section and documentation.
2086
2087 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
2088
2089         PR fortran/30478
2090         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
2091         (variable_decl): Likewise.  Rewrap comment.
2092         (match_attr_spec): Remove ENUM specific code.
2093         (gfc_match_enum): Fix typo in error message.
2094         (enumerator_decl): New function.
2095         (gfc_match_enumerator_def): Use enumerator_decl instead of
2096         variable_decl.  Adapt code accordingly.
2097
2098 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
2099
2100         PR fortran/30554
2101         * module.c (find_symtree_for_symbol): New function to return
2102         a symtree that is not a "unique symtree" given a symbol.
2103         (read_module): Do not automatically set pointer_info to
2104         referenced because this inhibits the generation of a unique
2105         symtree.  Recycle the existing symtree if possible by calling
2106         find_symtree_for_symbol.
2107
2108         PR fortran/30319
2109         * decl.c (add_init_expr_to_sym): Make new charlen for an array
2110         constructor initializer.
2111
2112 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
2113
2114         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
2115         and __emutls_register_common.
2116         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
2117         * trans-common.c (build_common_decl): Don't check have_tls.
2118         * trans-decl.c (gfc_finish_var_decl): Likewise.
2119         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
2120         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2121
2122 2007-02-09  Tobias Burnus  <burnus@net-b.de>
2123
2124         PR fortran/30512
2125         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
2126           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
2127
2128 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2129
2130         PR fortran/30720
2131         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
2132         function argument. Always generate code for negative extent.
2133         Simplify said code.
2134         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
2135         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
2136         of gfc_trans_create_temp_array.
2137         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
2138         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
2139
2140 2007-02-08  Roger Sayle  <roger@eyesopen.com>
2141
2142         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
2143         mask expression is a compile-time constant (".true." or ".false.").
2144
2145 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2146
2147         PR fortran/30611
2148         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
2149         arguments only once. Generate check that NCOPIES argument is not
2150         negative.
2151
2152 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
2153
2154         PR fortran/30605
2155         * fortran/invoke.texi: Update documentation.
2156         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
2157         and -pedantic.
2158
2159 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
2160
2161         * trans-array.c: Fix a comment typo.
2162
2163 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
2164
2165         PR fortran/30514
2166         * array.c (match_array_element_spec): If the length of an array is
2167         negative, adjust the upper limit to make it zero length.
2168
2169         PR fortran/30660
2170         * resolve.c (pure_function, resolve_function): Initialize name to
2171         null to clear up build warnings.
2172         (resolve_fl_variable): Look at components explicitly to check for
2173         default initializer, rather than using gfc_default_initializer.
2174
2175 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
2176
2177         PR fortran/30683
2178         * resolve.c (resolve_generic_f): Check for non-NULL sym.
2179
2180 2007-02-02  Roger Sayle  <roger@eyesopen.com>
2181
2182         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
2183         NON_LVALUE_EXPR nodes and useless type conversions.
2184
2185 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
2186
2187         PR fortran/30284
2188         PR fortran/30626
2189         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
2190         from function and make sure that substring lengths are
2191         translated.
2192         (is_aliased_array): Remove static attribute.
2193         * trans.c : Add prototypes for gfc_conv_aliased_arg and
2194         is_aliased_array.
2195         * trans-io.c (set_internal_unit): Add the post block to the
2196         arguments of the function.  Use is_aliased_array to check if
2197         temporary is needed; if so call gfc_conv_aliased_arg.
2198         (build_dt): Pass the post block to set_internal_unit and
2199         add to the block after all io activiy is done.
2200
2201 2007-02-01  Roger Sayle  <roger@eyesopen.com>
2202
2203         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
2204         a temporary array to pass a constant non-character array constructor.
2205         Generalize the descriptor generation code to handle scalarizer
2206         "info" without an array reference.
2207
2208 2007-02-01  Roger Sayle  <roger@eyesopen.com>
2209
2210         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
2211         dependency checking for array constructors.
2212
2213 2007-02-01  Roger Sayle  <roger@eyesopen.com>
2214
2215         * trans-stmt.c (compute_overall_iter_number): Document function
2216         arguments.  Generalize "unconditional forall nest with constant
2217         bounds" optimization to eliminate unconditional inner loops with
2218         constant bounds.
2219
2220 2007-01-31  Tobias Burnus  <burnus@net-b.de>
2221
2222         PR fortran/30520
2223         * interface.c (compare_actual_formal): Check conformance between
2224           actual and VOLATILE dummy arguments.
2225         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
2226           multiple times in different scopes.
2227         * decl.c (gfc_match_volatile): Search symbol in host association.
2228
2229 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
2230
2231         * simplify.c, trans-array.c: Fix comment typos.
2232
2233 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2234
2235         * invoke.texi (Code Gen Options): Fix abbreviation typo.
2236         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
2237
2238 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
2239
2240         PR fortran/30432
2241         * trans-types.c (gfc_get_function_type): Do not add void_type_node
2242         to empty arg list.
2243         * trans-decl.c (create_function_arglist): Change assert.
2244
2245 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
2246
2247         PR fortran/30554
2248         * module.c (read_module): If a symbol is excluded by an ONLY
2249         clause, check to see if there is a symtree already loaded. If
2250         so, attach the symtree to the pointer_info.
2251
2252 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
2253
2254         PR libfortran/30389
2255         * gfortran.h: Remove gfc_simplify_init_1.
2256         * arith.h: Remove third argument from gfc_compare_string.
2257         * arith.c (gfc_compare_expression): Remove third argument
2258         from call to gfc_compare_string.
2259         (gfc_compare_string): Remove third argument xcoll_table.
2260         Remove use of xcoll_table.
2261         * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1.
2262         * simplify.c (ascii_table): Remove.
2263         (xascii_table): Likewise.
2264         (gfc_simplify_achar): ICE if extract_int fails.  Remove use of
2265         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
2266         (gfc_simplify_char): ICE if extract_int fails. Error if
2267         value < 0 or value > 255.
2268         (gfc_simplify_iachar): Remove use of xascii_table.
2269         Char values outside of 0..255 are an ICE.
2270         (gfc_simplify_lge): Remove use of xascii_table.
2271         (gfc_simplify_lgt): Likewise.
2272         (gfc_simplify_lle): Likewise.
2273         (gfc_simplify_llt): Likewise.
2274         (invert_table): Remove.
2275         (gfc_simplify_init_1): Remove.
2276
2277 2007-01-27  Roger Sayle  <roger@eyesopen.com>
2278
2279         * trans-stmt.c (forall_info): Replace the next_nest and outer
2280         fields that previously implemented a doubly-linked list with a
2281         single prev_nest field (singly-linked list).
2282         (gfc_trans_nested_forall_loop): The nested_forall_info argument
2283         now denotes the innermost FORALL in the loop nest.
2284         (compute_overall_iter_number): Use prev_nest instead of next_nest.
2285         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
2286         nested_forall_info linked list.  Free the current "info" when done.
2287
2288 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
2289
2290         PR fortran/30407
2291         * trans-expr.c (gfc_conv_operator_assign): New function.
2292         * trans.h : Add prototype for gfc_conv_operator_assign.
2293         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
2294         a potential operator assignment subroutine.  If it is non-NULL
2295         call gfc_conv_operator_assign instead of the first assignment.
2296         ( gfc_trans_where_2): In the case of an operator assignment,
2297         extract the argument expressions from the code for the
2298         subroutine call and pass the symbol to gfc_trans_where_assign.
2299         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
2300         gfc_resolve_forall_body): Resolve the subroutine call for
2301         operator assignments.
2302
2303 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
2304             Steven G. Kargl <kargl@gcc.gnu.org>
2305
2306         PR fortran/30278
2307         * fortran/io.c (next_char): Deal with backslash escaped characters.
2308         Issue warnings in non -std=gnu cases.
2309         * fortran/primary.c (next_string_char): Issue warnings in non
2310
2311 2007-01-26  Tobias Burnus  <burnus@net-b.de>
2312
2313         * lang-specs.h: Add support for .f03 and .F03 extensions.
2314         * gfortran.texi: Document .f03 extension.
2315         * options.c (form_from_filename): Recognize .f03.
2316
2317 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2318
2319         PR fortran/30437
2320         * lang.opt (Wall): Remove RejectNegative.
2321         * options.c (gfc_handle_option): Wall can be disabled.
2322         (set_Wall): Add a parameter for disabling Wall.
2323         
2324 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2325
2326         PR fortran/30532
2327         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
2328         
2329 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
2330
2331         PR fortran/30481
2332         * match.c (gfc_match_namelist): Add check for assumed size character
2333         in namelist and provide error if found.
2334
2335 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
2336
2337         * intrinsic.texi (ACHAR): Added cross-references.
2338         (CHAR): Put cross-references in alphabetical order.
2339         (IACHAR): Added cross-references.
2340         (ICHAR): Added cross-references.
2341
2342 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
2343
2344         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
2345         (MAXVAL): Corrected description of result characteristics.
2346         (MINVAL): Same.
2347         (UMASK): Added documentation.
2348
2349 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
2350
2351         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
2352         parse.c, primary.c, options.c, misc.c, simplify.c: Next installment
2353         in the massive whitespace patch.
2354
2355 2007-01-20  Roger Sayle  <roger@eyesopen.com>
2356
2357         * module.c (mio_array_ref): The dimen_type fields of an array ref
2358         are an enumerated type and can't be read/written directly with a
2359         call to mio_integer.  Instead loop over and cast each element.
2360
2361 2007-01-20  Roger Sayle  <roger@eyesopen.com>
2362
2363         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
2364         i.e. that the ARRAY_REF doesn't mention components.
2365         * trans-array.c (gfc_constant_array_constructor_p): Export external
2366         function renamed from constant_array_constructor_p.
2367         (gfc_build_constant_array_constructor): Export.
2368         (gfc_trans_array_constructor): Update call to the renamed function
2369         constant_array_constructor_p.
2370         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
2371         (gfc_build_constant_array_constructor): Likewise.
2372         * trans-expr.c (gfc_build_memcpy_call): New helper function split
2373         out from gfc_trans_array_copy.
2374         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
2375         (gfc_trans_array_constructor_copy): New function to optimize
2376         assigning an entire array from a constant array constructor.
2377         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
2378         when appropriate.
2379
2380 2007-01-20  Roger Sayle  <roger@eyesopen.com>
2381
2382         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
2383         implementation for the SIGN intrinsic with integral operands.
2384         (gfc_conv_intrinsic_minmax): Fix whitespace.
2385
2386 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2387
2388         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
2389         * lang.opt: Add -fallow-leading-underscore.
2390         * match.c (gfc_match_name): Allow leading underscore in symbol
2391         name if -fallow-leading-underscore is used.
2392         * symbol.c (gfc_get_default_type): Add special case for symbol
2393         names beginning with an underscore.
2394         * trans-decl.c (gfc_get_extern_function_decl,
2395         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
2396         library symbols selected_int_kind, selected_real_kind and 
2397         all specifics.
2398         * options.c (gfc_init_options, gfc_handle_option): Handle the
2399         new -fallow-leading-underscore option.
2400
2401 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2402
2403         PR fortran/30446
2404         * options.c (gfc_handle_module_path_options): Path used in -J
2405         option is now added to the module search path.
2406
2407 2007-01-20  Richard Guenther  <rguenther@suse.de>
2408
2409         PR fortran/30223
2410         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
2411         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
2412         sincos builtins if the target has sincos.
2413
2414 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
2415
2416         * intrinsic.texi (MATMUL): Corrected a typo.
2417         (MAX): Separated @var arguments.
2418         (MIN): Separated @var arguments.
2419
2420 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
2421
2422         * intrinsic.texi: general whitespace cleanup.
2423         (menu): Added TIME8, removed UNMASK.
2424         (AINT): Clarified argument requirement.
2425         (ANINT): Clarified argument requirement.
2426         (CEILING): Clarified argument requirement.
2427         (CHAR): Clarified argument requirement.
2428         (CMPLX): Clarified argument requirement.
2429         (DCMPLX): Clarified argument requirement.
2430         (FGET): Line rewrapping.
2431         (FLOOR): Clarified argument requirement.
2432         (GMTIME): Added documentation.
2433         (IAND): Added cross-reference.
2434         (IBCLR): Added cross-reference.
2435         (IBSET): Added cross-reference.
2436         (IEOR): Added cross-reference.
2437         (INT): Collapsed examples, clarified argument requirement.
2438         (IOR): Added cross-references.
2439         (LEN_TRIM): Corrected result kind.
2440         (LINK): Added cross-reference.
2441         (LLT): Removed "documentation pending".
2442         (LOGICAL): Added documentation.
2443         (LSHIFT): Added documentation.
2444         (LTIME): Added documentation.
2445         (MATMUL): Added documentation.
2446         (MAX): Added documentation.
2447         (MAXLOC): Added documentation.
2448         (MAXVAL): Added documentation.
2449         (MERGE): Added documentation.
2450         (MIN): Added documentation.
2451         (MINLOC): Added documentation.
2452         (MINVAL): Added documentation.
2453         (MVBITS): Moved to correct place, added documentation.
2454         (NOT): Added documentation.
2455         (PERROR): Added documentation.
2456         (RAN): Moved to correct place, added documentation.
2457         (REAL): Clarified argument requirement.
2458         (RENAME): Added documentation.
2459         (RSHIFT): Clarified argument requirement.
2460         (SIGN): Corrected table specification.
2461         (SYMLNK): Added documentation.
2462         (SYSTEM): Added documentation.
2463         (TIME): Added documentation.
2464         (TIME8): Added section and documentation.
2465         (UNMASK): Removed erroneous section.
2466
2467 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
2468
2469         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
2470
2471 2007-01-18  Roger Sayle  <roger@eyesopen.com>
2472
2473         * trans-expr.c (copyable_array_p): Consider user derived types without
2474         allocatable components to be copyable.
2475
2476 2007-01-18  Roger Sayle  <roger@eyesopen.com>
2477
2478         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
2479         the number of interations in unconditional FORALL nests with constant
2480         bounds.
2481
2482 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2483             Tobias Burnus  <burnus@net-b.de>
2484
2485         PR libfortran/29649
2486         * gfortran.h (gfc_option_t): Add flag_dump_core.
2487         * lang.opt: Add -fdump-core option.
2488         * invoke.texi: Document the new options.
2489         * trans-decl.c (gfc_build_builtin_function_decls): Add new
2490           options to the call to set_std.
2491         * options.c (gfc_init_options, gfc_handle_option): Set the
2492           new options.
2493
2494 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
2495
2496         PR fortran/30476
2497         * module.c (load_generic_interfaces): Make the marking of the
2498         symbol as ambiguous conditional on the module names being
2499         different.
2500         (write_generic): Ensure that the generic interface has a
2501         non-NULL module field.
2502
2503 2007-01-16  Roger Sayle  <roger@eyesopen.com>
2504
2505         PR fortran/30404
2506         * trans-stmt.c (forall_info): Remove pmask field.
2507         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
2508         NVAR covers all the interation variables in the current forall_info.
2509         Add an extra OUTER parameter, which specified the loop header in
2510         which to place mask index initializations.
2511         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
2512         Change the semantics of MASK_FLAG to only control the mask in the
2513         innermost loop.
2514         (compute_overall_iter_number): Optimize the trivial case of a
2515         top-level loop having a constant number of iterations.  Update
2516         call to gfc_trans_nested_forall_loop.  Calculate the number of
2517         times the inner loop will be executed, not to size of the 
2518         iteration space.
2519         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
2520         sizeof(type) == 1.  Tidy up.
2521         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
2522         to gfc_trans_nested_forall_loop.
2523         (gfc_trans_pointer_assign_need_temp): Likewise.
2524         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
2525         LENVAR local variables.  Split mask allocation into a separate
2526         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
2527         to allocate the FORALL mask with the correct size.  Update calls
2528         to gfc_trans_nested_forall_loop.
2529         (gfc_evaluate_where_mask): Update call to
2530         gfc_trans_nested_forall_loop.
2531         (gfc_trans_where_2): Likewise.
2532
2533 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
2534
2535         PR fortran/28172
2536         * trans-stmt.c (gfc_trans_call): If it does not have one, get
2537         a backend_decl for an alternate return.
2538
2539         PR fortran/29389
2540         * resolve.c (pure_function): Statement functions are pure. Note
2541         that this will have to recurse to comply fully with F95.
2542
2543         PR fortran/29712
2544         * resolve.c (resolve_function): Only a reference to the final
2545         dimension of an assumed size array is an error in an inquiry
2546         function.
2547
2548         PR fortran/30283
2549         * resolve.c (resolve_function): Make sure that the function
2550         expression has a type.
2551
2552 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
2553
2554         PR fortran/30410
2555         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
2556         symbols must not have the module name prepended.
2557
2558 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
2559
2560         PR libfortran/30415
2561         * iresolve.c (gfc_resolve_maxloc): If the rank
2562         of the return array is nonzero and we process an
2563         integer array smaller than default kind, coerce
2564         the array to default integer.
2565         * iresolve.c (gfc_resolve_minloc): Likewise.
2566
2567 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
2568
2569         * simplify.c: Update copyright to 2007.
2570         * scanner.c: Same.
2571
2572 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2573
2574         PR fortran/30430
2575         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
2576         only once!
2577
2578 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
2579
2580         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
2581         (gfc_simplify_ibset): Same.
2582
2583 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
2584
2585         PR 30381
2586         PR 30420
2587         * simplify.c (convert_mpz_to_unsigned): New function.
2588         (convert_mpz_to_signed): New function, largely based on
2589         twos_complement().
2590         (twos_complement): Removed.
2591         (gfc_simplify_ibclr): Add conversions to and from an
2592         unsigned representation before bit-twiddling.
2593         (gfc_simplify_ibset): Same.
2594         (gfc_simplify_ishftc): Add checks for overly large
2595         constant arguments, only check the third argument if
2596         it's present, carry over high bits into the result as
2597         appropriate, and perform the final conversion back to
2598         a signed representation using the correct sign bit.
2599         (gfc_simplify_not): Removed unnecessary masking.
2600
2601 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
2602
2603         PR fortran/30408
2604         * resolve.c (resolve_code): Use the code->expr character length
2605         directly to set length of llen.
2606
2607 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2608
2609         PR fortran/30408
2610         * lang.opt: Add Wcharacter_truncation option.
2611         * options.c (gfc_init_options): Initialize
2612         gfc_option.warn_character_truncation to zero.
2613         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
2614
2615 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2616
2617         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
2618         iresolve.c, match.c: Update Copyright years.  Whitespace.
2619
2620 2007-01-08  Richard Guenther  <rguenther@suse.de>
2621
2622         * trans-io.c (transfer_array_desc): Use build_int_cst instead
2623         of build_int_cstu.
2624
2625 2007-01-08  Roger Sayle  <roger@eyesopen.com>
2626
2627         * trans-array.c (constant_array_constructor_p): New function to
2628         determine whether an array constructor consists only of constant
2629         elements, and if so return it's size.
2630         (gfc_build_constant_array_constructor): Construct a statically
2631         initialized gfortran array for a given EXPR_ARRAY.
2632         (gfc_trans_constant_array_constructor): Efficiently scalarize
2633         a constant array constructor.
2634         (gfc_trans_array_constructor): Tidy up use of CONST_STRING.
2635         Special case scalarization of constant array constructors, all of
2636         whose elements are specified, using constant_array_constructor_p 
2637         and gfc_trans_constant_array_constructor.
2638         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
2639         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
2640
2641 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
2642
2643         gfortran.texi: Fix typos.
2644
2645 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2646
2647         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
2648         convert.c: Update Copyright dates.  Fix whitespace.
2649
2650 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
2651
2652         * data.c (gfc_assign_data_value): Fix whitespace.
2653
2654 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
2655
2656         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
2657         Commentary typo fix.
2658
2659 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
2660
2661         PR fortran/27698
2662         * match.c (gfc_match_name): Print diagnostics for invalid
2663         character in names.
2664
2665 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2666
2667         * array.c: Fix whitespace in comment table.
2668
2669 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2670
2671         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
2672
2673 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2674
2675         * arith.c: Update copyright years.  Whitespace.
2676
2677 2007-01-05  Roger Sayle  <roger@eyesopen.com>
2678
2679         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
2680         array assignments split out from gfc_trans_assignment.
2681         (gfc_trans_array_copy): New function to implement array to array
2682         copies via calls to __builtin_memcpy.
2683         (copyable_array_p): New helper function to identify an array of
2684         simple/POD types, that may be copied/assigned using memcpy.
2685         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
2686         whole array assignments considered suitable by copyable_array_p.
2687         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
2688
2689 2007-01-05  Roger Sayle  <roger@eyesopen.com>
2690
2691         * trans-array.c (gfc_trans_array_constructor_value): Make the
2692         static const "data" array as TREE_READONLY.
2693         * trans-stmt.c (gfc_trans_character_select): Likewise.
2694
2695 2007-01-05  Roger Sayle  <roger@eyesopen.com>
2696
2697         * trans-array.c (gfc_conv_loop_setup): Test whether the loop
2698         stride is one, to avoid fold_build2 introducing a useless
2699         NON_LVALUE_EXPR node.
2700
2701 2007-01-05  Tobias Burnus  <burnus@net-b.de>
2702
2703         * symbol.c (check_conflict): Fix error message.
2704
2705 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
2706
2707         PR fortran/23232
2708         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
2709         functions to signal that a DATA statement is being matched.
2710         (gfc_match_data): Call gfc_set_in_match_data on entry and on
2711         exit.
2712         * gfortran.h : Add prototypes for above.
2713         * expr.c (check_init_expr): Avoid check on parameter or
2714         variable if gfc_in_match_data is true.
2715         (gfc_match_init_expr): Do not call error on non-reduction of
2716         expression if gfc_in_match_data is true.
2717
2718         PR fortran/27996
2719         PR fortran/27998
2720         * decl.c (gfc_set_constant_character_len): Add boolean arg to
2721         flag array constructor resolution.  Warn if string is being
2722         truncated.  Standard dependent error if string is padded. Set
2723         new arg to false for all three calls to
2724         gfc_set_constant_character_len.
2725         * match.h : Add boolean arg to prototype for
2726         gfc_set_constant_character_len.
2727         * gfortran.h : Add warn_character_truncation to gfc_options.
2728         * options.c (set_Wall): Set warn_character_truncation if -Wall
2729         is set.
2730         * resolve.c (resolve_code): Warn if rhs string in character
2731         assignment has to be truncated.
2732         * array.c (gfc_resolve_character_array_constructor): Set new
2733         argument to true for call to gfc_set_constant_character_len.
2734
2735 2007-01-05  Tobias Burnus  <burnus@net-b.de>
2736
2737         PR fortran/29624
2738         * interface.c (compare_parameter_intent): New function.
2739           (check_intents): Support pointer intents.
2740         * symbol.c (check_conflict): Support pointer intents,
2741           better conflict_std message.
2742         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
2743           Support pointer intents.
2744         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
2745           Support pointer intents.
2746
2747 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2748
2749         PR 30371
2750         * check.c (gfc_check_kill_sub): Add checks for non-scalar
2751         arguments.
2752
2753 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2754
2755         * intrinsic.texi: Minor cleanup, reflowing overlong
2756         paragraphs, and correcting whitespace.
2757
2758 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2759
2760         * intrinsic.texi (LBOUND): Add documentation.
2761         (LGE): Add documentation.
2762         (LGT): Add documentation.
2763         (LINK): Add documentation.
2764         (LLE): Add documentation.
2765         (LLT): Add documentation.
2766         (LNBLNK): Add documentation.
2767         (UBOUND): Add documentation.
2768         (UNLINK): Add documentation.
2769
2770 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2771
2772         * intrinsic.texi (IAND): Clarify argument specifications.
2773         (IBCLR): Add documentation.
2774         (IBITS): Add documentation.
2775         (IBSET): Add documentation.
2776         (IEOR): Add documentation.
2777         (IERRNO): Add documentation.
2778         (INDEX): Add documentation.
2779         (IOR): Add documentation.
2780         (ISHFT): Add documentation.
2781         (ISHFTC): Add documentation.
2782         (KILL): Add documentation.
2783         (LEN_TRIM): Add documentation.
2784
2785 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2786
2787         PR 30235
2788         * interface.c (compare_actual_formal): check for
2789         alternate returns when iterating over non-present
2790         arguments.
2791
2792 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2793
2794         * invoke.texi: Update manpage copyright to include 2007.
2795
2796 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
2797
2798         * gfortran.texi: Update copyright to include 2007.
2799         * intrinsic.texi: Update copyright to include 2007.
2800         * invoke.texi: Update copyright to include 2007.
2801
2802 2007-01-02  Tobias Burnus  <burnus@net-b.de>
2803             Jakub Jelinek  <jakub@redhat.com>
2804
2805         PR fortran/30276
2806         * scanner.c (open_included_file): Revert patch.
2807           (gfc_open_included_file): Support absolute pathnames.
2808           (gfc_open_intrinsic_module): Support absolute pathnames.
2809
2810 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2811
2812         * gfortran.texi (GNU Fortran and GCC): Rewrite
2813
2814 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2815
2816         * gfortran.texi (Introduction): Lower "Part I:
2817         Introduction" to a chapter, renumber Parts II and III to
2818         Parts I and II.
2819         * intrinsic.texi (Introduction): Rename to "Introduction
2820         to Intrinsics" to avoid conflict with the new chapter.
2821
2822 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2823
2824         * intrinsic.texi (Introduction): Rewrite first paragraph.
2825
2826 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2827
2828         * invoke.texi (OpenMP): Added index entry.
2829         * gfortran.texi (title page): Removed erroneous '*'.
2830
2831 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2832
2833         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
2834         to description.
2835         (Extensions): Miscellaneous minor rewriting and copyediting.
2836         (BOZ-literal constants): Renamed from Hexadecimal constants.
2837         (Hollerith constants support): Added explanation and 
2838         suggestions for standard-conforming modern equivalents.
2839
2840 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2841
2842         * intrinsic.texi: Improvements to index entries; change
2843         @findex entries to @cindex entries.
2844         * invoke.texi: Standardize and improve index entries.
2845         * gfortran.texi: Fix @code in one index entry.
2846
2847 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2848
2849         * invoke.texi: Change @code-type macros to appropriate
2850         variants (@command, @option, etc.)
2851         * gfortran.texi: Same.
2852
2853 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
2854
2855         * intrinsic.texi: Various minor cleanups.
2856
2857 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
2858
2859         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
2860         build_int_cst.
2861
2862 2007-01-02  Tobias Burnus  <burnus@net-b.de>
2863
2864         PR fortran/30276
2865         * scanner.c (open_included_file): Support full-path filenames.
2866
2867 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
2868
2869         PR fortran/20896
2870         * interface.c (check_sym_interfaces): Remove call to
2871         resolve_global_procedure.
2872         gfortran.h : Remove prototype for resolve_global_procedure.
2873         resolve.c (resolve_global_procedure): Add static attribute
2874         to function declaration.
2875
2876 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
2877
2878         * ChangeLog: Copy to ...
2879         * ChangeLog-2006: here.