OSDN Git Service

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