OSDN Git Service

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