OSDN Git Service

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