OSDN Git Service

2007-01-25 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2
3         PR fortran/30437
4         * lang.opt (Wall): Remove RejectNegative.
5         * options.c (gfc_handle_option): Wall can be disabled.
6         (set_Wall): Add a parameter for disabling Wall.
7         
8 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
9
10         PR fortran/30532
11         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
12         
13 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
14
15         PR fortran/30481
16         * match.c (gfc_match_namelist): Add check for assumed size character
17         in namelist and provide error if found.
18
19 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
20
21         * intrinsic.texi (ACHAR): Added cross-references.
22         (CHAR): Put cross-references in alphabetical order.
23         (IACHAR): Added cross-references.
24         (ICHAR): Added cross-references.
25
26 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
27
28         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
29         (MAXVAL): Corrected description of result characteristics.
30         (MINVAL): Same.
31         (UMASK): Added documentation.
32
33 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
34
35         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
36         parse.c, primary.c, options.c, misc.c, simplify.c:  Next installment
37         in the massive whitespace patch.
38
39 2007-01-20  Roger Sayle  <roger@eyesopen.com>
40
41         * module.c (mio_array_ref): The dimen_type fields of an array ref
42         are an enumerated type and can't be read/written directly with a
43         call to mio_integer.  Instead loop over and cast each element.
44
45 2007-01-20  Roger Sayle  <roger@eyesopen.com>
46
47         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
48         i.e. that the ARRAY_REF doesn't mention components.
49         * trans-array.c (gfc_constant_array_constructor_p): Export external
50         function renamed from constant_array_constructor_p.
51         (gfc_build_constant_array_constructor): Export.
52         (gfc_trans_array_constructor): Update call to the renamed function
53         constant_array_constructor_p.
54         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
55         (gfc_build_constant_array_constructor): Likewise.
56         * trans-expr.c (gfc_build_memcpy_call): New helper function split
57         out from gfc_trans_array_copy.
58         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
59         (gfc_trans_array_constructor_copy): New function to optimize
60         assigning an entire array from a constant array constructor.
61         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
62         when appropriate.
63
64 2007-01-20  Roger Sayle  <roger@eyesopen.com>
65
66         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
67         implementation for the SIGN intrinsic with integral operands.
68         (gfc_conv_intrinsic_minmax): Fix whitespace.
69
70 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
71
72         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
73         * lang.opt: Add -fallow-leading-underscore.
74         * match.c (gfc_match_name): Allow leading underscore in symbol
75         name if -fallow-leading-underscore is used.
76         * symbol.c (gfc_get_default_type): Add special case for symbol
77         names beginning with an underscore.
78         * trans-decl.c (gfc_get_extern_function_decl,
79         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
80         library symbols selected_int_kind, selected_real_kind and 
81         all specifics.
82         * options.c (gfc_init_options, gfc_handle_option): Handle the
83         new -fallow-leading-underscore option.
84
85 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
86
87         PR fortran/30446
88         * options.c (gfc_handle_module_path_options): Path used in -J
89         option is now added to the module search path.
90
91 2007-01-20  Richard Guenther  <rguenther@suse.de>
92
93         PR fortran/30223
94         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
95         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
96         sincos builtins if the target has sincos.
97
98 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
99
100         * intrinsic.texi (MATMUL): Corrected a typo.
101         (MAX): Separated @var arguments.
102         (MIN): Separated @var arguments.
103
104 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
105
106         * intrinsic.texi: general whitespace cleanup.
107         (menu): Added TIME8, removed UNMASK.
108         (AINT): Clarified argument requirement.
109         (ANINT): Clarified argument requirement.
110         (CEILING): Clarified argument requirement.
111         (CHAR): Clarified argument requirement.
112         (CMPLX): Clarified argument requirement.
113         (DCMPLX): Clarified argument requirement.
114         (FGET): Line rewrapping.
115         (FLOOR): Clarified argument requirement.
116         (GMTIME): Added documentation.
117         (IAND): Added cross-reference.
118         (IBCLR): Added cross-reference.
119         (IBSET): Added cross-reference.
120         (IEOR): Added cross-reference.
121         (INT): Collapsed examples, clarified argument requirement.
122         (IOR): Added cross-references.
123         (LEN_TRIM): Corrected result kind.
124         (LINK): Added cross-reference.
125         (LLT): Removed "documentation pending".
126         (LOGICAL): Added documentation.
127         (LSHIFT): Added documentation.
128         (LTIME): Added documentation.
129         (MATMUL): Added documentation.
130         (MAX): Added documentation.
131         (MAXLOC): Added documentation.
132         (MAXVAL): Added documentation.
133         (MERGE): Added documentation.
134         (MIN): Added documentation.
135         (MINLOC): Added documentation.
136         (MINVAL): Added documentation.
137         (MVBITS): Moved to correct place, added documentation.
138         (NOT): Added documentation.
139         (PERROR): Added documentation.
140         (RAN): Moved to correct place, added documentation.
141         (REAL): Clarified argument requirement.
142         (RENAME): Added documentation.
143         (RSHIFT): Clarified argument requirement.
144         (SIGN): Corrected table specification.
145         (SYMLNK): Added documentation.
146         (SYSTEM): Added documentation.
147         (TIME): Added documentation.
148         (TIME8): Added section and documentation.
149         (UNMASK): Removed erroneous section.
150
151 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
152
153         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
154
155 2007-01-18  Roger Sayle  <roger@eyesopen.com>
156
157         * trans-expr.c (copyable_array_p): Consider user derived types without
158         allocatable components to be copyable.
159
160 2007-01-18  Roger Sayle  <roger@eyesopen.com>
161
162         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
163         the number of interations in unconditional FORALL nests with constant
164         bounds.
165
166 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
167             Tobias Burnus  <burnus@net-b.de>
168
169         PR libfortran/29649
170         * gfortran.h (gfc_option_t): Add flag_dump_core.
171         * lang.opt: Add -fdump-core option.
172         * invoke.texi: Document the new options.
173         * trans-decl.c (gfc_build_builtin_function_decls): Add new
174           options to the call to set_std.
175         * options.c (gfc_init_options, gfc_handle_option): Set the
176           new options.
177
178 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
179
180         PR fortran/30476
181         * module.c (load_generic_interfaces): Make the marking of the
182         symbol as ambiguous conditional on the module names being
183         different.
184         (write_generic): Ensure that the generic interface has a
185         non-NULL module field.
186
187 2007-01-16  Roger Sayle  <roger@eyesopen.com>
188
189         PR fortran/30404
190         * trans-stmt.c (forall_info): Remove pmask field.
191         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
192         NVAR covers all the interation variables in the current forall_info.
193         Add an extra OUTER parameter, which specified the loop header in
194         which to place mask index initializations.
195         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
196         Change the semantics of MASK_FLAG to only control the mask in the
197         innermost loop.
198         (compute_overall_iter_number): Optimize the trivial case of a
199         top-level loop having a constant number of iterations.  Update
200         call to gfc_trans_nested_forall_loop.  Calculate the number of
201         times the inner loop will be executed, not to size of the 
202         iteration space.
203         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
204         sizeof(type) == 1.  Tidy up.
205         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
206         to gfc_trans_nested_forall_loop.
207         (gfc_trans_pointer_assign_need_temp): Likewise.
208         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
209         LENVAR local variables.  Split mask allocation into a separate
210         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
211         to allocate the FORALL mask with the correct size.  Update calls
212         to gfc_trans_nested_forall_loop.
213         (gfc_evaluate_where_mask): Update call to
214         gfc_trans_nested_forall_loop.
215         (gfc_trans_where_2): Likewise.
216
217 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
218
219         PR fortran/28172
220         * trans-stmt.c (gfc_trans_call): If it does not have one, get
221         a backend_decl for an alternate return.
222
223         PR fortran/29389
224         * resolve.c (pure_function): Statement functions are pure. Note
225         that this will have to recurse to comply fully with F95.
226
227         PR fortran/29712
228         * resolve.c (resolve_function): Only a reference to the final
229         dimension of an assumed size array is an error in an inquiry
230         function.
231
232         PR fortran/30283
233         * resolve.c (resolve_function): Make sure that the function
234         expression has a type.
235
236 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
237
238         PR fortran/30410
239         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
240         symbols must not have the module name prepended.
241
242 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
243
244         PR libfortran/30415
245         * iresolve.c (gfc_resolve_maxloc):  If the rank
246         of the return array is nonzero and we process an
247         integer array smaller than default kind, coerce
248         the array to default integer.
249         * iresolve.c (gfc_resolve_minloc):  Likewise.
250
251 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
252
253         * simplify.c: Update copyright to 2007.
254         * scanner.c: Same.
255
256 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
257
258         PR fortran/30430
259         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
260         only once!
261
262 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
263
264         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
265         (gfc_simplify_ibset): Same.
266
267 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
268
269         PR 30381
270         PR 30420
271         * simplify.c (convert_mpz_to_unsigned): New function.
272         (convert_mpz_to_signed): New function, largely based on
273         twos_complement().
274         (twos_complement): Removed.
275         (gfc_simplify_ibclr): Add conversions to and from an
276         unsigned representation before bit-twiddling.
277         (gfc_simplify_ibset): Same.
278         (gfc_simplify_ishftc): Add checks for overly large
279         constant arguments, only check the third argument if
280         it's present, carry over high bits into the result as
281         appropriate, and perform the final conversion back to
282         a signed representation using the correct sign bit.
283         (gfc_simplify_not): Removed unnecessary masking.
284
285 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
286
287         PR fortran/30408
288         * resolve.c (resolve_code): Use the code->expr character length
289         directly to set length of llen.
290
291 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
292
293         PR fortran/30408
294         * lang.opt: Add Wcharacter_truncation option.
295         * options.c (gfc_init_options): Initialize
296         gfc_option.warn_character_truncation to zero.
297         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
298
299 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
300
301         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
302         iresolve.c, match.c:  Update Copyright years.  Whitespace.
303
304 2007-01-08  Richard Guenther  <rguenther@suse.de>
305
306         * trans-io.c (transfer_array_desc): Use build_int_cst instead
307         of build_int_cstu.
308
309 2007-01-08  Roger Sayle  <roger@eyesopen.com>
310
311         * trans-array.c (constant_array_constructor_p): New function to
312         determine whether an array constructor consists only of constant
313         elements, and if so return it's size.
314         (gfc_build_constant_array_constructor): Construct a statically
315         initialized gfortran array for a given EXPR_ARRAY.
316         (gfc_trans_constant_array_constructor): Efficiently scalarize
317         a constant array constructor.
318         (gfc_trans_array_constructor):  Tidy up use of CONST_STRING.
319         Special case scalarization of constant array constructors, all of
320         whose elements are specified, using constant_array_constructor_p 
321         and gfc_trans_constant_array_constructor.
322         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
323         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
324
325 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
326
327         gfortran.texi: Fix typos.
328
329 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
330
331         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
332         convert.c:  Update Copyright dates.  Fix whitespace.
333
334 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
335
336         * data.c (gfc_assign_data_value): Fix whitespace.
337
338 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
339
340         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
341         Commentary typo fix.
342
343 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
344
345         PR fortran/27698
346         * match.c (gfc_match_name): Print diagnostics for invalid
347         character in names.
348
349 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
350
351         * array.c: Fix whitespace in comment table.
352
353 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
354
355         * array.c, bbt.c, check.c:  Update copyright years.  Whitespace.
356
357 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
358
359         * arith.c: Update copyright years.  Whitespace.
360
361 2007-01-05  Roger Sayle  <roger@eyesopen.com>
362
363         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
364         array assignments split out from gfc_trans_assignment.
365         (gfc_trans_array_copy): New function to implement array to array
366         copies via calls to __builtin_memcpy.
367         (copyable_array_p): New helper function to identify an array of
368         simple/POD types, that may be copied/assigned using memcpy.
369         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
370         whole array assignments considered suitable by copyable_array_p.
371         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
372
373 2007-01-05  Roger Sayle  <roger@eyesopen.com>
374
375         * trans-array.c (gfc_trans_array_constructor_value): Make the
376         static const "data" array as TREE_READONLY.
377         * trans-stmt.c (gfc_trans_character_select): Likewise.
378
379 2007-01-05  Roger Sayle  <roger@eyesopen.com>
380
381         * trans-array.c (gfc_conv_loop_setup):  Test whether the loop
382         stride is one, to avoid fold_build2 introducing a useless
383         NON_LVALUE_EXPR node.
384
385 2007-01-05  Tobias Burnus  <burnus@net-b.de>
386
387         * symbol.c (check_conflict): Fix error message.
388
389 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
390
391         PR fortran/23232
392         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
393         functions to signal that a DATA statement is being matched.
394         (gfc_match_data): Call gfc_set_in_match_data on entry and on
395         exit.
396         * gfortran.h : Add prototypes for above.
397         * expr.c (check_init_expr): Avoid check on parameter or
398         variable if gfc_in_match_data is true.
399         (gfc_match_init_expr): Do not call error on non-reduction of
400         expression if gfc_in_match_data is true.
401
402         PR fortran/27996
403         PR fortran/27998
404         * decl.c (gfc_set_constant_character_len): Add boolean arg to
405         flag array constructor resolution.  Warn if string is being
406         truncated.  Standard dependent error if string is padded. Set
407         new arg to false for all three calls to
408         gfc_set_constant_character_len.
409         * match.h : Add boolean arg to prototype for
410         gfc_set_constant_character_len.
411         * gfortran.h : Add warn_character_truncation to gfc_options.
412         * options.c (set_Wall): Set warn_character_truncation if -Wall
413         is set.
414         * resolve.c (resolve_code): Warn if rhs string in character
415         assignment has to be truncated.
416         * array.c (gfc_resolve_character_array_constructor): Set new
417         argument to true for call to gfc_set_constant_character_len.
418
419 2007-01-05  Tobias Burnus  <burnus@net-b.de>
420
421         PR fortran/29624
422         * interface.c (compare_parameter_intent): New function.
423           (check_intents): Support pointer intents.
424         * symbol.c (check_conflict): Support pointer intents,
425           better conflict_std message.
426         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
427           Support pointer intents.
428         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
429           Support pointer intents.
430
431 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
432
433         PR 30371
434         * check.c (gfc_check_kill_sub): Add checks for non-scalar
435         arguments.
436
437 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
438
439         * intrinsic.texi: Minor cleanup, reflowing overlong
440         paragraphs, and correcting whitespace.
441
442 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
443
444         * intrinsic.texi (LBOUND): Add documentation.
445         (LGE): Add documentation.
446         (LGT): Add documentation.
447         (LINK): Add documentation.
448         (LLE): Add documentation.
449         (LLT): Add documentation.
450         (LNBLNK): Add documentation.
451         (UBOUND): Add documentation.
452         (UNLINK): Add documentation.
453
454 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
455
456         * intrinsic.texi (IAND): Clarify argument specifications.
457         (IBCLR): Add documentation.
458         (IBITS): Add documentation.
459         (IBSET): Add documentation.
460         (IEOR): Add documentation.
461         (IERRNO): Add documentation.
462         (INDEX): Add documentation.
463         (IOR): Add documentation.
464         (ISHFT): Add documentation.
465         (ISHFTC): Add documentation.
466         (KILL): Add documentation.
467         (LEN_TRIM): Add documentation.
468
469 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
470
471         PR 30235
472         * interface.c (compare_actual_formal): check for
473         alternate returns when iterating over non-present
474         arguments.
475
476 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
477
478         * invoke.texi: Update manpage copyright to include 2007.
479
480 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
481
482         * gfortran.texi: Update copyright to include 2007.
483         * intrinsic.texi: Update copyright to include 2007.
484         * invoke.texi: Update copyright to include 2007.
485
486 2007-01-02  Tobias Burnus  <burnus@net-b.de>
487             Jakub Jelinek  <jakub@redhat.com>
488
489         PR fortran/30276
490         * scanner.c (open_included_file): Revert patch.
491           (gfc_open_included_file): Support absolute pathnames.
492           (gfc_open_intrinsic_module): Support absolute pathnames.
493
494 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
495
496         * gfortran.texi (GNU Fortran and GCC): Rewrite
497
498 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
499
500         * gfortran.texi (Introduction): Lower "Part I:
501         Introduction" to a chapter, renumber Parts II and III to
502         Parts I and II.
503         * intrinsic.texi (Introduction): Rename to "Introduction
504         to Intrinsics" to avoid conflict with the new chapter.
505
506 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
507
508         * intrinsic.texi (Introduction): Rewrite first paragraph.
509
510 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
511
512         * invoke.texi (OpenMP): Added index entry.
513         * gfortran.texi (title page): Removed erroneous '*'.
514
515 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
516
517         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
518         to description.
519         (Extensions): Miscellaneous minor rewriting and copyediting.
520         (BOZ-literal constants): Renamed from Hexadecimal constants.
521         (Hollerith constants support): Added explanation and 
522         suggestions for standard-conforming modern equivalents.
523
524 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
525
526         * intrinsic.texi: Improvements to index entries; change
527         @findex entries to @cindex entries.
528         * invoke.texi: Standardize and improve index entries.
529         * gfortran.texi: Fix @code in one index entry.
530
531 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
532
533         * invoke.texi: Change @code-type macros to appropriate
534         variants (@command, @option, etc.)
535         * gfortran.texi: Same.
536
537 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
538
539         * intrinsic.texi: Various minor cleanups.
540
541 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
542
543         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
544         build_int_cst.
545
546 2007-01-02  Tobias Burnus  <burnus@net-b.de>
547
548         PR fortran/30276
549         * scanner.c (open_included_file): Support full-path filenames.
550
551 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
552
553         PR fortran/20896
554         * interface.c (check_sym_interfaces): Remove call to
555         resolve_global_procedure.
556         gfortran.h : Remove prototype for resolve_global_procedure.
557         resolve.c (resolve_global_procedure): Add static attribute
558         to function declaration.
559
560 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
561
562         * ChangeLog: Copy to ...
563         * ChangeLog-2006: here.