OSDN Git Service

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