OSDN Git Service

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