OSDN Git Service

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