OSDN Git Service

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