OSDN Git Service

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