OSDN Git Service

2007-11-16 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-11-16  Paul Thomas  <pault@gcc.gnu.org>
2
3         PR fortran/33986
4         * trans-array.c (gfc_conv_array_parameter ): Allow allocatable
5         function results.
6
7 2007-11-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8
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.
20
21 2007-11-13  Paul Thomas  <pault@gcc.gnu.org>
22
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.
27
28 2007-11-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
29
30         * trans-common.c: Remove prototype for gfc_get_common.
31
32 2007-11-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
33
34         PR fortran/33592
35         * trans.c (gfc_call_realloc): Fix the logic and rename variables.
36
37 2007-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
38
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.
43
44 2007-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
45
46         PR fortran/34028
47         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use correct type.
48
49 2007-11-08  Tobias Burnus  <burnus@net-b.de>
50
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.
55
56 2007-11-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
57
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.
61
62 2007-11-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
63
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.
73
74 2007-11-02  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
75
76         * intrinsic.texi (ALLOCATED): Fix typo.
77
78 2007-10-31  Tobias Burnus  <burnus@net-b.de>
79
80         PR fortran/33941
81         * modules.c (intrinsics): Use only alphabetic names for
82         intrinsic operators.
83
84 2007-10-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
85
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.
94
95 2007-10-31  Paul Thomas  <pault@gcc.gnu.org>
96
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.
102
103 2007-10-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
104
105         PR fortran/33596
106         * trans-intrinsic.c (gfc_conv_intrinsic_isnan): Strip NOP_EXPR
107         from the result of build_call_expr.
108
109 2007-10-29  Paul Thomas  <pault@gcc.gnu.org>
110
111         PR fortran/31217
112         PR fortran/33811
113         PR fortran/33686
114
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.
149
150 2007-10-28  Tobias Schlüter  <tobi@gcc.gnu.org>
151
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.
160
161 2007-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
162
163         PR fortran/31306
164         * decl.c (char_len_param_value): Add check for conflicting attributes of
165         function argument.
166
167 2007-10-27  Tobias Burnus  <burnus@net-b.de>
168
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.
173
174 2007-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
175
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.
186
187 2007-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
188
189         * invoke.texi: Fix typo in -fmax-errors=.
190
191 2007-10-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
192
193         PR fortran/29784
194         * gfortran.texi: Document that there is no logical/integer
195         conversion performed during I/O operations.
196
197 2007-10-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
198
199         PR fortran/33849
200         * resolve.c (resolve_actual_arglist): Fix error message text.
201
202 2007-10-22  Steven G. Kargl  <kargl@gcc.gnu.org>
203
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".
214
215 2007-10-21  Paul Thomas  <pault@gcc.gnu.org>
216
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.
223
224 2007-10-20  Tobias Burnus  <burnus@net-b.de>
225
226         PR fortran/33818
227         * resolve.c (resolve_variable): Check that symbol is in the same
228         namespace as the entry function.
229
230 2007-10-20  Paul Thomas  <pault@gcc.gnu.org>
231             FX Coudert <fxcoudert@gcc.gnu.org>
232
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.
243
244 2007-10-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
245
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.
250
251 2007-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
252
253         PR fortran/33795
254         * gfortran.texi: Document GFORTRAN_UNBUFFERED_PRECONNECTED
255         environment variable.  Delete mention of environment variable
256         GFORTRAN_UNBUFFERED_n.
257
258 2007-10-18  Paul Thomas  <pault@gcc.gnu.org>
259
260         PR fortran/33233
261         * resolve.c (check_host_association): Check singly contained
262         namespaces and start search for symbol in current namespace.
263
264 2007-10-18  Paul Thomas  <pault@gcc.gnu.org>
265             Dominique d'Humieres  <dominiq@lps.ens.fr>
266
267         PR fortran/33733
268         * simplify.c (gfc_simplify_transfer): Return null if the source
269         expression is EXPR_FUNCTION.
270
271 2007-10-17 Christopher D. Rickett <crickett@lanl.gov>
272
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.
281
282 2007-10-15 Christopher D. Rickett <crickett@lanl.gov>
283
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.
290
291 2007-10-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
292
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.
298
299 2007-10-14  Tobias Burnus  <burnus@net-b.de>
300
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.
307
308 2007-10-13  Tobias Schlüter  <tobi@gcc.gnu.org>
309             Paul Thomas  <pault@gcc.gnu.org>
310
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.
316
317 2007-10-12  Paul Thomas  <pault@gcc.gnu.org>
318
319         PR fortran/33542
320         * resolve.c (resolve_actual_arglist): If the actual argument is
321         ambiguous, then there is an error.
322
323 2007-10-12  Paul Thomas  <pault@gcc.gnu.org>
324
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.
329
330 2007-10-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
331
332         PR fortran/33636
333         * expr.c (find_array_section): Check for constructor constantness.
334
335 2007-10-08  Tobias Schlüter  <tobi@gcc.gnu.org>
336
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.
342
343 2007-10-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
344
345         PR libfortran/33683
346         * mathbuiltins.def (GAMMA):  Change function name to
347         "tgamma" instad of "gamma".
348
349 2007-10-07  Tobias Schlüter  <tobi@gcc.gnu.org>
350
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.
358
359 2007-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
360
361         PR fortran/33609
362         * simplify.c (range_check): Return gfc_bad_expr if incoming expression 
363         is NULL.
364
365 2007-10-06  Tobias Schlüter  <tobi@gcc.gnu.org>
366
367         * simplify.c (gfc_simplify_size): Fix typo.
368
369 2007-10-06  Tobias Schlüter  <tobi@gcc.gnu.org>
370
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.
378
379 2007-10-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
380
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.
406
407 2007-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
408
409         PR fortran/33529
410         * decl.c (match_char_kind): New function.
411         (match_char_spec): Use match_char_kind.
412
413 2007-10-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
414
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.
427
428 2007-10-04  Tobias Schlüter  <tobi@gcc.gnu.org>
429
430         PR fortran/33626
431         * resolve.c (resolve_operator): Always copy the type for
432         expressions in parentheses.
433
434 2007-10-04  Paul Thomas  <pault@gcc.gnu.org>
435
436         PR fortran/33646
437         PR fortran/33542
438         * interface.c (check_interface1): Revert patch of 10-02.
439
440 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
441
442         PR fortran/26682
443         * trans-decl.c (build_function_decl): Set "externally_visible"
444         attribute on the MAIN program decl.
445
446 2007-10-03  Tobias Schlüter  <tobi@gcc.gnu.org>
447
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.
455
456 2007-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
457
458         PR fortran/26682
459         * options.c (gfc_post_options): Issue an error when
460         -fwhole-program is used.
461
462 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
463
464         PR fortran/33542
465         * interface.c (check_interface1): Specific procedures are
466         always ambiguous if they have the same name.
467
468 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
469
470         PR fortran/33566
471         * primary.c (gfc_match_rvalue): Make all expressions with array
472         references to structure parameters into variable expressions.
473
474 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
475
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.
482
483 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
484
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.
488
489 2007-10-02  Paul Thomas  <pault@gcc.gnu.org>
490
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.
514
515 2007-09-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
516
517         * module.c (mio_expr): Avoid -Wcast-qual warning.
518
519 2007-09-27  Tobias Schlüter  <tobi@gcc.gnu.org>
520
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.
531
532 2007-09-27  Paul Thomas  <pault@gcc.gnu.org>
533
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].
538
539 2007-09-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
540
541         PR fortran/30780
542         * invoke.texi: Add note to -ffpe-trap option. Fix typos.
543
544 2007-09-23  Tobias Schlüter  <tobi@gcc.gnu.org>
545
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.
551
552 2007-09-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
553
554         PR fortran/33538
555         * scanner.c, parse.c, gfortran.h: Revert revision 128671.
556
557 2007-09-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
558
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.
563
564 2007-09-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
565
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.
570
571 2007-09-22  Paul Thomas  <pault@gcc.gnu.org>
572
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.
582
583 2007-09-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
584
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.
598
599 2007-09-22  Tobias Burnus  <burnus@net-b.de>
600
601         PR fortran/33445
602         * scanner.c (skip_free_comments): Warn if !$OMP& is used
603         if no OpenMP directive is to be continued.
604
605 2007-09-21  Paul Thomas  <pault@gcc.gnu.org>
606
607         *trans-expr.c (gfc_trans_pointer_assignment): Convert array
608         descriptor for subref pointer assignements, rather than using
609         the loop info version.
610
611 2007-09-21  Tobias Burnus  <burnus@net-b.de>
612
613         PR fortran/33037
614         * simplify.c (gfc_simplify_transfer): Warn if source size
615         is smaller than result size.
616
617 2007-09-20  Asher Langton  <langton2@llnl.gov>
618
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.
633
634 2007-09-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
635
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.
645
646 2007-09-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
647
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.
652
653 2007-09-20  Tobias Schlüter  <tobi@gcc.gnu.org>
654
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.
659
660 2007-09-20  Christopher D. Rickett  <crickett@lanl.gov>
661
662         PR fortran/33497
663         * resolve.c (gfc_iso_c_func_interface): Use information from
664         subcomponent if applicable.
665
666 2007-09-20  Tobias Burnus  <burnus@net-b.de>
667
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.
672
673 2007-09-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
674
675         PR fortran/31119
676         * trans-array.c (gfc_conv_ss_startstride): Only perform bounds
677         checking for optional args when they are present.
678
679 2007-09-18  Tobias Burnus  <burnus@net-b.de>
680
681         PR fortran/33231
682         * resolve.c (resolve_elemental_actual): Check for conformance
683         of intent out/inout dummies.
684
685 2007-09-17  Tobias Burnus  <burnus@net-b.de>
686
687         PR fortran/33106
688         * resolve.c (resolve_symbol): Reject public variable of
689         private derived-types for Fortran 95.
690
691 2007-09-17  Tobias Burnus  <burnus@net-b.de>
692
693         * resolve.c (resolve_fl_procedure): Allow private dummies
694         for Fortran 2003.
695
696 2007-09-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
697
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.
704
705 2007-09-16  Paul Thomas  <pault@gcc.gnu.org>
706
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.
761
762 2007-09-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
763
764         * iresolve.c (resolve_mask_arg): If a mask is an array
765         expression, convert it to kind=1.
766
767 2007-09-13  Tobias Burnus  <burnus@net-b.de>
768
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.
773
774 2007-09-13  Tobias Burnus  <burnus@net-b.de>
775
776         * symbol.c (gfc_add_elemental,gfc_add_pure,gfc_add_recursive):
777         Allow prefixes only to be specified once.
778
779 2007-09-13  Tobias Burnus  <burnus@net-b.de>
780
781         PR fortran/33412
782         * symbol.c (check_conflict): Add conflict of ELEMENTAL with Bind(C).
783
784 2007-09-12  Tobias Burnus  <burnus@net-b.de>
785
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.
797
798 2007-09-12  Tobias Burnus  <burnus@net-b.de>
799
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.
804
805 2007-09-12  Tobias Burnus  <burnus@net-b.de>
806
807         * trans-expr.c (gfc_conv_initializer): Fix expr == NULL check.
808
809 2007-09-12  Jan Hubicka  <jh@suse.cz>
810
811         * f95-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
812
813 2007-09-12  Christopher D. Rickett  <crickett@lanl.gov>
814
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.
819
820 2007-09-11  Christopher D. Rickett  <crickett@lanl.gov>
821
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 *).
828
829 2007-09-11  Jan Hubicka <jh@suse.cz>
830
831         * f95-lang.c (gfc_expand_function): Kill.
832         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
833
834 2007-09-08  Tobias Burnus  <burnus@net-b.de>
835
836         PR fortran/31547
837         * gfortran.texi: Document when CPP is called.
838
839         * intrinsic.texi (IOR): Fix typos.
840
841 2007-09-10  Paul Thomas  <pault@gcc.gnu.org>
842
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.
849
850 2007-09-06  Tom Tromey  <tromey@redhat.com>
851
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.
857
858 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
859
860         * trans-decl.c (build_entry_thunks): Use set_cfun.
861         (gfc_generate_function_code): Likewise.
862
863 2007-09-05  Paul Thomas  <pault@gcc.gnu.org>
864
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.
870
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.
876
877 2007-09-04  Janus Weil  <jaydub66@gmail.com>
878             Paul Thomas  <pault@gcc.gnu.org>
879
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.
893
894 2007-09-03  Daniel Jacobowitz  <dan@codesourcery.com>
895
896         * Make-lang.in (gfortranspec.o): Remove SHLIB_MULTILIB.
897
898 2007-09-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
899
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,
904
905 2007-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
906
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_*.
928
929 2007-09-02  Steven G. Kargl  <kargl@gcc.gnu.org>
930
931         * invoke.texi: Fix the -frange-checking option entry.
932
933 2007-09-02  Roger Sayle  <roger@eyesopen.com>
934
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.
942
943 2007-09-02  Tobias Schlüuter  <tobi@gcc.gnu.org>
944
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.
949
950 2007-09-02  H.J. Lu  <hongjiu.lu@intel.com>
951
952         PR fortran/33276
953         * array.c (expand_iterator): Initialize frame.prev.
954
955 2007-08-31  Tobias Burnus  <burnus@net-b.de>
956
957         PR fortran/33232
958         * io.c (match_io): Also diagnose extra comma for READ.
959
960 2007-08-31  Joseph Myers  <joseph@codesourcery.com>
961
962         * intrinsic.texi (LGAMMA): Remove empty @cindex line.
963
964 2007-08-31  Paul Thomas  <pault@gcc.gnu.org>
965
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.
988
989 2007-08-30  Tobias Burnus  <burnus@net-b.de>
990
991         PR fortran/33228
992         * interface.c (check_interface0): Improve error for external procs.
993         (check_sym_interfaces): Fix checking of module procedures.
994
995 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
996
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.
1004
1005 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1006             Tobias Burnus  <burnus@gcc.gnu.org>
1007
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.
1017
1018 2007-08-28  Christopher D. Rickett  <crickett@lanl.gov>
1019
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.
1027
1028 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1029
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.
1049
1050 2007-08-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1051
1052         PR fortran/33055
1053         Revert previous patch.
1054
1055 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
1056
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.
1062
1063 2007-08-27  Tobias Burnus  <burnus@net-b.de>
1064
1065         * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call.
1066
1067 2007-08-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1068
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.
1074
1075 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1076
1077         * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and
1078         GFC_ISYM_LGAMMA.
1079
1080 2007-08-26  Asher Langton  <langton2@llnl.gov>
1081             Tobias Burnus  <burnus@net-b.de>
1082
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.
1090
1091 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1092
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.
1096
1097 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1098
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.
1103
1104 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1105
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.
1115
1116 2007-08-26  Tobias Burnus  <burnus@net-b.de>
1117
1118         PR fortran/33188
1119         * parse.c (parse_derived): Support empty derived type
1120         definitions for Fortran 2003.
1121
1122 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1123
1124         * trans-openmp.c (gfc_omp_privatize_by_reference): Constify.
1125         * trans.h (gfc_omp_privatize_by_reference): Likewise.
1126
1127 2007-08-24  Tobias Burnus  <burnus@net-b.de>
1128
1129         PR fortran/33178
1130         * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization
1131         expression check.
1132
1133 2007-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1134
1135         PR fortran/32972
1136         * iresolve.c:  Don't convert array masks.
1137
1138 2007-08-24  Tobias Burnus  <burnus@net-b.de>
1139
1140         PR fortran/33139
1141         * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for
1142         whole-array pointer assignments.
1143
1144 2007-08-23  Jakub Jelinek  <jakub@redhat.com>
1145
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.
1151
1152 2007-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1153
1154         PR fortran/33095
1155         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove
1156         runtime error checking.
1157
1158 2007-08-22  Roger Sayle  <roger@eyesopen.com>
1159             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1160
1161         * match.c (intrinsic_operators): Delete.
1162         (gfc_match_intrinsic_op): Rewrite matcher to avoid calling
1163         gfc_match_strings.
1164
1165 2007-08-22  Christopher D. Rickett  <crickett@lanl.gov>
1166
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.
1170
1171 2007-08-22  Janus Weil  <jaydub66@gmail.com>
1172
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.
1177
1178 2007-08-22  Kai Tietz  <kai.tietz@onevision.com>
1179
1180         * f95-lang.c: (gfc_init_decl_processing): Choose sizetype by using
1181         Pmode.
1182
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>
1187
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.
1191
1192 2007-08-19  Roger Sayle  <roger@eyesopen.com>
1193
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.
1199
1200 2007-08-18  Tobias Burnus  <burnus@net-b.de>
1201
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().
1209
1210 2007-08-18  Roger Sayle  <roger@eyesopen.com>
1211
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.
1215
1216 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1217             Janus Weil  <jaydub66@gmail.com>
1218
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.
1232
1233 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1234
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.
1238
1239 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
1240
1241         PR fortran/32875
1242         * trans-array.c (get_array_ctor_strlen): Set the character
1243         length of a zero length array to zero.
1244
1245 2007-08-16  Tobias Burnus  <burnus@net-b.de>
1246
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.
1253
1254 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1255
1256         PR fortran/29459
1257         * trans.c (gfc_create_var_np): Do not emit warnings for
1258         anonymous variables.
1259
1260 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1261
1262         PR fortran/33066
1263         * decl.c (gfc_get_type_attr_spec): Fix whitespace.
1264         (gfc_match_derived_decl): Fix logic.
1265
1266 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1267
1268         PR fortran/33073
1269         * trans-intrinsic.c (build_fixbound_expr): Convert to result type
1270         in all cases.
1271
1272 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1273
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.
1281
1282 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1283
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.
1287
1288 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1289
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.
1299
1300 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
1301
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.
1305
1306 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1307
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.
1315
1316 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1317
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.
1328
1329 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1330
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.
1336
1337 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1338
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.
1347
1348 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1349
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.
1401
1402 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1403
1404         PR fortran/31189
1405         * invoke.texi (-fbacktrace): Document the new behaviour.
1406
1407 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1408
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.
1418
1419 2007-08-11  Ian Lance Taylor  <iant@google.com>
1420
1421         * f95-lang.c (gfc_get_alias_set): Change return type to
1422         alias_set_type.
1423
1424 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1425
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.
1449
1450 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1451
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.
1456
1457 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1458
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.
1467
1468 2007-08-09  Tobias Burnus  <burnus@net-b.de>
1469
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.
1476
1477 2007-08-09  Tobias Burnus  <burnus@net-b.de>
1478
1479         PR fortran/33001
1480         * arith.c (arith_error): Point in the error message
1481         to -fno-range-check.
1482
1483 2007-08-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1484
1485         PR fortran/32902
1486         * intrinsic.texi (SIZEOF): Add mention to C_SIZE_T.
1487
1488 2007-08-06  Christopher D. Rickett  <crickett@lanl.gov>
1489
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.
1499
1500 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1501
1502         PR fortran/30947
1503         * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name
1504         with the kind of the STATUS argument.
1505
1506 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1507
1508         PR fortran/30948
1509         * intrinsic.c (add_functions): Fix name of argument to CHDIR.
1510
1511 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1512
1513         PR fortran/30933
1514         * iresolve.c (gfc_resolve_exit): Convert argument to default
1515         integer kind.
1516
1517 2007-08-06  Daniel Franke  <franke.daniel@gmail.com>
1518
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.
1523
1524 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1525
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.
1536
1537 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1538
1539         PR fortran/31612
1540         * invoke.texi: Adjust documentation for option -fsyntax-only.
1541
1542 2007-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1543             Tobias Burnus  <burnus@gcc.gnu.org>
1544
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.
1554
1555 2007-08-04  Paul Thomas  <pault@gcc.gnu.org>
1556
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.
1564
1565         * dump_parse_tree (gfc_show_code_node): Add EXEC_ASSIGN_CALL.
1566
1567 2008-08-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1568
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.
1575  
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.
1580
1581 2007-08-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1582
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.
1588
1589 2007-08-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1590
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.
1601
1602 2007-08-01  Tobias Burnus  <burnus@net-b.de>
1603
1604         PR fortran/32936
1605         * match.c (gfc_match_allocate): Better check that STAT is
1606         a variable.
1607
1608         * check.c (gfc_check_allocated): Reorder checks to improve
1609         error message.
1610
1611 2007-08-01  Nick Clifton  <nickc@redhat.com>
1612
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.
1628
1629 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
1630
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.
1636
1637 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
1638
1639         PR fortran/32945
1640         * expr.c (check_specification_function): Skip check if no symtree 
1641         is available.
1642
1643 2007-08-01  Paul Thomas  <pault@gcc.gnu.org>
1644
1645         PR fortran/31609
1646         * resolve.c (resolve_entries): Entries declared to be module
1647         procedures must point to the function namespace.
1648
1649 2007-07-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1650
1651         PR fortran/32938
1652         * trans-stmt.c (gfc_trans_return): Convert to correct type.
1653
1654 2007-07-31  Steven G. Kargl  <kargl@gcc.gnu.org>
1655
1656         PR fortran/32942
1657         * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Convert to correct
1658         type.
1659
1660 2007-07-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1661
1662         * invoke.texi: Document -fsign-zero flag.
1663
1664 2007-07-29  Paul Thomas  <pault@gcc.gnu.org>
1665
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.
1670
1671         PR fortran/32682
1672         * trans-array.c (gfc_trans_array_constructor): On detecting a
1673         multi-dimensional parameter array, set the loop limits.
1674
1675 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1676
1677         PR fortran/32906
1678         * resolve.c (resolve_fl_parameter): Check for constant shape arrays,
1679         adjusted error message.
1680
1681 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1682
1683         * invoke.texi: Removed -w from option summary.
1684
1685 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
1686
1687         PR fortran/32879
1688         * intrinsic.texi (IRAND, RAND, RANDOM_NUMBER): Document algorithm
1689         used for random number generator.
1690
1691 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
1692
1693         * gfortran.h, interface.c, resolve.c, symbol.c: Fix comment
1694         typos.
1695         * intrinsic.texi, invoke.texi: Fix typos.
1696
1697 2007-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1698
1699         PR fortran/31609
1700         * resolve.c (generic_sym): Check for a same symbol and if so, return to
1701         avoid infinite recursion.
1702
1703 2007-07-28  Daniel Franke  <franke.daniel@gmail.com>
1704
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.
1721
1722 2007-07-28  Paul Thomas  <pault@gcc.gnu.org>
1723
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.
1729
1730 2007-07-28  Janne Blomqvist  <jb@gcc.gnu.org>
1731
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.
1739
1740 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
1741
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.
1745
1746 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
1747
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.
1751
1752 2007-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1753
1754         PR fortran/32899
1755         * resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison.
1756
1757 2007-07-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1758             Daniel Franke  <franke.daniel@gmail.com>
1759
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.
1763
1764 2007-07-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1765
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.
1771
1772 2007-07-27  Paul Thomas  <pault@gcc.gnu.org>
1773
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.
1778
1779 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1780
1781         * gfortran.h (generate_isocbinding_symbol): Constify.
1782         * symbol.c (gen_special_c_interop_ptr, gen_cptr_param,
1783         generate_isocbinding_symbol): Likewise.
1784
1785 2007-07-24  Paul Thomas  <pault@gcc.gnu.org>
1786
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.
1808
1809 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
1810
1811         PR fortran/32867
1812         * expr.c (check_init_expr): Simplify matched functions.
1813
1814 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
1815
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.
1825
1826 2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
1827
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.
1833
1834 2007-07-23  Daniel Franke  <franke.daniel@gmail.com>
1835
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.
1843
1844 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1845
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.
1856
1857 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1858
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.
1864
1865 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
1866             Tobias Burnus  <burnus@net-b.de>
1867
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.
1874
1875 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
1876
1877         PR fortran/32710
1878         * parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if
1879         the current is a namelist.
1880
1881 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
1882
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.
1911
1912 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
1913
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.
1920
1921 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
1922
1923         PR fortran/32801
1924         * symbol.c (generate_isocbinding_symbol): Remove unnecessary
1925         conditional.
1926
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.
1931
1932 2007-07-21  Lee Millward  <lee.millward@gmail.com>
1933
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>
1940
1941         PR fortran/32600
1942         * trans-expr.c (gfc_conv_function_call): Inline C_LOC.
1943
1944 2007-07-18  Christopher D. Rickett  <crickett@lanl.gov>
1945
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.
1950
1951 2007-07-17  Janus Weil  <jaydub66@gmail.com> 
1952
1953         PR fortran/32535
1954         * resolve.c (resolve_fl_namelist): Check for namelist private 
1955         components in contained subprograms.
1956
1957 2007-07-17  Paul Thomas  <pault@gcc.gnu.org>
1958
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.
1967
1968 2007-07-16  Lee Millward  <lee.millward@gmail.com>
1969
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>
2004
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.
2009
2010 2007-07-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2011             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2012
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.
2024
2025 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2026
2027         PR fortran/32036
2028         * trans-array.c (gfc_conv_array_ref): Only evaluate index once.
2029
2030 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2031
2032         PR fortran/32357
2033         * iresolve.c (gfc_resolve_mvbits): Convert FROMPOS, LEN and TOPOS
2034         to C int.
2035
2036 2007-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2037
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.
2044
2045 2007-07-14  Paul Thomas  <pault@gcc.gnu.org>
2046
2047         PR fortran/32724
2048         * parse.c (parse_spec): Emit error on unexpected statement
2049         function.
2050
2051 2007-07-13  Daniel Franke  <franke.daniel@gmail.com>
2052
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.
2057
2058 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2059
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.
2066
2067 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2068
2069         PR fortran/32704
2070         * invoke.texi (-static-libgfortran): Document new option.
2071
2072 2007-07-12  Paul Thomas  <pault@gcc.gnu.org>
2073
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. 
2078
2079 2007-07-12  Christopher D. Rickett  <crickett@lanl.gov>
2080
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.
2086
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.
2095
2096         * symbol.c (gen_cptr_param): Fix whitespace.
2097
2098 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2099
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.
2105
2106 2007-07-12  Richard Guenther  <rguenther@suse.de>
2107
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.
2112
2113 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
2114
2115         PR fortran/32634
2116         PR fortran/32727
2117         * module.c: Reverted Paul's patch from 2007-07-10.
2118
2119 2007-07-11  Richard Guenther  <rguenther@suse.de>
2120
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.
2127
2128 2007-07-10  Paul Thomas  <pault@gcc.gnu.org>
2129
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.
2135
2136         PR fortran/32689
2137         * simplify.c (gfc_simplify_transfer): If mold has rank, the
2138         result is an array.
2139
2140         PR fortran/32634
2141         * module.c (write_generic): Write the local name of the
2142         interface. 
2143
2144 2007-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2145
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.
2151
2152 2007-07-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2153
2154         * trans-decl.c (set_tree_decl_type_code): Remove function.
2155         (generate_local_decl): Remove reference to set_tree_decl_type_code.
2156
2157 2007-07-09  Daniel Franke  <franke.daniel@gmail.com>
2158
2159         PR fortran/31129
2160         * trans-decl.c (generate_local_decl) Emit a warning if an unused
2161         parameter is found.
2162
2163 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2164
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.
2168
2169 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2170
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.
2175
2176 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2177             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2178
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.
2200
2201 2007-07-08  Tobias Burnus  <burnus@net-b.de>
2202
2203         PR fortran/32669
2204         * interface.c (get_expr_storage_size): Properly obtain lower bound.
2205         (compare_actual_formal): Add space before parenthesis.
2206
2207 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2208
2209         PR fortran/25094
2210         * resolve.c (resolve_fl_procedure): Added check for PRIVATE types 
2211         in PUBLIC interfaces.
2212
2213 2007-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2214
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.
2218
2219 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2220
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.
2225
2226 2007-05-06  Daniel Franke  <franke.daniel@gmail.com>
2227
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.
2241
2242 2007-07-05  Daniel Franke  <franke.daniel@gmail.com>
2243             Tobias Burnus  <burnus@net-b.de>
2244
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.
2253
2254 2007-07-05  Paul Thomas  <pault@gcc.gnu.org>
2255
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.
2260
2261         PR fortran/32613
2262         * match.c (gfc_match_do): Reset the implied_index attribute.
2263
2264 2007-07-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2265
2266         PR fortran/31198
2267         * trans-intrinsic.c (trans-intrinsic.c): Handle optional
2268         arguments correctly for MIN and MAX intrinsics.
2269
2270 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2271
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.
2278
2279 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2280
2281         PR fortran/32612
2282         * decl.c (get_proc_name): Include attr->mod_proc in check for error.
2283
2284 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2285
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.
2291
2292 2007-07-03  Christopher D. Rickett  <crickett@lanl.gov>
2293
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.
2298
2299 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2300
2301         PR fortran/25062
2302         * resolve.c (resolve_common_blocks): New check function.
2303         (resolve_types): Use it.
2304
2305 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2306
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.
2312
2313 2007-07-03  Janne Blomqvist  <jb@gcc.gnu.org>
2314
2315         * trans-decl.c (gfc_build_builtin_function_decls): Mark
2316         internal_realloc as a malloc function.
2317
2318 2007-07-03  Tobias Burnus  <burnus@net-b.de>
2319
2320         PR fortran/20888
2321         * resolve.c (resolve_operator): Check for NULL as operand.
2322
2323 2007-07-02  Tobias Burnus  <burnus@net-b.de>
2324
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.
2328
2329 2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>
2330
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.
2496
2497 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
2498
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.
2504
2505 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
2506
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.
2515
2516 2007-06-30  Daniel Franke  <franke.daniel@gmail.com>
2517
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.
2524
2525 2007-06-30  Tobias Burnus  <burnus@net-b.de>
2526
2527         PR fortran/32555
2528         * io.c (check_format): Allow zero to precede the
2529         P edit descriptor.
2530
2531 2007-06-30  Paul Thomas  <pault@gcc.gnu.org>
2532
2533         PR fortran/32472
2534         * simplify.c (gfc_simplify_repeat): Add handling of character
2535         literal for first argument.
2536
2537 2007-06-29  Daniel Franke  <franke.daniel@gmail.com>
2538
2539         * resolve.c (resolve_operator): Added check whether a user
2540         defined operator is available.
2541
2542 2007-06-29  Daniel Franke <franke.daniel@gmail.com>
2543
2544         * openmp.c (resolve_omp_clauses): Adjust error message to
2545         better reflect the actual requirement.
2546
2547 2007-06-29  Tobias Burnus  <burnus@net-b.de>
2548
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.
2553
2554 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2555
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.
2565
2566 2007-06-27  Daniel Franke  <franke.daniel@gmail.com>
2567
2568         PR fortran/32467
2569         * openmp.c (resolve_omp_clauses): Emit error on allocatable
2570         components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE
2571         clauses.
2572
2573 2007-06-25  Paul Thomas  <pault@gcc.gnu.org>
2574
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.
2579
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.
2584
2585 2007-06-24  Tobias Burnus  <burnus@net-de>
2586
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.
2595
2596 2007-06-24  Paul Thomas  <pault@gcc.gnu.org>
2597
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.
2605
2606 2007-06-22  Daniel Franke  <franke.daniel@gmail.com>
2607
2608         PR fortran/31473
2609         * symbol.c (gfc_copy_attr): Emit errors for duplicate 
2610         EXTERNAL/INTRINSIC statements.
2611
2612 2007-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2613
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.  
2617
2618 2007-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2619
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.
2626
2627 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2628
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.
2632
2633 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2634
2635         PR fortran/25061
2636         * decl.c (get_proc_name) Check symbol for generic interface
2637         and issue an error.
2638
2639 2007-06-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2640         Richard Guenther  <rguenther@suse.de>
2641
2642         PR fortran/32140
2643         * trans.c (gfc_build_addr_expr): Use the correct types.
2644
2645 2007-06-19  Paul Thomas  <pault@gcc.gnu.org>
2646
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.
2654
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.
2659
2660 2007-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
2661
2662         * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
2663         environment variables. Fix documentation for
2664         GFORTRAN_UNBUFFERED_ALL environment variable.
2665
2666 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2667
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.
2673
2674 2007-06-14  Paul Thomas  <pault@gcc.gnu.org>
2675
2676         PR fortran/32302
2677         * trans-common.c (build_common_decl): If resizing of common
2678         decl is needed, update the TREE_TYPE.
2679
2680 2007-06-13  Tobias Burnus  <burnus@net-b.de>
2681
2682         PR fortran/32323
2683         * interface.c (has_vector_section): New.
2684         (compare_actual_formal): Check for array sections with vector subscript.
2685
2686 2007-06-12  Dirk Mueller  <dmueller@suse.de>
2687
2688         * trans-stmt.c (gfc_trans_call): fix gcc_assert to
2689         a comparison, not an assignment.
2690
2691 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
2692
2693         * trans-common.c (create_common): Initialize 'field_init'.
2694
2695 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
2696
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.
2709
2710 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2711
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.
2715
2716 2007-06-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2717
2718         * trans-intrinsic.c: Revert Lee's 2007-06-04 patch.
2719
2720 2007-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
2721             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2722
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.
2729
2730 2007-06-06  Steven G. Kargl  <kargl@gcc.gnu.org>
2731
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.
2750
2751 2007-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2752
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.
2758
2759 2007-06-04 Lee Millward <lee.millward@codesourcery.com>
2760
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.
2789
2790 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
2791
2792         * trans-array.c (gfc_conv_array_parameter): Initialize tmp.
2793
2794 2007-05-31  Richard Guenther  <rguenther@suse.de>
2795
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.
2807
2808 2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
2809
2810         PR fortran/32156
2811         * trans-array.c (gfc_trans_array_constructor): Treat the case
2812         where the ss expression charlen is missing.
2813
2814 22007-05-31  Paul Thomas  <pault@gcc.gnu.org>
2815
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.
2821
2822 2007-05-29  Daniel Franke  <franke.daniel@gmail.com>
2823
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.
2837
2838 2007-05-28  Tobias Schlüter  <tobi@gcc.gnu.org>
2839
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.
2850
2851 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2852
2853         * trans-array.c (gfc_conv_expr_descriptor): Edit comment.
2854
2855 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2856
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.
2862
2863 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
2864
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.
2914
2915 2007-05-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2916
2917         PR fortran/31812
2918         * parse.c (next_statement): Warn for truncated lines if source is free
2919         form.
2920
2921 2007-05-27 Paul Thomas  <pault@gcc.gnu.org>
2922            Tobias Burnus  <burnus@net-b.de>
2923
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.
2929
2930 2007-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2931
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>
2936
2937         * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and
2938         GFORTRAN_ERROR_BACKTRACE environment variables.
2939
2940 2007-05-26  Paul Thomas  <pault@gcc.gnu.org>
2941
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.
2953
2954 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
2955
2956         * intrinsic.texi: Fix typos.
2957
2958 2007-05-25  Paul Thomas  <pault@gcc.gnu.org>
2959
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.
2964
2965 2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2966
2967         PR fortran/31716
2968         * array.c (spec_dimen_size): Test for correct BT_INTEGER type. 
2969
2970 2007-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2971
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.
2982
2983 2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2984
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.
2988
2989 2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2990
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.
2998
2999 2007-05-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3000             Daniel Franke  <franke.daniel@gmail.com>
3001
3002         PR fortran/32002
3003         * resolve.c (resolve_actual_arglist): Resolve actual argument after
3004         being identified as variable.
3005
3006 2007-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3007
3008         PR fortran/32027
3009         * trans-stmt.c (gfc_trans_do): Fix the value of loop variable
3010         when the loop ends.
3011
3012 2007-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3013
3014         * trans-stmt.c (gfc_trans_do): Fix a typo in comment.
3015
3016 2007-05-21  Paul Thomas  <pault@gcc.gnu.org>
3017
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.
3023
3024 2007-05-20  Daniel Franke  <franke.daniel@gmail.com>
3025
3026         PR fortran/32001
3027         * check.c (check_rest): Improved argument conformance check and 
3028         fixed error message generation.
3029
3030 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3031
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.
3035
3036 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3037
3038         PR fortran/31974
3039         * trans-array.c (gfc_trans_auto_array_allocation): Avoid
3040         multiplication of mismatched types.
3041
3042 2007-05-18  Daniel Franke  <franke.daniel@gmail.com>
3043
3044         PR fortran/24633
3045         * symbol.c (gfc_add_flavor): Add the NAME to error message if
3046         available.
3047
3048 2007-05-15  Daniel Franke  <franke.daniel@gmail.com>
3049
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.
3062
3063 2007-05-17  Tobias Burnus  <burnus@net-b.de>
3064
3065         * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
3066
3067 2007-05-16  Brooks Moses  <brooks.moses@codesourcery.com>
3068
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.
3080
3081 2007-05-15  Paul Brook  <paul@codesourcery.com>
3082
3083         * trans-types.c (gfc_type_for_size): Handle signed TImode.
3084
3085 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3086
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.
3112
3113 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3114
3115         PR fortran/31725
3116         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
3117         only once.
3118
3119 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
3120
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.
3128
3129 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
3130
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.
3138
3139 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
3140
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.
3147
3148 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
3149
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.
3160
3161 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
3162
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.
3167
3168 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3169
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.
3174
3175 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3176
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.
3180
3181 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
3182
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.
3190
3191 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3192
3193         PR fortran/31399
3194         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
3195
3196 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3197
3198         PR fortran/31764
3199         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
3200         even for non constant arguments.
3201
3202 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3203             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3204
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.
3224
3225 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
3226
3227         PR fortran/31540
3228         * resolve.c (resolve_fl_procedure): Resolve constant character
3229         lengths.
3230
3231 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3232
3233         PR fortran/31251
3234         * decl.c (match_char_spec): Add check for invalid character lengths.
3235
3236 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
3237
3238         * intrinsic.texi (CMPLX): Document result kind.
3239         (COMPLEX): Add documentation.
3240
3241 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3242
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.
3249
3250 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3251
3252         * check.c (gfc_check_fseek_sub): Fixed typo.
3253
3254 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
3255
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.
3262
3263 2007-05-04  Tobias Burnus  <burnus@net-b.de>
3264
3265         PR fortran/31803
3266         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
3267
3268 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3269
3270         PR fortran/31251
3271         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
3272
3273 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3274
3275         PR fortran/31781
3276         * simplify.c (gfc_simplify_repeat): Don't put function call with
3277         side effect in a gcc_assert().
3278
3279 2007-05-04  Tobias Burnus  <burnus@net-b.de>
3280
3281         PR fortran/25071
3282         * interface.c (compare_actual_formal): Check character length.
3283
3284 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
3285
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.
3290
3291 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
3292
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.
3299
3300 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
3301
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.
3308
3309 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
3310
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.
3316
3317 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3318
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.
3323
3324 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
3325
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>
3331
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.
3335
3336 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
3337
3338         PR fortran/31711
3339         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
3340         whenever a dependency is found.
3341
3342 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
3343
3344         * options.c (gfc_handle_option): Ensure requested free form line
3345         length is not too small.
3346
3347 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
3348
3349         * intrinsic.texi (Transfer): Improve documentation.
3350
3351 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
3352
3353         * gfortran.texi (Option Index): Add @samp as needed.
3354
3355 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3356
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.
3360
3361 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3362
3363         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
3364         XOR): Fixed examples.
3365
3366 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
3367
3368         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
3369         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
3370         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
3371
3372 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
3373
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.
3378
3379 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
3380
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.
3386
3387 2007-04-25  Tobias Burnus  <burnus@net-b.de>
3388
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.
3394
3395 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3396
3397         PR libfortran/31299
3398         * intrinsic.texi (GETLOG): Update documentation to reflect
3399         library changes.
3400
3401 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3402
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.
3409
3410 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
3411
3412         PR fortran/31630
3413         * resolve.c (resolve_symbol): Allow resolution of formal
3414         namespaces nested within formal namespaces coming from modules.
3415
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.
3420
3421 2007-04-23  Tobias Burnus  <burnus@net-b.de>
3422
3423         * primary.c (match_integer_constant): Mention -fno-range-check
3424         in the error message.
3425
3426 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3427
3428         PR fortran/31495
3429         * scanner.c (load_line):  Remove check for comment after ampersand and
3430         adjust tracking of ampersand.
3431
3432 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3433
3434         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
3435         instead of checking GIMPLE_STMT_P in chain_next.
3436
3437 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
3438
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.
3452
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.
3459
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.
3478
3479 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
3480
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.
3485
3486 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
3487
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.
3498
3499 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
3500
3501         * gfc-internals.texi: Fix typos.
3502         * simplify.c: Fix a comment typo.
3503
3504 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
3505
3506         * primary.c: Commentary typo fix; Add question about redundant (?)
3507         set.
3508
3509 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
3510
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.
3518
3519 2007-04-13  Tobias Burnus  <burnus@net-b.de>
3520
3521         PR fortran/31559
3522         * primary.c (match_variable): External functions
3523         are no variables.
3524
3525 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
3526
3527         PR fortran/31550
3528         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
3529         derived type components.
3530
3531 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
3532
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.
3541
3542 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
3543
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.
3549
3550 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
3551
3552         PR fortran/31234
3553         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
3554
3555 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
3556
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.
3561
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.
3569
3570         * trans-types.c: Update copyright years.  Reformat long comment
3571         explaining array descriptor format.  Remove obsolete mention of
3572         TYPE_SET.
3573
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.
3582
3583 2007-04-12  Tobias Burnus  <burnus@net-b.de>
3584
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.
3593
3594 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3595
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.
3600
3601 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3602
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.
3607
3608 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3609
3610         PR fortran/30872
3611         * expr.c (find_array_element): Correct arithmetic for rank > 1.
3612
3613 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3614
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.
3618
3619 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3620
3621         PR fortran/31214
3622         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
3623         associated symbols.
3624
3625 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
3626
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.
3632
3633 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
3634
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.
3638
3639 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
3640
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.
3644
3645 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3646
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.
3660
3661 2007-03-31  Tobias Burnus  <burnus@net-b.de>
3662
3663         * intrinsic.c (add_functions): Fix name of dummy argument
3664           for new_line and exit intrinsic.
3665
3666 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
3667
3668         PR fortran/31160
3669         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
3670         extensions.
3671
3672 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
3673
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.
3680
3681 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
3682
3683         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
3684         descend into all branches.
3685
3686 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
3687
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.
3692
3693 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
3694
3695         * gfc-internals.texi: Fix output filename.  Merge type index into
3696         concept index.  Start documentation of gfc_code structure.
3697
3698 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3699
3700         * gfc-internals.texi: New file,
3701         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
3702
3703 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3704  
3705         * error.c (show_locus): Remove always-false test.
3706
3707 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
3708
3709         * lang.opt: Minor edits to descriptions.
3710
3711 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3712
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.
3718
3719 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3720
3721         PR fortran/30655
3722         * expr.c (check_dimension): Fix logic of comparisons.
3723
3724 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
3725
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.
3732
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.
3740
3741 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
3742
3743         * gfortran.h: Edit comments on GFC_STD_*.
3744
3745 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
3746
3747         * invoke.texi: Misc. small typo fixes.
3748         (-Wcharacter-truncation): Add.
3749         (-Wnonstd-intrinsics): Correct spelling.
3750         (-std=): Edit.
3751         (-fintrinsic-modules-path): Add.
3752
3753 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3754
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.
3759
3760 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3761
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.
3765
3766 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
3767
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.
3777
3778 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
3779
3780         PR fortran/20897
3781         * decl.c (gfc_match_derived_decl): Reliably reject
3782         'doubleprecision' and 'doublecomplex' as type names.
3783
3784 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3785
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.
3790
3791 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
3792
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.
3808
3809         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3810
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.
3815
3816 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3817
3818         PR fortran/31184
3819         * invoke.texi: Fix typo.
3820
3821 2007-03-16  Tobias Burnus  <burnus@net-b.de>
3822
3823         * trans-decl.c (gfc_generate_function_code): Use all arguments of
3824           set_std.
3825
3826 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3827
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.
3835
3836 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
3837             Paul Thomas  <pault@gcc.gnu.org>
3838
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.
3846
3847 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
3848
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.
3852
3853
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.
3857
3858         PR fortran/31163
3859         * trans-array.c (parse_interface): Do not nullify allocatable
3860         components if the symbol has the saved attribute.
3861
3862 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3863
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.
3870
3871 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
3872
3873         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
3874
3875 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
3876
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.
3885
3886 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
3887
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.
3912
3913 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
3914
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.
3919
3920 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3921
3922         * intrinsic.texi: (ICHAR) Improve internal I/O note.
3923         (ACHAR): Reference it.
3924         (CHAR): Reference it.
3925         (IACHAR): Reference it.
3926
3927 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3928
3929         * intrinsic.texi: (LINK) Document function form.
3930         (RENAME): Likewise.
3931         (SYMLNK): Likewise.
3932         (SYSTEM): Likewise.
3933         (UNLINK): Likewise.
3934
3935 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
3936
3937         * intrinsic.texi: minor typo fixes, removed prologue.
3938         (FSEEK): moved to correct place in alphabetical order.
3939
3940 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
3941
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.
3948
3949 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
3950
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.
3955
3956 2007-07-08  Tobias Burnus  <burnus@net-b.de>
3957
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.
3962
3963 2007-07-08  Tobias Burnus  <burnus@net-b.de>
3964
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.
3969
3970 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
3971
3972         PR fortran/31011
3973         * expr.c (find_array_section): Correct arithmetic for section
3974         size.
3975
3976 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
3977
3978         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
3979
3980 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
3981
3982         PR documentation/30950
3983         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
3984         (FREE): Fix call syntax.
3985
3986 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
3987
3988         * intrinsic.texi: Limit column widths to a total of .85.
3989
3990 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
3991
3992         * gfortran.texi (GFortran and G77): Rewrite completely.
3993
3994 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
3995
3996         * match.c (gfc_match_name): Expanded comment.
3997
3998 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
3999
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.
4004
4005 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
4006
4007         PR 31050
4008         * gfortranspec.c (lang_specific_driver): Update program
4009         name and copyright date.
4010
4011 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
4012
4013         PR fortran/30882
4014         * check.c (dim_rank_check): The shape of subsections of
4015         assumed-size arrays is known.
4016
4017 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
4018             Tobias Burnus  <burnus@net-b.de>
4019
4020         PR fortran/30873
4021         * decl.c (gfc_match_entry): Remove erroneous entry result check.
4022
4023 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
4024
4025         * Make-lang.in: Add install-pdf target as copied from
4026         automake v1.10 rules.
4027
4028 2007-03-01  Tobias Burnus  <burnus@net-b.de>
4029
4030         PR fortran/30865
4031         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
4032
4033 2007-02-28  Tobias Burnus  <burnus@net-b.de>
4034             Paul Thomas  <pault@gcc.gnu.org>
4035
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().
4042
4043 2007-02-28  Tobias Burnus  <burnus@net-b.de>
4044
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.
4049
4050 2007-02-27  Richard Guenther  <rguenther@suse.de>
4051
4052         * trans-array.c (structure_alloc_comps): Use correct type
4053         for null pointer constant.
4054
4055 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
4056
4057         * gfortran.texi: Standardize title page, remove version number
4058         from copyright page.
4059
4060 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
4061             Paul Thomas  <pault@gcc.gnu.org>
4062
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.
4067
4068 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
4069
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.
4075
4076
4077 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4078
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.
4083
4084 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
4085
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.
4090
4091 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
4092
4093         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
4094
4095 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
4096
4097         PR fortran/30869
4098         * match.c (gfc_match_iterator): Remove conflict between
4099         loop variable and pointer.
4100
4101 2007-02-20  Tobias Burnus  <burnus@net-b.de>
4102
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.
4110
4111 2007-02-20  Tobias Burnus  <burnus@net-b.de>
4112
4113         PR fortran/30783
4114         * resolve.c (resolve_symbol): Add character dummy VALUE check.
4115
4116 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
4117
4118         PR libfortran/30533
4119         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
4120         argument to default integer.
4121         (gfc_resolve_minloc): Likewise.
4122
4123 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4124
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.
4129
4130 2007-02-18  Roger Sayle  <roger@eyesopen.com>
4131
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.
4140
4141         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
4142         instead of build2, to avoid conditions like "(a != b) != 0".
4143
4144 2007-02-18  Roger Sayle  <roger@eyesopen.com>
4145             Paul Thomas <pault@gcc.gnu.org>
4146
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.
4152
4153 2007-02-16  Tobias Burnus  <burnus@net-b.de>
4154
4155         PR fortran/30793
4156         * trans-decl.c (gfc_generate_function_code): Do not initialize
4157         pointers to derived components.
4158
4159 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
4160             Brooks Moses  <brooks.moses@codesourcery.com>
4161             Lee Millward  <lee.millward@codesourcery.com>
4162
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.
4168
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.
4181
4182         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
4183         (gfc_trans_omp_flush): Likewise.
4184
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.
4196
4197         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
4198
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.
4210
4211         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
4212         (gfc_generate_constructors): Likewise.
4213
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.
4223
4224 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4225
4226         PR fortran/30779
4227         * scanner.c (gfc_next_char_literal): Add check for end of file after
4228         call to advance_line.
4229
4230 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
4231
4232         PR fortran/30799
4233         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
4234         kind.
4235
4236 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
4237
4238         * misc.c (gfc_typename): Fix potential buffer overflow.
4239
4240 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
4241
4242         PR fortran/30554
4243         * module.c (read_module): Set pointer_info to referenced if the
4244         symbol has no namespace.
4245
4246 2007-02-12  Nick Clifton  <nickc@redhat.com>
4247
4248         * lang.opt: Add Warning attribute to warning options.
4249
4250 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
4251
4252         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
4253         (SLEEP): Added section and documentation.
4254
4255 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
4256
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.
4265
4266 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
4267
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.
4275
4276         PR fortran/30319
4277         * decl.c (add_init_expr_to_sym): Make new charlen for an array
4278         constructor initializer.
4279
4280 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
4281
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.
4289
4290 2007-02-09  Tobias Burnus  <burnus@net-b.de>
4291
4292         PR fortran/30512
4293         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
4294           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
4295
4296 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4297
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.
4307
4308 2007-02-08  Roger Sayle  <roger@eyesopen.com>
4309
4310         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
4311         mask expression is a compile-time constant (".true." or ".false.").
4312
4313 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4314
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.
4319
4320 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
4321
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.
4326
4327 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
4328
4329         * trans-array.c: Fix a comment typo.
4330
4331 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
4332
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.
4336
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.
4342
4343 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
4344
4345         PR fortran/30683
4346         * resolve.c (resolve_generic_f): Check for non-NULL sym.
4347
4348 2007-02-02  Roger Sayle  <roger@eyesopen.com>
4349
4350         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
4351         NON_LVALUE_EXPR nodes and useless type conversions.
4352
4353 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
4354
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.
4368
4369 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4370
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.
4375
4376 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4377
4378         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
4379         dependency checking for array constructors.
4380
4381 2007-02-01  Roger Sayle  <roger@eyesopen.com>
4382
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.
4387
4388 2007-01-31  Tobias Burnus  <burnus@net-b.de>
4389
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.
4396
4397 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
4398
4399         * simplify.c, trans-array.c: Fix comment typos.
4400
4401 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4402
4403         * invoke.texi (Code Gen Options): Fix abbreviation typo.
4404         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
4405
4406 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
4407
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.
4412
4413 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
4414
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.
4419
4420 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
4421
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.
4444
4445 2007-01-27  Roger Sayle  <roger@eyesopen.com>
4446
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.
4455
4456 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
4457
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.
4470
4471 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
4472             Steven G. Kargl <kargl@gcc.gnu.org>
4473
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
4478
4479 2007-01-26  Tobias Burnus  <burnus@net-b.de>
4480
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.
4484
4485 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4486
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>
4493
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>
4498
4499         PR fortran/30481
4500         * match.c (gfc_match_namelist): Add check for assumed size character
4501         in namelist and provide error if found.
4502
4503 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
4504
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.
4509
4510 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
4511
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.
4516
4517 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
4518
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.
4522
4523 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4524
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.
4528
4529 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4530
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.
4547
4548 2007-01-20  Roger Sayle  <roger@eyesopen.com>
4549
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.
4553
4554 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4555
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.
4568
4569 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4570
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.
4574
4575 2007-01-20  Richard Guenther  <rguenther@suse.de>
4576
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.
4581
4582 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
4583
4584         * intrinsic.texi (MATMUL): Corrected a typo.
4585         (MAX): Separated @var arguments.
4586         (MIN): Separated @var arguments.
4587
4588 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
4589
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.
4634
4635 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
4636
4637         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
4638
4639 2007-01-18  Roger Sayle  <roger@eyesopen.com>
4640
4641         * trans-expr.c (copyable_array_p): Consider user derived types without
4642         allocatable components to be copyable.
4643
4644 2007-01-18  Roger Sayle  <roger@eyesopen.com>
4645
4646         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
4647         the number of interations in unconditional FORALL nests with constant
4648         bounds.
4649
4650 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4651             Tobias Burnus  <burnus@net-b.de>
4652
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.
4661
4662 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
4663
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.
4670
4671 2007-01-16  Roger Sayle  <roger@eyesopen.com>
4672
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.
4700
4701 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
4702
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.
4706
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.
4710
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.
4715
4716         PR fortran/30283
4717         * resolve.c (resolve_function): Make sure that the function
4718         expression has a type.
4719
4720 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
4721
4722         PR fortran/30410
4723         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
4724         symbols must not have the module name prepended.
4725
4726 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
4727
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.
4734
4735 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
4736
4737         * simplify.c: Update copyright to 2007.
4738         * scanner.c: Same.
4739
4740 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4741
4742         PR fortran/30430
4743         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
4744         only once!
4745
4746 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
4747
4748         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
4749         (gfc_simplify_ibset): Same.
4750
4751 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
4752
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.
4768
4769 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
4770
4771         PR fortran/30408
4772         * resolve.c (resolve_code): Use the code->expr character length
4773         directly to set length of llen.
4774
4775 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4776
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.
4782
4783 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
4784
4785         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
4786         iresolve.c, match.c: Update Copyright years.  Whitespace.
4787
4788 2007-01-08  Richard Guenther  <rguenther@suse.de>
4789
4790         * trans-io.c (transfer_array_desc): Use build_int_cst instead
4791         of build_int_cstu.
4792
4793 2007-01-08  Roger Sayle  <roger@eyesopen.com>
4794
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.
4808
4809 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
4810
4811         gfortran.texi: Fix typos.
4812
4813 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
4814
4815         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
4816         convert.c: Update Copyright dates.  Fix whitespace.
4817
4818 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4819
4820         * data.c (gfc_assign_data_value): Fix whitespace.
4821
4822 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4823
4824         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
4825         Commentary typo fix.
4826
4827 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
4828
4829         PR fortran/27698
4830         * match.c (gfc_match_name): Print diagnostics for invalid
4831         character in names.
4832
4833 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4834
4835         * array.c: Fix whitespace in comment table.
4836
4837 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4838
4839         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
4840
4841 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
4842
4843         * arith.c: Update copyright years.  Whitespace.
4844
4845 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4846
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.
4856
4857 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4858
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.
4862
4863 2007-01-05  Roger Sayle  <roger@eyesopen.com>
4864
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.
4868
4869 2007-01-05  Tobias Burnus  <burnus@net-b.de>
4870
4871         * symbol.c (check_conflict): Fix error message.
4872
4873 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
4874
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.
4885
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.
4902
4903 2007-01-05  Tobias Burnus  <burnus@net-b.de>
4904
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.
4914
4915 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4916
4917         PR 30371
4918         * check.c (gfc_check_kill_sub): Add checks for non-scalar
4919         arguments.
4920
4921 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4922
4923         * intrinsic.texi: Minor cleanup, reflowing overlong
4924         paragraphs, and correcting whitespace.
4925
4926 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4927
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.
4937
4938 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4939
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.
4952
4953 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4954
4955         PR 30235
4956         * interface.c (compare_actual_formal): check for
4957         alternate returns when iterating over non-present
4958         arguments.
4959
4960 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4961
4962         * invoke.texi: Update manpage copyright to include 2007.
4963
4964 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
4965
4966         * gfortran.texi: Update copyright to include 2007.
4967         * intrinsic.texi: Update copyright to include 2007.
4968         * invoke.texi: Update copyright to include 2007.
4969
4970 2007-01-02  Tobias Burnus  <burnus@net-b.de>
4971             Jakub Jelinek  <jakub@redhat.com>
4972
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.
4977
4978 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4979
4980         * gfortran.texi (GNU Fortran and GCC): Rewrite
4981
4982 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4983
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.
4989
4990 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4991
4992         * intrinsic.texi (Introduction): Rewrite first paragraph.
4993
4994 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
4995
4996         * invoke.texi (OpenMP): Added index entry.
4997         * gfortran.texi (title page): Removed erroneous '*'.
4998
4999 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5000
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.
5007
5008 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5009
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.
5014
5015 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5016
5017         * invoke.texi: Change @code-type macros to appropriate
5018         variants (@command, @option, etc.)
5019         * gfortran.texi: Same.
5020
5021 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
5022
5023         * intrinsic.texi: Various minor cleanups.
5024
5025 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
5026
5027         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
5028         build_int_cst.
5029
5030 2007-01-02  Tobias Burnus  <burnus@net-b.de>
5031
5032         PR fortran/30276
5033         * scanner.c (open_included_file): Support full-path filenames.
5034
5035 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
5036
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.
5043
5044 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
5045
5046         * ChangeLog: Copy to ...
5047         * ChangeLog-2006: here.