2007-11-16 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob776b6520212af25d8617976e60dd9b019da88f53
1 2007-11-16  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/33986
4         * trans-array.c (gfc_conv_array_parameter ): Allow allocatable
5         function results.
7 2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
9         PR fortran/33162
10         * decl.c (match_procedure_decl): Remove TODO and allow intrinsics in
11         PROCEDURE declarations.  Set attr.untyped to allow the interface to be
12         resolved later where the symbol type will be set.
13         * interface.c (compare_intr_interfaces): Remove static from pointer
14         declarations.  Add type and kind checks for dummy function arguments.
15         (compare_actual_formal_intr): New function to compare an actual
16         argument with an intrinsic function. (gfc_procedures_use): Add check for
17         interface that points to an intrinsic function, use the new function.
18         * resolve.c (resolve_specific_f0): Resolve the intrinsic interface.
19         (resolve_specific_s0): Ditto.
21 2007-11-13  Paul Thomas  <pault@gcc.gnu.org>
23         PR fortran/34080
24         * iresolve.c (gfc_resolve_transfer): Do not try to convert
25         to a constant MOLD expression, if it is an assumed size
26         dummy.
28 2007-11-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
30         * trans-common.c: Remove prototype for gfc_get_common.
32 2007-11-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
34         PR fortran/33592
35         * trans.c (gfc_call_realloc): Fix the logic and rename variables.
37 2007-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
39         PR fortran/33739
40         * scanner.c (start_source_file, end_source_file,
41         exit_remaining_files): New functions.
42         (gfc_advance_line): Use the new functions.
44 2007-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
46         PR fortran/34028
47         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type.
49 2007-11-08  Tobias Burnus  <burnus@net-b.de>
51         PR fortran/33917
52         * interface.c (check_sym_interfaces): Disallow PROCEDURE-declared
53         procedures for MODULE PROCEDURE.
54         * decl.c (match_procedure_in_interface): Do not mark as procedure.
56 2007-11-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
58         PR fortran/33881
59         * trans-array.c (gfc_conv_array_parameter): Evaluate
60         se->string_length instead of the expr->ts.cl->backend_decl.
62 2007-11-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
64         * gfortran.h: Shorten comment.
65         * trans-types.c (gfc_get_function_type): Allow argument to have
66         flavor FL_PROGRAM.
67         * trans-decl.c (gfc_sym_mangled_function_id): Mangle main program
68         name into MAIN__.
69         (build_function_decl): Fix comment.
70         * parse.c (main_program_symbol): Give the main program its proper
71         name, if any. Set its flavor to FL_PROGRAM.
72         (gfc_parse_file): Likewise.
74 2007-11-02  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
76         * intrinsic.texi (ALLOCATED): Fix typo.
78 2007-10-31  Tobias Burnus  <burnus@net-b.de>
80         PR fortran/33941
81         * modules.c (intrinsics): Use only alphabetic names for
82         intrinsic operators.
84 2007-10-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
86         PR fortran/33162
87         * interface.c (compare_intr_interfaces): New function to check intrinsic
88         function arguments against formal arguments. (compare_interfaces): Fix
89         logic in comparison of function and subroutine attributes.
90         (compare_parameter): Use new function for intrinsic as argument.
91         * resolve.c (resolve_actual_arglist): Allow an intrinsic without
92         function attribute to be checked further.  Set function attribute if
93         intrinsic symbol is found, return FAILURE if not.
95 2007-10-31  Paul Thomas  <pault@gcc.gnu.org>
97         PR fortran/33897
98         * decl.c (gfc_match_entry): Do not make ENTRY name
99         global for contained procedures.
100         * parse.c (gfc_fixup_sibling_symbols): Fix code for
101         determining whether a procedure is external.
103 2007-10-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
105         PR fortran/33596
106         * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR
107         from the result of build_call_expr.
109 2007-10-29  Paul Thomas  <pault@gcc.gnu.org>
111         PR fortran/31217
112         PR fortran/33811
113         PR fortran/33686
115         * trans-array.c (gfc_conv_loop_setup): Send a complete type to
116         gfc_trans_create_temp_array if the temporary is character.
117         * trans-stmt.c (gfc_trans_assign_need_temp): Do likewise for
118         allocate_temp_for_forall_nest.
119         (forall_replace): New function.
120         (forall_replace_symtree): New function.
121         (forall_restore): New function.
122         (forall_restore_symtree): New function.
123         (forall_make_variable_temp): New function.
124         (check_forall_dependencies): New function.
125         (cleanup_forall_symtrees): New function.
126         gfc_trans_forall_1): Add and initialize pre and post blocks.
127         Call check_forall_dependencies to check for all dependencies
128         and either trigger second forall block to copy temporary or
129         copy lval, outside the forall construct and replace all
130         dependent references. After assignment clean-up and coalesce
131         the blocks at the end of the function.
132         * gfortran.h : Add prototypes for gfc_traverse_expr and
133         find_forall_index.
134         expr.c (gfc_traverse_expr): New function to traverse expression
135         and visit all subexpressions, under control of a logical flag,
136         a symbol and an integer pointer. The slave function is caller
137         defined and is only called on EXPR_VARIABLE.
138         (expr_set_symbols_referenced): Called by above to set symbols
139         referenced.
140         (gfc_expr_set_symbols_referenced): Rework of this function to
141         use two new functions above.
142         * resolve.c (find_forall_index): Rework with gfc_traverse_expr,
143         using forall_index.
144         (forall_index): New function used by previous.
145         * dependency.c (gfc_check_dependency): Use gfc_dep_resolver for
146         all references, not just REF_ARRAY.
147         (gfc_dep_resolver): Correct the logic for substrings so that
148         overlapping arrays are handled correctly.
150 2007-10-28  Tobias Schlüter  <tobi@gcc.gnu.org>
152         PR fortran/32147
153         * module.c (write_symbol): Fix whitespace.
154         (write_symbol0): Walk symtree from left-to-right instead
155         breadth-first.
156         (write_symbol1): Similarly change walk of pointer info tree.
157         (write_module): Insert linebreak.
158         * symbol.c (gfc_traverse_symtree): Change to left-to-right order.
159         (traverse_ns): Likewise.
161 2007-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
163         PR fortran/31306
164         * decl.c (char_len_param_value): Add check for conflicting attributes of
165         function argument.
167 2007-10-27  Tobias Burnus  <burnus@net-b.de>
169         PR fortran/33862
170         * lang-specs.h: Support .ftn and .FTN extension, use CPP for .FOR.
171         * options.c (form_from_filename): Support .ftn extension.
172         * gfortran.texi: Document support of .for and .ftn file extension.
174 2007-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
176         PR fortran/33162
177         * intrinsic.h: Add prototypes for four new functions, gfc_check_datan2,
178         gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd.
179         * intrinsic.c (add_functions): Add double precision checks for dabs,
180         dacos, dacosh, dasin, dasinh, datan, datanh, datan2, dbesj0, dbesj1,
181         dbesy0, dbesy1, dcos, dcosh, ddim, derf, derfc, dexp, dgamma,
182         dlgama, dlog, dlog10, dmod, dsign, dsin, dsinh, dsqrt, dtan, and dtanh.
183         Add real check dprod.
184         * check.c (gfc_check_datan2): New function to check for double precision
185         argumants. (gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd): Ditto.
187 2007-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
189         * invoke.texi: Fix typo in -fmax-errors=.
191 2007-10-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
193         PR fortran/29784
194         * gfortran.texi: Document that there is no logical/integer
195         conversion performed during I/O operations.
197 2007-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
199         PR fortran/33849
200         * resolve.c (resolve_actual_arglist): Fix error message text.
202 2007-10-22  Steven G. Kargl  <kargl@gcc.gnu.org>
204         PR fortran/31244
205         * gfortran.h (gfc_data_value): Change repeat from unsigned int
206         to mpz_t.
207         * decl.c(top_val_list): Remove msg variable.  Use mpz_t for
208         repeat count.
209         * resolve.c (values):  Change left from unsigned int to mpz_t.
210         (next_data_value): Change for mpz_t.
211         (check_data_variable): Change ??? to FIXME in a comment.  Use
212         "mpz_t left".
213         (resolve_data ): Use "mpz_t left".
215 2007-10-21  Paul Thomas  <pault@gcc.gnu.org>
217         PR fortran/33749
218         * resolve.c (resolve_ordinary_assign): New function that takes
219         the code to resolve an assignment from resolve_code. In
220         addition, it makes a temporary of any vector index, on the
221         lhs, using gfc_get_parentheses.
222         (resolve_code): On EXEC_ASSIGN call the new function.
224 2007-10-20  Tobias Burnus  <burnus@net-b.de>
226         PR fortran/33818
227         * resolve.c (resolve_variable): Check that symbol is in the same
228         namespace as the entry function.
230 2007-10-20  Paul Thomas  <pault@gcc.gnu.org>
231             FX Coudert <fxcoudert@gcc.gnu.org>
233         PR fortran/31608
234         * trans-array.c (gfc_conv_expr_descriptor): For all except
235         indirect references, use gfc_trans_scalar_assign instead of
236         gfc_add_modify_expr.
237         * iresolve.c (check_charlen_present): Separate creation of cl
238         if necessary and add code to treat an EXPR_ARRAY.
239         (gfc_resolve_char_achar): New function.
240         (gfc_resolve_achar, gfc_resolve_char): Call it.
241         (gfc_resolve_transfer): If the MOLD expression does not have a
242         character length expression, get it from a constant length.
244 2007-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
246         PR fortran/33544
247         * simplify.c (gfc_simplify_transfer): Only warn for short transfer when
248         -Wsurprising is given.
249         * invoke.texi: Document revised behavior.
251 2007-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
253         PR fortran/33795
254         * gfortran.texi: Document GFORTRAN_UNBUFFERED_PRECONNECTED
255         environment variable.  Delete mention of environment variable
256         GFORTRAN_UNBUFFERED_n.
258 2007-10-18  Paul Thomas  <pault@gcc.gnu.org>
260         PR fortran/33233
261         * resolve.c (check_host_association): Check singly contained
262         namespaces and start search for symbol in current namespace.
264 2007-10-18  Paul Thomas  <pault@gcc.gnu.org>
265             Dominique d'Humieres  <dominiq@lps.ens.fr>
267         PR fortran/33733
268         * simplify.c (gfc_simplify_transfer): Return null if the source
269         expression is EXPR_FUNCTION.
271 2007-10-17 Christopher D. Rickett <crickett@lanl.gov>
273         PR fortran/33760
274         * symbol.c (gen_special_c_interop_ptr): Remove code to create
275         constructor for c_null_ptr and c_null_funptr with value of 0.
276         * expr.c (check_init_expr): Prevent check on constructors for
277         iso_c_binding derived types.
278         * resolve.c (resolve_structure_cons): Verify that the user isn't
279         trying to invoke a structure constructor for one of the
280         iso_c_binding derived types.
282 2007-10-15 Christopher D. Rickett <crickett@lanl.gov>
284         PR fortran/32600
285         * trans-expr.c (gfc_conv_function_call): Generate code to inline
286         c_associated.
287         * symbol.c (get_iso_c_sym): Preserve from_intmod and intmod_sym_id
288         attributes in the resolved symbol.
289         * resolve.c (gfc_iso_c_sub_interface): Remove dead code.
291 2007-10-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
293         PR fortran/33055
294         * trans-io.c (create_dummy_iostat): New function to create a unique
295         dummy variable expression to use with IOSTAT.
296         (gfc_trans_inquire): Use the new function to pass unit number error info
297         to run-time library if a regular IOSTAT variable was not given.
299 2007-10-14  Tobias Burnus  <burnus@net-b.de>
301         PR fortran/33745
302         * trans-array.c (gfc_conv_ss_startstride): Fix dimension check.
303         (gfc_trans_array_bound_check, gfc_conv_array_ref,
304         gfc_conv_ss_startstride): Simplify error message.
305         * resolve.c (check_dimension): Fix dimension-type switch;
306         improve error message.
308 2007-10-13  Tobias Schlüter  <tobi@gcc.gnu.org>
309             Paul Thomas  <pault@gcc.gnu.org>
311         PR fortran/33254
312         PR fortran/33727
313         * trans-array.c (get_array_ctor_var_strlen): Check upper bound for
314         constness instead of lower bound.
315         (get_array_ctor_strlen): Add bounds-checking code.
317 2007-10-12  Paul Thomas  <pault@gcc.gnu.org>
319         PR fortran/33542
320         * resolve.c (resolve_actual_arglist): If the actual argument is
321         ambiguous, then there is an error.
323 2007-10-12  Paul Thomas  <pault@gcc.gnu.org>
325         PR fortran/33664
326         * expr.c (gfc_specification_expr): If a function is not
327         external, intrinsic or pure is an error.  Set the symbol pure
328         to prevent repeat errors.
330 2007-10-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
332         PR fortran/33636
333         * expr.c (find_array_section): Check for constructor constantness.
335 2007-10-08  Tobias Schlüter  <tobi@gcc.gnu.org>
337         PR fortran/33689
338         * resolve.c (gfc_resolve_expr): Fix indentation.
339         (resolve_fl_variable_derived): Rename argument.
340         (resolve_fl_variable): Fix case in message.  Clarify logic.
341         Correctly simplify array bounds.
343 2007-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
345         PR libfortran/33683
346         * mathbuiltins.def (GAMMA):  Change function name to
347         "tgamma" instad of "gamma".
349 2007-10-07  Tobias Schlüter  <tobi@gcc.gnu.org>
351         PR fortran/20851
352         * expr.c (check_inquiry): Typo fix in error message.
353         (check_init_expr): Same * 3.
354         (check_restricted): Verify that no dummy arguments appear in
355         restricted expressions in ELEMENTAL procedures.
356         * resolve.c (resolve_fl_variable): Exchange order of checks to
357         avoid side-effect.
359 2007-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
361         PR fortran/33609
362         * simplify.c (range_check): Return gfc_bad_expr if incoming expression 
363         is NULL.
365 2007-10-06  Tobias Schlüter  <tobi@gcc.gnu.org>
367         * simplify.c (gfc_simplify_size): Fix typo.
369 2007-10-06  Tobias Schlüter  <tobi@gcc.gnu.org>
371         PR fortran/25076
372         * resolve.c (gfc_find_forall_index): Move towards top,
373         renaming to ...
374         (find_forall_index): ... this.  Add check for NULL expr.
375         (resolve_forall_iterators): Verify additional constraint.
376         (resolve_forall): Remove checks obsoleted by new code in
377         resolve_forall_iterators.
379 2007-10-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
381         * gfortran.h (gfc_get_data_variable, gfc_get_data_value,
382         gfc_get_data): Move to decl.c.
383         (global_used): Rename into gfc_global_used.
384         (gfc_formalize_init_value, gfc_get_section_index,
385         gfc_assign_data_value, gfc_assign_data_value_range,
386         gfc_advance_section): Move to data.h.
387         (gfc_set_in_match_data): Remove.
388         * decl.c (gfc_get_data_variable, gfc_get_data_value,
389         gfc_get_data): Move here.
390         (gfc_set_in_match_data): Rename into set_in_match_data.
391         (gfc_match_data): Likewise.
392         (add_global_entry): Rename global_used into gfc_global_used.
393         * data.c: Include data.h.
394         * trans.h (gfc_todo_error): Remove.
395         * trans-array.c (gfc_trans_array_constructor,
396         gfc_conv_ss_startstride, gfc_conv_loop_setup): Change
397         gfc_todo_error into assertions.
398         * resolve.c (resolve_global_procedure): Rename global_used into
399         gfc_global_used.
400         * parse.c (gfc_global_used, parse_module, add_global_procedure,
401         add_global_program): Likewise.
402         * trans-intrinsic.c (gfc_walk_intrinsic_function): Rename
403         global_used into gfc_global_used.
404         * Make-lang.in: Add dependencies on fortran/data.h.
405         * data.h: New file.
407 2007-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
409         PR fortran/33529
410         * decl.c (match_char_kind): New function.
411         (match_char_spec): Use match_char_kind.
413 2007-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
415         PR fortran/33502
416         * scanner.c (gfc_advance_line): Call debug_hooks->end_source_file
417         and debug_hooks->start_source_file when appropriate, and set
418         dbg_emitted.
419         (gfc_define_undef_line): New function.
420         (load_file): Don't error out on #define and #undef lines.
421         * parse.c (next_statement): Call gfc_define_undef_line.
422         (gfc_parse_file): Call debug_hooks->start_source_file and
423         debug_hooks->end_source_file for the main source file if
424         required.
425         * gfortran.h (gfc_linebuf): Add dbg_emitted field.
426         (gfc_define_undef_line): New prototype.
428 2007-10-04  Tobias Schlüter  <tobi@gcc.gnu.org>
430         PR fortran/33626
431         * resolve.c (resolve_operator): Always copy the type for
432         expressions in parentheses.
434 2007-10-04  Paul Thomas  <pault@gcc.gnu.org>
436         PR fortran/33646
437         PR fortran/33542
438         * interface.c (check_interface1): Revert patch of 10-02.
440 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
442         PR fortran/26682
443         * trans-decl.c (build_function_decl): Set "externally_visible"
444         attribute on the MAIN program decl.
446 2007-10-03  Tobias Schlüter  <tobi@gcc.gnu.org>
448         PR fortran/33198
449         * resolve.c (has_default_initializer): Move to top.  Make bool.
450         (resolve_common_blocks): Simplify logic.  Add case for derived
451         type initialization.
452         (resolve_fl_variable_derived): Split out from ...
453         (resolve_fl_variable): ... here, while adapting to new h_d_i
454         interface.
456 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
458         PR fortran/26682
459         * options.c (gfc_post_options): Issue an error when
460         -fwhole-program is used.
462 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
464         PR fortran/33542
465         * interface.c (check_interface1): Specific procedures are
466         always ambiguous if they have the same name.
468 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
470         PR fortran/33566
471         * primary.c (gfc_match_rvalue): Make all expressions with array
472         references to structure parameters into variable expressions.
474 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
476         PR fortran/33554
477         * trans-decl.c (init_intent_out_dt): New function.
478         (gfc_trans_deferred_vars): Remove the code for default
479         initialization of INTENT(OUT) derived types and put it
480         in the new function.  Call it earlier than before, so
481         that array offsets and lower bounds are available.
483 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
485         PR fortran/33550
486         * decl.c (get_proc_name): Return rc if rc is non-zero; ie. if
487         the name is a reference to an ambiguous symbol.
489 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
491         PR fortran/31154
492         PR fortran/31229
493         PR fortran/33334
494         * decl.c : Declare gfc_function_kind_locs and
495         gfc_function_type_locus.
496         (gfc_match_kind_spec): Add second argument kind_expr_only.
497         Store locus before trying to match the expression. If the
498         current state corresponds to a function declaration and there
499         is no match to the expression, read to the parenthesis, return
500         kind = -1, dump the expression and return.
501         (gfc_match_type_spec): Renamed from match_type_spec and all
502         references changed.  If an interface or an external function,
503         store the locus, set kind = -1 and return.  Otherwise, if kind
504         is already = -1, use gfc_find_symbol to try to find a use
505         associated or imported type.
506         match.h : Prototype for gfc_match_type_spec.
507         * parse.c (match_deferred_characteristics): New function.
508         (parse_spec): If in a function, statement is USE or IMPORT
509         or DERIVED_DECL and the function kind=-1, call
510         match_deferred_characteristics.  If kind=-1 at the end of the
511         specification expressions, this is an error.
512         * parse.h : Declare external gfc_function_kind_locs and
513         gfc_function_type_locus.
515 2007-09-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
517         * module.c (mio_expr): Avoid -Wcast-qual warning.
519 2007-09-27  Tobias Schlüter  <tobi@gcc.gnu.org>
521         * arith.c (reduce_binary_aa): Fix capitalization.
522         * check.c (gfc_check_dot_product): Likewise.
523         (gfc_check_matmul): Likewise.
524         * expr.c (gfc_check_conformance): Likewise.
525         (gfc_check_assign): Likewise.
526         (gfc_default_initializer): Simplify logic.
527         * trans.c (gfc_msg_bounds): Make const.
528         (gfc_msg_fault): Likewise.
529         (gfc_msg_wrong_return): Likewise.
530         * trans.h: Add const to corresponding extern declarations.
532 2007-09-27  Paul Thomas  <pault@gcc.gnu.org>
534         PR fortran/33568
535         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Allow for the 
536         possibility of the optional KIND argument by making arg
537         an array, counting the number of arguments and using arg[0].
539 2007-09-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
541         PR fortran/30780
542         * invoke.texi: Add note to -ffpe-trap option. Fix typos.
544 2007-09-23  Tobias Schlüter  <tobi@gcc.gnu.org>
546         PR fortran/33269
547         * io.c (check_format_string): Move NULL and constant checks into
548         this function.
549         (check_io_constraints): Call gfc_simplify_expr() before calling
550         check_format_string().  Remove NULL and constant checks.
552 2007-09-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
554         PR fortran/33538
555         * scanner.c, parse.c, gfortran.h: Revert revision 128671.
557 2007-09-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
559         PR fortran/33528
560         * scanner.c (preprocessor_line): Call linemap_add when exiting
561         a file.
562         (gfc_new_file): Adjust debug code for USE_MAPPED_LOCATION.
564 2007-09-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
566         PR fortran/33522
567         * trans-types.c (gfc_get_desc_dim_type): Mark artificial
568         variables with TREE_NO_WARNING.
569         (gfc_get_array_descriptor_base): Likewise.
571 2007-09-22  Paul Thomas  <pault@gcc.gnu.org>
573         PR fortran/33337
574         PR fortran/33376
575         * trans-decl.c (gfc_create_module_variable): Output
576         derived type parameters.
577         * arith.c (gfc_parentheses): Return the argument if
578         it is a constant expression.
579         * primary.c (gfc_match_rvalue): Remove the clearing of
580         the module name and the use_assoc attribute for derived
581         type parameter expressions.
583 2007-09-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
585         PR fortran/33502
586         * scanner.c (gfc_advance_line): Call debug_hooks->start_source_file
587         and debug_hooks->end_source_file when entering and exiting
588         included files.
589         (gfc_define_undef_line): New function.
590         (load_file): Ignore #define and #undef preprocessor lines
591         while reading source files.
592         * parse.c (next_statement): Handle #define and #undef
593         preprocessor lines.
594         (gfc_parse_file): Call debug_hooks->start_source_file and
595         debug_hooks->end_source_file for the main source file if
596         requested by the debug format.
597         * gfortran.h (gfc_define_undef_line): Add prototype.
599 2007-09-22  Tobias Burnus  <burnus@net-b.de>
601         PR fortran/33445
602         * scanner.c (skip_free_comments): Warn if !$OMP& is used
603         if no OpenMP directive is to be continued.
605 2007-09-21  Paul Thomas  <pault@gcc.gnu.org>
607         *trans-expr.c (gfc_trans_pointer_assignment): Convert array
608         descriptor for subref pointer assignements, rather than using
609         the loop info version.
611 2007-09-21  Tobias Burnus  <burnus@net-b.de>
613         PR fortran/33037
614         * simplify.c (gfc_simplify_transfer): Warn if source size
615         is smaller than result size.
617 2007-09-20  Asher Langton  <langton2@llnl.gov>
619         PR fortran/20441
620         * gfortran.h : Add init_local_* enums and init_flag_* flags to
621         gfc_option_t.
622         * lang.opt: Add -finit-local-zero, -finit-real, -finit-integer,
623         -finit-character, and -finit-logical flags.
624         * invoke.texi: Document new options.
625         * resolve.c (build_init_assign): New function.
626         (apply_init_assign): Move part of function into build_init_assign.
627         (build_default_init_expr): Build local initializer (-finit-*).
628         (apply_default_init_local): Apply local initializer (-finit-*).
629         (resolve_fl_variable): Try to add local initializer (-finit-*).
630         * options.c (gfc_init_options, gfc_handle_option,
631         gfc_post_options): Handle -finit-local-zero, -finit-real,
632         -finit-integer, -finit-character, and -finit-logical flags.
634 2007-09-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
636         PR fortran/33221
637         * gfortran.h (symbol_attribute): Add zero_comp field.
638         * symbol.c (gfc_use_derived): Handle case of emtpy derived types.
639         * decl.c (gfc_match_data_decl): Likewise.
640         (gfc_match_derived_decl): Likewise.
641         * module.c (ab_attribute, attr_bits): Add AB_ZERO_COMP member.
642         (mio_symbol_attribute): Write and read AB_ZERO_COMP.
643         * resolve.c (resolve_symbol): Handle case of emtpy derived types.
644         * parse.c (parse_derived): Likewise.
646 2007-09-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
648         PR fortran/33288
649         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
650         reduce_binary_aa): Call ourselves recursively if an element of
651         the constructor is itself a constant array.
653 2007-09-20  Tobias Schlüter  <tobi@gcc.gnu.org>
655         * io.c (resolve_tag_format): New function using code split out
656         and simplified from ...
657         (resolve_tag): ... this function.  Simplify logic.  Unify
658         IOSTAT, IOLENGTH and SIZE handling.
660 2007-09-20  Christopher D. Rickett  <crickett@lanl.gov>
662         PR fortran/33497
663         * resolve.c (gfc_iso_c_func_interface): Use information from
664         subcomponent if applicable.
666 2007-09-20  Tobias Burnus  <burnus@net-b.de>
668         PR fortran/33325
669         * intrinsic.text: Add documentation of the intrinsic modules.
670         * gfortran.texi: Link to intrinsic-modules section and to
671         the GOMP manual.
673 2007-09-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
675         PR fortran/31119
676         * trans-array.c (gfc_conv_ss_startstride): Only perform bounds
677         checking for optional args when they are present.
679 2007-09-18  Tobias Burnus  <burnus@net-b.de>
681         PR fortran/33231
682         * resolve.c (resolve_elemental_actual): Check for conformance
683         of intent out/inout dummies.
685 2007-09-17  Tobias Burnus  <burnus@net-b.de>
687         PR fortran/33106
688         * resolve.c (resolve_symbol): Reject public variable of
689         private derived-types for Fortran 95.
691 2007-09-17  Tobias Burnus  <burnus@net-b.de>
693         * resolve.c (resolve_fl_procedure): Allow private dummies
694         for Fortran 2003.
696 2007-09-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
698         * trans-types.c (gfc_get_desc_dim_type): Do not to try
699         emit debug info.
700         (gfc_get_array_descriptor_base): Likewise.
701         (gfc_get_mixed_entry_union): Likewise
702         (gfc_get_derived_type): Set decl location for fields and
703         derived type itself.
705 2007-09-16  Paul Thomas  <pault@gcc.gnu.org>
707         PR fortran/29396
708         PR fortran/29606
709         PR fortran/30625
710         PR fortran/30871
711         * trans.h : Add extra argument to gfc_build_array_ref. Rename
712         gfc_conv_aliased_arg to gfc_conv_subref_array_arg.  Move
713         prototype of is_aliased_array to gfortran.h and rename it
714         gfc_is_subref_array.  Add field span to lang_decl, add a new
715         decl lang specific flag accessed by GFC_DECL_SUBREF_ARRAY_P
716         and a new type flag GFC_DECL_SUBREF_ARRAY_P.
717         * trans.c (gfc_build_array_ref): Add the new argument, decl.
718         If this is a subreference array pointer, use the lang_decl
719         field 'span' to calculate the offset in bytes and use pointer
720         arithmetic to address the element.
721         * trans-array.c (gfc_conv_scalarized_array_ref,
722         gfc_conv_array_ref): Add the backend declaration as the third
723         field, if it is likely to be a subreference array pointer.
724         (gfc_conv_descriptor_dimension, gfc_trans_array_ctor_element,
725         gfc_trans_array_constructor_element, structure_alloc_comps,
726         gfc_conv_array_index_offset): For all other references to
727         gfc_build_array_ref, set the third argument to NULL.
728         (gfc_get_dataptr_offset): New function.
729         (gfc_conv_expr_descriptor): If the rhs of a pointer assignment
730         is a subreference array, then calculate the offset to the
731         subreference of the first element and set the descriptor data
732         pointer to this, using gfc_get_dataptr_offset.
733         trans-expr.c (gfc_get_expr_charlen): Use the expression for the
734         character length for a character subreference.
735         (gfc_conv_substring, gfc_conv_subref_array_arg): Add NULL for
736         third argument in call to gfc_build_array_ref.
737         (gfc_conv_aliased_arg): Rename to gfc_conv_subref_array_arg.
738         (is_aliased_array): Remove.
739         (gfc_conv_function_call): Change reference to is_aliased_array
740         to gfc_is_subref_array and reference to gfc_conv_aliased_arg to
741         gfc_conv_subref_array_arg.
742         (gfc_trans_pointer_assignment): Add the array element length to
743         the lang_decl 'span' field.
744         * gfortran.h : Add subref_array_pointer to symbol_attribute and
745         add the prototype for gfc_is_subref_array.
746         * trans-stmt.c : Add NULL for third argument in all references
747         to gfc_build_array_ref.
748         * expr.c (gfc_is_subref_array): Renamed is_aliased_array.
749         If this is a subreference array pointer, return true.
750         (gfc_check_pointer_assign): If the rhs is a subreference array,
751         set the lhs subreference_array_pointer attribute.
752         * trans-decl.c (gfc_get_symbol_decl): Allocate the lang_decl
753         field if the symbol is a subreference array pointer and set an
754         initial value of zero for the 'span' field.
755         * trans-io.c (set_internal_unit): Refer to is_subref_array and
756         gfc_conv_subref_array_arg.
757         (nml_get_addr_expr): Add NULL third argument to
758         gfc_build_array_ref. 
759         (gfc_trans_transfer): Use the scalarizer for a subreference
760         array.
762 2007-09-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
764         * iresolve.c (resolve_mask_arg): If a mask is an array
765         expression, convert it to kind=1.
767 2007-09-13  Tobias Burnus  <burnus@net-b.de>
769         PR fortran/33343
770         * expr.c (gfc_check_conformance): Print ranks in the error message.
771         * resolve.c (resolve_elemental_actual): Check also conformance of
772         the actual arguments for elemental functions.
774 2007-09-13  Tobias Burnus  <burnus@net-b.de>
776         * symbol.c (gfc_add_elemental,gfc_add_pure,gfc_add_recursive):
777         Allow prefixes only to be specified once.
779 2007-09-13  Tobias Burnus  <burnus@net-b.de>
781         PR fortran/33412
782         * symbol.c (check_conflict): Add conflict of ELEMENTAL with Bind(C).
784 2007-09-12  Tobias Burnus  <burnus@net-b.de>
786         PR fortran/33297
787         * check.c (scalar_check): Move up in the file.
788         (kind_check): Call scalar_check.
789         (dim_check): If optional, do not call nonoptional_check; use
790         bool for optional.
791         (gfc_check_all_any,gfc_check_count,gfc_check_cshift,gfc_check_eoshift,
792         gfc_check_lbound,gfc_check_minloc_maxloc,check_reduction,
793         gfc_check_spread,gfc_check_ubound): Use true/false instead of 0/1
794         for dim_check; honor changed meaning of optional.
795         (gfc_check_int): Replace checks by kind_check.
796         (gfc_check_size): Replace checks by dim_check.
798 2007-09-12  Tobias Burnus  <burnus@net-b.de>
800         PR fortran/33284
801         PR fortran/33310
802         * symbol.c (check_conflict): Add conflict between INTRINSIC and ENTRY
803         and between BIND(C) and PARAMETER.
805 2007-09-12  Tobias Burnus  <burnus@net-b.de>
807         * trans-expr.c (gfc_conv_initializer): Fix expr == NULL check.
809 2007-09-12  Jan Hubicka  <jh@suse.cz>
811         * f95-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
813 2007-09-12  Christopher D. Rickett  <crickett@lanl.gov>
815         PR fortran/33395
816         * trans-expr.c (gfc_conv_initializer): Remove unnecessary test for
817         intmod_sym_id and use derived symbol to set new kind of C_NULL_PTR
818         and C_NULL_FUNPTR expressions.
820 2007-09-11  Christopher D. Rickett  <crickett@lanl.gov>
822         PR fortran/33040
823         * trans-expr.c (gfc_trans_structure_assign): Convert component
824         C_NULL_PTR and C_NULL_FUNPTR component initializers to (void *).
825         * trans-types.c (gfc_get_derived_type): Create a backend_decl for
826         the c_address field of C_PTR and C_FUNPTR and ensure initializer
827         is of proper type/kind for (void *).
829 2007-09-11  Jan Hubicka <jh@suse.cz>
831         * f95-lang.c (gfc_expand_function): Kill.
832         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
834 2007-09-08  Tobias Burnus  <burnus@net-b.de>
836         PR fortran/31547
837         * gfortran.texi: Document when CPP is called.
839         * intrinsic.texi (IOR): Fix typos.
841 2007-09-10  Paul Thomas  <pault@gcc.gnu.org>
843         PR fortran/33370
844         * trans-expr.c (copyable_array_p):  Add tests that expression
845         is a variable, that it has no subreferences and that it is a
846         full array.
847         (gfc_trans_assignment): Change conditions to suit modifications
848         to copyable_array_p.
850 2007-09-06  Tom Tromey  <tromey@redhat.com>
852         * scanner.c (get_file): Update.
853         (load_file): Update.
854         (gfc_next_char_literal): Use gfc_linebuf_linenum.
855         * f95-lang.c (gfc_init): Update.
856         * gfortran.h (gfc_linebuf_linenum): New macro.
858 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
860         * trans-decl.c (build_entry_thunks): Use set_cfun.
861         (gfc_generate_function_code): Likewise.
863 2007-09-05  Paul Thomas  <pault@gcc.gnu.org>
865         PR fortran/31564
866         * primary.c (gfc_match_rvalue): Make expressions that refer
867         to derived type parameters that have array references into
868         variable expressions.  Remove references to use association
869         from the symbol.
871         PR fortran/33241
872         * decl.c (add_init_expr_to_sym): Provide assumed character
873         length parameters with the length of the initialization
874         expression, if a constant, or that of the first element of
875         an array.
877 2007-09-04  Janus Weil  <jaydub66@gmail.com>
878             Paul Thomas  <pault@gcc.gnu.org>
880         * decl.c (match_procedure_decl,match_procedure_in_interface,
881         gfc_match_procedure): Handle PROCEDURE statements.
882         * gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface".
883         (enum gfc_statement): New element "ST_PROCEDURE".
884         (strcut symbol_attribute): New member "unsigned procedure".
885         * interface.c (check_interface0): Extended error checking.
886         * match.h: Add gfc_match_procedure prototype.
887         * parse.c (decode_statement,next_statement,gfc_ascii_statement,
888         parse_derived,parse_interface): Implement PROCEDURE statements.
889         * resolve.c (resolve_symbol): Ditto.
890         * symbol.c (check_conflict): Ditto.
891         (gfc_add_proc): New function for setting the procedure attribute.
892         (copy_formal_args): New function for copying formal argument lists.
894 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
896         * Make-lang.in (gfortranspec.o): Remove SHLIB_MULTILIB.
898 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
900         * gfortranspec.c (lang_specific_driver): Use CONST_CAST2.
901         * options.c (gfc_post_options): Supply a TYPE for CONST_CAST.
902         * parse.c (parse_omp_structured_block): Likewise,
903         * st.c (gfc_free_statement): Likewise,
905 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
907         PR fortran/31675
908         * libgfortran.h: New file.
909         * iso-fortran-env.def: Use macros in the new header instead of
910         hardcoded integer constants.
911         * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
912         fortran/libgfortran.h.
913         * gfortran.h (GFC_STD_*, GFC_FPE_*, options_convert,
914         ioerror_codes): Remove.
915         * trans.c (ERROR_ALLOCATION): Remove.
916         (gfc_call_malloc, gfc_allocate_with_status,
917         gfc_allocate_array_with_status): Use LIBERROR_ALLOCATION.
918         * trans-types.h (GFC_DTYPE_*): Remove.
919         * trans-decl.c (gfc_generate_function_code): Use
920         GFC_CONVERT_NATIVE instead of CONVERT_NATIVE.
921         * trans-io.c (set_parameter_value, set_parameter_ref): Use
922         LIBERROR_* macros instead of IOERROR_ macros.
923         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use
924         LIBERROR_END and LIBERROR_EOR instead of hardcoded constants.
925         * options.c (gfc_init_options): Use GFC_CONVERT_NATIVE instead of
926         CONVERT_NATIVE.
927         (gfc_handle_option): Use GFC_CONVERT_* macros instead of CONVERT_*.
929 2007-09-02  Steven G. Kargl  <kargl@gcc.gnu.org>
931         * invoke.texi: Fix the -frange-checking option entry.
933 2007-09-02  Roger Sayle  <roger@eyesopen.com>
935         * decl.c (match_string_p): New helper function to explicitly match
936         a string of characters.
937         (match_attr_spec): Remove no longer needed DECL_COLON from decl_types.
938         Delete decls array and peek_char.  Rewrite decl attribute parser to
939         avoid calling gfc_match_strings.
940         * match.c (gfc_match_strings): Delete unused function.
941         * match.h (gfc_match_strings): Delete prototype.
943 2007-09-02  Tobias Schlüuter  <tobi@gcc.gnu.org>
945         * dump-parse-tree.c (show_char_const): New function.
946         (gfc_show_expr): Use it.
947         * expr.c (find_substring_ref): Rework to not keep characters
948         dangling beyond end of string.
950 2007-09-02  H.J. Lu  <hongjiu.lu@intel.com>
952         PR fortran/33276
953         * array.c (expand_iterator): Initialize frame.prev.
955 2007-08-31  Tobias Burnus  <burnus@net-b.de>
957         PR fortran/33232
958         * io.c (match_io): Also diagnose extra comma for READ.
960 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
962         * intrinsic.texi (LGAMMA): Remove empty @cindex line.
964 2007-08-31  Paul Thomas  <pault@gcc.gnu.org>
966         PR fortran/31879
967         PR fortran/31197
968         PR fortran/31258
969         PR fortran/32703
970         * gfortran.h : Add prototype for gfc_resolve_substring_charlen.
971         * resolve.c (gfc_resolve_substring_charlen): New function.
972         (resolve_ref): Call gfc_resolve_substring_charlen.
973         (gfc_resolve_character_operator): New function.
974         (gfc_resolve_expr): Call the new functions in cases where the
975         character length is missing.
976         * iresolve.c (cshift, eoshift, merge, pack, reshape, spread,
977         transpose, unpack): Call gfc_resolve_substring_charlen for
978         source expressions that are character and have a reference.
979         * trans.h (gfc_trans_init_string_length) Change name to
980         gfc_conv_string_length; modify references in trans-expr.c,
981         trans-array.c and trans-decl.c.
982         * trans-expr.c (gfc_trans_string_length): Handle case of no
983         backend_decl.
984         (gfc_conv_aliased_arg): Remove code for treating substrings
985         and replace with call to gfc_trans_string_length.
986         * trans-array.c (gfc_conv_expr_descriptor): Remove code for
987         treating strings and call gfc_trans_string_length instead.
989 2007-08-30  Tobias Burnus  <burnus@net-b.de>
991         PR fortran/33228
992         * interface.c (check_interface0): Improve error for external procs.
993         (check_sym_interfaces): Fix checking of module procedures.
995 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
997         PR fortran/32989
998         * iresolve.c (gfc_resolve_getarg): Handle non-default integer
999         kinds.
1000         * check.c (gfc_check_getarg): New function
1001         * intrinsic.h: Add prototype for gfc_check_getarg.
1002         * intrinsic.c (add_subroutines): Add reference to gfc_check_getarg.
1003         * intrinsic.texi (GETARG): Adjust documentation.
1005 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1006             Tobias Burnus  <burnus@gcc.gnu.org>
1008         PR fortran/33105
1009         * intrinsic.c (add_functions): Add IS_IOSTAT_END and
1010         IS_IOSTAT_EOR intrinsics.
1011         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_IOSTAT_END and
1012         GFC_ISYM_IS_IOSTAT_EOR.
1013         * trans-intrinsic.c (gfc_conv_has_intvalue): New function.
1014         (gfc_conv_intrinsic_function): Call gfc_conv_has_intvalue for
1015         GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR.
1016         * intrinsic.texi: Add IS_IOSTAT_END and IS_IOSTAT_EOR.
1018 2007-08-28  Christopher D. Rickett  <crickett@lanl.gov>
1020         PR fortran/33215
1021         * decl.c (build_sym): Pass number of identifiers on line to
1022         set_binding_label.
1023         (set_binding_label): Verify that only one identifier given if
1024         NAME= specified, even if the given binding label has zero length.
1025         (gfc_match_bind_c): Remove declaration for has_name_equals because
1026         it hides the static global one that is needed.
1028 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1030         * trans-array.c (gfc_grow_array): Use gfc_call_realloc.
1031         (gfc_array_allocate): Use gfc_allocate_with_status and
1032         gfc_allocate_array_with_status.
1033         (gfc_array_deallocate): Use gfc_deallocate_with_status.
1034         (gfc_trans_dealloc_allocated): Use gfc_deallocate_with_status.
1035         * trans-stmt.c (gfc_trans_allocate): Use gfc_allocate_with_status.
1036         (gfc_trans_deallocate): Use gfc_deallocate_with_status.
1037         * trans.c (gfc_allocate_with_status, gfc_allocate_array_with_status,
1038         gfc_deallocate_with_status, gfc_call_realloc): New functions.
1039         * trans.h (gfc_allocate_with_status, gfc_allocate_array_with_status,
1040         gfc_deallocate_with_status, gfc_call_realloc): New prototypes.
1041         (gfor_fndecl_internal_realloc, gfor_fndecl_allocate,
1042         gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove.
1043         * f95-lang.c (gfc_init_builtin_functions): Create decl for
1044         BUILT_IN_REALLOC.
1045         * trans-decl.c (gfor_fndecl_internal_realloc,
1046         gfor_fndecl_allocate, gfor_fndecl_allocate_array,
1047         gfor_fndecl_deallocate): Remove function decls.
1048         (gfc_build_builtin_function_decls): Likewise.
1050 2007-08-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1052         PR fortran/33055
1053         Revert previous patch.
1055 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
1057         PR fortran/22244
1058         * Make-lang.in (fortran/trans-types.o): Depend on $(FLAGS_H).
1059         * trans-types.c: Include flags.h.
1060         (gfc_get_nodesc_array_type): Add TYPE_DECL TYPE_NAME with
1061         correct bounds and dimensions for packed arrays.
1063 2007-08-27  Tobias Burnus  <burnus@net-b.de>
1065         * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call.
1067 2007-08-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1069         PR fortran/33055
1070         * trans-io.c (create_dummy_iostat): New function to create a unique
1071         dummy variable expression to use with IOSTAT.
1072         (gfc_trans_inquire): Use the new function to pass unit number error info
1073         to run-time library if a regular IOSTAT variable was not given.
1075 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1077         * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and
1078         GFC_ISYM_LGAMMA.
1080 2007-08-26  Asher Langton  <langton2@llnl.gov>
1081             Tobias Burnus  <burnus@net-b.de>
1083         * gfortran.h (gfc_option_t): Add flag_recursive.
1084         * lang.opt: Add -frecursive option and update -fopenmp.
1085         * invoke.texi (-frecursive): Document new option.
1086         (-fopenmp,-fno-automatic,-fmax-stack-var-size): Update.
1087         * options.c (gfc_init_options, gfc_post_options,
1088         gfc_handle_option): Add -frecursive and modify -fopenmp.
1089         (gfc_post_options): Add warning for conflicting flags.
1091 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1093         PR fortran/31298
1094         * module.c (mio_symbol_ref,mio_interface_rest):  Return pointer_info.
1095         (load_operator_interfaces): Support multible loading of an operator.
1097 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1099         PR fortran/32985
1100         * match.c (gfc_match_common): Remove SEQUENCE diagnostics.
1101         * resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics;
1102         fix walking through the tree.
1104 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1106         PR fortran/32980
1107         * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma,
1108         gfc_resolve_gamma,gfc_resolve_lgamma): New function declations.
1109         * mathbuiltins.def: Define GAMMA and LGAMMA.
1110         * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA
1111         and DLGAMA.
1112         * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions.
1113         * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions.
1114         * intrinsic.texi: Add documentation for GAMMA and LGAMMA.
1116 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1118         PR fortran/33188
1119         * parse.c (parse_derived): Support empty derived type
1120         definitions for Fortran 2003.
1122 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1124         * trans-openmp.c (gfc_omp_privatize_by_reference): Constify.
1125         * trans.h (gfc_omp_privatize_by_reference): Likewise.
1127 2007-08-24  Tobias Burnus  <burnus@net-b.de>
1129         PR fortran/33178
1130         * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization
1131         expression check.
1133 2007-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1135         PR fortran/32972
1136         * iresolve.c:  Don't convert array masks.
1138 2007-08-24  Tobias Burnus  <burnus@net-b.de>
1140         PR fortran/33139
1141         * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for
1142         whole-array pointer assignments.
1144 2007-08-23  Jakub Jelinek  <jakub@redhat.com>
1146         * decl.c (variable_decl): Don't share charlen structs if
1147         length == NULL.
1148         * trans-decl.c (create_function_arglist): Assert
1149         f->sym->ts.cl->backend_decl is NULL instead of unsharing
1150         charlen struct here.
1152 2007-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1154         PR fortran/33095
1155         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove
1156         runtime error checking.
1158 2007-08-22  Roger Sayle  <roger@eyesopen.com>
1159             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1161         * match.c (intrinsic_operators): Delete.
1162         (gfc_match_intrinsic_op): Rewrite matcher to avoid calling
1163         gfc_match_strings.
1165 2007-08-22  Christopher D. Rickett  <crickett@lanl.gov>
1167         PR fortran/33020
1168         * resolve.c (gfc_iso_c_sub_interface): Remove setting of type and
1169         kind for optional SHAPE parameter of C_F_POINTER.
1171 2007-08-22  Janus Weil  <jaydub66@gmail.com>
1173         * decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c.
1174         (gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces.
1175         (gfc_match_mopdproc): Bugfix to reject module procedures in
1176         abstract interfaces.
1178 2007-08-22  Kai Tietz  <kai.tietz@onevision.com>
1180         * f95-lang.c: (gfc_init_decl_processing): Choose sizetype by using
1181         Pmode.
1183 2007-08-21  Paul Brook  <paul@codesourcery.com>
1184             Nathan Sidwell  <nathan@codesourcery.com>
1185             Mark Mitchell  <mark@codesourcery.com>
1186             Joseph Myers  <joseph@codesourcery.com>
1188         * gfortranspec.c (lang_specific_driver): Use pkgversion_string.
1189         * Make-lang.in (gfortran.pod): Define BUGURL.
1190         * invoke.texi: Use BUGURL for bug-reporting instructions.
1192 2007-08-19  Roger Sayle  <roger@eyesopen.com>
1194         * match.c (intrinsic_operators): Make static.
1195         (gfc_op2string): New function for converting a gfc_intrinsic_op to
1196         to a "const char*", replacing the macro of the same name.
1197         * gfortran.h (intrinsic_operators): Delete prototype.
1198         (gfc_op2string): Replace macro with function prototype.
1200 2007-08-18  Tobias Burnus  <burnus@net-b.de>
1202         * gfortran.h (gfc_is_intrinsic_typename): Add declaration.
1203         * symbol.c (gfc_is_intrinsic_typename): New function.
1204         * parse.c (decode_statement): Check for space in ABSTRACT INTERFACE.
1205         (parse_interface): Use gfc_is_intrinsic_typename.
1206         * decl.c (gfc_match_derived_decl): Ditto.
1207         * module.c (gfc_match_use): Use gcc_unreachable() for
1208         INTERFACE_ABSTRACT in switch().
1210 2007-08-18  Roger Sayle  <roger@eyesopen.com>
1212         * primary.c (match_logical_constant_string): New function to match
1213         a ".true." or a ".false.".
1214         (match_logical_constant): Use it instead of gfc_match_strings.
1216 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1217             Janus Weil  <jaydub66@gmail.com>
1219         * interface.c (gfc_match_interface,gfc_match_abstract_interface,
1220         gfc_match_end_interface,gfc_add_interface): Add abstract interface.
1221         * dump-parse-tree.c (gfc_show_attr): Ditto.
1222         * gfortran.h (interface_type,symbol_attribute): Ditto.
1223         * module.c (gfc_match_use,ab_attribute,attr_bits,
1224         mio_symbol_attribute): Ditto.
1225         * resolve.c (resolve_function): Ditto.
1226         * match.h: Ditto.
1227         * parse.c (decode_statement): Ditto.
1228         (parse_interface): Ditto, check for C1203 (name of abstract interface
1229         cannot be the same as an intrinsic type).
1230         * decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces.
1231         (access_attr_decl): Handle Abstract interfaces.
1233 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1235         PR fortran/32881
1236         * expr.c (gfc_check_pointer_assign): If the rhs is the
1237         initialization expression for the rhs, there is no error.
1239 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1241         PR fortran/32875
1242         * trans-array.c (get_array_ctor_strlen): Set the character
1243         length of a zero length array to zero.
1245 2007-08-16  Tobias Burnus  <burnus@net-b.de>
1247         PR fortran/33072
1248         * module.c (gfc_match_use): Mark user operators as such.
1249         (find_use_name_n): Distinguish between operators and other symbols.
1250         (find_use_name,number_use_names,mio_namelist,
1251          load_operator_interfaces,load_generic_interfaces,read_module,
1252          write_generic): Update find_use_name_n calls.
1254 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1256         PR fortran/29459
1257         * trans.c (gfc_create_var_np): Do not emit warnings for
1258         anonymous variables.
1260 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1262         PR fortran/33066
1263         * decl.c (gfc_get_type_attr_spec): Fix whitespace.
1264         (gfc_match_derived_decl): Fix logic.
1266 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1268         PR fortran/33073
1269         * trans-intrinsic.c (build_fixbound_expr): Convert to result type
1270         in all cases.
1272 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1274         PR fortran/32594
1275         * trans-expr.c (gfc_conv_substring_expr): Only call
1276         gfc_conv_substring if expr->ref is not NULL.
1277         * expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring
1278         expression might be a constant.
1279         (gfc_simplify_expr): Handle missing start and end, as well as
1280         missing ref.
1282 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1284         PR fortran/32926
1285         * match.c (gfc_match_call): Do not create a new symtree in the
1286         case where the existing symbol is external and not referenced.
1288 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1290         PR fortran/32827
1291         * decl.c (variable_decl): Check for an imported symbol
1292         by looking for its symtree and testing for the imported
1293         attribute.
1294         (gfc_match_import): Remove change of symbol's namespace
1295         and set the attribute imported instead.
1296         * symbol.c (gfc_get_sym_tree): It is not an error if a
1297         symbol is imported.
1298         * gfortran.h : Add the 'imported' to symbol_attribute.
1300 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1302         PR fortran/32962
1303         * trans-array.c (gfc_conv_array_transpose): Set the offset
1304         of the destination to zero if the loop is zero based.
1306 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1308         PR fortran/29600
1309         * intrinsic.c (add_functions): Add optional KIND argument to ACHAR.
1310         * iresolve.c (gfc_resolve_achar): Handle the KIND argument.
1311         * check.c (gfc_check_achar): Check for the optional KIND argument.
1312         * simplify.c (gfc_simplify_achar): Use KIND argument.
1313         * intrinsic.h (gfc_check_achar, gfc_simplify_achar,
1314         gfc_resolve_achar): Adjust prototypes.
1316 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1318         PR fortran/30964
1319         PR fortran/33054
1320         * trans-expr.c (gfc_conv_function_call): When no formal argument
1321         list is available, we still substitute missing optional arguments.
1322         * check.c (gfc_check_random_seed): Correct the check on the
1323         number of arguments to RANDOM_SEED.
1324         * intrinsic.c (add_subroutines): Add a resolution function to
1325         RANDOM_SEED.
1326         * iresolve.c (gfc_resolve_random_seed): New function.
1327         * intrinsic.h (gfc_resolve_random_seed): New prototype.
1329 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1331         PR fortran/32860
1332         * error.c (error_uinteger): New function.
1333         (error_integer): Call error_uinteger.
1334         (error_print): Handle %u, %lu, %li and %ld format specifiers.
1335         * interface.c (compare_actual_formal): Use the new %lu specifier.
1337 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1339         PR fortran/31629
1340         * lang.opt (-fmodule-private): New option.
1341         * gfortran.h (gfc_option_t): Add flag_module_private member.
1342         * invoke.texi (-fmodule-private): Document the new option.
1343         * module.c (gfc_check_access): Allow the -fmodule-private option
1344         to modify the default behaviour.
1345         * options.c (gfc_init_options): Initialize flag_module_private.
1346         (gfc_handle_option): Handle -fmodule-private.
1348 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1350         PR fortran/29600
1351         * intrinsic.c (add_functions): Add KIND arguments to COUNT,
1352         IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND
1353         and VERIFY.
1354         * iresolve.c (gfc_resolve_count): Add kind argument.
1355         (gfc_resolve_iachar): New function.
1356         (gfc_resolve_ichar): Add kind argument.
1357         (gfc_resolve_index_func): Likewise.
1358         (gfc_resolve_lbound): Likewise.
1359         (gfc_resolve_len): Likewise.
1360         (gfc_resolve_len_trim): Likewise.
1361         (gfc_resolve_scan): Likewise.
1362         (gfc_resolve_size): New function.
1363         (gfc_resolve_ubound): Add kind argument.
1364         (gfc_resolve_verify): Likewise.
1365         * trans-decl.c (gfc_get_extern_function_decl): Allow specific
1366         intrinsics to have 4 arguments.
1367         * check.c (gfc_check_count): Add kind argument.
1368         (gfc_check_ichar_iachar): Likewise.
1369         (gfc_check_index): Likewise.
1370         (gfc_check_lbound): Likewise.
1371         (gfc_check_len_lentrim): New function.
1372         (gfc_check_scan): Add kind argument.
1373         (gfc_check_size): Likewise.
1374         (gfc_check_ubound): Likewise.
1375         (gfc_check_verify): Likewise.
1376         * intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR,
1377         INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY.
1378         * simplify.c (get_kind): Whitespace fix.
1379         (int_expr_with_kind): New function.
1380         (gfc_simplify_iachar): Add kind argument.
1381         (gfc_simplify_iachar): Likewise.
1382         (gfc_simplify_ichar): Likewise.
1383         (gfc_simplify_index): Likewise.
1384         (simplify_bound_dim): Likewise.
1385         (simplify_bound): Likewise.
1386         (gfc_simplify_lbound): Likewise.
1387         (gfc_simplify_len): Likewise.
1388         (gfc_simplify_len_trim): Likewise.
1389         (gfc_simplify_scan): Likewise.
1390         (gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size.
1391         (gfc_simplify_size): Add kind argument.
1392         (gfc_simplify_ubound): Likewise.
1393         (gfc_simplify_verify): Likewise.
1394         * intrinsic.h: Update prototypes and add new ones.
1395         * trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into
1396         gfc_conv_intrinsic_index_scan_verify.
1397         (gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove.
1398         (gfc_conv_intrinsic_function): Call
1399         gfc_conv_intrinsic_index_scan_verify to translate the INDEX,
1400         SCAN and VERIFY intrinsics.
1402 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1404         PR fortran/31189
1405         * invoke.texi (-fbacktrace): Document the new behaviour.
1407 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1409         PR fortran/32937
1410         * trans-array.c (gfc_conv_expr_descriptor): Use
1411         gfc_conv_const_charlen to generate backend_decl of right type.
1412         * trans-expr.c (gfc_conv_expr_op): Use correct return type.
1413         (gfc_build_compare_string): Use int type instead of default
1414         integer kind for single character comparison.
1415         (gfc_conv_aliased_arg): Give backend_decl the right type.
1416         * trans-decl.c (gfc_build_intrinsic_function_decls): Make
1417         compare_string return an int.
1419 2007-08-11  Ian Lance Taylor  <iant@google.com>
1421         * f95-lang.c (gfc_get_alias_set): Change return type to
1422         alias_set_type.
1424 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1426         PR fortran/31270
1427         * trans.c (gfc_trans_runtime_check): Reorder arguments and
1428         add extra variable arguments. Hand them to the library function.
1429         * trans.h (gfc_trans_runtime_check): Update prototype.
1430         * trans-array.c (gfc_trans_array_bound_check): Issue more
1431         detailled error messages.
1432         (gfc_conv_array_ref): Likewise.
1433         (gfc_conv_ss_startstride): Likewise.
1434         (gfc_trans_dummy_array_bias): Reorder arguments to
1435         gfc_trans_runtime_check.
1436         * trans-expr.c (gfc_conv_substring): Issue more detailled
1437         error messages.
1438         (gfc_conv_function_call): Reorder arguments to gfc_trans_runtime_check.
1439         * trans-stmt.c (gfc_trans_goto): Likewise.
1440         * trans-io.c (set_string): Reorder arguments to
1441         gfc_trans_runtime_check and issue a more detailled error message.
1442         * trans-decl.c (gfc_build_builtin_function_decls): Make
1443         runtime_error and runtime_error_at handle a variable number of
1444         arguments.
1445         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Reorder arguments
1446         to gfc_trans_runtime_check.
1447         (gfc_conv_intrinsic_minmax): Likewise.
1448         (gfc_conv_intrinsic_repeat): Issue more detailled error messages.
1450 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1452         * gfortranspec.c (lang_specific_driver): Use CONST_CAST.
1453         * options.c (gfc_post_options): Likewise.
1454         * parse.c (parse_omp_structured_block): Likewise.
1455         * st.c (gfc_free_statement): Likewise.
1457 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1459         PR fortran/32933
1460         * trans-decl.c (gfc_build_builtin_function_decls): Change
1461         prototype for associated.
1462         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert the
1463         result of __builtin_isnan into a boolean.
1464         (gfc_conv_intrinsic_strcmp): Cleanup.
1465         (gfc_conv_associated): Convert the result of the associated
1466         function into a boolean.
1468 2007-08-09  Tobias Burnus  <burnus@net-b.de>
1470         PR fortran/32987
1471         * io.c (format_token): Add FMT_ERROR.
1472         (next_char_not_space): Print error/warning when
1473         '\t' are used in format specifications.
1474         (format_lex): Propagate error.
1475         (check_format): Ditto.
1477 2007-08-09  Tobias Burnus  <burnus@net-b.de>
1479         PR fortran/33001
1480         * arith.c (arith_error): Point in the error message
1481         to -fno-range-check.
1483 2007-08-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1485         PR fortran/32902
1486         * intrinsic.texi (SIZEOF): Add mention to C_SIZE_T.
1488 2007-08-06  Christopher D. Rickett  <crickett@lanl.gov>
1490         PR fortran/32732
1491         * trans-expr.c (gfc_conv_scalar_char_value): Convert the tree and
1492         actual arg expressions for scalar characters passed by-value to
1493         bind(c) routines.
1494         (gfc_conv_function_call): Call gfc_conv_scalar_char_value.
1495         * trans.h: Add prototype for gfc_conv_scalar_char_value.
1496         * trans-decl.c (generate_local_decl): Convert by-value character
1497         dummy args of bind(c) procedures using
1498         gfc_conv_scalar_char_value.
1500 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1502         PR fortran/30947
1503         * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name
1504         with the kind of the STATUS argument.
1506 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1508         PR fortran/30948
1509         * intrinsic.c (add_functions): Fix name of argument to CHDIR.
1511 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1513         PR fortran/30933
1514         * iresolve.c (gfc_resolve_exit): Convert argument to default
1515         integer kind.
1517 2007-08-06  Daniel Franke  <franke.daniel@gmail.com>
1519         * resolve.c (derived_pointer): Removed, replaced callers by access 
1520         to appropiate attribute bit.
1521         (derived_inaccessable): Shortcut recursion depth.
1522         (resolve_fl_namelist): Fixed checks for private components in namelists.
1524 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1526         PR fortran/29828
1527         * trans.h (gfor_fndecl_string_minmax): New prototype.
1528         * trans-decl.c (gfor_fndecl_string_minmax): New variable.
1529         (gfc_build_intrinsic_function_decls): Create gfor_fndecl_string_minmax.
1530         * check.c (gfc_check_min_max): Allow for character arguments.
1531         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): New function.
1532         (gfc_conv_intrinsic_function): Add special case for MIN and MAX
1533         intrinsics with character arguments.
1534         * simplify.c (simplify_min_max): Add simplification for character
1535         arguments.
1537 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1539         PR fortran/31612
1540         * invoke.texi: Adjust documentation for option -fsyntax-only.
1542 2007-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1543             Tobias Burnus  <burnus@gcc.gnu.org>
1545         PR fortran/32979
1546         * intrinsic.h (gfc_check_isnan): Add prototype.
1547         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN.
1548         * intrinsic.c (add_functions): Add ISNAN intrinsic.
1549         * check.c (gfc_check_isnan): New function.
1550         * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function.
1551         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan
1552         to translate ISNAN.
1553         * intrinsic.texi: Document ISNAN.
1555 2007-08-04  Paul Thomas  <pault@gcc.gnu.org>
1557         PR fortran/31214
1558         * symbol.c (get_unique_symtree): Moved from module.c.
1559         * module.c (get_unique_symtree): Moved to symbol.c.
1560         * decl.c (get_proc_name): Transfer the typespec from the local
1561         symbol to the module symbol, in the case that an entry is also
1562         a module procedure.  Ensure the local symbol is cleaned up by
1563         pointing to it with a unique symtree.
1565         * dump_parse_tree (gfc_show_code_node): Add EXEC_ASSIGN_CALL.
1567 2008-08-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1569         PR fortran/32969
1570         * iresolve.c (gfc_resolve_rrspacing): Convert argument(s) to
1571         expected KIND.
1572         (gfc_resolve_scale): Ditto.
1573         (gfc_resolve_set_exponent): Ditto.
1574         (gfc_resolve_spacing): Ditto.
1576         PR fortran/32968
1577         * trans-intrinsic.c (gfc_conv_intrinsic_si_kind,
1578         gfc_conv_intrinsic_sr_kind): Convert the argument(s) to the
1579         expected KIND, and fold the result to the expected KIND.
1581 2007-08-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1583         PR fortran/31202
1584         * f95-lang.c (gfc_init_builtin_functions): Defin builtins for 
1585         lround{f,,l} and llround{f,,l}.
1586         * trans-intrinsic.c (build_fix_expr): Generate calls to the
1587         {l,}round{f,,l} functions.
1589 2007-08-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1591         PR libfortran/32954
1592         * intrinsic.c (resolve_mask_arg):  New function.
1593         (gfc_resolve_maxloc):  Use resolve_mask_arg for mask resolution.
1594         (gfc_resolve_maxval):  Likewise.
1595         (gfc_resolve_minloc):  Likewise.
1596         (gfc_resolve_minval):  Likewise.
1597         (gfc_resolve_pack):  Likewise.
1598         (gfc_resolve_product):  Likewise.
1599         (gfc_resolve_sum):  Likewise.
1600         (gfc_resolve_unpack):  Likewise.
1602 2007-08-01  Tobias Burnus  <burnus@net-b.de>
1604         PR fortran/32936
1605         * match.c (gfc_match_allocate): Better check that STAT is
1606         a variable.
1608         * check.c (gfc_check_allocated): Reorder checks to improve
1609         error message.
1611 2007-08-01  Nick Clifton  <nickc@redhat.com>
1613         * arith.c: Change copyright header to refer to version 3 of the
1614         GNU General Public License and to point readers at the COPYING3
1615         file and the FSF's license web page.
1616         * openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c,
1617         symbol.c, iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h,
1618         matchexp.c, dump-parse-tree.c, trans-common.c, array.c,
1619         Make-lang.in, trans-openmp.c, gfortran.h, error.c,
1620         iso-c-binding.def, lang.opt, data.c, trans-const.c, trans-stmt.c,
1621         expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, scanner.c,
1622         trans-types.c, trans.h, gfortranspec.c, trans-types.h,
1623         lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c,
1624         iresolve.c, match.c, trans-decl.c, trans-io.c, target-memory.c,
1625         match.h, target-memory.h, parse.c, arith.h, check.c, dependency.c,
1626         parse.h, types.def, convert.c, dependency.h, primary.c,
1627         trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise.
1629 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
1631         * trans-decl.c (generate_local_decl): Emit warning on unused parameter
1632         on "-Wall -Wextra" or "-Wunused-parameter" but not on "-Wall", changed
1633         messages that start with lower case to upper case.
1634         * invoke.texi (-Wparameter-unused): Document differences between gcc
1635         and gfortran regarding this option.
1637 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
1639         PR fortran/32945
1640         * expr.c (check_specification_function): Skip check if no symtree 
1641         is available.
1643 2007-08-01  Paul Thomas  <pault@gcc.gnu.org>
1645         PR fortran/31609
1646         * resolve.c (resolve_entries): Entries declared to be module
1647         procedures must point to the function namespace.
1649 2007-07-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1651         PR fortran/32938
1652         * trans-stmt.c (gfc_trans_return): Convert to correct type.
1654 2007-07-31  Steven G. Kargl  <kargl@gcc.gnu.org>
1656         PR fortran/32942
1657         * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Convert to correct
1658         type.
1660 2007-07-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1662         * invoke.texi: Document -fsign-zero flag.
1664 2007-07-29  Paul Thomas  <pault@gcc.gnu.org>
1666         PR fortran/31211
1667         * trans-expr.c (gfc_conv_expr_reference): Add block for case of
1668         scalar pointer functions so that NULL result is correctly
1669         handled.
1671         PR fortran/32682
1672         * trans-array.c (gfc_trans_array_constructor): On detecting a
1673         multi-dimensional parameter array, set the loop limits.
1675 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1677         PR fortran/32906
1678         * resolve.c (resolve_fl_parameter): Check for constant shape arrays,
1679         adjusted error message.
1681 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1683         * invoke.texi: Removed -w from option summary.
1685 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1687         PR fortran/32879
1688         * intrinsic.texi (IRAND, RAND, RANDOM_NUMBER): Document algorithm
1689         used for random number generator.
1691 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
1693         * gfortran.h, interface.c, resolve.c, symbol.c: Fix comment
1694         typos.
1695         * intrinsic.texi, invoke.texi: Fix typos.
1697 2007-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1699         PR fortran/31609
1700         * resolve.c (generic_sym): Check for a same symbol and if so, return to
1701         avoid infinite recursion.
1703 2007-07-28  Daniel Franke  <franke.daniel@gmail.com>
1705         PR fortran/31818
1706         PR fortran/32876
1707         PR fortran/32905
1708         * gfortran.h (symbol_attribute): Added bits for pointer_comp, 
1709         private_comp.
1710         * parse.c (parse_derived): Set pointer_comp/private_comp bits if 
1711         the derived type ultimately contains pointer components or private 
1712         components.
1713         * module.c (ab_attribute): New values AB_POINTER_COMP, AB_PRIVATE_COMP.
1714         (attr_bits): Added names for new ab_attributes.
1715         (mio_symbol_attribute): Save/restore new attribute bits in modules.
1716         * match.c (gfc_match_namelist): Removed check for namelist objects
1717         of assumed shape.
1718         * resolve.c (resolve_fl_namelist): Added check for pointer or
1719         private components in nested types. Added check for namelist objects
1720         of assumed shape.
1722 2007-07-28  Paul Thomas  <pault@gcc.gnu.org>
1724         PR fortran/32880
1725         * trans-expr.c (gfc_trans_scalar_assign): Revert to fixed order
1726         for lse and rse pre expressions, for derived types with
1727         allocatable components.  Instead, assign the lhs to a temporary
1728         and deallocate after the assignment.
1730 2007-07-28  Janne Blomqvist  <jb@gcc.gnu.org>
1732         PR fortran/32909
1733         * trans-stmt.c (gfc_trans_character_select): Replace occurrences
1734         of gfc_c_int_type_node with integer_type_node.
1735         * trans-decl.c (gfc_build_intrinsic_function_decls): Likewise.
1736         (gfc_build_builtin_function_decls): Likewise.
1737         (gfc_generate_function_code): Likewise.
1738         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
1740 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
1742         * trans-decl.c (gfc_build_builtin_function_decls): Use existing
1743         gfc_array_index_type rather than creating another typenode for
1744         gfc_index_integer_kind.
1746 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
1748         * trans-io.c (gfc_build_io_library_fndecls): Change to use
1749         gfc_array_index_type for array descriptor triplets instead of
1750         gfc_int4_type_node.
1752 2007-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1754         PR fortran/32899
1755         * resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison.
1757 2007-07-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1758             Daniel Franke  <franke.daniel@gmail.com>
1760         PR fortran/32760
1761         * primary.c (match_variable): Do not call gfc_add_flavor if symbol has
1762         attribute of ACCESS_PUBLIC or ACCESS_PRIVATE already marked.
1764 2007-07-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1766         PR fortran/32035
1767         * trans-stmt.c (gfc_trans_character_select): Replace the
1768         mechanism with labels by a SWITCH_EXPR.
1769         * trans-decl.c (gfc_build_builtin_function_decls): Change
1770         return type for select_string.
1772 2007-07-27  Paul Thomas  <pault@gcc.gnu.org>
1774         PR fortran/32903
1775         * trans-decl.c (gfc_trans_deferred_vars): Set intent(out)
1776         derived types as referenced, if they have the the default
1777         initializer set.
1779 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1781         * gfortran.h (generate_isocbinding_symbol): Constify.
1782         * symbol.c (gen_special_c_interop_ptr, gen_cptr_param,
1783         generate_isocbinding_symbol): Likewise.
1785 2007-07-24  Paul Thomas  <pault@gcc.gnu.org>
1787         PR fortran/31205
1788         PR fortran/32842
1789         * trans-expr.c (gfc_conv_function_call): Remove the default
1790         initialization of intent(out) derived types.
1791         * symbol.c (gfc_lval_expr_from_sym): New function.
1792         * matchexp.c (gfc_get_parentheses): Return argument, if it is
1793         character and posseses a ref.
1794         * gfortran.h : Add prototype for gfc_lval_expr_from_sym.
1795         * resolve.c (has_default_initializer): Move higher up in file.
1796         (resolve_code): On detecting an interface assignment, check
1797         if the rhs and the lhs are the same symbol.  If this is so,
1798         enclose the rhs in parenetheses to generate a temporary and
1799         prevent any possible aliasing.
1800         (apply_default_init): Remove code making the lval and call
1801         gfc_lval_expr_from_sym instead.
1802         (resolve_operator): Give a parentheses expression a type-
1803         spec if it has no type.
1804         * trans-decl.c (gfc_trans_deferred_vars): Apply the a default
1805         initializer, if any, to an intent(out) derived type, using
1806         gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
1807         the dummy is present.
1809 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
1811         PR fortran/32867
1812         * expr.c (check_init_expr): Simplify matched functions.
1814 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
1816         PR fortran/32778
1817         * intrinsic.c (add_sym): Do not exclude any symbols, even if not part
1818         of the selected standard.
1819         (make generic): Likewise.
1820         (make alias): Likewise, set standard the alias belongs to.
1821         (add_subroutines): Call make_noreturn unconditionally.
1822         (check_intrinsic_standard): Change return value to try.
1823         (gfc_intrinsic_func_interface): Check return value of above function.
1824         (gfc_intrinsic_sub_interface): Likewise.
1826 2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1828         PR fortran/30814
1829         * trans-decl.c (generate_function_code):  Add argument
1830         for flag_bounds_check to the array for set_options.
1831         * invoke.texi (-fbounds-check): Document new libarary run-time
1832         behaviour.
1834 2007-07-23  Daniel Franke  <franke.daniel@gmail.com>
1836         PR fortran/25104
1837         PR fortran/31639
1838         * expr.c (check_transformational): Reject valid transformational
1839         intrinsics to avoid ICE.
1840         (check_inquiry): Report error for assumed character lengths for
1841         all supported standards.
1842         (check_init_expr): Whitespace fix.
1844 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1846         PR fortran/32797
1847         PR fortran/32800
1848         * decl.c (verify_bind_c_sym): Use the result symbol for functions
1849         with a result clause.  Warn if implicitly typed.  Verify the type
1850         and rank of the SHAPE argument, if given.
1851         * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to
1852         check the actual args against the formal, sorting them if
1853         necessary.
1854         * symbol.c (gen_shape_param): Initialize type of SHAPE param to
1855         BT_VOID.
1857 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1859         PR fortran/32732
1860         * trans-decl.c (generate_local_decl): Convert the TREE_TYPE for by
1861         value character dummy args of BIND(C) procedures.
1862         * trans-expr.c (gfc_conv_variable): Do not build address
1863         expression for BT_CHARACTER dummy args.
1865 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1866             Tobias Burnus  <burnus@net-b.de>
1868         PR fortran/32600
1869         * trans-expr.c (gfc_conv_function_call): Handle c_funloc.
1870         * trans-types.c: Add pfunc_type_node.
1871         (gfc_init_types,gfc_typenode_for_spec): Use it.
1872         * resolve.c (gfc_iso_c_func_interface): Fix whitespace and
1873         improve error message.
1875 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
1877         PR fortran/32710
1878         * parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if
1879         the current is a namelist.
1881 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
1883         PR fortran/29962
1884         PR fortran/31253
1885         PR fortran/31265
1886         PR fortran/31639
1887         * gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure,
1888         generic, specific, actual_ok, noreturn into bits of a bitfield, 
1889         added bits for inquiry, transformational, conversion.
1890         * check.c (non_init_transformational): Removed, removed all callers.
1891         * intrinsic.c (enum class): New.
1892         (add_sym*): Replaced argument elemetal by enum class. Changed all
1893         callers.
1894         (add_functions): Assign appropriate classes to intrinsic functions.
1895         (add_subroutines): Assign appropriate classes to intrinsic subroutines.
1896         (add_conv): Set conversion attribute.
1897         (gfc_init_expr_extensions): Removed, removed all callers.
1898         (gfc_intrinsic_func_interface): Reimplemented check for non-standard
1899         initializatione expressions.
1900         * expr.c (check_specification_function): New.
1901         (gfc_is_constant_expr): Added check for specification functions.
1902         (check_init_expr_arguments): New.
1903         (check_inquiry): Changed return value to MATCH, added checks for
1904         inquiry functions defined by F2003.
1905         (check_transformational): New.
1906         (check_null): New.
1907         (check_elemental): New.
1908         (check_conversion): New.
1909         (check_init_expr): Call new check functions, add more specific error
1910         messages.
1912 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
1914         PR fortran/32627
1915         * resolve.c (set_name_and_label): Set kind number for character
1916         version of c_f_pointer.
1917         (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to
1918         that of the actual SHAPE arg.
1919         * symbol.c (gen_shape_param): Initialize kind for SHAPE arg.
1921 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
1923         PR fortran/32801
1924         * symbol.c (generate_isocbinding_symbol): Remove unnecessary
1925         conditional.
1927         PR fortran/32804
1928         * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and
1929         deferred-shape arrays as args to C_LOC.  Fix bug in testing
1930         character args to C_LOC.
1932 2007-07-21  Lee Millward  <lee.millward@gmail.com>
1934         PR fortran/32823
1935         * trans-intrinsic.c (gfc_conv_intrinsic_int): Evaluate all
1936         arguments passed, not just the first one. Adjust code to 
1937         refer to "args[0]" instead of "arg" as a result.
1938         
1939 2007-07-19  Christopher D. Rickett  <crickett@lanl.gov>
1941         PR fortran/32600
1942         * trans-expr.c (gfc_conv_function_call): Inline C_LOC.
1944 2007-07-18  Christopher D. Rickett  <crickett@lanl.gov>
1946         PR fortran/32801
1947         * symbol.c (generate_isocbinding_symbol): Fix bug where
1948         ISOCBINDING_FUNPTR was generated for C_LOC instead of the needed
1949         ISOCBINDING_PTR.
1951 2007-07-17  Janus Weil  <jaydub66@gmail.com> 
1953         PR fortran/32535
1954         * resolve.c (resolve_fl_namelist): Check for namelist private 
1955         components in contained subprograms.
1957 2007-07-17  Paul Thomas  <pault@gcc.gnu.org>
1959         PR fortran/31320
1960         PR fortran/32665
1961         * trans-expr.c (gfc_trans_subcomponent_assign): Ensure that
1962         renormalization unity base is done independently of existing
1963         lbound value.
1964         (gfc_trans_scalar_assign): If rhs is not a variable, put
1965         lse->pre after rse->pre to ensure that de-allocation of lhs
1966         occurs after evaluation of rhs.
1968 2007-07-16  Lee Millward  <lee.millward@gmail.com>
1970         PR fortran/32222
1971         PR fortran/32238
1972         PR fortran/32242        
1973         * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
1974         to operate on a stack allocated array for the intrinsic arguments
1975         instead of creating a TREE_LIST. Add two new parameters for the
1976         array and the number of elements. Update all callers to allocate
1977         an array of the correct length to pass in. Update comment.
1978         (gfc_intrinsic_argument_list_length): New function.
1979         (gfc_conv_intrinsic_conversion): Call it.
1980         (gfc_conv_intrinsic_mnimax): Likewise.
1981         (gfc_conv_intrinsic_merge): Likewise.
1982         (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
1983         constructors.
1984         (gfc_conv_intrinsic_cmplx): Likewise.
1985         (gfc_conv_intrinsic_ctime): Likewise.
1986         (gfc_covn_intrinsic_fdate): Likewise.
1987         (gfc_conv_intrinsic_ttynam): Likewise.
1988         (gfc_conv_intrinsic_ishftc): Likewise.
1989         (gfc_conv_intrinsic_index): Likewise.
1990         (gfc_conv_intrinsic_scan): Likewise.
1991         (gfc_conv_intrinsic_verify): Likewise.
1992         (gfc_conv_intrinsic_trim): Likewise.
1993         (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
1994         (gfc_conv_intrinsic_exponent): Likewise.
1995         (gfc_conv_intrinsic_bound): Likewise.
1996         (gfc_conv_intrinsic_abs): Likewise.
1997         (gfc_conv_intrinsic_mod): Likewise.
1998         (gfc_conv_intrinsic_sign): Likewise.
1999         (gfc_conv_intrinsic_len): Likewise.
2000         (gfc_conv_intrinsic_adjust): Likewise.
2001         (gfc_conv_intrinsic_si_kind): Likewise. 
2002         
2003 2007-07-16  Janne Blomqvist  <jb@gcc.gnu.org>
2005         PR fortran/32748
2006         * trans-decl.c (gfc_build_builtin_function_decls): Remove
2007         DECL_IS_MALLOC attribute from internal_realloc, thus reverting
2008         part of my 2007-07-03 patch.
2010 2007-07-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2011             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2013         PR fortran/32611
2014         * gfortran.h (gfc_option_t): Add flag_sign_zero field.
2015         * lang.opt (-fsign-zero): New option.
2016         * trans.h: Rename gfor_fndecl_set_std into gfor_fndecl_set_options.
2017         * trans-decl.c (gfc_build_builtin_function_decls): Build the function
2018         declaration to pass an array containing the options to be used by the
2019         runtime library. (gfc_generate_function_code): Build an array that
2020         contains option values to be passed to the runtime library and the call
2021         to the function. 
2022         * options.c (gfc_init_options): Initialize the flag_sign_zero field.
2023         (gfc_handle_option): Handle the -fsign-zero option.
2025 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2027         PR fortran/32036
2028         * trans-array.c (gfc_conv_array_ref): Only evaluate index once.
2030 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2032         PR fortran/32357
2033         * iresolve.c (gfc_resolve_mvbits): Convert FROMPOS, LEN and TOPOS
2034         to C int.
2036 2007-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2038         PR libfortran/32731
2039         * iresolve.c(gfc_resolve_pack):  A scalar mask has
2040         to be kind=4, an array mask with kind<4 is converted
2041         to gfc_default_logical_kind automatically.
2042         (gfc_resolve_unpack):  Convert mask to gfc_default_lotical_kind
2043         if it has a kind<4.
2045 2007-07-14  Paul Thomas  <pault@gcc.gnu.org>
2047         PR fortran/32724
2048         * parse.c (parse_spec): Emit error on unexpected statement
2049         function.
2051 2007-07-13  Daniel Franke  <franke.daniel@gmail.com>
2053         * invoke.texi: Unified upper- and lower-case in menus.
2054         (-w, -W): Removed, documented by gcc.
2055         * intrinsic.texi: Unified Class-section entries, added
2056         subroutine/function warning where appropiate.
2058 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2060         PR fortran/31639
2061         * decl.c (gfc_match_suffix): Removed surplus general error that hides
2062         a more specific message.
2063         * resolve.c (resolve_fl_variable): Reject illegal initializiers only
2064         if not already done.
2065         (resolve_fl_procedure): Added check for initializers of functions.
2067 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2069         PR fortran/32704
2070         * invoke.texi (-static-libgfortran): Document new option.
2072 2007-07-12  Paul Thomas  <pault@gcc.gnu.org>
2074         PR fortran/32634
2075         PR fortran/32727
2076         * module.c (write_generic): Restore patch of 2007-07-10 and use
2077         symbol name if there are no use names. 
2079 2007-07-12  Christopher D. Rickett  <crickett@lanl.gov>
2081         PR fortran/32599
2082         * decl.c (verify_c_interop_param): Require character string dummy
2083         args to BIND(C) procedures to have length 1.
2084         * resolve.c (resolve_fl_procedure): Modify parameter checking for
2085         BIND(C) procedures.
2087         PR fortran/32601
2088         * resolve.c (gfc_iso_c_func_interface): Verify that a valid
2089         expression is given as an argument to C_LOC and C_ASSOCIATED.
2090         * trans-io.c (transfer_expr): Add argument for code block.  Add
2091         standards check to determine if an error message should be
2092         reported for printing C_PTR or C_FUNPTR.
2093         (transfer_array_component): Update arguments to transfer_expr.
2094         (gfc_trans_transfer): Ditto.
2096         * symbol.c (gen_cptr_param): Fix whitespace.
2098 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2100         PR fortran/32550
2101         * trans.h (GFC_POINTER_TYPE_P): Define.
2102         * trans-types.c (gfc_sym_type): Set it for types on attr->sym.pointer.
2103         * trans-openmp.c (gfc_omp_privatize_by_reference): Return false
2104         if GFC_POINTER_TYPE_P is set on the type.
2106 2007-07-12  Richard Guenther  <rguenther@suse.de>
2108         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Convert
2109         arguments to gfc_charlen_type_node.
2110         * trans-io.c (gfc_convert_array_to_string): Convert type
2111         size to gfc_array_index_type.
2113 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2115         PR fortran/32634
2116         PR fortran/32727
2117         * module.c: Reverted Paul's patch from 2007-07-10.
2119 2007-07-11  Richard Guenther  <rguenther@suse.de>
2121         * trans-array.c (gfc_conv_array_parameter): Use correct
2122         types for comparison.
2123         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
2124         correct types for POINTER_PLUS_EXPR.
2125         * trans-stmt.c (gfc_trans_forall_loop): Use correct type
2126         for integer one constant.
2128 2007-07-10  Paul Thomas  <pault@gcc.gnu.org>
2130         PR fortran/32157
2131         * resolve.c (is_external_proc): New function.  Adds test that
2132         the symbol is not an intrinsic procedure.
2133         * (resolve_function, resolve_call): Replace logical statements
2134         with call to is_external_proc.
2136         PR fortran/32689
2137         * simplify.c (gfc_simplify_transfer): If mold has rank, the
2138         result is an array.
2140         PR fortran/32634
2141         * module.c (write_generic): Write the local name of the
2142         interface. 
2144 2007-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2146         PR fortran/29459
2147         * trans-array.c (gfc_trans_array_constructor): Mark offset field
2148         with TREE_NO_WARNING.
2149         * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound,
2150         stride and size variables with TREE_NO_WARNING.
2152 2007-07-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2154         * trans-decl.c (set_tree_decl_type_code): Remove function.
2155         (generate_local_decl): Remove reference to set_tree_decl_type_code.
2157 2007-07-09  Daniel Franke  <franke.daniel@gmail.com>
2159         PR fortran/31129
2160         * trans-decl.c (generate_local_decl) Emit a warning if an unused
2161         parameter is found.
2163 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2165         PR fortran/29876
2166         * module.c (gfc_match_use): Do not set an non-existant 
2167         intrinsic operator if a user-defined operator is found.
2169 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2171         PR fortran/24784
2172         PR fortran/28004
2173         * trans-decl.c (generate_local_decl): Adjusted warning on unused 
2174         dummy arguments, tell middle-end not to emit additional warnings.
2176 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2177             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2179         PR fortran/17711
2180         * gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS,
2181         INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, 
2182         INTRINSIC_LT_OS and INTRINSIC_LE_OS.
2183         * arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise.
2184         * arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le):
2185         Added gfc_intrinsic_op as third argument type.
2186         * dump-parse-tree.c (gfc_show_expr): Account for new enum values.
2187         * expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise.
2188         * interface.c (check_operator_interface): Likewise.
2189         (gfc_check_interfaces): Added cross-checks for FORTRAN 77 and 
2190         Fortran 90 style operators using new enum values.
2191         (gfc_extend_expr): Likewise.
2192         (gfc_add_interface): Likewise.
2193         * match.c (intrinsic_operators): Distinguish FORTRAN 77 style
2194         operators from Fortran 90 style operators using new enum values.
2195         * matchexp.c (match_level_4): Account for new enum values.
2196         * module.c (mio_expr): Likewise.
2197         * resolve.c (resolve_operator): Deal with new enum values, fix
2198         inconsistent error messages.
2199         * trans-expr.c (gfc_conv_expr_op): Account for new enum values.
2201 2007-07-08  Tobias Burnus  <burnus@net-b.de>
2203         PR fortran/32669
2204         * interface.c (get_expr_storage_size): Properly obtain lower bound.
2205         (compare_actual_formal): Add space before parenthesis.
2207 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2209         PR fortran/25094
2210         * resolve.c (resolve_fl_procedure): Added check for PRIVATE types 
2211         in PUBLIC interfaces.
2213 2007-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2215         PR fortran/32644
2216         * decl.c (match_attr_spec): Don't return MATCH_ERROR if comma found and
2217         gfc_match_bind_c does not return MATCH_YES.
2219 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2221         * decl.c, gfortran.h, interface.c, module.c, resolve.c,
2222         trans-array.c, trans-decl.c: Fix comment typos.  Follow
2223         spelling conventions.
2224         * intrinsic.texi: Fix typos.  Follow spelling conventions.
2226 2007-05-06  Daniel Franke  <franke.daniel@gmail.com>
2228         PR fortran/32633
2229         * symbol.c (save_status): New.
2230         * gfortran.h (save_status): Added external declaration.
2231         (check_conflict): Check for conflicting explicite SAVE statements
2232         only.
2233         (gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant.
2234         * module.c (ab_attribute, attr_bits): Removed enumerator value 
2235         AB_SAVE for save attribute.
2236         (mio_symbol_attribute): Import/export the full SAVE status, 
2237         removed usage of AB_SAVE.
2238         * dump-parse-tree.c (gfc_show_attr): Dump full SAVE status.
2239         * decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not
2240         already explicit.
2242 2007-07-05  Daniel Franke  <franke.daniel@gmail.com>
2243             Tobias Burnus  <burnus@net-b.de>
2245         PR fortran/32359
2246         * gfortran.h (symbol_attribute): Change save attribute into an enum.
2247         * decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT.
2248         * symbol.c (gfc_add_save): Check for SAVE_EXPLICIT.
2249         * resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT.
2250         (resolve_symbol): Allow OMP threadprivate with
2251         initialization SAVEd and save_all variable.
2252         * trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check.
2254 2007-07-05  Paul Thomas  <pault@gcc.gnu.org>
2256         PR fortran/32526
2257         * match.c (gfc_match_call): Check, in all cases, that a symbol
2258         is neither generic nor a subroutine before trying to add it as
2259         a subroutine.
2261         PR fortran/32613
2262         * match.c (gfc_match_do): Reset the implied_index attribute.
2264 2007-07-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2266         PR fortran/31198
2267         * trans-intrinsic.c (trans-intrinsic.c): Handle optional
2268         arguments correctly for MIN and MAX intrinsics.
2270 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2272         PR fortran/32545
2273         * io.c (check_format): Always call gfc_error for errors.
2274         (check_format_string): Change type of this function to try and
2275         return the result of check_format.
2276         (check_io_constraints): Return MATCH_ERROR if check_format_string
2277         returns FAILURE.
2279 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2281         PR fortran/32612
2282         * decl.c (get_proc_name): Include attr->mod_proc in check for error.
2284 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2286         PR fortran/32432
2287         * gfortran.h: Change type of gfc_assign_data_value from void to try.
2288         * data.c (gfc_assign_data_value): Return FAILURE if error found.
2289         * resolve.c (check_data_variable): If gfc_assign_data_value returns
2290         failure, break out of loop and return failure.
2292 2007-07-03  Christopher D. Rickett  <crickett@lanl.gov>
2294         PR fortran/32579
2295         * symbol.c (gen_cptr_param): Generate C_PTR and C_FUNPTR if necessary.
2296         (build_formal_args): Pass intrinsic module symbol id to
2297         gen_cptr_param.
2299 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2301         PR fortran/25062
2302         * resolve.c (resolve_common_blocks): New check function.
2303         (resolve_types): Use it.
2305 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2307         PR fortran/30940
2308         * interface.c (get_sym_storage_size): New function.
2309         (get_sym_storage_size): New function.
2310         (compare_actual_formal): Enhance sequence association
2311         support and improve checking.
2313 2007-07-03  Janne Blomqvist  <jb@gcc.gnu.org>
2315         * trans-decl.c (gfc_build_builtin_function_decls): Mark
2316         internal_realloc as a malloc function.
2318 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2320         PR fortran/20888
2321         * resolve.c (resolve_operator): Check for NULL as operand.
2323 2007-07-02  Tobias Burnus  <burnus@net-b.de>
2325         * gfortran.texi (Fortran 2003): Add ISO Bind C.
2326         * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER,
2327         C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics.
2329 2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>
2331         * interface.c (gfc_compare_derived_types): Special case for comparing
2332         derived types across namespaces.
2333         (gfc_compare_types): Deal with BT_VOID.
2334         (compare_parameter): Use BT_VOID to accept ISO C Binding pointers.
2335         * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind
2336         to SCALAR
2337         (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and 
2338         NULL_FUNPTR.
2339         (gfc_conv_expr): Convert expressions for ISO C Binding derived types.
2340         * symbol.c (gfc_set_default_type): BIND(C) variables should not be
2341         Implicitly declared.
2342         (check_conflict): Add BIND(C) and check for conflicts.
2343         (gfc_add_explicit_interface): Whitespace.       
2344         (gfc_add_is_bind_c): New function.  
2345         (gfc_copy_attr): Use it.
2346         (gfc_new_symbol): Initialize ISO C Binding objects.
2347         (get_iso_c_binding_dt):  New function.
2348         (verify_bind_c_derived_type): Ditto.
2349         (gen_special_c_interop_ptr): Ditto.
2350         (add_formal_arg): Ditto.
2351         (gen_cptr_param): Ditto.
2352         (gen_fptr_param): Ditto.
2353         (gen_shape_param): Ditto.
2354         (add_proc_interface): Ditto.
2355         (build_formal_args): Ditto.
2356         (generate_isocbinding_symbol):  Ditto.
2357         (get_iso_c_sym):  Ditto.
2358         * decl.c (num_idents_on_line, has_name_equals): New variables.
2359         (verify_c_interop_param): New function.
2360         (build_sym): Finish binding labels and deal with COMMON blocks.
2361         (add_init_expr_to_sym): Check if the initialized expression is
2362         an iso_c_binding named constants
2363         (variable_decl): Set ISO C Binding type_spec components.
2364         (gfc_match_kind_spec): Check match for C interoperable kind.
2365         (match_char_spec): Fix comment. Chnage gfc_match_small_int
2366         to gfc_match_small_int_expr.  Check for C interoperable kind.
2367         (match_type_spec): Clear the current binding label.
2368         (match_attr_spec): Add DECL_IS_BIND_C.  If BIND(C) is found, use it
2369         to set attributes.
2370         (set_binding_label): New function.
2371         (set_com_block_bind_c): Ditto.
2372         (verify_c_interop): Ditto.
2373         (verify_com_block_vars_c_interop): Ditto.
2374         (verify_bind_c_sym): Ditto.
2375         (set_verify_bind_c_sym): Ditto.
2376         (set_verify_bind_c_com_block): Ditto.
2377         (get_bind_c_idents): Ditto.
2378         (gfc_match_bind_c_stmt): Ditto.
2379         (gfc_match_data_decl): Use num_idents_on_line.
2380         (match_result): Deal with right paren in BIND(C).
2381         (gfc_match_suffix): New function.
2382         (gfc_match_function_decl): Use it.  Code is re-arranged to deal with
2383         ISO C Binding result clauses.
2384         (gfc_match_subroutine):  Deal with BIND(C).
2385         (gfc_match_bind_c): New function.
2386         (gfc_get_type_attr_spec): New function.  Code is re-arranged in and
2387         taken from gfc_match_derived_decl.
2388         (gfc_match_derived_decl): Add check for BIND(C).
2389         * trans-common.c: Forward declare gfc_get_common.
2390         (gfc_sym_mangled_common_id): Change arg from 'const char *name' to
2391         'gfc_common_head *com'.  Check for ISO C Binding of the common block.
2392         (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME.
2393         * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN
2394         (bt): Add BT_VOID
2395         (sym_flavor): Add FL_VOID.
2396         (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum
2397         (CInteropKind_t): New struct.
2398         (c_interop_kinds_table): Use it.  Declare an array of structs.
2399         (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c
2400         bitfields.
2401         (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members.
2402         (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and
2403         common_block members.
2404         (gfc_common_head): Add binding_label and is_bind_c members.
2405         (gfc_gsymbol): Add sym_name, mod_name, and binding_label members.
2406         Add prototypes for get_c_kind, gfc_validate_c_kind, 
2407         gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value,
2408         verify_c_interop, verify_c_interop_param, verify_bind_c_sym,
2409         verify_bind_c_derived_type, verify_com_block_vars_c_interop,
2410         generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface
2411         * iso-c-binding.def: New file. This file contains the definitions
2412         of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic
2413         module.
2414         * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR
2415          or C_NULL_FUNPTR expressions.
2416         * expr.c (gfc_copy_expr): Add BT_VOID case.  For BT_CHARACTER, the
2417         ISO C Binding requires a minimum string length of 1 for '\0'.  
2418         * module.c (intmod_sym): New struct.
2419         (pointer_info): Add binding_label member.
2420         (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p.
2421         (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C.
2422         (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C".
2423         (mio_symbol_attribute): Deal with ISO C Binding attributes.
2424         (bt_types): Add "VOID".
2425         (mio_typespec): Deal with ISO C Binding components.
2426         (mio_namespace_ref): Add intmod variable. 
2427         (mio_symbol): Check for symbols from an intrinsic module.
2428         (load_commons): Check for BIND(C) common block.
2429         (read_module): Read binding_label and use it.
2430         (write_common): Add label.  Write BIND(C) info.
2431         (write_blank_common): Blank commons are not BIND(C).  Explicitly
2432         set is_bind_c=0.
2433         (write_symbol): Deal with binding_label.
2434         (sort_iso_c_rename_list): New function.
2435         (import_iso_c_binding_module): Ditto.
2436         (create_int_parameter): Add to args.
2437         (use_iso_fortran_env_module): Adjust to deal with iso_c_binding
2438         intrinsic module.
2439         * trans-types.c (c_interop_kinds_table): new array of structs. 
2440         (gfc_validate_c_kind): New function.
2441         (gfc_check_any_c_kind): Ditto.
2442         (get_real_kind_from_node): Ditto.
2443         (get_int_kind_from_node): Ditto.
2444         (get_int_kind_from_width): Ditto.
2445         (get_int_kind_from_minimal_width): Ditto.
2446         (init_c_interop_kinds): Ditto.
2447         (gfc_init_kinds): call init_c_interop_kinds.
2448         (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers.
2449         Adjust handling of BT_DERIVED.
2450         (gfc_sym_type): Whitespace.
2451         (gfc_get_derived_type):  Account for iso_c_binding derived types
2452         * resolve.c (is_scalar_expr_ptr): New function.
2453         (gfc_iso_c_func_interface): Ditto.
2454         (resolve_function): Use gfc_iso_c_func_interface. 
2455         (set_name_and_label): New function.
2456         (gfc_iso_c_sub_interface): Ditto.
2457         (resolve_specific_s0): Use gfc_iso_c_sub_interface.
2458         (resolve_bind_c_comms): New function.
2459         (resolve_bind_c_derived_types): Ditto.
2460         (gfc_verify_binding_labels): Ditto.
2461         (resolve_fl_procedure): Check for ISO C interoperability.
2462         (resolve_symbol): Check C interoperability.
2463         (resolve_types): Walk the namespace.  Check COMMON blocks.
2464         * trans-decl.c (gfc_sym_mangled_identifier):  Prevent the mangling
2465         of identifiers that have an assigned binding label.
2466         (gfc_sym_mangled_function_id): Use the binding label rather than
2467         the mangled name.
2468         (gfc_finish_var_decl): Put variables that are BIND(C) into a common
2469         segment of the object file, because this is what C would do.
2470         (gfc_create_module_variable): Conver to proper types
2471         (set_tree_decl_type_code): New function.
2472         (generate_local_decl): Check dummy variables and derived types for
2473         ISO C Binding attributes.
2474         * match.c (gfc_match_small_int_expr): New function.
2475         (gfc_match_name_C): Ditto.
2476         (match_common_name): Deal with ISO C Binding in COMMON blocks
2477         * trans-io.c (transfer_expr):  Deal with C_NULL_PTR or C_NULL_FUNPTR
2478         expressions
2479         * match.h: Add prototypes for gfc_match_small_int_expr,
2480         gfc_match_name_C, match_common_name, set_com_block_bind_c,
2481         set_binding_label, set_verify_bind_c_sym,
2482         set_verify_bind_c_com_block, get_bind_c_idents,
2483         gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c,
2484         gfc_get_type_attr_spec
2485         * parse.c (decode_statement): Use gfc_match_bind_c_stmt
2486         (parse_derived): Init *derived_sym = NULL, and gfc_current_block
2487         later for valiadation.
2488         * primary.c (got_delim): Set ISO C Binding components of ts.
2489         (match_logical_constant): Ditto.
2490         (match_complex_constant): Ditto.
2491         (match_complex_constant): Ditto.
2492         (gfc_match_rvalue): Check for existence of at least one arg for
2493         C_LOC, C_FUNLOC, and C_ASSOCIATED.
2494         * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts.
2495         (get_c_kind): New function.
2497 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
2499         PR fortran/32239
2500         * trans-expr.c (gfc_conv_power_op): Use builtin_powi for
2501         real**int4 powers.
2502         * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the
2503         builtins table.
2505 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
2507         * trans.h: Remove decls for 64-bit allocation functions.
2508         * trans-array.c (gfc_grow_array): Always pick the standard realloc
2509         function decl.
2510         (gfc_array_allocate): Likewise.
2511         * trans-decl.c: Remove trees for 64-bit allocation functions.
2512         (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit
2513         allocations functions, use index_int_type for normal allocation
2514         functions.
2516 2007-06-30  Daniel Franke  <franke.daniel@gmail.com>
2518         PR fortran/20373
2519         * intrinsic.c (add_functions): Additional function types.
2520         (gfc_convert_type_warn): Remove intrinsic-flag from
2521         conversion functions.
2522         * resolve.c (resolve_symbol): Added type checks to 
2523         explicitly defined intrinsics.
2525 2007-06-30  Tobias Burnus  <burnus@net-b.de>
2527         PR fortran/32555
2528         * io.c (check_format): Allow zero to precede the
2529         P edit descriptor.
2531 2007-06-30  Paul Thomas  <pault@gcc.gnu.org>
2533         PR fortran/32472
2534         * simplify.c (gfc_simplify_repeat): Add handling of character
2535         literal for first argument.
2537 2007-06-29  Daniel Franke  <franke.daniel@gmail.com>
2539         * resolve.c (resolve_operator): Added check whether a user
2540         defined operator is available.
2542 2007-06-29  Daniel Franke <franke.daniel@gmail.com>
2544         * openmp.c (resolve_omp_clauses): Adjust error message to
2545         better reflect the actual requirement.
2547 2007-06-29  Tobias Burnus  <burnus@net-b.de>
2549         PR fortran/32483
2550         * io.c (format_lex): Fix FMT_ZERO.
2551         (check_format,check_format_string,gfc_match_format,
2552         check_io_constraints) Additional checking for READ.
2554 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2556         PR other/31400
2557         * lang.opt (static-libgfortran): New option.
2558         * gfortranspec.c (ADD_ARG_LIBGFORTRAN): New macro.
2559         (Option): Add OPTION_static and OPTION_static_libgfortran.
2560         (lookup_option): Handle the new -static-libgfortran option.
2561         (lang_specific_driver): Check whether -static is passed.
2562         Handle the new -static-libgfortran option.
2563         * options.c (gfc_handle_option): If -static-libgfortran is
2564         passed and isn't supported on this configuration, error out.
2566 2007-06-27  Daniel Franke  <franke.daniel@gmail.com>
2568         PR fortran/32467
2569         * openmp.c (resolve_omp_clauses): Emit error on allocatable
2570         components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE
2571         clauses.
2573 2007-06-25  Paul Thomas  <pault@gcc.gnu.org>
2575         PR fortran/32464
2576         * resolve.c (check_host_association): Return if the old symbol
2577         is use associated.  Introduce retval to reduce the number of
2578         evaluations of the first-order return value.
2580         PR fortran/31494
2581         * match.c (gfc_match_call): If a host associated symbol is not
2582         a subroutine, build a new symtree/symbol in the current name
2583         space.
2585 2007-06-24  Tobias Burnus  <burnus@net-de>
2587         PR fortran/32460
2588         * interface.c (gfc_compare_derived_types): Add access check.
2589         * symbol.c (gfc_find_component): Ditto.
2590         (gfc_set_component_attr,gfc_get_component_attr) Copy access state.
2591         * dump-parse-tree.c (gfc_show_components): Dump access state.
2592         * gfortran.h (struct gfc_component): Add gfc_access.
2593         * module.c (mio_component): Add access state.
2594         * (gfc_match_structure_constructor): Check for private access state.
2596 2007-06-24  Paul Thomas  <pault@gcc.gnu.org>
2598         PR fortran/32298
2599         PR fortran/31726
2600         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Calculate
2601         the offset between the loop counter and the position as
2602         defined. Add the offset within the loop so that the mask acts
2603         correctly.  Do not advance the location on the basis that it
2604         is zero.
2606 2007-06-22  Daniel Franke  <franke.daniel@gmail.com>
2608         PR fortran/31473
2609         * symbol.c (gfc_copy_attr): Emit errors for duplicate 
2610         EXTERNAL/INTRINSIC statements.
2612 2007-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2614         PR fortran/32360
2615         * expr.c (gfc_check_assign): If the rvalue expression type is NULL_EXPR,
2616         check to see if the lvalue has attribute pointer and data.  
2618 2007-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2620         PR fortran/31162
2621         * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using
2622         gfc_notify_standard. (gfc_resolve_iterator): Remove check.
2623         (resolve_branch): Change "Obsolete" to "Deleted feature".
2624         * io.c (resolve_tag): Ditto.
2625         * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto.
2627 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2629         PR fortran/32361
2630         * match.c (gfc_match_common): If the symbol value expression type is
2631         NULL_EXPR, don't error if previously initialized.
2633 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2635         PR fortran/25061
2636         * decl.c (get_proc_name) Check symbol for generic interface
2637         and issue an error.
2639 2007-06-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2640         Richard Guenther  <rguenther@suse.de>
2642         PR fortran/32140
2643         * trans.c (gfc_build_addr_expr): Use the correct types.
2645 2007-06-19  Paul Thomas  <pault@gcc.gnu.org>
2647         PR fortran/20863
2648         PR fortran/20882
2649         * resolve.c (resolve_code): Use gfc_impure_variable as a
2650         condition for rejecting derived types with pointers, in pure
2651         procedures.
2652         (gfc_impure_variable): Add test for dummy arguments of pure
2653         procedures; any for functions and INTENT_IN for subroutines.
2655         PR fortran/32236
2656         * data.c (gfc_assign_data_value): Change the ICE on an array
2657         reference initializer not being an array into an error and
2658         clear init to prevent a repetition of the error.
2660 2007-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
2662         * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
2663         environment variables. Fix documentation for
2664         GFORTRAN_UNBUFFERED_ALL environment variable.
2666 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2668         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
2669         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition.
2670         * trans-expr.c (gfc_trans_string_copy): Create
2671         POINTER_PLUS_EXPR instead of a PLUS_EXPR
2672         for pointer types.
2674 2007-06-14  Paul Thomas  <pault@gcc.gnu.org>
2676         PR fortran/32302
2677         * trans-common.c (build_common_decl): If resizing of common
2678         decl is needed, update the TREE_TYPE.
2680 2007-06-13  Tobias Burnus  <burnus@net-b.de>
2682         PR fortran/32323
2683         * interface.c (has_vector_section): New.
2684         (compare_actual_formal): Check for array sections with vector subscript.
2686 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2688         * trans-stmt.c (gfc_trans_call): fix gcc_assert to
2689         a comparison, not an assignment.
2691 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
2693         * trans-common.c (create_common): Initialize 'field_init'.
2695 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
2697         PR fortran/29786
2698         PR fortran/30875
2699         * trans-common.c (get_init_field): New function.
2700         (create_common): Call get_init_field for overlapping
2701         initializers in equivalence blocks.
2702         * resolve.c (resolve_equivalence_derived, resolve_equivalence):
2703         Remove constraints on initializers in equivalence blocks.
2704         * target-memory.c (expr_to_char, gfc_merge_initializers):
2705         New functions.
2706         (encode_derived): Add the bit offset to the byte offset to get
2707         the total offset to the field.
2708         * target-memory.h : Add prototype for gfc_merge_initializers.
2710 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2712         * trans-types.c (gfc_signed_type): Remove.
2713         * trans-types.h (gfc_signed_type): Remove.
2714         * f95-lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
2716 2007-06-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2718         * trans-intrinsic.c: Revert Lee's 2007-06-04 patch.
2720 2007-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2721             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2723         PR fortran/32223
2724         * match.c (gfc_match_special_char): New function.  Match special char.
2725         Add handling '\0'.
2726         * match.h: Add prototype.
2727         * io.c (next_char): Use it.
2728         * primary.c (next_string_char): Ditto.
2730 2007-06-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2732         * decl.c: Miscellaneous whitespace fixes.
2733         * expr.c: Likewise.
2734         * gfortran.h: Likewise.
2735         * interface.c : Likewise.
2736         * io.c: Likewise.
2737         * match.c: Likewise.
2738         * match.h: Likewise.
2739         * module.c: Likewise.
2740         * parse.c: Likewise.
2741         * resolve.c: Likewise.
2742         * symbol.c: Likewise.
2743         * trans-array.c: Likewise.
2744         * trans-common.c: Likewise.
2745         * trans-decl.c: Likewise.
2746         * trans-intrinsic.c: Likewise.
2747         * trans-io.c: Likewise.
2748         * trans-stmt.c: Likewise.
2749         * trans-types.c: Likewise.
2751 2007-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2753         PR fortran/18923
2754         * parse.c (decode_statement): Don't call gfc_undo_symbols on MATCH_ERROR
2755         for ST_FUNCTION since it is called in reject_statement.
2756         (parse_contained): If error, loop back after reject_statement and try
2757         again.  Free the namespace if an error occured.
2759 2007-06-04 Lee Millward <lee.millward@codesourcery.com>
2761         * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
2762         to operate on a stack allocated array for the intrinsic arguments
2763         instead of creating a TREE_LIST. Add two new parameters for the
2764         array and the number of elements. Update all callers to allocate
2765         an array of the correct length to pass in. Update comment.
2766         (gfc_intrinsic_argument_list_length): New function.
2767         (gfc_conv_intrinsic_mnimax): Call it.
2768         (gfc_conv_intrinsic_merge): Likewise.
2769         (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
2770         constructors.
2771         (gfc_conv_intrinsic_cmplx): Likewise.
2772         (gfc_conv_intrinsic_ctime): Likewise.
2773         (gfc_covn_intrinsic_fdate): Likewise.
2774         (gfc_conv_intrinsic_ttynam): Likewise.
2775         (gfc_conv_intrinsic_ishftc): Likewise.
2776         (gfc_conv_intrinsic_index): Likewise.
2777         (gfc_conv_intrinsic_scan): Likewise.
2778         (gfc_conv_intrinsic_verify): Likewise.
2779         (gfc_conv_intrinsic_trim): Likewise.
2780         (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
2781         (gfc_conv_intrinsic_exponent): Likewise.
2782         (gfc_conv_intrinsic_bound): Likewise.
2783         (gfc_conv_intrinsic_abs): Likewise.
2784         (gfc_conv_intrinsic_mod): Likewise.
2785         (gfc_conv_intrinsic_sign): Likewise.
2786         (gfc_conv_intrinsic_len): Likewise.
2787         (gfc_conv_intrinsic_adjust): Likewise.
2788         (gfc_conv_intrinsic_si_kind): Likewise.
2790 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
2792         * trans-array.c (gfc_conv_array_parameter): Initialize tmp.
2794 2007-05-31  Richard Guenther  <rguenther@suse.de>
2796         * trans-expr.c (gfc_conv_expr_op): Use zero constant
2797         that matches the lse type.
2798         (gfc_trans_string_copy): Use sizetype zero constant.
2799         * intrinsic.c (add_functions): The sizeof intrinsic has
2800         index type result.
2801         * trans-types.c (gfc_get_dtype): Convert size to index
2802         type before shifting.
2803         * trans-array.c (gfc_trans_array_constructor_value): Use
2804         index type for offset computation.
2805         * trans-intrinsic.c (gfc_conv_associated): Use correct type
2806         for zero constant.
2808 2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
2810         PR fortran/32156
2811         * trans-array.c (gfc_trans_array_constructor): Treat the case
2812         where the ss expression charlen is missing.
2814 22007-05-31  Paul Thomas  <pault@gcc.gnu.org>
2816         PR fortran/32103
2817         * module.c (mio_symtree_ref): If an equivalence group member
2818         is not used, give it a hidden symbol and set the pointer_info.
2819         (load_equiv): Only free the equivalence if none of the members
2820         are used.
2822 2007-05-29  Daniel Franke  <franke.daniel@gmail.com>
2824         * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id',
2825         added missing GFC_ISYM_* enumerators, ordered alphabetically.
2826         (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'.
2827         (gfc_find_subroutine): New prototype.
2828         * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers.
2829         (find_subroutine): Renamed to 'gfc_find_subroutine', removed static.  
2830         * dependency.c: Changed usage of isym->generic_id to isym->id.  
2831         * openmp.c: Likewise.  
2832         * resolve.c: Likewise.  
2833         * trans-array.c: Likewise.  
2834         * trans-expr.c: Likewise.  
2835         * trans-intrinsic.c: Likewise.  
2836         * trans-openmp.c: Likewise.
2838 2007-05-28  Tobias Schlüter  <tobi@gcc.gnu.org>
2840         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF.
2841         * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic.
2842         * intrinsic.h (gfc_check_sizeof): Add prototype of ...
2843         * check.c (gfc_check_sizeof): .. new function.
2844         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function.
2845         (gfc_conv_intrinsic_strcmp): Whitespace fix.
2846         (gfc_conv_intrinsic_array_transfer): Remove double initialization,
2847         use fold_build. where appropriate.
2848         (gfc_conv_intrinsic_function): Add case for SIZEOF.
2849         * intrinsic.texi: Add documentation for SIZEOF.
2851 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2853         * trans-array.c (gfc_conv_expr_descriptor): Edit comment.
2855 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2857         PR fortran/31972
2858         * target-memory.c (gfc_target_expr_size): Add handling
2859         for size of BT_HOLLERITH variables.
2860         * check.c (gfc_check_transfer): Reject BT_HOLLERITH
2861         variables in MOLD argument of TRANSFER.
2863 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2865         * gfortran.h (gfc_expr): Remove from_H, add "representation"
2866         struct.
2867         * primary.c (match_hollerith_constant): Store the representation
2868         of the Hollerith in representation, not in value.character.
2869         * arith.c: Add dependency on target-memory.h.
2870         (eval_intrinsic): Remove check for from_H.
2871         (hollerith2representation): New function.
2872         (gfc_hollerith2int): Determine value of the new constant.
2873         (gfc_hollerith2real): Likewise.
2874         (gfc_hollerith2complex): Likewise.
2875         (gfc_hollerith2logical): Likewise.
2876         (gfc_hollerith2character): Point both representation.string and
2877         value.character.string at the value string.
2878         * data.c (create_character_initializer): For BT_HOLLERITH
2879         rvalues, get the value from the representation rather than
2880         value.character.
2881         * expr.c (free_expr0): Update handling of BT_HOLLERITH values
2882         and values with representation.string.
2883         (gfc_copy_expr): Likewise.
2884         * intrinsic.c (do_simplify): Remove special treatement of
2885         variables resulting from Hollerith constants.
2886         * dump-parse-trees.c (gfc_show_expr): Update handling of
2887         Holleriths.
2888         * trans-const.c (gfc_conv_constant_to_tree): Replace from_H
2889         check with check for representation.string; get Hollerith
2890         representation from representation.string, not value.character.
2891         * trans-expr.c (is_zero_initializer_p): Replace from_H check
2892         with check for representation.string.
2893         * trans-stmt.c (gfc_trans_integer_select): Use
2894         gfc_conv_mpz_to_tree for case values, so as to avoid picking up
2895         the memory representation if the case is given by a transfer
2896         expression.
2897         * target-memory.c (gfc_target_encode_expr): Use the known memory
2898         representation rather than the value, if it exists.
2899         (gfc_target_interpret_expr): Store the memory representation of
2900         the interpreted expression as well as its value.
2901         (interpret_integer): Move to gfc_interpret_integer, make
2902         non-static.
2903         (interpret_float): Move to gfc_interpret_float, make non-static.
2904         (interpret_complex): Move to gfc_interpret_complex, make
2905         non-static.
2906         (interpret_logical): Move to gfc_interpret_logical, make
2907         non-static.
2908         (interpret_character): Move to gfc_interpret_character, make
2909         non-static.
2910         (interpret_derived): Move to gfc_interpret_derived, make
2911         non-static.
2912         * target-memory.h: Add prototypes for newly-exported
2913         gfc_interpret_* functions.
2915 2007-05-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2917         PR fortran/31812
2918         * parse.c (next_statement): Warn for truncated lines if source is free
2919         form.
2921 2007-05-27 Paul Thomas  <pault@gcc.gnu.org>
2922            Tobias Burnus  <burnus@net-b.de>
2924         PR fortran/32088
2925         * symbol.c (gfc_check_function_type): Copy dimensions of
2926           result variable.
2927         * resolve.c (resolve_contained_fntype): Improve symbol output in
2928           the error message.
2930 2007-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2932         PR fortran/31813
2933         * io.c (check_format): Add warning for H specifier in format.
2934         
2935 2007-05-26  Tobias Burnus  <burnus@net-b.de>
2937         * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and
2938         GFORTRAN_ERROR_BACKTRACE environment variables.
2940 2007-05-26  Paul Thomas  <pault@gcc.gnu.org>
2942         PR fortran/31219
2943         * trans.h : Add no_function_call bitfield to gfc_se structure.
2944         Add stmtblock_t argument to prototype of get_array_ctor_strlen.
2945         * trans-array.c (get_array_ctor_all_strlen): New function.
2946         (get_array_ctor_strlen): Add new stmtblock_t argument and call
2947         new function for character elements that are not constants,
2948         arrays or variables.
2949         (gfc_conv_array_parameter): Call get_array_ctor_strlen to get
2950         good string length.
2951         * trans-intrinsic (gfc_conv_intrinsic_len): Add new argument
2952         to call of get_array_ctor_strlen.
2954 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
2956         * intrinsic.texi: Fix typos.
2958 2007-05-25  Paul Thomas  <pault@gcc.gnu.org>
2960         PR fortran/32047
2961         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Change
2962         order in logic under EXPR_FUNCTION to handle functions with
2963         no arguments.
2965 2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2967         PR fortran/31716
2968         * array.c (spec_dimen_size): Test for correct BT_INTEGER type. 
2970 2007-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2972         PR fortran/32046
2973         * trans-expr.c (gfc_trans_zero_assign): Convert the result of
2974         TYPE_SIZE_UNIT into a signed type.
2975         (gfc_trans_array_copy):  Likewise.
2976         (gfc_trans_array_constructor_copy): Likewise.
2977         * trans-array.c (gfc_trans_create_temp_array): Likewise.
2978         (gfc_grow_array): Likewise.
2979         (gfc_array_init_size): Likewise.
2980         (gfc_duplicate_allocatable): Likewise.
2981         * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise.
2983 2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2985         PR fortran/18923
2986         * resolve.c (resolve_function): Don't call resolve_global_procedure if
2987         there is no name. Delete duplicated statement in ELSE clause.
2989 2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2991         PR fortran/31627
2992         * trans-array.c (gfc_trans_array_bound_check): Take extra argument to
2993         indicate whether we should check the upper bound in that dimension.
2994         (gfc_conv_array_index_offset): Check only the lower bound of the
2995         last dimension for assumed-size arrays.
2996         (gfc_conv_array_ref): Likewise.
2997         (gfc_conv_ss_startstride): Likewise.
2999 2007-05-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3000             Daniel Franke  <franke.daniel@gmail.com>
3002         PR fortran/32002
3003         * resolve.c (resolve_actual_arglist): Resolve actual argument after
3004         being identified as variable.
3006 2007-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3008         PR fortran/32027
3009         * trans-stmt.c (gfc_trans_do): Fix the value of loop variable
3010         when the loop ends.
3012 2007-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3014         * trans-stmt.c (gfc_trans_do): Fix a typo in comment.
3016 2007-05-21  Paul Thomas  <pault@gcc.gnu.org>
3018         PR fortran/31867
3019         PR fortran/31994
3020         * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored
3021         offset for non-descriptor, source arrays and correct for stride
3022         not equal to one before writing to field of output descriptor.
3024 2007-05-20  Daniel Franke  <franke.daniel@gmail.com>
3026         PR fortran/32001
3027         * check.c (check_rest): Improved argument conformance check and 
3028         fixed error message generation.
3030 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3032         PR fortran/30820
3033         * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o,
3034         simplify.o and trans-common.o.
3036 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3038         PR fortran/31974
3039         * trans-array.c (gfc_trans_auto_array_allocation): Avoid
3040         multiplication of mismatched types.
3042 2007-05-18  Daniel Franke  <franke.daniel@gmail.com>
3044         PR fortran/24633
3045         * symbol.c (gfc_add_flavor): Add the NAME to error message if
3046         available.
3048 2007-05-15  Daniel Franke  <franke.daniel@gmail.com>
3050         PR fortran/31919
3051         PR fortran/31929
3052         PR fortran/31930
3053         * intrinsic.c (check_specific): Check elemental intrinsics for
3054         rank and shape.
3055         (add_functions): Fixed dummy argument names of BESJN and BESYN.
3056         Fixed elemental status of MCLOCK and MCLOCK8.
3057         * check.c (check_rest): Added check for array conformance.
3058         (gfc_check_merge): Removed check for array conformance.
3059         (gfc_check_besn): Removed check for scalarity.
3060         * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos.
3061         (BESJN, BESYN): Clarified documentation.
3063 2007-05-17  Tobias Burnus  <burnus@net-b.de>
3065         * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
3067 2007-05-16  Brooks Moses  <brooks.moses@codesourcery.com>
3069         PR fortran/18769
3070         PR fortran/30881
3071         PR fortran/31194
3072         PR fortran/31216
3073         PR fortran/31427
3074         * target-memory.c: New file.
3075         * target-memory.h: New file.
3076         * simplify.c: Add #include "target-memory.h".
3077         (gfc_simplify_transfer): Implement constant-
3078         folding for TRANSFER intrinsic.
3079         * Make-lang.in: Add dependencies on new target-memory.* files.
3081 2007-05-15  Paul Brook  <paul@codesourcery.com>
3083         * trans-types.c (gfc_type_for_size): Handle signed TImode.
3085 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3087         PR fortran/30723
3088         * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64,
3089         gfor_fndecl_internal_free): Remove prototypes.
3090         (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes.
3091         * trans.c (gfc_call_malloc, gfc_call_free): New functions.
3092         * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free
3093         and __builtin_malloc builtins.
3094         * trans-decl.c (gfor_fndecl_internal_malloc,
3095         gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove.
3096         (gfor_fndecl_os_error): Add.
3097         (gfc_build_builtin_function_decls): Don't create internal_malloc,
3098         internal_malloc64 and internal_free library function declaration.
3099         Create os_error library call function declaration.
3100         * trans-array.c (gfc_trans_allocate_array_storage,
3101         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
3102         gfc_conv_array_parameter, gfc_duplicate_allocatable): Use
3103         gfc_call_malloc and gfc_call_free instead of building calls to
3104         internal_malloc and internal_free.
3105         * trans-expr.c (gfc_conv_string_tmp): Likewise.
3106         * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp,
3107         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
3108         gfc_trans_where_2: Likewise.
3109         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
3110         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
3111         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise.
3113 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3115         PR fortran/31725
3116         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
3117         only once.
3119 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
3121         * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
3122         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
3123         instead of gfc_unsigned_type.
3124         * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
3125         gfc_unsigned_type.
3126         * trans-types.c (gfc_unsigned_type): Remove.
3127         * trans-types.h (gfc_unsigned_type): Remove.
3129 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
3131         PR fortran/30746
3132         * resolve.c (check_host_association): New function that detects
3133         incorrect host association and corrects it.
3134         (gfc_resolve_expr): Call the new function for variables and
3135         functions.
3136         * match.h : Remove prototype for gfc_match_rvalue.
3137         * gfortran.h : Add prototype for gfc_match_rvalue.
3139 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
3141         PR fortran/30876
3142         * trans-expr.c (gfc_conv_function_call): Reduce indirection for
3143         direct assignments of recursive array valued functions.
3144         * primary.c (gfc_match_rvalue): Correct error for recursive
3145         function calls such that directly recursive calls of scalar
3146         function without an explicit result are disallowed.
3148 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
3150         PR fortran/30878
3151         * resolve.c (resolve_fl_namelist): It is not an error if the
3152         namelist element is the result variable of the enclosing
3153         function.  Search for the symbol in current and all parent
3154         namespaces for a potential conflict.
3155         * symbol.c (check_conflict): Remove the conflict between
3156         'in_namelist' and 'FL_PROCEDURE' because the symbol info
3157         is not available to exclude function result variables.
3158         * trans-io.c (nml_get_addr_expr): Use the fake result decl
3159         if the symbol is an implicit result variable.
3161 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
3163         PR fortran/31474
3164         * decl.c (get_proc_name): If an entry has already been declared
3165         as a module procedure, pick up the symbol and the symtree and
3166         use them for the entry.
3168 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3170         PR fortran/31630
3171         * resolve.c (resolve_symbol): Remove the flagging mechanism from the
3172         formal namespace resolution and instead check that the formal
3173         namespace is not the current namespace.
3175 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3177         PR fortran/31692
3178         * trans-array.c (gfc_conv_array_parameter): Convert full array
3179         references to the result of the procedure enclusing the call.
3181 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3183         PR fortran/29397
3184         PR fortran/29400
3185         * decl.c (add_init_expr_to_sym): Expand a scalar initializer
3186         for a parameter array into an array expression with the right
3187         shape.
3188         * array.c (spec_dimen_size): Remove static attribute.
3189         * gfortran.h : Prototype for spec_dimen_size.
3191 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3193         PR fortran/31399
3194         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
3196 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3198         PR fortran/31764
3199         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
3200         even for non constant arguments.
3202 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3203             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3205         PR fortran/31201
3206         * gfortran.h: Add runtime error codes from libgfortran.h. Define
3207         MAX_UNIT_NUMBER.
3208         * trans.c (gfc_trans_runtime_check): Update the format of runtime error
3209         messages to match library runtime errors.  Use call to new library
3210         function runtime_error_at().
3211         * trans.h: Add prototype for new function gfc_trans_io_runtime_check.
3212         Add declaration for library functions runtime_error_at and
3213         generate_error.
3214         * trans_io.c (gfc_trans_io_runtime_check): New function.
3215         (set_parameter_value): Add error checking for UNIT numbers.
3216         (set_parameter_ref): Initialize the users variable to zero. 
3217         (gfc_trans_open): Move setting of unit number to after setting of common
3218         flags so that runtime error trapping can be detected.
3219         (gfc_trans_close): Likewise. (build_filepos): Likewise.
3220         (gfc_trans_inquire): Likewise. (build_dt): Likewise.
3221         * trans-decl.c: Add declarations for runtime_error_at and
3222         generate_error. (gfc_build_builtin_function_decls): Build function
3223         declarations for runtime_error_at and generate_error.
3225 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
3227         PR fortran/31540
3228         * resolve.c (resolve_fl_procedure): Resolve constant character
3229         lengths.
3231 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3233         PR fortran/31251
3234         * decl.c (match_char_spec): Add check for invalid character lengths.
3236 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
3238         * intrinsic.texi (CMPLX): Document result kind.
3239         (COMPLEX): Add documentation.
3241 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3243         PR fortran/31760
3244         * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
3245         by gfc_check_fn_r to avoid checks for scalarity.
3246         * check.c (gfc_check_besn): Removed check for scalarity.
3247         (gfc_check_g77_math1): Removed.
3248         * intrinsic.h (gfc_check_g77_math1): Removed.
3250 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3252         * check.c (gfc_check_fseek_sub): Fixed typo.
3254 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3256         PR fortran/22359
3257         * intrinsic.c (add_subroutines): Added FSEEK.
3258         * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
3259         * iresolve.c (gfc_resolve_fseek_sub): New.
3260         * check.c (gfc_check_fseek_sub): New.
3261         * intrinsic.texi (FSEEK): Updated.
3263 2007-05-04  Tobias Burnus  <burnus@net-b.de>
3265         PR fortran/31803
3266         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
3268 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3270         PR fortran/31251
3271         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
3273 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3275         PR fortran/31781
3276         * simplify.c (gfc_simplify_repeat): Don't put function call with
3277         side effect in a gcc_assert().
3279 2007-05-04  Tobias Burnus  <burnus@net-b.de>
3281         PR fortran/25071
3282         * interface.c (compare_actual_formal): Check character length.
3284 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
3286         PR fortran/31732
3287         * dependency.c (gfc_full_array_ref_p):  If the reference is
3288         to a single element, check that the array has a single
3289         element and that the correct element is referenced.
3291 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
3293         * intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
3294         (add_subroutines): Replaced magic numbers in function calls by
3295         ELEMENTAL and NOT_ELEMENTAL respectively.
3296         * intrinsic.texi (MVBITS): Changed class to elemental subroutine.
3297         (RANDOM_NUMBER): Changed class to subroutine.
3298         (HUGE, TINY): Changed class to inquiry function.
3300 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
3302         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
3303         (gfc_conv_tree_to_mpz): New function.
3304         (gfc_conv_mpfr_to_tree): Use real_from_mpfr.
3305         (gfc_conv_tree_to_mpfr): New function.
3306         * trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
3307         (gfc_conv_tree_to_mpfr): New prototype.
3309 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
3311         * intrinsic.texi (IERRNO): Changed class to non-elemental function.
3312         (LOG10): Removed COMPLEX as accepted argument type.
3313         (NEW_LINE): Changed class from elemental to inquiry function.
3314         (SIGN): Removed requirement of scalar arguments.
3315         (SNGL): Changed class to elemental function.
3317 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3319         PR fortran/31591
3320         * simplify.c (simplify_bound_dim): New function.
3321         (simplify_bound): Use the above. Perform simplification of LBOUND
3322         and UBOUND when DIM argument is not present.
3324 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
3326         * gfortran.texi: Cleaned up keyword index.
3327         * invoke.texi: Likewise.
3328         * intrinsic.texi: Likewise.
3329                         
3330 2007-04-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3332         PR fortran/31645
3333         * scanner.c (load_file): Discard the byte order mark if one is
3334         found on the first non-preprocessor line of a file.
3336 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
3338         PR fortran/31711
3339         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
3340         whenever a dependency is found.
3342 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
3344         * options.c (gfc_handle_option): Ensure requested free form line
3345         length is not too small.
3347 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
3349         * intrinsic.texi (Transfer): Improve documentation.
3351 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
3353         * gfortran.texi (Option Index): Add @samp as needed.
3355 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3357         * gfortran.texi: Added node and menu entry for an option index.
3358         * invoke.texi: Moved command line option related entries of the concept 
3359         index to the option index.
3361 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3363         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
3364         XOR): Fixed examples.
3366 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3368         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
3369         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
3370         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
3372 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
3374         * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, 
3375         SIZE, TRANSPOSE, TRIM, VERIFY): New.
3376         (ADJUSTL, ADJUSTR, INDEX): Added cross references.
3377         (INT, INT2, INT8, LONG): Enabled section header.
3379 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
3381         * module.c (module_char): Replace fgetc() with
3382         getc(). 
3383         (write_char): Replace fputc() with putc().
3384         * scanner.c (load_line): Replace fgetc() with getc().
3385         (gfc_read_orig_filename): Likewise.
3387 2007-04-25  Tobias Burnus  <burnus@net-b.de>
3389         PR fortran/31668
3390         * error.c (error_print): Fix %% support.
3391         * intrinsic.c (sort_actual): Improve error message.
3392         * resolve.c (resolve_actual_arglist): Allow %VAL for
3393         interfaces defined in the module declaration part.
3395 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3397         PR libfortran/31299
3398         * intrinsic.texi (GETLOG): Update documentation to reflect
3399         library changes.
3401 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3403         PR fortran/31587
3404         * module.c (write_char): Add character to the MD5 buffer.
3405         (read_md5_from_module_file): New function.
3406         (gfc_dump_module): Compute MD5 for new module file. Call
3407         read_md5_from_module_file. Only overwrite old module file
3408         if the new MD5 is different.
3410 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
3412         PR fortran/31630
3413         * resolve.c (resolve_symbol): Allow resolution of formal
3414         namespaces nested within formal namespaces coming from modules.
3416         PR fortran/31620
3417         * trans-expr.c (gfc_trans_assignment): Make the call to
3418         gfc_trans_zero_assign conditional on the lhs array ref being
3419         the only reference.
3421 2007-04-23  Tobias Burnus  <burnus@net-b.de>
3423         * primary.c (match_integer_constant): Mention -fno-range-check
3424         in the error message.
3426 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3428         PR fortran/31495
3429         * scanner.c (load_line):  Remove check for comment after ampersand and
3430         adjust tracking of ampersand.
3432 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3434         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
3435         instead of checking GIMPLE_STMT_P in chain_next.
3437 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
3439         * trans-types.h (gfc_packed): New enum.
3440         (gfc_get_nodesc_array_type): Change prototype to use new enum.
3441         * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for
3442         argument packed.  Adapt all references to values accordingly.
3443         (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array.
3444         (gfc_get_derived_type): Likewise.
3445         * trans-array.c (gfc_build_constant_array_constructor): Likewise.
3446         * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed
3447         argument to type gfc_packed.
3448         (gfc_add_interface_mapping): Use enum values in call to
3449         gfc_get_interface_mapping.
3450         * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum
3451         values when determining packing.
3453         * trans-decl.c (gfc_finish_decl): Remove unused second argument
3454         'init'.  Simplify code accordingly.  Remove calls to
3455         gfc_fatal_error in favor of gcc_assert.
3456         (create_function_arglist): Remove second argument from calls to
3457         gfc_finish-decl.
3458         (gfc_trans_dummy_character): Likewise.
3460         * arith.h: Update copyright years.
3461         * dependency.h: Likewise.
3462         * gfortran.h: Likewise.
3463         * lang-specs.h: Likewise.
3464         * parse.h: Likewise.
3465         * symbol.c: Likewise.
3466         * trans.h: Likewise.
3467         * trans.c: Likewise.
3468         * trans-array.c: Likewise.
3469         * trans-common.c: Likewise.
3470         * trans-const.h: Likewise.
3471         * trans-const.c: Likewise.
3472         * trans-decl.c: Likewise.
3473         * trans-expr.c: Likewise.
3474         * trans-io.c: Likewise.
3475         * trans-openmp.c: Likewise.
3476         * trans-types.h: Likewise.
3477         * types.def: Likewise.
3479 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
3481         PR fortran/31144
3482         * decl.c (gfc_sym_mangled_identifier): Use capital letters in name
3483         mangling.
3484         (gfc_sym_mangled_function_id): Likewise.
3486 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
3488         PR fortran/31204
3489         * primary.c (check_for_implicit_index): New function to check
3490         that a host associated variable is not an undeclared implied
3491         do loop index.
3492         (gfc_match_rvalue, match_variable): Use it and reset the
3493         implied_index attribute.
3494         * gfortran.h : Add the implied_index field to symbol_attribute.
3495         * match.c (gfc_match_iterator): Mark the iterator variable
3496         with the new attribute.
3497         * decl.c (build_sym): Reset the new attribute.
3499 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
3501         * gfc-internals.texi: Fix typos.
3502         * simplify.c: Fix a comment typo.
3504 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
3506         * primary.c: Commentary typo fix; Add question about redundant (?)
3507         set.
3509 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
3511         PR fortran/29507
3512         PR fortran/31404
3513         * expr.c (scalarize_intrinsic_call): New function to
3514         scalarize elemental intrinsic functions in initialization
3515         expressions.
3516         (check_init_expr): Detect elemental intrinsic functions
3517         in initalization expressions and call previous.
3519 2007-04-13  Tobias Burnus  <burnus@net-b.de>
3521         PR fortran/31559
3522         * primary.c (match_variable): External functions
3523         are no variables.
3525 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
3527         PR fortran/31550
3528         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
3529         derived type components.
3531 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
3533         PR fortran/18937
3534         * resolve.c: Include obstack.h and bitmap.h.  New variable
3535         labels_obstack.
3536         (code_stack): Add tail and reachable_labels fields.
3537         (reachable_labels): New function.
3538         (resolve_branch): Rework to use new fields in code_stack.
3539         (resolve_code): Call reachable_labels.
3540         (resolve_codes): Allocate and free labels_obstack.
3542 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
3544         PR fortran/31250
3545         * decl.c (match_char_spec): Move check for negative CHARACTER
3546         length ...
3547         * resolve.c (resolve_charlen): ... here.
3548         (resolve_types): Resolve CHARACTER lengths earlier.
3550 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
3552         PR fortran/31234
3553         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
3555 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
3557         PR fortran/31266
3558         * primary.c (gfc_variable_attr): Don't copy string length if it
3559         doesn't make sense.
3560         * resolve.c (resolve_code): Clarify error message.
3562         PR fortran/31471
3563         * decl.c (gfc_match_end): Also check for construct name in END
3564         FORALL and END WERE statements.
3565         * match.c (match_case_eos): Use uppercase for statement name in
3566         error message.
3567         (match_elsewhere): Construct name may appear iff construct has a
3568         name.
3570         * trans-types.c: Update copyright years.  Reformat long comment
3571         explaining array descriptor format.  Remove obsolete mention of
3572         TYPE_SET.
3574         * arith.c (gfc_arith_uplus): Rename to ...
3575         (gfc_arith_identity): ... this.
3576         (gfc_parentheses): New function.
3577         (gfc_uplus): Adapt to renamed function.
3578         * arith.h (gfc_parentheses): Add prototype.
3579         * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
3580         (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
3581         INTRINSIC_PARENTHESES.
3583 2007-04-12  Tobias Burnus  <burnus@net-b.de>
3585         PR fortran/31472
3586         * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
3587         attribute in type definitions.
3588         (gfc_match_private): Allow PRIVATE statement only
3589         in specification part of modules.
3590         (gfc_match_public): Ditto for PUBLIC.
3591         (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
3592         specificification part of modules.
3594 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3596         PR fortran/31257
3597         * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
3598         * intrinsic.h : Add prototype for gfc_resolve_achar.
3599         * iresolve.c (gfc_resolve_achar): New function.
3601 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3603         PR fortran/30880
3604         * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
3605         arrays.  Make condition for automatic array error explicit.
3606         If a dummy, no error on an INTENT(OUT) derived type.
3608 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3610         PR fortran/30872
3611         * expr.c (find_array_element): Correct arithmetic for rank > 1.
3613 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3615         PR fortran/31222
3616         * check.c (numeric_check): If an expresson has not got a type,
3617         see if it is a symbol for which a default type applies.
3619 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3621         PR fortran/31214
3622         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
3623         associated symbols.
3625 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3627         PR fortran/31293
3628         * symbol.c (gfc_check_function_type): New function.
3629         * gfortran.h : Add prototype for previous.
3630         * parse.c (parse_progunit): Call it after parsing specification
3631         statements.
3633 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
3635         PR fortran/31483
3636         * trans-expr.c (gfc_conv_function_call): Give a dummy
3637         procedure the correct type if it has alternate returns.
3639 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
3641         PR fortran/31292
3642         * decl.c (gfc_match_modproc): Go up to the top of the namespace
3643         tree to find the module namespace for gfc_get_symbol.
3645 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3647         PR fortran/31304
3648         * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
3649         * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
3650         (gfc_init_types): Define gfc_charlen_int_kind. 
3651         * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
3652         * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
3653         (gfc_build_intrinsic_function_decls): Don't set
3654         gfor_fndecl_string_repeat.
3655         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
3656         so that we don't have to call a library function.
3657         * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
3658         checks on the NCOPIES argument, and work with arbitrary size
3659         arguments.
3661 2007-03-31  Tobias Burnus  <burnus@net-b.de>
3663         * intrinsic.c (add_functions): Fix name of dummy argument
3664           for new_line and exit intrinsic.
3666 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
3668         PR fortran/31160
3669         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
3670         extensions.
3672 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
3674         * trans-types.c (gfc_signed_or_unsigned_type): Remove.
3675         (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
3676         gfc_signed_or_unsigned_type.
3677         (gfc_signed_type): Ditto.
3678         * trans-types.h (gfc_signed_or_unsigned_type): Remove.
3679         * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
3681 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
3683         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
3684         descend into all branches.
3686 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
3688         * intrinsic.c (conv_name): Let gfc_get_string handle the format.
3689         (find_conv): Compare pointers instead of calling strcmp.
3690         (find_sym): Likewise, but ensure that the compared pointer is in
3691         the global string table.
3693 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
3695         * gfc-internals.texi: Fix output filename.  Merge type index into
3696         concept index.  Start documentation of gfc_code structure.
3698 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3700         * gfc-internals.texi: New file,
3701         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
3703 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3705         * error.c (show_locus): Remove always-false test.
3707 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3709         * lang.opt: Minor edits to descriptions.
3711 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3713         PR fortran/30877
3714         * fortran/interface.c (check_operator_interface): Implement
3715         the standard checks on user operators extending intrinsic operators.
3716         * fortran/resolve.c (resolve_operator): If the ranks of operators
3717         don't match, don't error out but try the user-defined ones first.
3719 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3721         PR fortran/30655
3722         * expr.c (check_dimension): Fix logic of comparisons.
3724 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
3726         PR fortran/31215
3727         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
3728         int result that is non-zero if the expression is the function
3729         result.  Only the characteristics of the result expression
3730         can be used in a procedure interface, so simplify LEN in situ
3731         using its character length.
3733         PR fortran/31209
3734         PR fortran/31200
3735         * trans-expr.c (gfc_conv_function_call): Do not use
3736         gfc_conv_expr_reference for actual pointer function with formal
3737         target because a temporary is created that does not transfer
3738         the reference correctly.  Do not indirect formal pointer
3739         functions since it is the function reference that is needed.
3741 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
3743         * gfortran.h: Edit comments on GFC_STD_*.
3745 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
3747         * invoke.texi: Misc. small typo fixes.
3748         (-Wcharacter-truncation): Add.
3749         (-Wnonstd-intrinsics): Correct spelling.
3750         (-std=): Edit.
3751         (-fintrinsic-modules-path): Add.
3753 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3755         PR fortran/30834
3756         * arith.c (complex_pow): Rewrite to handle large power.
3757         (gfc_arith_power): Handle large power in the real and integer
3758         cases.
3760 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3762         PR fortran/31262
3763         * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
3764         larger than twice the width of a HOST_WIDE_INT.
3766 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
3768         PR fortran/31193
3769         * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
3770         (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
3771         Explicitly extract TREE_TYPEs for source and mold.  Use these
3772         to calculate length of source and mold, except for characters,
3773         where the se string_length is used.  For mold, the TREE_TYPE is
3774         recalculated using gfc_get_character_type_len so that the
3775         result is correctly cast for character literals and substrings.
3776         Do not use gfc_typenode_for_spec for the final cast.
3778 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
3780         PR fortran/20897
3781         * decl.c (gfc_match_derived_decl): Reliably reject
3782         'doubleprecision' and 'doublecomplex' as type names.
3784 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3786         PR fortran/31203
3787         * trans-expr.c (gfc_trans_init_string_length): Length should
3788         never be negative.
3789         (gfc_conv_function_call): Likewise.
3791 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
3793         PR fortran/30531
3794         PR fortran/31086
3795         * symbo.c : Add gfc_derived_types.
3796         (gfc_free_dt_list): Free derived type list gfc_derived_types.
3797         (gfc_free_namespace): Remove call to gfc_free_dt_list.
3798         (gfc_symbol_done_2): Call  gfc_free_dt_list.
3799         * gfortran.h : Declare gfc_derived_types to be external. Remove
3800         derived types field from gfc_namespace.
3801         * resolve.c (resolve_fl_derived): Refer to gfc_derived types
3802         rather than namespace derived_types.
3803         (resolve_fntype): Remove special treatment for module
3804         derived type functions.
3805         * trans-types.c (gfc_get_derived_type): Remove search for like
3806         derived types.  Finish by copying back end declaration to like
3807         derived types in the derived type list gfc_derived_types.
3809         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3811         PR fortran/31120
3812         * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
3813         (gfc_conv_cst_int_power): Handle integer exponent with care,
3814         since it might be too large for us.
3816 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3818         PR fortran/31184
3819         * invoke.texi: Fix typo.
3821 2007-03-16  Tobias Burnus  <burnus@net-b.de>
3823         * trans-decl.c (gfc_generate_function_code): Use all arguments of
3824           set_std.
3826 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3828         * gfortran.h (gfc_option_t): Add flag_backtrace field.
3829         * lang.opt: Add -fbacktrace option.
3830         * invoke.texi: Document the new option.
3831         * trans-decl.c (gfc_build_builtin_function_decls): Add new
3832         option to the call to set_std.
3833         * options.c (gfc_init_options, gfc_handle_option): Handle the
3834         new option.
3836 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
3837             Paul Thomas  <pault@gcc.gnu.org>
3839         PR fortran/30922
3840         * decl.c (gfc_match_import): If the parent of the current name-
3841         space is null, try looking for an imported symbol in the parent
3842         of the proc_name interface.
3843         * resolve.c (resolve_fl_variable): Do not check for blocking of
3844         host association by a same symbol, if the symbol is in an
3845         interface body.
3847 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
3849         PR fortran/30879
3850         * decl.c (match_data_constant): Before going on to try to match
3851         a name, try to match a structure component.
3854         PR fortran/30870
3855         * resolve.c (resolve_actual_arglist): Do not reject a generic
3856         actual argument if it has a same name specific interface.
3858         PR fortran/31163
3859         * trans-array.c (parse_interface): Do not nullify allocatable
3860         components if the symbol has the saved attribute.
3862 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3864         * trans-array.c (gfc_trans_auto_array_allocation): Replace
3865         fold(convert()) by fold_convert().
3866         (gfc_duplicate_allocatable): Likewise.
3867         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
3868         build_int_cst instead of converting an integer_zero_node
3869         to the final type.
3871 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
3873         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
3875 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
3877         PR fortran/30933
3878         PR fortran/30948
3879         PR fortran/30953
3880         * intrinsics.texi (CHDIR): Fix argument names, note
3881         that STATUS must be a default integer.
3882         (CTIME): Fix argument names, note that RESULT must
3883         be a default integer.
3884         (EXIT): Note that STATUS must be a default integer.
3886 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
3888         PR fortran/28068
3889         * intrinsic.texi: General whitespace cleanup, remove
3890         comment about missing intrinsics.
3891         (menu): Add lines for new entries listed below.
3892         (ACOSH): Mention specific function DACOSH, correct
3893         description phrasing.
3894         (ASINH): Mention specific function DASINH, correct
3895         description phrasing.
3896         (ATANH): Mention specific function DATANH, correct
3897         description phrasing.
3898         (COS): Add index entry for CCOS.
3899         (CPU_TIME): Correct "REAL" to "REAL(*)".
3900         (EXP): Add index entry for CEXP.
3901         (INT): Correct argument name to "A".
3902         (INT2): New entry.
3903         (INT8): New entry.
3904         (LONG): New entry.
3905         (MAX): Add index entries for specific variants.
3906         (MCLOCK): New entry.
3907         (MCLOCK8): New entry.
3908         (SECNDS): Adjust to a more standard form.
3909         (SECOND): New entry.
3910         (TIME): Add cross-reference to MCLOCK.
3911         (TIME8): Add cross-reference to MCLOCK8.
3913 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
3915         PR fortran/30883
3916         * parse.c (parse_interface): Use the default types from the
3917         formal namespace if a function or its result do not have a type
3918         after parsing the specification statements.
3920 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3922         * intrinsic.texi: (ICHAR) Improve internal I/O note.
3923         (ACHAR): Reference it.
3924         (CHAR): Reference it.
3925         (IACHAR): Reference it.
3927 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3929         * intrinsic.texi: (LINK) Document function form.
3930         (RENAME): Likewise.
3931         (SYMLNK): Likewise.
3932         (SYSTEM): Likewise.
3933         (UNLINK): Likewise.
3935 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3937         * intrinsic.texi: minor typo fixes, removed prologue.
3938         (FSEEK): moved to correct place in alphabetical order.
3940 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
3942         PR fortran/30947
3943         * check.c (gfc_check_alarm_sub): Added check for default integer 
3944         kind of status argument.
3945         * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
3946         status argument.
3947         * intrinsic.texi (ALARM): Extended documentation.
3949 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
3951         * intrinsic.texi (GERROR, ISATTY, TTYNAM): New.
3952         (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo.
3953         * intrinsic.c (add_subroutines): Adjusted dummy argument names 
3954         of GERROR and TTYNAM.
3956 2007-07-08  Tobias Burnus  <burnus@net-b.de>
3958         * module.c (gfc_match_use): Support renaming of operators
3959         in USE statements.
3960         * gfortran.texi (Fortran 2003 Status): Document support of
3961         renaming of operators.
3963 2007-07-08  Tobias Burnus  <burnus@net-b.de>
3965         PR fortran/30973
3966         * module.c (read_module): Always import module name as symbol.
3967         (gfc_match_use): Disallow module name in the only clause of
3968         a use statement.
3970 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
3972         PR fortran/31011
3973         * expr.c (find_array_section): Correct arithmetic for section
3974         size.
3976 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
3978         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
3980 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
3982         PR documentation/30950
3983         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
3984         (FREE): Fix call syntax.
3986 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
3988         * intrinsic.texi: Limit column widths to a total of .85.
3990 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
3992         * gfortran.texi (GFortran and G77): Rewrite completely.
3994 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
3996         * match.c (gfc_match_name): Expanded comment.
3998 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
4000         * gfortran.texi (Old-style kind specifications): Document
4001         special handling of old-style kind specifiers for COMPLEX.
4002         * decl.c (gfc_match_old_kind_spec): Document kind/bytesize
4003         assumptions for COMPLEX in comment.
4005 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
4007         PR 31050
4008         * gfortranspec.c (lang_specific_driver): Update program
4009         name and copyright date.
4011 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
4013         PR fortran/30882
4014         * check.c (dim_rank_check): The shape of subsections of
4015         assumed-size arrays is known.
4017 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
4018             Tobias Burnus  <burnus@net-b.de>
4020         PR fortran/30873
4021         * decl.c (gfc_match_entry): Remove erroneous entry result check.
4023 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
4025         * Make-lang.in: Add install-pdf target as copied from
4026         automake v1.10 rules.
4028 2007-03-01  Tobias Burnus  <burnus@net-b.de>
4030         PR fortran/30865
4031         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
4033 2007-02-28  Tobias Burnus  <burnus@net-b.de>
4034             Paul Thomas  <pault@gcc.gnu.org>
4036         PR fortran/30888
4037         PR fortran/30887
4038         * resolve.c (resolve_actual_arglist): Allow by-value
4039         arguments and non-default-kind for %VAL().
4040         * trans-expr.c (conv_arglist_function): Allow
4041         non-default-kind for %VAL().
4043 2007-02-28  Tobias Burnus  <burnus@net-b.de>
4045         PR fortran/30968
4046         * primary.c (next_string_char): Correct reading a character
4047         after the delimiter.
4048         (match_string_constant): Print warning message only once.
4050 2007-02-27  Richard Guenther  <rguenther@suse.de>
4052         * trans-array.c (structure_alloc_comps): Use correct type
4053         for null pointer constant.
4055 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
4057         * gfortran.texi: Standardize title page, remove version number
4058         from copyright page.
4060 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
4061             Paul Thomas  <pault@gcc.gnu.org>
4063         PR fortran/30865
4064         * trans-intrinsic.c (gfc_conv_intrinsic_size):
4065         If dim is an optional argument, check for its
4066         presence and call size0 or size1, respectively.
4068 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
4070         PR fortran/30660
4071         * resolve.c (has_default_initializer): New function.
4072         (resolve_fl_variable): Call has_default_initializer to determine if
4073         the derived type has a default initializer to its ultimate
4074         components.
4077 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4079         * options.c (set_default_std_flags): New function to consolidate
4080         setting the flags.
4081         (gfc_init_options): Use new function.
4082         (gfc_handle_option): Use new function.
4084 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
4086         * gfortran.texi (Old-style kind specifications): Document
4087         special handling of old-style kind specifiers for COMPLEX.
4088         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
4089         assumptions in comment.
4091 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
4093         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
4095 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
4097         PR fortran/30869
4098         * match.c (gfc_match_iterator): Remove conflict between
4099         loop variable and pointer.
4101 2007-02-20  Tobias Burnus  <burnus@net-b.de>
4103         PR fortran/30522
4104         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
4105           attribute for host-associated variables.
4106         * gfortran.h (symbol_attribute): Save namespace
4107           where VOLATILE has been set.
4108         * trans-decl.c (gfc_finish_var_decl): Move variable
4109           declaration to the top.
4111 2007-02-20  Tobias Burnus  <burnus@net-b.de>
4113         PR fortran/30783
4114         * resolve.c (resolve_symbol): Add character dummy VALUE check.
4116 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
4118         PR libfortran/30533
4119         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
4120         argument to default integer.
4121         (gfc_resolve_minloc): Likewise.
4123 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4125         PR fortran/30681
4126         * options.c (gfc_init_options): Relax warning level for obsolescent.
4127         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
4128         (gfc_match_if): Same.
4130 2007-02-18  Roger Sayle  <roger@eyesopen.com>
4132         * trans-array.c (gfc_build_constant_array_constructor): When the
4133         shape of the constructor is known, use that to construct the
4134         gfc_array_spec.
4135         (gfc_trans_constant_array_constructor): Initialize the "info"
4136         information for all of the dimensions of the array constructor.
4137         (constant_array_constructor_loop_size): New function.
4138         (gfc_trans_array_constructor): Use it to determine whether a
4139         loop is suitable for "constant array constructor" optimization.
4141         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
4142         instead of build2, to avoid conditions like "(a != b) != 0".
4144 2007-02-18  Roger Sayle  <roger@eyesopen.com>
4145             Paul Thomas <pault@gcc.gnu.org>
4147         PR fortran/30400
4148         * match.c (match_forall_iterator): Use gfc_match_expr instead
4149         of gfc_match_variable to match the iterator variable.  Return
4150         MATCH_NO if not a variable.  Remove the reset of the symbol's
4151         flavor in cleanup.
4153 2007-02-16  Tobias Burnus  <burnus@net-b.de>
4155         PR fortran/30793
4156         * trans-decl.c (gfc_generate_function_code): Do not initialize
4157         pointers to derived components.
4159 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
4160             Brooks Moses  <brooks.moses@codesourcery.com>
4161             Lee Millward  <lee.millward@codesourcery.com>
4163         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
4164         (gfc_conv_string_tmp): Likewise.
4165         (gfc_conv_concat_op): Likewise.
4166         (gfc_build_compare_string): Likewise.
4167         (gfc_conv_function_call): Use build_call_list instead of build3.
4169         * trans-array.c (gfc_trans_allocate_array_storage): Use
4170         build_call_expr.
4171         (gfc_grow_array): Likewise.
4172         (gfc_trans_array_ctor_element): Likewise.
4173         (gfc_trans_array_constructor_value): Likewise.
4174         (gfc_array_allocate): Likewise.
4175         (gfc_array_deallocate): Likewise.
4176         (gfc_trans_auto_array_allocation): Likewise.
4177         (gfc_trans_dummy_array_bias): Likewise.
4178         (gfc_conv_array_parameter): Likewise.
4179         (gfc_trans_dealloc_allocated): Likewise.
4180         (gfc_duplicate_allocatable): Likewise.
4182         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
4183         (gfc_trans_omp_flush): Likewise.
4185         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
4186         (gfc_trans_pause): Likewise.
4187         (gfc_trans_stop): Likewise.
4188         (gfc_trans_character_select): Likewise.
4189         (gfc_do_allocate): Likewise.
4190         (gfc_trans_assign_need_temp): Likewise.
4191         (gfc_trans_pointer_assign_need_temp): Likewise.
4192         (gfc_trans_forall_1): Likewise.
4193         (gfc_trans_where_2): Likewise.
4194         (gfc_trans_allocate): Likewise.
4195         (gfc_trans_deallocate): Likewise.
4197         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
4199         * trans-io.c (gfc_trans_open): Use build_call_expr.
4200         (gfc_trans_close): Likewise.
4201         (build_filepos): Likewise.
4202         (gfc_trans_inquire): Likewise.
4203         (NML_FIRST_ARG): Delete.
4204         (NML_ADD_ARG): Delete.
4205         (transfer_namelist_element): Use build_call_expr.
4206         (build_dt): Likewise.
4207         (gfc_trans_dt_end): Likewise.
4208         (transfer_expr): Likewise.
4209         (transfer_array-desc): Likewise.
4211         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
4212         (gfc_generate_constructors): Likewise.
4214         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
4215         (gfc_conv_intrinsic_fdate): Likewise.
4216         (gfc_conv_intrinsic_ttynam): Likewise.
4217         (gfc_conv_intrinsic_array_transfer): Likewise.
4218         (gfc_conv_associated): Likewise.
4219         (gfc_conv_intrinsic_si_kind): Likewise.
4220         (gfc_conv_intrinsic_trim): Likewise.
4221         (gfc_conv_intrinsic_repeat: Likewise.
4222         (gfc_conv_intrinsic_iargc): Likewise.
4224 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4226         PR fortran/30779
4227         * scanner.c (gfc_next_char_literal): Add check for end of file after
4228         call to advance_line.
4230 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
4232         PR fortran/30799
4233         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
4234         kind.
4236 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
4238         * misc.c (gfc_typename): Fix potential buffer overflow.
4240 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
4242         PR fortran/30554
4243         * module.c (read_module): Set pointer_info to referenced if the
4244         symbol has no namespace.
4246 2007-02-12  Nick Clifton  <nickc@redhat.com>
4248         * lang.opt: Add Warning attribute to warning options.
4250 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
4252         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
4253         (SLEEP): Added section and documentation.
4255 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
4257         PR fortran/30478
4258         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
4259         (variable_decl): Likewise.  Rewrap comment.
4260         (match_attr_spec): Remove ENUM specific code.
4261         (gfc_match_enum): Fix typo in error message.
4262         (enumerator_decl): New function.
4263         (gfc_match_enumerator_def): Use enumerator_decl instead of
4264         variable_decl.  Adapt code accordingly.
4266 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
4268         PR fortran/30554
4269         * module.c (find_symtree_for_symbol): New function to return
4270         a symtree that is not a "unique symtree" given a symbol.
4271         (read_module): Do not automatically set pointer_info to
4272         referenced because this inhibits the generation of a unique
4273         symtree.  Recycle the existing symtree if possible by calling
4274         find_symtree_for_symbol.
4276         PR fortran/30319
4277         * decl.c (add_init_expr_to_sym): Make new charlen for an array
4278         constructor initializer.
4280 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
4282         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
4283         and __emutls_register_common.
4284         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
4285         * trans-common.c (build_common_decl): Don't check have_tls.
4286         * trans-decl.c (gfc_finish_var_decl): Likewise.
4287         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
4288         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
4290 2007-02-09  Tobias Burnus  <burnus@net-b.de>
4292         PR fortran/30512
4293         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
4294           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
4296 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4298         PR fortran/30720
4299         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
4300         function argument. Always generate code for negative extent.
4301         Simplify said code.
4302         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
4303         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
4304         of gfc_trans_create_temp_array.
4305         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
4306         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
4308 2007-02-08  Roger Sayle  <roger@eyesopen.com>
4310         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
4311         mask expression is a compile-time constant (".true." or ".false.").
4313 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4315         PR fortran/30611
4316         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
4317         arguments only once. Generate check that NCOPIES argument is not
4318         negative.
4320 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
4322         PR fortran/30605
4323         * fortran/invoke.texi: Update documentation.
4324         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
4325         and -pedantic.
4327 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
4329         * trans-array.c: Fix a comment typo.
4331 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
4333         PR fortran/30514
4334         * array.c (match_array_element_spec): If the length of an array is
4335         negative, adjust the upper limit to make it zero length.
4337         PR fortran/30660
4338         * resolve.c (pure_function, resolve_function): Initialize name to
4339         null to clear up build warnings.
4340         (resolve_fl_variable): Look at components explicitly to check for
4341         default initializer, rather than using gfc_default_initializer.
4343 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
4345         PR fortran/30683
4346         * resolve.c (resolve_generic_f): Check for non-NULL sym.
4348 2007-02-02  Roger Sayle  <roger@eyesopen.com>
4350         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
4351         NON_LVALUE_EXPR nodes and useless type conversions.
4353 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
4355         PR fortran/30284
4356         PR fortran/30626
4357         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
4358         from function and make sure that substring lengths are
4359         translated.
4360         (is_aliased_array): Remove static attribute.
4361         * trans.c : Add prototypes for gfc_conv_aliased_arg and
4362         is_aliased_array.
4363         * trans-io.c (set_internal_unit): Add the post block to the
4364         arguments of the function.  Use is_aliased_array to check if
4365         temporary is needed; if so call gfc_conv_aliased_arg.
4366         (build_dt): Pass the post block to set_internal_unit and
4367         add to the block after all io activiy is done.
4369 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4371         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
4372         a temporary array to pass a constant non-character array constructor.
4373         Generalize the descriptor generation code to handle scalarizer
4374         "info" without an array reference.
4376 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4378         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
4379         dependency checking for array constructors.
4381 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4383         * trans-stmt.c (compute_overall_iter_number): Document function
4384         arguments.  Generalize "unconditional forall nest with constant
4385         bounds" optimization to eliminate unconditional inner loops with
4386         constant bounds.
4388 2007-01-31  Tobias Burnus  <burnus@net-b.de>
4390         PR fortran/30520
4391         * interface.c (compare_actual_formal): Check conformance between
4392           actual and VOLATILE dummy arguments.
4393         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
4394           multiple times in different scopes.
4395         * decl.c (gfc_match_volatile): Search symbol in host association.
4397 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
4399         * simplify.c, trans-array.c: Fix comment typos.
4401 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4403         * invoke.texi (Code Gen Options): Fix abbreviation typo.
4404         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
4406 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
4408         PR fortran/30432
4409         * trans-types.c (gfc_get_function_type): Do not add void_type_node
4410         to empty arg list.
4411         * trans-decl.c (create_function_arglist): Change assert.
4413 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
4415         PR fortran/30554
4416         * module.c (read_module): If a symbol is excluded by an ONLY
4417         clause, check to see if there is a symtree already loaded. If
4418         so, attach the symtree to the pointer_info.
4420 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
4422         PR libfortran/30389
4423         * gfortran.h: Remove gfc_simplify_init_1.
4424         * arith.h: Remove third argument from gfc_compare_string.
4425         * arith.c (gfc_compare_expression): Remove third argument
4426         from call to gfc_compare_string.
4427         (gfc_compare_string): Remove third argument xcoll_table.
4428         Remove use of xcoll_table.
4429         * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1.
4430         * simplify.c (ascii_table): Remove.
4431         (xascii_table): Likewise.
4432         (gfc_simplify_achar): ICE if extract_int fails.  Remove use of
4433         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
4434         (gfc_simplify_char): ICE if extract_int fails. Error if
4435         value < 0 or value > 255.
4436         (gfc_simplify_iachar): Remove use of xascii_table.
4437         Char values outside of 0..255 are an ICE.
4438         (gfc_simplify_lge): Remove use of xascii_table.
4439         (gfc_simplify_lgt): Likewise.
4440         (gfc_simplify_lle): Likewise.
4441         (gfc_simplify_llt): Likewise.
4442         (invert_table): Remove.
4443         (gfc_simplify_init_1): Remove.
4445 2007-01-27  Roger Sayle  <roger@eyesopen.com>
4447         * trans-stmt.c (forall_info): Replace the next_nest and outer
4448         fields that previously implemented a doubly-linked list with a
4449         single prev_nest field (singly-linked list).
4450         (gfc_trans_nested_forall_loop): The nested_forall_info argument
4451         now denotes the innermost FORALL in the loop nest.
4452         (compute_overall_iter_number): Use prev_nest instead of next_nest.
4453         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
4454         nested_forall_info linked list.  Free the current "info" when done.
4456 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
4458         PR fortran/30407
4459         * trans-expr.c (gfc_conv_operator_assign): New function.
4460         * trans.h : Add prototype for gfc_conv_operator_assign.
4461         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
4462         a potential operator assignment subroutine.  If it is non-NULL
4463         call gfc_conv_operator_assign instead of the first assignment.
4464         ( gfc_trans_where_2): In the case of an operator assignment,
4465         extract the argument expressions from the code for the
4466         subroutine call and pass the symbol to gfc_trans_where_assign.
4467         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
4468         gfc_resolve_forall_body): Resolve the subroutine call for
4469         operator assignments.
4471 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
4472             Steven G. Kargl <kargl@gcc.gnu.org>
4474         PR fortran/30278
4475         * fortran/io.c (next_char): Deal with backslash escaped characters.
4476         Issue warnings in non -std=gnu cases.
4477         * fortran/primary.c (next_string_char): Issue warnings in non
4479 2007-01-26  Tobias Burnus  <burnus@net-b.de>
4481         * lang-specs.h: Add support for .f03 and .F03 extensions.
4482         * gfortran.texi: Document .f03 extension.
4483         * options.c (form_from_filename): Recognize .f03.
4485 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4487         PR fortran/30437
4488         * lang.opt (Wall): Remove RejectNegative.
4489         * options.c (gfc_handle_option): Wall can be disabled.
4490         (set_Wall): Add a parameter for disabling Wall.
4491         
4492 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4494         PR fortran/30532
4495         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
4496         
4497 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
4499         PR fortran/30481
4500         * match.c (gfc_match_namelist): Add check for assumed size character
4501         in namelist and provide error if found.
4503 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
4505         * intrinsic.texi (ACHAR): Added cross-references.
4506         (CHAR): Put cross-references in alphabetical order.
4507         (IACHAR): Added cross-references.
4508         (ICHAR): Added cross-references.
4510 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
4512         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
4513         (MAXVAL): Corrected description of result characteristics.
4514         (MINVAL): Same.
4515         (UMASK): Added documentation.
4517 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
4519         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
4520         parse.c, primary.c, options.c, misc.c, simplify.c: Next installment
4521         in the massive whitespace patch.
4523 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4525         * module.c (mio_array_ref): The dimen_type fields of an array ref
4526         are an enumerated type and can't be read/written directly with a
4527         call to mio_integer.  Instead loop over and cast each element.
4529 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4531         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
4532         i.e. that the ARRAY_REF doesn't mention components.
4533         * trans-array.c (gfc_constant_array_constructor_p): Export external
4534         function renamed from constant_array_constructor_p.
4535         (gfc_build_constant_array_constructor): Export.
4536         (gfc_trans_array_constructor): Update call to the renamed function
4537         constant_array_constructor_p.
4538         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
4539         (gfc_build_constant_array_constructor): Likewise.
4540         * trans-expr.c (gfc_build_memcpy_call): New helper function split
4541         out from gfc_trans_array_copy.
4542         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
4543         (gfc_trans_array_constructor_copy): New function to optimize
4544         assigning an entire array from a constant array constructor.
4545         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
4546         when appropriate.
4548 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4550         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
4551         implementation for the SIGN intrinsic with integral operands.
4552         (gfc_conv_intrinsic_minmax): Fix whitespace.
4554 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4556         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
4557         * lang.opt: Add -fallow-leading-underscore.
4558         * match.c (gfc_match_name): Allow leading underscore in symbol
4559         name if -fallow-leading-underscore is used.
4560         * symbol.c (gfc_get_default_type): Add special case for symbol
4561         names beginning with an underscore.
4562         * trans-decl.c (gfc_get_extern_function_decl,
4563         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
4564         library symbols selected_int_kind, selected_real_kind and 
4565         all specifics.
4566         * options.c (gfc_init_options, gfc_handle_option): Handle the
4567         new -fallow-leading-underscore option.
4569 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4571         PR fortran/30446
4572         * options.c (gfc_handle_module_path_options): Path used in -J
4573         option is now added to the module search path.
4575 2007-01-20  Richard Guenther  <rguenther@suse.de>
4577         PR fortran/30223
4578         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
4579         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
4580         sincos builtins if the target has sincos.
4582 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
4584         * intrinsic.texi (MATMUL): Corrected a typo.
4585         (MAX): Separated @var arguments.
4586         (MIN): Separated @var arguments.
4588 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
4590         * intrinsic.texi: general whitespace cleanup.
4591         (menu): Added TIME8, removed UNMASK.
4592         (AINT): Clarified argument requirement.
4593         (ANINT): Clarified argument requirement.
4594         (CEILING): Clarified argument requirement.
4595         (CHAR): Clarified argument requirement.
4596         (CMPLX): Clarified argument requirement.
4597         (DCMPLX): Clarified argument requirement.
4598         (FGET): Line rewrapping.
4599         (FLOOR): Clarified argument requirement.
4600         (GMTIME): Added documentation.
4601         (IAND): Added cross-reference.
4602         (IBCLR): Added cross-reference.
4603         (IBSET): Added cross-reference.
4604         (IEOR): Added cross-reference.
4605         (INT): Collapsed examples, clarified argument requirement.
4606         (IOR): Added cross-references.
4607         (LEN_TRIM): Corrected result kind.
4608         (LINK): Added cross-reference.
4609         (LLT): Removed "documentation pending".
4610         (LOGICAL): Added documentation.
4611         (LSHIFT): Added documentation.
4612         (LTIME): Added documentation.
4613         (MATMUL): Added documentation.
4614         (MAX): Added documentation.
4615         (MAXLOC): Added documentation.
4616         (MAXVAL): Added documentation.
4617         (MERGE): Added documentation.
4618         (MIN): Added documentation.
4619         (MINLOC): Added documentation.
4620         (MINVAL): Added documentation.
4621         (MVBITS): Moved to correct place, added documentation.
4622         (NOT): Added documentation.
4623         (PERROR): Added documentation.
4624         (RAN): Moved to correct place, added documentation.
4625         (REAL): Clarified argument requirement.
4626         (RENAME): Added documentation.
4627         (RSHIFT): Clarified argument requirement.
4628         (SIGN): Corrected table specification.
4629         (SYMLNK): Added documentation.
4630         (SYSTEM): Added documentation.
4631         (TIME): Added documentation.
4632         (TIME8): Added section and documentation.
4633         (UNMASK): Removed erroneous section.
4635 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
4637         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
4639 2007-01-18  Roger Sayle  <roger@eyesopen.com>
4641         * trans-expr.c (copyable_array_p): Consider user derived types without
4642         allocatable components to be copyable.
4644 2007-01-18  Roger Sayle  <roger@eyesopen.com>
4646         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
4647         the number of interations in unconditional FORALL nests with constant
4648         bounds.
4650 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4651             Tobias Burnus  <burnus@net-b.de>
4653         PR libfortran/29649
4654         * gfortran.h (gfc_option_t): Add flag_dump_core.
4655         * lang.opt: Add -fdump-core option.
4656         * invoke.texi: Document the new options.
4657         * trans-decl.c (gfc_build_builtin_function_decls): Add new
4658           options to the call to set_std.
4659         * options.c (gfc_init_options, gfc_handle_option): Set the
4660           new options.
4662 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
4664         PR fortran/30476
4665         * module.c (load_generic_interfaces): Make the marking of the
4666         symbol as ambiguous conditional on the module names being
4667         different.
4668         (write_generic): Ensure that the generic interface has a
4669         non-NULL module field.
4671 2007-01-16  Roger Sayle  <roger@eyesopen.com>
4673         PR fortran/30404
4674         * trans-stmt.c (forall_info): Remove pmask field.
4675         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
4676         NVAR covers all the interation variables in the current forall_info.
4677         Add an extra OUTER parameter, which specified the loop header in
4678         which to place mask index initializations.
4679         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
4680         Change the semantics of MASK_FLAG to only control the mask in the
4681         innermost loop.
4682         (compute_overall_iter_number): Optimize the trivial case of a
4683         top-level loop having a constant number of iterations.  Update
4684         call to gfc_trans_nested_forall_loop.  Calculate the number of
4685         times the inner loop will be executed, not to size of the 
4686         iteration space.
4687         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
4688         sizeof(type) == 1.  Tidy up.
4689         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
4690         to gfc_trans_nested_forall_loop.
4691         (gfc_trans_pointer_assign_need_temp): Likewise.
4692         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
4693         LENVAR local variables.  Split mask allocation into a separate
4694         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
4695         to allocate the FORALL mask with the correct size.  Update calls
4696         to gfc_trans_nested_forall_loop.
4697         (gfc_evaluate_where_mask): Update call to
4698         gfc_trans_nested_forall_loop.
4699         (gfc_trans_where_2): Likewise.
4701 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
4703         PR fortran/28172
4704         * trans-stmt.c (gfc_trans_call): If it does not have one, get
4705         a backend_decl for an alternate return.
4707         PR fortran/29389
4708         * resolve.c (pure_function): Statement functions are pure. Note
4709         that this will have to recurse to comply fully with F95.
4711         PR fortran/29712
4712         * resolve.c (resolve_function): Only a reference to the final
4713         dimension of an assumed size array is an error in an inquiry
4714         function.
4716         PR fortran/30283
4717         * resolve.c (resolve_function): Make sure that the function
4718         expression has a type.
4720 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
4722         PR fortran/30410
4723         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
4724         symbols must not have the module name prepended.
4726 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
4728         PR libfortran/30415
4729         * iresolve.c (gfc_resolve_maxloc): If the rank
4730         of the return array is nonzero and we process an
4731         integer array smaller than default kind, coerce
4732         the array to default integer.
4733         * iresolve.c (gfc_resolve_minloc): Likewise.
4735 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
4737         * simplify.c: Update copyright to 2007.
4738         * scanner.c: Same.
4740 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4742         PR fortran/30430
4743         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
4744         only once!
4746 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
4748         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
4749         (gfc_simplify_ibset): Same.
4751 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
4753         PR 30381
4754         PR 30420
4755         * simplify.c (convert_mpz_to_unsigned): New function.
4756         (convert_mpz_to_signed): New function, largely based on
4757         twos_complement().
4758         (twos_complement): Removed.
4759         (gfc_simplify_ibclr): Add conversions to and from an
4760         unsigned representation before bit-twiddling.
4761         (gfc_simplify_ibset): Same.
4762         (gfc_simplify_ishftc): Add checks for overly large
4763         constant arguments, only check the third argument if
4764         it's present, carry over high bits into the result as
4765         appropriate, and perform the final conversion back to
4766         a signed representation using the correct sign bit.
4767         (gfc_simplify_not): Removed unnecessary masking.
4769 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
4771         PR fortran/30408
4772         * resolve.c (resolve_code): Use the code->expr character length
4773         directly to set length of llen.
4775 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4777         PR fortran/30408
4778         * lang.opt: Add Wcharacter_truncation option.
4779         * options.c (gfc_init_options): Initialize
4780         gfc_option.warn_character_truncation to zero.
4781         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
4783 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4785         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
4786         iresolve.c, match.c: Update Copyright years.  Whitespace.
4788 2007-01-08  Richard Guenther  <rguenther@suse.de>
4790         * trans-io.c (transfer_array_desc): Use build_int_cst instead
4791         of build_int_cstu.
4793 2007-01-08  Roger Sayle  <roger@eyesopen.com>
4795         * trans-array.c (constant_array_constructor_p): New function to
4796         determine whether an array constructor consists only of constant
4797         elements, and if so return it's size.
4798         (gfc_build_constant_array_constructor): Construct a statically
4799         initialized gfortran array for a given EXPR_ARRAY.
4800         (gfc_trans_constant_array_constructor): Efficiently scalarize
4801         a constant array constructor.
4802         (gfc_trans_array_constructor): Tidy up use of CONST_STRING.
4803         Special case scalarization of constant array constructors, all of
4804         whose elements are specified, using constant_array_constructor_p 
4805         and gfc_trans_constant_array_constructor.
4806         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
4807         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
4809 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
4811         gfortran.texi: Fix typos.
4813 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
4815         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
4816         convert.c: Update Copyright dates.  Fix whitespace.
4818 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4820         * data.c (gfc_assign_data_value): Fix whitespace.
4822 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4824         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
4825         Commentary typo fix.
4827 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4829         PR fortran/27698
4830         * match.c (gfc_match_name): Print diagnostics for invalid
4831         character in names.
4833 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4835         * array.c: Fix whitespace in comment table.
4837 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4839         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
4841 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4843         * arith.c: Update copyright years.  Whitespace.
4845 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4847         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
4848         array assignments split out from gfc_trans_assignment.
4849         (gfc_trans_array_copy): New function to implement array to array
4850         copies via calls to __builtin_memcpy.
4851         (copyable_array_p): New helper function to identify an array of
4852         simple/POD types, that may be copied/assigned using memcpy.
4853         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
4854         whole array assignments considered suitable by copyable_array_p.
4855         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
4857 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4859         * trans-array.c (gfc_trans_array_constructor_value): Make the
4860         static const "data" array as TREE_READONLY.
4861         * trans-stmt.c (gfc_trans_character_select): Likewise.
4863 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4865         * trans-array.c (gfc_conv_loop_setup): Test whether the loop
4866         stride is one, to avoid fold_build2 introducing a useless
4867         NON_LVALUE_EXPR node.
4869 2007-01-05  Tobias Burnus  <burnus@net-b.de>
4871         * symbol.c (check_conflict): Fix error message.
4873 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
4875         PR fortran/23232
4876         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
4877         functions to signal that a DATA statement is being matched.
4878         (gfc_match_data): Call gfc_set_in_match_data on entry and on
4879         exit.
4880         * gfortran.h : Add prototypes for above.
4881         * expr.c (check_init_expr): Avoid check on parameter or
4882         variable if gfc_in_match_data is true.
4883         (gfc_match_init_expr): Do not call error on non-reduction of
4884         expression if gfc_in_match_data is true.
4886         PR fortran/27996
4887         PR fortran/27998
4888         * decl.c (gfc_set_constant_character_len): Add boolean arg to
4889         flag array constructor resolution.  Warn if string is being
4890         truncated.  Standard dependent error if string is padded. Set
4891         new arg to false for all three calls to
4892         gfc_set_constant_character_len.
4893         * match.h : Add boolean arg to prototype for
4894         gfc_set_constant_character_len.
4895         * gfortran.h : Add warn_character_truncation to gfc_options.
4896         * options.c (set_Wall): Set warn_character_truncation if -Wall
4897         is set.
4898         * resolve.c (resolve_code): Warn if rhs string in character
4899         assignment has to be truncated.
4900         * array.c (gfc_resolve_character_array_constructor): Set new
4901         argument to true for call to gfc_set_constant_character_len.
4903 2007-01-05  Tobias Burnus  <burnus@net-b.de>
4905         PR fortran/29624
4906         * interface.c (compare_parameter_intent): New function.
4907           (check_intents): Support pointer intents.
4908         * symbol.c (check_conflict): Support pointer intents,
4909           better conflict_std message.
4910         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
4911           Support pointer intents.
4912         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
4913           Support pointer intents.
4915 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4917         PR 30371
4918         * check.c (gfc_check_kill_sub): Add checks for non-scalar
4919         arguments.
4921 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4923         * intrinsic.texi: Minor cleanup, reflowing overlong
4924         paragraphs, and correcting whitespace.
4926 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4928         * intrinsic.texi (LBOUND): Add documentation.
4929         (LGE): Add documentation.
4930         (LGT): Add documentation.
4931         (LINK): Add documentation.
4932         (LLE): Add documentation.
4933         (LLT): Add documentation.
4934         (LNBLNK): Add documentation.
4935         (UBOUND): Add documentation.
4936         (UNLINK): Add documentation.
4938 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4940         * intrinsic.texi (IAND): Clarify argument specifications.
4941         (IBCLR): Add documentation.
4942         (IBITS): Add documentation.
4943         (IBSET): Add documentation.
4944         (IEOR): Add documentation.
4945         (IERRNO): Add documentation.
4946         (INDEX): Add documentation.
4947         (IOR): Add documentation.
4948         (ISHFT): Add documentation.
4949         (ISHFTC): Add documentation.
4950         (KILL): Add documentation.
4951         (LEN_TRIM): Add documentation.
4953 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4955         PR 30235
4956         * interface.c (compare_actual_formal): check for
4957         alternate returns when iterating over non-present
4958         arguments.
4960 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4962         * invoke.texi: Update manpage copyright to include 2007.
4964 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4966         * gfortran.texi: Update copyright to include 2007.
4967         * intrinsic.texi: Update copyright to include 2007.
4968         * invoke.texi: Update copyright to include 2007.
4970 2007-01-02  Tobias Burnus  <burnus@net-b.de>
4971             Jakub Jelinek  <jakub@redhat.com>
4973         PR fortran/30276
4974         * scanner.c (open_included_file): Revert patch.
4975           (gfc_open_included_file): Support absolute pathnames.
4976           (gfc_open_intrinsic_module): Support absolute pathnames.
4978 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4980         * gfortran.texi (GNU Fortran and GCC): Rewrite
4982 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4984         * gfortran.texi (Introduction): Lower "Part I:
4985         Introduction" to a chapter, renumber Parts II and III to
4986         Parts I and II.
4987         * intrinsic.texi (Introduction): Rename to "Introduction
4988         to Intrinsics" to avoid conflict with the new chapter.
4990 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4992         * intrinsic.texi (Introduction): Rewrite first paragraph.
4994 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4996         * invoke.texi (OpenMP): Added index entry.
4997         * gfortran.texi (title page): Removed erroneous '*'.
4999 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5001         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
5002         to description.
5003         (Extensions): Miscellaneous minor rewriting and copyediting.
5004         (BOZ-literal constants): Renamed from Hexadecimal constants.
5005         (Hollerith constants support): Added explanation and 
5006         suggestions for standard-conforming modern equivalents.
5008 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5010         * intrinsic.texi: Improvements to index entries; change
5011         @findex entries to @cindex entries.
5012         * invoke.texi: Standardize and improve index entries.
5013         * gfortran.texi: Fix @code in one index entry.
5015 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5017         * invoke.texi: Change @code-type macros to appropriate
5018         variants (@command, @option, etc.)
5019         * gfortran.texi: Same.
5021 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5023         * intrinsic.texi: Various minor cleanups.
5025 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
5027         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
5028         build_int_cst.
5030 2007-01-02  Tobias Burnus  <burnus@net-b.de>
5032         PR fortran/30276
5033         * scanner.c (open_included_file): Support full-path filenames.
5035 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
5037         PR fortran/20896
5038         * interface.c (check_sym_interfaces): Remove call to
5039         resolve_global_procedure.
5040         gfortran.h : Remove prototype for resolve_global_procedure.
5041         resolve.c (resolve_global_procedure): Add static attribute
5042         to function declaration.
5044 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
5046         * ChangeLog: Copy to ...
5047         * ChangeLog-2006: here.