OSDN Git Service

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