OSDN Git Service

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