OSDN Git Service

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