OSDN Git Service

2010-02-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2
3         PR fortran/32382
4         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
5         gfc_trans_do prototype.
6         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
7         a loop exit condition.  If exit condition is given, build the loop exit
8         code, checking IO results of implied do loops in READ and WRITE.
9         (gfc_trans_do): Likewise.
10         * trans.c (trans_code): New static work function, previously
11         gfc_trans_code. Passes exit condition to gfc_trans_do.
12         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
13         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
14         * trans-io.c (build_dt): Build an exit condition to allow checking IO
15         result status bits in the dtparm structure. Use this condition in call
16         to gfc_trans_code_cond.
17
18 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
19
20         PR fortran/41113
21         PR fortran/41117
22         * trans-array.c (gfc_conv_array_parameter): Use
23         gfc_full_array_ref_p to detect full and contiguous variable
24         arrays. Full array components and contiguous arrays do not need
25         internal_pack and internal_unpack.
26
27 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
28
29         PR fortran/43030
30         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
31
32         PR fortran/43029
33         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
34         here.
35         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
36         MATCH_ERROR.
37
38 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
39             Tobias Burnus <burnus@net-b.de>
40
41         PR fortran/40823
42         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
43
44 2010-02-10  Tobias Burnus  <burnus@net-b.de>
45
46         PR fortran/43015
47         * trans-decl.c (gfc_generate_function_code): Only check
48         actual-vs.-dummy character bounds if not bind(C).
49
50 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
51
52         PR fortran/42309
53         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
54         info->dimen after info has been freed.
55
56 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
57
58         PR fortran/42999
59         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
60         with iterators.
61
62 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
63
64         * module.c (fix_mio_expr): Declare sym.
65
66 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
67
68         PR fortran/41869
69         * module.c (fix_mio_expr): Fix for private generic procedures.
70
71 2010-02-09  Daniel Kraft  <d@domob.eu>
72
73         PR fortran/39171
74         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
75         length to be correct and issue only with -Wsurprising.
76         * invoke.texi (Wsurprising): Mention this new warning that is
77         turned on by -Wsurprising.
78
79 2010-02-09  Daniel Kraft  <d@domob.eu>
80
81         PR fortran/41507
82         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
83         can be CHARACTER type.
84         (MINVAL), (MAXLOC), (MINLOC): Ditto.
85
86 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
87
88         PR fortran/42309
89         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
90         'formal_ptr'. If this is true, give returned descriptor unity
91         lbounds, in all dimensions, and the appropriate offset.
92         (gfc_conv_procedure_call); If formal is a pointer, set the last
93         argument of gfc_conv_subref_array_arg to true.
94         * trans.h : Add last argument for gfc_conv_subref_array_arg.
95         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
96         new arg of gfc_conv_subref_array_arg to false.
97         * trans-stmt.c (forall_make_variable_temp): The same.
98
99 2010-02-03  Tobias Burnus  <burnus@net-b.de>
100
101         PR fortran/42936
102         * interface.c (compare_parameter): Disable rank-checking
103         for NULL().
104
105 2010-02-02  Tobias Burnus  <burnus@net-b.de>
106
107         PR fortran/42650
108         * parse.c (decode_specification_statement): Use sym->result not sym.
109
110 2010-02-01  Tobias Burnus  <burnus@net-b.de>
111
112         PR fortran/42922
113         * decl.c (variable_decl): Allow default initializer in
114         TYPE declarations in PURE functions.
115
116 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
117
118         PR fortran/42888
119         * resolve.c (resolve_allocate_expr): Move default initialization code
120         here from gfc_trans_allocate.
121         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
122         EXEC_INIT_ASSIGN.
123         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
124         of CLASS variables via memcpy.
125         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
126         to resolve_allocate_expr.
127
128 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
129
130         PR fortran/38324
131         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
132         * gfortran.h : Add prototype for above.
133         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
134         (gfc_trans_subcomponent_assign): Call new function to replace
135         the code to deal with allocatable components.
136         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
137         gfc_get_full_arrayspec_from_expr to replace existing code.
138
139 2010-01-25  Tobias Burnus  <burnus@net-b.de>
140
141         PR fortran/42858
142         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
143         check.
144
145 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
146
147         PR fortran/41044
148         PR fortran/41167
149         * expr.c (remove_subobject_ref): If the constructor is NULL use
150         the expression as the source.
151         (simplify_const_ref): Change the type of expression if
152         there are component references.  Allow for substring to be at
153         the end of an arbitrarily long chain of references.  If an
154         element is found that is not in an EXPR_ARRAY, assume that this
155         is scalar initialization of array. Call remove_subobject_ref in
156         this case with NULL second argument.
157
158 2010-01-24  Tobias Burnus  <burnus@net-b.de>
159
160         PR fortran/39304
161         * array.c (gfc_array_dimen_size): Use correct specific
162         function in the check.
163
164 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
165
166         PR fortran/42736
167         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
168         is required, turn any trailing array elements after a range
169         into ranges so that offsets can be calculated.
170
171 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
172
173         * module.c (mio_f2k_derived): Use enumerator as initializer of
174         enum variable.
175
176         PR bootstrap/42812
177         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
178         bitfield of width 2.
179
180 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
181
182         PR fortran/42804
183         * resolve.c (extract_compcall_passed_object): Set locus for
184         passed-object argument.
185         (extract_ppc_passed_object): Set locus and correctly remove PPC
186         reference.
187
188 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
189
190         PR fortran/42783
191         * trans-decl.c (add_argument_checking): Do not use the backend
192         decl directly to test for the presence of an optional dummy
193         argument.  Use gfc_conv_expr_present, remembering to set the
194         symbol referenced.
195
196         PR fortran/42772
197         * trans-decl.c (gfc_generate_function_code): Small white space
198         changes. If 'recurcheckvar' is NULL do not try to reset it.
199
200 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
201
202         PR fortran/42545
203         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
204         component for extended types.
205         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
206         and take care of parent component accessibility.
207
208 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
209
210         PR fortran/42677
211         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
212         * interface.c (check_interface1): Move a warning message here from
213         resolve_fl_procedure.
214         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
215         * module.c (read_module): Remove call to gfc_check_interfaces, since
216         this comes too early here.
217         * resolve.c (resolve_fl_procedure): Move warning message to
218         check_interface1.
219
220 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
221
222         PR fortran/42684
223         * interface.c (check_interface1): Pass symbol name rather than NULL to
224         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
225         trap MULL.
226         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
227         than NULL to gfc_compare_interfaces.
228
229 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
230
231         PR fortran/41478
232         * trans-array.c (duplicate_allocatable):  Static version of
233         gfc_duplicate_allocatable with provision to handle scalar
234         components. New boolean argument to switch off call to malloc
235         if true.
236         (gfc_duplicate_allocatable): New function to call above with
237         new argument false.
238         (gfc_copy_allocatable_data): New function to call above with
239         new argument true.
240         (structure_alloc_comps): Do not apply indirect reference to
241         scalar pointers. Add new section to copy allocatable components
242         of arrays. Extend copying of allocatable components to include
243         scalars.
244         (gfc_copy_only_alloc_comp): New function to copy allocatable
245         component derived types, without allocating the base structure.
246         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
247         Add primitive for gfc_copy_only_alloc_comp.
248         * trans-expr.c (gfc_conv_procedure_call): After calls to
249         transformational functions with results that are derived types
250         with allocatable components, copy the components in the result.
251         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
252         of lhs derived types before allocation.
253         
254 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
255
256         PR fortran/42481
257         * module.c (load_generic_interfaces): If a procedure that is
258         use associated but not generic is given an interface that
259         includes itself, then make it generic.
260
261 2010-01-11  Joseph Myers  <joseph@codesourcery.com>  
262             Shujing Zhao  <pearly.zhao@oracle.com>
263
264         PR translation/42469
265         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
266         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
267         character between option name and help text.
268
269 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
270
271         PR fortran/20923
272         PR fortran/32489
273         * trans-array.c (gfc_conv_array_initializer): Change call to
274         gfc_error_now to call to gfc_fatal_error.
275         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
276         (is_constant_element): Changed name from constant_element.
277         (gfc_constant_ac): Only use expand_construuctor for expression
278         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
279         call gfc_is_constant_expr.
280         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
281         message.
282         * resolve.c (gfc_is_expandable_expr): New function that determiners if
283         array expressions should have their constructors expanded.
284         (gfc_resolve_expr): Use new function to determine whether or not to call
285         gfc_expand_constructor.
286
287 2010-01-09  Tobias Burnus  <burnus@net-b.de>
288
289         PR fortran/41298
290         * trans-expr.c (gfc_trans_structure_assign): Handle
291         c_null_(fun)ptr.
292         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
293         to the constructor for c_null_(fun)ptr.
294         * resolve.c (resolve_structure_cons): Add special case
295         for c_null_(fun)ptr.
296
297 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
298
299         * gfortranspec.c (lang_specific_driver): Update copyright notice
300         dates.
301
302 2010-01-08  Tobias Burnus  <burnus@net-b.de>
303
304         PR/fortran 25829
305         * symbol.c (check_conflict, gfc_copy_attr): Add
306         ASYNCHRONOUS support.
307         (gfc_add_asynchronous): New function.
308         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
309         (gfc_match_asynchronous): New function.
310         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
311         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
312         (gfc_add_asynchronous): New Prototype.
313         * module.c (ab_attribute, mio_symbol_attribute): Add
314         ASYNCHRONOUS support.
315         * resolve.c (was_declared): Ditto.
316         * match.h (gfc_match_asynchronous): New prototype.
317         * parse.c (decode_specification_statement,decode_statement):
318         Add ASYNCHRONOUS support.
319
320 2010-01-07  Tobias Burnus  <burnus@net-b.de>
321
322         PR fortran/42597
323         * trans-decl.c (get_proc_pointer_decl): Fix call to
324         gfc_conv_initializer for array-valued proc-pointer funcs.
325
326 2010-01-07  Tobias Burnus  <burnus@net-b.de>
327
328         PR fortran/41872
329         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
330         allocatable scalars with SAVE attribute.
331
332 2010-01-05  Tobias Burnus  <burnus@net-b.de>
333
334         PR fortran/42517
335         * options.c (gfc_post_options): Set -frecursion
336         when -fopenmp is used.
337
338 2010-01-05  Tobias Burnus  <burnus@net-b.de>
339
340         PR fortran/41872
341         * trans-expr.c (gfc_conv_procedure_call): Nullify
342         return value for allocatable-scalar character functions.
343
344 2010-01-04  Tobias Burnus  <burnus@net-b.de>
345
346         PR fortran/36161
347         * error.c (error_printf, gfc_warning, gfc_notify_std,
348         gfc_warning_now, gfc_error, gfc_error_now,
349         gfc_fatal_error): Change argument name from nocmsgid to
350         gmsgid to enable (x)gettext's % checking.
351
352 2010-01-04  Tobias Burnus  <burnus@net-b.de>
353         
354         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
355
356 2010-01-04  Tobias Burnus  <burnus@net-b.de>
357
358         PR fortran/41872
359         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
360         for functions returning allocatable scalars.
361         * trans-stmt.c (gfc_trans_allocate): Emmit error when
362         reallocating an allocatable scalar.
363         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
364         in comment.
365         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
366         allocatable scalars.
367         (gfc_generate_function_code): Nullify result variable for
368         allocatable scalars.
369         
370         PR fortran/40849
371         * module.c (gfc_use_module): Fix warning string to allow
372         for translation.
373
374         PR fortran/42517
375         * invoke.texi (-fcheck=recursion): Mention that the checking
376         is also disabled for -frecursive.
377         * trans-decl.c (gfc_generate_function_code): Disable
378         -fcheck=recursion when -frecursive is used.
379
380         * intrinsic.texi (iso_c_binding): Improve wording.
381
382 \f
383 Copyright (C) 2010 Free Software Foundation, Inc.
384
385 Copying and distribution of this file, with or without modification,
386 are permitted in any medium without royalty provided the copyright
387 notice and this notice are preserved.