OSDN Git Service

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