OSDN Git Service

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