OSDN Git Service

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