OSDN Git Service

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