OSDN Git Service

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