OSDN Git Service

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