2010-02-05 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob6d52e5d46ac8d5b48b11ac3c6b11f9f17c0230ca
1 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/42309
4         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
5         'formal_ptr'. If this is true, give returned descriptor unity
6         lbounds, in all dimensions, and the appropriate offset.
7         (gfc_conv_procedure_call); If formal is a pointer, set the last
8         argument of gfc_conv_subref_array_arg to true.
9         * trans.h : Add last argument for gfc_conv_subref_array_arg.
10         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
11         new arg of gfc_conv_subref_array_arg to false.
12         * trans-stmt.c (forall_make_variable_temp): The same.
14 2010-02-03  Tobias Burnus  <burnus@net-b.de>
16         PR fortran/42936
17         * interface.c (compare_parameter): Disable rank-checking
18         for NULL().
20 2010-02-02  Tobias Burnus  <burnus@net-b.de>
22         PR fortran/42650
23         * parse.c (decode_specification_statement): Use sym->result not sym.
25 2010-02-01  Tobias Burnus  <burnus@net-b.de>
27         PR fortran/42922
28         * decl.c (variable_decl): Allow default initializer in
29         TYPE declarations in PURE functions.
31 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
33         PR fortran/42888
34         * resolve.c (resolve_allocate_expr): Move default initialization code
35         here from gfc_trans_allocate.
36         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
37         EXEC_INIT_ASSIGN.
38         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
39         of CLASS variables via memcpy.
40         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
41         to resolve_allocate_expr.
43 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
45         PR fortran/38324
46         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
47         * gfortran.h : Add prototype for above.
48         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
49         (gfc_trans_subcomponent_assign): Call new function to replace
50         the code to deal with allocatable components.
51         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
52         gfc_get_full_arrayspec_from_expr to replace existing code.
54 2010-01-25  Tobias Burnus  <burnus@net-b.de>
56         PR fortran/42858
57         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
58         check.
60 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
62         PR fortran/41044
63         PR fortran/41167
64         * expr.c (remove_subobject_ref): If the constructor is NULL use
65         the expression as the source.
66         (simplify_const_ref): Change the type of expression if
67         there are component references.  Allow for substring to be at
68         the end of an arbitrarily long chain of references.  If an
69         element is found that is not in an EXPR_ARRAY, assume that this
70         is scalar initialization of array. Call remove_subobject_ref in
71         this case with NULL second argument.
73 2010-01-24  Tobias Burnus  <burnus@net-b.de>
75         PR fortran/39304
76         * array.c (gfc_array_dimen_size): Use correct specific
77         function in the check.
79 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
81         PR fortran/42736
82         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
83         is required, turn any trailing array elements after a range
84         into ranges so that offsets can be calculated.
86 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
88         * module.c (mio_f2k_derived): Use enumerator as initializer of
89         enum variable.
91         PR bootstrap/42812
92         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
93         bitfield of width 2.
95 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
97         PR fortran/42804
98         * resolve.c (extract_compcall_passed_object): Set locus for
99         passed-object argument.
100         (extract_ppc_passed_object): Set locus and correctly remove PPC
101         reference.
103 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
105         PR fortran/42783
106         * trans-decl.c (add_argument_checking): Do not use the backend
107         decl directly to test for the presence of an optional dummy
108         argument.  Use gfc_conv_expr_present, remembering to set the
109         symbol referenced.
111         PR fortran/42772
112         * trans-decl.c (gfc_generate_function_code): Small white space
113         changes. If 'recurcheckvar' is NULL do not try to reset it.
115 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
117         PR fortran/42545
118         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
119         component for extended types.
120         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
121         and take care of parent component accessibility.
123 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
125         PR fortran/42677
126         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
127         * interface.c (check_interface1): Move a warning message here from
128         resolve_fl_procedure.
129         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
130         * module.c (read_module): Remove call to gfc_check_interfaces, since
131         this comes too early here.
132         * resolve.c (resolve_fl_procedure): Move warning message to
133         check_interface1.
135 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
137         PR fortran/42684
138         * interface.c (check_interface1): Pass symbol name rather than NULL to
139         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
140         trap MULL.
141         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
142         than NULL to gfc_compare_interfaces.
144 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
146         PR fortran/41478
147         * trans-array.c (duplicate_allocatable):  Static version of
148         gfc_duplicate_allocatable with provision to handle scalar
149         components. New boolean argument to switch off call to malloc
150         if true.
151         (gfc_duplicate_allocatable): New function to call above with
152         new argument false.
153         (gfc_copy_allocatable_data): New function to call above with
154         new argument true.
155         (structure_alloc_comps): Do not apply indirect reference to
156         scalar pointers. Add new section to copy allocatable components
157         of arrays. Extend copying of allocatable components to include
158         scalars.
159         (gfc_copy_only_alloc_comp): New function to copy allocatable
160         component derived types, without allocating the base structure.
161         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
162         Add primitive for gfc_copy_only_alloc_comp.
163         * trans-expr.c (gfc_conv_procedure_call): After calls to
164         transformational functions with results that are derived types
165         with allocatable components, copy the components in the result.
166         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
167         of lhs derived types before allocation.
168         
169 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
171         PR fortran/42481
172         * module.c (load_generic_interfaces): If a procedure that is
173         use associated but not generic is given an interface that
174         includes itself, then make it generic.
176 2010-01-11  Joseph Myers  <joseph@codesourcery.com>  
177             Shujing Zhao  <pearly.zhao@oracle.com>
179         PR translation/42469
180         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
181         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
182         character between option name and help text.
184 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
186         PR fortran/20923
187         PR fortran/32489
188         * trans-array.c (gfc_conv_array_initializer): Change call to
189         gfc_error_now to call to gfc_fatal_error.
190         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
191         (is_constant_element): Changed name from constant_element.
192         (gfc_constant_ac): Only use expand_construuctor for expression
193         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
194         call gfc_is_constant_expr.
195         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
196         message.
197         * resolve.c (gfc_is_expandable_expr): New function that determiners if
198         array expressions should have their constructors expanded.
199         (gfc_resolve_expr): Use new function to determine whether or not to call
200         gfc_expand_constructor.
202 2010-01-09  Tobias Burnus  <burnus@net-b.de>
204         PR fortran/41298
205         * trans-expr.c (gfc_trans_structure_assign): Handle
206         c_null_(fun)ptr.
207         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
208         to the constructor for c_null_(fun)ptr.
209         * resolve.c (resolve_structure_cons): Add special case
210         for c_null_(fun)ptr.
212 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
214         * gfortranspec.c (lang_specific_driver): Update copyright notice
215         dates.
217 2010-01-08  Tobias Burnus  <burnus@net-b.de>
219         PR/fortran 25829
220         * symbol.c (check_conflict, gfc_copy_attr): Add
221         ASYNCHRONOUS support.
222         (gfc_add_asynchronous): New function.
223         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
224         (gfc_match_asynchronous): New function.
225         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
226         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
227         (gfc_add_asynchronous): New Prototype.
228         * module.c (ab_attribute, mio_symbol_attribute): Add
229         ASYNCHRONOUS support.
230         * resolve.c (was_declared): Ditto.
231         * match.h (gfc_match_asynchronous): New prototype.
232         * parse.c (decode_specification_statement,decode_statement):
233         Add ASYNCHRONOUS support.
235 2010-01-07  Tobias Burnus  <burnus@net-b.de>
237         PR fortran/42597
238         * trans-decl.c (get_proc_pointer_decl): Fix call to
239         gfc_conv_initializer for array-valued proc-pointer funcs.
241 2010-01-07  Tobias Burnus  <burnus@net-b.de>
243         PR fortran/41872
244         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
245         allocatable scalars with SAVE attribute.
247 2010-01-05  Tobias Burnus  <burnus@net-b.de>
249         PR fortran/42517
250         * options.c (gfc_post_options): Set -frecursion
251         when -fopenmp is used.
253 2010-01-05  Tobias Burnus  <burnus@net-b.de>
255         PR fortran/41872
256         * trans-expr.c (gfc_conv_procedure_call): Nullify
257         return value for allocatable-scalar character functions.
259 2010-01-04  Tobias Burnus  <burnus@net-b.de>
261         PR fortran/36161
262         * error.c (error_printf, gfc_warning, gfc_notify_std,
263         gfc_warning_now, gfc_error, gfc_error_now,
264         gfc_fatal_error): Change argument name from nocmsgid to
265         gmsgid to enable (x)gettext's % checking.
267 2010-01-04  Tobias Burnus  <burnus@net-b.de>
268         
269         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
271 2010-01-04  Tobias Burnus  <burnus@net-b.de>
273         PR fortran/41872
274         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
275         for functions returning allocatable scalars.
276         * trans-stmt.c (gfc_trans_allocate): Emmit error when
277         reallocating an allocatable scalar.
278         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
279         in comment.
280         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
281         allocatable scalars.
282         (gfc_generate_function_code): Nullify result variable for
283         allocatable scalars.
284         
285         PR fortran/40849
286         * module.c (gfc_use_module): Fix warning string to allow
287         for translation.
289         PR fortran/42517
290         * invoke.texi (-fcheck=recursion): Mention that the checking
291         is also disabled for -frecursive.
292         * trans-decl.c (gfc_generate_function_code): Disable
293         -fcheck=recursion when -frecursive is used.
295         * intrinsic.texi (iso_c_binding): Improve wording.
298 Copyright (C) 2010 Free Software Foundation, Inc.
300 Copying and distribution of this file, with or without modification,
301 are permitted in any medium without royalty provided the copyright
302 notice and this notice are preserved.