OSDN Git Service

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