2010-02-13 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob0c1066d95d4b83ee8f7b7b0b126da24a9843a5b9
1 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/41113
4         PR fortran/41117
5         * trans-array.c (gfc_conv_array_parameter): Use
6         gfc_full_array_ref_p to detect full and contiguous variable
7         arrays. Full array components and contiguous arrays do not need
8         internal_pack and internal_unpack.
10 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12         PR fortran/43030
13         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
15         PR fortran/43029
16         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
17         here.
18         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
19         MATCH_ERROR.
21 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
22             Tobias Burnus <burnus@net-b.de>
24         PR fortran/40823
25         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
27 2010-02-10  Tobias Burnus  <burnus@net-b.de>
29         PR fortran/43015
30         * trans-decl.c (gfc_generate_function_code): Only check
31         actual-vs.-dummy character bounds if not bind(C).
33 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
35         PR fortran/42309
36         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
37         info->dimen after info has been freed.
39 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
41         PR fortran/42999
42         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
43         with iterators.
45 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
47         * module.c (fix_mio_expr): Declare sym.
49 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
51         PR fortran/41869
52         * module.c (fix_mio_expr): Fix for private generic procedures.
54 2010-02-09  Daniel Kraft  <d@domob.eu>
56         PR fortran/39171
57         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
58         length to be correct and issue only with -Wsurprising.
59         * invoke.texi (Wsurprising): Mention this new warning that is
60         turned on by -Wsurprising.
62 2010-02-09  Daniel Kraft  <d@domob.eu>
64         PR fortran/41507
65         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
66         can be CHARACTER type.
67         (MINVAL), (MAXLOC), (MINLOC): Ditto.
69 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
71         PR fortran/42309
72         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
73         'formal_ptr'. If this is true, give returned descriptor unity
74         lbounds, in all dimensions, and the appropriate offset.
75         (gfc_conv_procedure_call); If formal is a pointer, set the last
76         argument of gfc_conv_subref_array_arg to true.
77         * trans.h : Add last argument for gfc_conv_subref_array_arg.
78         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
79         new arg of gfc_conv_subref_array_arg to false.
80         * trans-stmt.c (forall_make_variable_temp): The same.
82 2010-02-03  Tobias Burnus  <burnus@net-b.de>
84         PR fortran/42936
85         * interface.c (compare_parameter): Disable rank-checking
86         for NULL().
88 2010-02-02  Tobias Burnus  <burnus@net-b.de>
90         PR fortran/42650
91         * parse.c (decode_specification_statement): Use sym->result not sym.
93 2010-02-01  Tobias Burnus  <burnus@net-b.de>
95         PR fortran/42922
96         * decl.c (variable_decl): Allow default initializer in
97         TYPE declarations in PURE functions.
99 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
101         PR fortran/42888
102         * resolve.c (resolve_allocate_expr): Move default initialization code
103         here from gfc_trans_allocate.
104         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
105         EXEC_INIT_ASSIGN.
106         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
107         of CLASS variables via memcpy.
108         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
109         to resolve_allocate_expr.
111 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
113         PR fortran/38324
114         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
115         * gfortran.h : Add prototype for above.
116         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
117         (gfc_trans_subcomponent_assign): Call new function to replace
118         the code to deal with allocatable components.
119         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
120         gfc_get_full_arrayspec_from_expr to replace existing code.
122 2010-01-25  Tobias Burnus  <burnus@net-b.de>
124         PR fortran/42858
125         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
126         check.
128 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
130         PR fortran/41044
131         PR fortran/41167
132         * expr.c (remove_subobject_ref): If the constructor is NULL use
133         the expression as the source.
134         (simplify_const_ref): Change the type of expression if
135         there are component references.  Allow for substring to be at
136         the end of an arbitrarily long chain of references.  If an
137         element is found that is not in an EXPR_ARRAY, assume that this
138         is scalar initialization of array. Call remove_subobject_ref in
139         this case with NULL second argument.
141 2010-01-24  Tobias Burnus  <burnus@net-b.de>
143         PR fortran/39304
144         * array.c (gfc_array_dimen_size): Use correct specific
145         function in the check.
147 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
149         PR fortran/42736
150         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
151         is required, turn any trailing array elements after a range
152         into ranges so that offsets can be calculated.
154 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
156         * module.c (mio_f2k_derived): Use enumerator as initializer of
157         enum variable.
159         PR bootstrap/42812
160         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
161         bitfield of width 2.
163 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
165         PR fortran/42804
166         * resolve.c (extract_compcall_passed_object): Set locus for
167         passed-object argument.
168         (extract_ppc_passed_object): Set locus and correctly remove PPC
169         reference.
171 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
173         PR fortran/42783
174         * trans-decl.c (add_argument_checking): Do not use the backend
175         decl directly to test for the presence of an optional dummy
176         argument.  Use gfc_conv_expr_present, remembering to set the
177         symbol referenced.
179         PR fortran/42772
180         * trans-decl.c (gfc_generate_function_code): Small white space
181         changes. If 'recurcheckvar' is NULL do not try to reset it.
183 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
185         PR fortran/42545
186         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
187         component for extended types.
188         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
189         and take care of parent component accessibility.
191 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
193         PR fortran/42677
194         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
195         * interface.c (check_interface1): Move a warning message here from
196         resolve_fl_procedure.
197         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
198         * module.c (read_module): Remove call to gfc_check_interfaces, since
199         this comes too early here.
200         * resolve.c (resolve_fl_procedure): Move warning message to
201         check_interface1.
203 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
205         PR fortran/42684
206         * interface.c (check_interface1): Pass symbol name rather than NULL to
207         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
208         trap MULL.
209         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
210         than NULL to gfc_compare_interfaces.
212 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
214         PR fortran/41478
215         * trans-array.c (duplicate_allocatable):  Static version of
216         gfc_duplicate_allocatable with provision to handle scalar
217         components. New boolean argument to switch off call to malloc
218         if true.
219         (gfc_duplicate_allocatable): New function to call above with
220         new argument false.
221         (gfc_copy_allocatable_data): New function to call above with
222         new argument true.
223         (structure_alloc_comps): Do not apply indirect reference to
224         scalar pointers. Add new section to copy allocatable components
225         of arrays. Extend copying of allocatable components to include
226         scalars.
227         (gfc_copy_only_alloc_comp): New function to copy allocatable
228         component derived types, without allocating the base structure.
229         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
230         Add primitive for gfc_copy_only_alloc_comp.
231         * trans-expr.c (gfc_conv_procedure_call): After calls to
232         transformational functions with results that are derived types
233         with allocatable components, copy the components in the result.
234         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
235         of lhs derived types before allocation.
236         
237 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
239         PR fortran/42481
240         * module.c (load_generic_interfaces): If a procedure that is
241         use associated but not generic is given an interface that
242         includes itself, then make it generic.
244 2010-01-11  Joseph Myers  <joseph@codesourcery.com>  
245             Shujing Zhao  <pearly.zhao@oracle.com>
247         PR translation/42469
248         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
249         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
250         character between option name and help text.
252 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
254         PR fortran/20923
255         PR fortran/32489
256         * trans-array.c (gfc_conv_array_initializer): Change call to
257         gfc_error_now to call to gfc_fatal_error.
258         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
259         (is_constant_element): Changed name from constant_element.
260         (gfc_constant_ac): Only use expand_construuctor for expression
261         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
262         call gfc_is_constant_expr.
263         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
264         message.
265         * resolve.c (gfc_is_expandable_expr): New function that determiners if
266         array expressions should have their constructors expanded.
267         (gfc_resolve_expr): Use new function to determine whether or not to call
268         gfc_expand_constructor.
270 2010-01-09  Tobias Burnus  <burnus@net-b.de>
272         PR fortran/41298
273         * trans-expr.c (gfc_trans_structure_assign): Handle
274         c_null_(fun)ptr.
275         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
276         to the constructor for c_null_(fun)ptr.
277         * resolve.c (resolve_structure_cons): Add special case
278         for c_null_(fun)ptr.
280 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
282         * gfortranspec.c (lang_specific_driver): Update copyright notice
283         dates.
285 2010-01-08  Tobias Burnus  <burnus@net-b.de>
287         PR/fortran 25829
288         * symbol.c (check_conflict, gfc_copy_attr): Add
289         ASYNCHRONOUS support.
290         (gfc_add_asynchronous): New function.
291         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
292         (gfc_match_asynchronous): New function.
293         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
294         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
295         (gfc_add_asynchronous): New Prototype.
296         * module.c (ab_attribute, mio_symbol_attribute): Add
297         ASYNCHRONOUS support.
298         * resolve.c (was_declared): Ditto.
299         * match.h (gfc_match_asynchronous): New prototype.
300         * parse.c (decode_specification_statement,decode_statement):
301         Add ASYNCHRONOUS support.
303 2010-01-07  Tobias Burnus  <burnus@net-b.de>
305         PR fortran/42597
306         * trans-decl.c (get_proc_pointer_decl): Fix call to
307         gfc_conv_initializer for array-valued proc-pointer funcs.
309 2010-01-07  Tobias Burnus  <burnus@net-b.de>
311         PR fortran/41872
312         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
313         allocatable scalars with SAVE attribute.
315 2010-01-05  Tobias Burnus  <burnus@net-b.de>
317         PR fortran/42517
318         * options.c (gfc_post_options): Set -frecursion
319         when -fopenmp is used.
321 2010-01-05  Tobias Burnus  <burnus@net-b.de>
323         PR fortran/41872
324         * trans-expr.c (gfc_conv_procedure_call): Nullify
325         return value for allocatable-scalar character functions.
327 2010-01-04  Tobias Burnus  <burnus@net-b.de>
329         PR fortran/36161
330         * error.c (error_printf, gfc_warning, gfc_notify_std,
331         gfc_warning_now, gfc_error, gfc_error_now,
332         gfc_fatal_error): Change argument name from nocmsgid to
333         gmsgid to enable (x)gettext's % checking.
335 2010-01-04  Tobias Burnus  <burnus@net-b.de>
336         
337         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
339 2010-01-04  Tobias Burnus  <burnus@net-b.de>
341         PR fortran/41872
342         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
343         for functions returning allocatable scalars.
344         * trans-stmt.c (gfc_trans_allocate): Emmit error when
345         reallocating an allocatable scalar.
346         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
347         in comment.
348         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
349         allocatable scalars.
350         (gfc_generate_function_code): Nullify result variable for
351         allocatable scalars.
352         
353         PR fortran/40849
354         * module.c (gfc_use_module): Fix warning string to allow
355         for translation.
357         PR fortran/42517
358         * invoke.texi (-fcheck=recursion): Mention that the checking
359         is also disabled for -frecursive.
360         * trans-decl.c (gfc_generate_function_code): Disable
361         -fcheck=recursion when -frecursive is used.
363         * intrinsic.texi (iso_c_binding): Improve wording.
366 Copyright (C) 2010 Free Software Foundation, Inc.
368 Copying and distribution of this file, with or without modification,
369 are permitted in any medium without royalty provided the copyright
370 notice and this notice are preserved.