OSDN Git Service

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