OSDN Git Service

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