OSDN Git Service

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