OSDN Git Service

b54ad3d6a1a03c7ee03303a48523ca86a35c6b12
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2012-01-27  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/52016
4         * resolve.c (resolve_formal_arglist): Fix elemental
5         constraint checks for polymorphic dummies also for
6         pointers.
7         
8 2012-01-27  Tobias Burnus  <burnus@net-b.de>
9
10         PR fortran/51970
11         PR fortran/51977
12         * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
13         handle array spec for BT_CLASS.
14         * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
15         * frontend-passes.c (create_var): Ditto.
16         * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
17         * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
18         instead of attr.pointer.
19         (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
20         * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
21         * trans-stmt.c (trans_associate_var): Ask for the descriptor.
22
23 2012-01-27  Tobias Burnus  <burnus@net-b.de>
24
25         PR fortran/51953
26         * match.c (gfc_match_allocate): Allow more than allocate
27         object with SOURCE=.
28
29 2012-01-27  Tobias Burnus  <burnus@net-b.de>
30
31         PR fortran/52016
32         * resolve.c (resolve_formal_arglist): Fix elemental
33         constraint checks for polymorphic dummies.
34
35 2012-01-27  Paul Thomas  <pault@gcc.gnu.org>
36             Tobias Burnus <burnus@gcc.gnu.org>
37
38         PR fortran/48705
39         PR fortran/51870
40         PR fortran/51943
41         PR fortran/51946
42         * trans-array.c (gfc_array_init_size): Add two extra arguments
43         to convey the dynamic element size of a calls object and to
44         return the number of elements that have been allocated.
45         (gfc_array_allocate): Add the same arguments and use them to
46         call gfc_array_init_size.  Before the allocation dereference
47         the data pointer, if necessary. Set the allocated array to zero
48         if the class element size or expr3 are non-null.
49         * trans-expr.c (gfc_conv_class_to_class): Give this function
50         global scope.
51         (get_class_array_ref): New function.
52         (gfc_copy_class_to_class): New function.
53         * trans-array.h : Update prototype for gfc_array_allocate.
54         * trans-stmt.c (gfc_trans_allocate): For non-variable class
55         STATUS expressions extract the class object and the dynamic
56         element size. Use the latter to call gfc_array_allocate and
57         the former for setting the vptr and, via
58         gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
59         * trans.h : Prototypes for gfc_get_class_array_ref,
60         gfc_copy_class_to_class and gfc_conv_class_to_class.
61
62 2012-01-25  Tobias Burnus  <burnus@net-b.de>
63
64         * resolve.c (symbol_as): Check also for attr.class_ok.
65
66 2012-01-25  Tobias Burnus  <burnus@net-b.de>
67
68         PR fortran/51995
69         * class.c (gfc_build_class_symbol): Fix invalid freeing
70         issue with fclass->f2k_derived.
71
72 2012-01-25  Tobias Burnus  <burnus@net-b.de>
73
74         PR fortran/51995
75         * class.c (gfc_build_class_symbol): Ensure that
76         fclass->f2k_derived is set.
77
78 2012-01-25  Tobias Burnus  <burnus@net-b.de>
79
80         PR fortran/51966
81         * resolve.c (resolve_structure_cons): Only create an
82         array constructors for nonscalars.
83
84 2012-01-23  Tobias Burnus  <burnus@net-b.de>
85
86         PR fortran/51948
87         * check.c (variable_check): Fix checking for
88          variables and deeply nested BLOCKs.
89
90 2012-01-21  Tobias Burnus  <burnus@net-b.de>
91             Steven G. Kargl  <kargl@gcc.gnu.org>
92
93         PR fortran/50556
94         * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
95         attribure.
96
97 2012-01-21  Tobias Burnus  <burnus@net-b.de>
98
99         PR fortran/51913
100         * interface.c (compare_parameter): Fix CLASS comparison.
101
102 2012-01-20  Tobias Burnus  <burnus@net-b.de>
103             Janus Weil  <janus@gcc.gnu.org>
104
105         PR fortran/51056
106         * module.c (load_needed, read_module): Don't mark __vtab etc.
107         as use_only.
108
109 2012-01-19  Tobias Burnus  <burnus@net-b.de>
110
111         PR fortran/51904
112         * expr.c (gfc_build_intrinsic_call): Also set the symtree.
113
114 2012-01-18  Paul Thomas  <pault@gcc.gnu.org>
115
116         PR fortran/51634
117         * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
118         components of temporary class arguments.
119
120 2012-01-17  Tobias Burnus  <burnus@net-b.de>
121             Janne Blomqvist  <jb@gcc.gnu.org>
122
123         PR fortran/51869
124         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
125         LHS after allocation, if it has allocatable components.
126         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
127
128 2012-01-16  Mikael Morin  <mikael@gcc.gnu.org>
129             Tobias Burnus  <burnus@net-b.de>
130
131         PR fortran/50981
132         * trans-array.c (gfc_walk_elemental_function_args): Fix
133         passing of deallocated allocatables/pointers as absent argument. 
134
135 2012-01-16  Tobias Burnus  <burnus@net-b.de>
136
137         PR fortran/51809
138         * class.c (gfc_find_derived_vtab): Mark __vtab and
139         __def_init as FL_VARIABLE not as FL_PARAMETER.
140         * expr.c (gfc_simplify_expr): Remove special
141         handling of __vtab.
142         * resolve.c (resolve_values): Ditto.
143         * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
144         and __def_init as TREE_READONLY.
145
146 2012-01-16  Zydrunas Gimbutas  <gimbutas@cims.nyu.edu>
147         Andreas Kloeckner  <kloeckner@cims.nyu.edu>
148         Steven G. Kargl  <kargl@gcc.gnu.org>
149
150         PR fortran/48426
151         * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
152         * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
153         -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
154         and -finteger-4-integer-8. User-desired type conversion information.
155         * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
156         in declaration parsing.
157         * trans-types.c (gfc_init_kinds): User-specified type conversion
158         checked for current backend.
159         * primary.c (match_integer_constant,match_real_constant): Implement
160         type conversion in constant parsing.
161         * options.c (gfc_init_options,gfc_handle_option): Translate input
162         options to flags in internal options data structure.
163         * invoke.texi: Document new options.  Re-order options in Options
164         summary section.
165
166 2012-01-16  Paul Thomas  <pault@gcc.gnu.org>
167
168         * trans-array.c (gfc_trans_create_temp_array): In the case of a
169         class array temporary, detect a null 'eltype' on entry and use 
170         'initial' to provde the class reference and so, through the
171         vtable, the element size for the dynamic type.
172         * trans-stmt.c (gfc_conv_elemental_dependencies): For class
173         expressions, set 'eltype' to null and pass the values via the
174         'initial' expression.
175
176 2012-01-14  Tobias Burnus  <burnus@net-b.de>
177
178         PR fortran/51800
179         * resolve.c (build_default_init_expr): Also initialize
180         nonconstant-length strings with -finit-character=<n>.
181
182 2011-01-14  Tobias Burnus  <burnus@net-b.de>
183
184         PR fortran/51816
185         * module.c (read_module): Don't make nonexisting
186         intrinsic operators as found.
187         (rename_list_remove_duplicate): New function.
188         (gfc_use_modules): Use it.
189
190 2012-01-13  Paul Thomas  <pault@gcc.gnu.org>
191
192         PR fortran/48351
193         * trans-array.c (structure_alloc_comps): Suppress interative
194         call to self, when current component is deallocated using
195         gfc_trans_dealloc_allocated.
196         * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
197         attribute from the declared type to the class structure.
198
199 2012-01-13  Tobias Burnus  <burnus@net-b.de>
200
201         PR fortran/51842
202         * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
203         instead of a signed int of size POINTER_SIZE for
204         gfc_index_integer_kind.
205
206 2012-01-12  Tobias Burnus  <burnus@net-b.de>
207
208         PR fortran/36755
209         * intrinsic.texi (CHMOD): Extend a bit and remove statement
210         that /bin/chmod is called.
211
212 2012-01-10  Gerald Pfeifer  <gerald@pfeifer.com>
213
214         * gfortran.texi (Fortran 2003 Status): Fix grammar.
215
216 2012-01-10  Tobias Burnus  <burnus@net-b.de>
217
218         PR fortran/51652
219         * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
220         check whether type-spec matches declaration.
221
222 2012-01-10  Tobias Burnus  <burnus@net-b.de>
223
224         * resolve.c (resolve_ordinary_assign): Improve error wording.
225
226 2012-01-09  Paul Thomas  <pault@gcc.gnu.org>
227
228         PR fortran/51791
229         * interface.c (matching_typebound_op): Drill down through
230         possible parentheses to obtain base expression. Do not test for
231         'class_ok' but, instead for the class structure components.
232         * resolve.c (resolve_ordinary_assign): Extend error message for
233         polymorphic assignment to advise checking for specific
234         subroutine.
235
236         PR fortran/51792
237         * resolve.c (resolve_typebound_function): Restore 'static' to
238         declaration.
239
240 2012-01-09  Mikael Morin  <mikael@gcc.gnu.org>
241
242         PR fortran/51758
243         * trans-array.c (gfc_walk_elemental_function_args):
244         Skip over NULL() actual arguments.
245
246 2012-01-09  Tobias Burnus  <burnus@net-b.de>
247
248         * gfortran.texi: Bump copyright year.
249         (Fortran 2003 Status): Update polymorphism item, add
250         item for generic interface with DT name.
251
252 2012-01-09  Tobias Burnus  <burnus@net-b.de>
253
254         PR fortran/51578
255         * gfortran.h (gfc_use_list):
256         * match.h (gfc_use_module): Rename to ...
257         (gfc_use_modules): ... this.
258         * module.c (use_locus, specified_nonint, specified_int): Remove
259         global variable.
260         (module_name): Change type to const char*, used with gfc_get_string.
261         (module_list): New global variable.
262         (free_rename): Free argument not global var.
263         (gfc_match_use): Save match to module_list.
264         (load_generic_interfaces, read_module): Don't free symtree.
265         (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
266         type change of module_name.
267         (write_symbol0, write_generic): Optimize due to the type change.
268         (import_iso_c_binding_module, use_iso_fortran_env_module): Use
269         locus of rename->where.
270         (gfc_use_module): Take module_list as argument.
271         (gfc_use_modules): New function.
272         (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
273         * parse.c (last_was_use_stmt): New global variable.
274         (use_modules): New function.
275         (decode_specification_statement, decode_statement): Move USE match up
276         and call use_modules.
277         (next_free, next_fixed): Call use_modules.
278         (accept_statement): Don't call gfc_module_use.
279
280 2012-01-06  Tobias Burnus <burnus@net-b.de>
281
282         * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
283         Update call to gfc_trans_dealloc_allocated.
284         * trans.c (gfc_allocate_using_malloc): Fix spacing.
285         (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
286         label_finish when an error occurs.
287         (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
288         * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
289         Update prototype.
290         (gfor_fndecl_caf_deregister): New tree symbol.
291         * trans-expr.c (gfc_conv_procedure_call): Update
292         gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
293         * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
294         structure_alloc_comps, gfc_trans_deferred_array): Ditto.
295         (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
296         * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
297         gfc_trans_dealloc_allocated): Update prototypes.
298         * trans-stmt.c (gfc_trans_sync): Fix indentation.
299         (gfc_trans_allocate): Fix errmsg padding and label handling.
300         (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
301         * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
302         * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
303         to avoid other stats accidentally matching this one.
304         * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
305         (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
306         and add decl for caf_deregister.
307         (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
308         * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
309         gfc_deallocate_with_status.
310
311 2012-01-05  Paul Thomas  <pault@gcc.gnu.org>
312
313         PR fortran/PR48946
314         * resolve.c (resolve_typebound_static): If the typebound
315         procedure is 'deferred' try to find the correct specific
316         procedure in the derived type operator space itself.
317
318 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
319
320         PR fortran/50981
321         * trans-array.h (gfc_walk_elemental_function_args): New argument.
322         * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
323         * trans-stmt.c (gfc_trans_call): Ditto.
324         * trans-array.c (gfc_walk_function_expr): Ditto.
325         (gfc_walk_elemental_function_args): Get the dummy argument list
326         if possible.  Check that the dummy and the actual argument are both
327         optional, and set can_be_null_ref accordingly.
328
329 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
330
331         PR fortran/50981
332         * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
333         * trans-array.c: If the reference can be NULL, save the reference
334         instead of the value.
335         * trans-expr.c (gfc_conv_expr): If we have saved a reference,
336         dereference it.
337
338 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
339
340         * trans-expr.c (gfc_conv_expr): Move address taking...
341         (gfc_conv_expr_reference): ... here.
342
343 2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
344
345         PR fortran/49693
346         * trans-common.c (create_common): Update copyright years.  Mark
347         variables as used to avoid warnings about unused variables in
348         common blocks.
349
350 2012-01-03  Hans-Peter Nilsson  <hp@axis.com>
351
352         * gfortran.h (struct gfc_expr): Add missing "struct"
353         qualifier for member base_expr.
354
355 2012-01-02  Paul Thomas  <pault@gcc.gnu.org>
356
357         PR fortran/51529
358         * trans-array.c (gfc_array_allocate): Null allocated memory of
359         newly allocted class arrays.
360
361         PR fortran/46262
362         PR fortran/46328
363         PR fortran/51052
364         * interface.c(build_compcall_for_operator): Add a type to the
365         expression.
366         * trans-expr.c (conv_base_obj_fcn_val): New function.
367         (gfc_conv_procedure_call): Use base_expr to detect non-variable
368         base objects and, ensuring that there is a temporary variable,
369         build up the typebound call using conv_base_obj_fcn_val.
370         (gfc_trans_class_assign): Pick out class procedure pointer
371         assignments and do the assignment with no further prcessing.
372         (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
373         gfc_trans_class_assign): Move to top of file.
374         * gfortran.h : Add 'base_expr' field to gfc_expr.
375         * resolve.c (get_declared_from_expr): Add 'types' argument to
376         switch checking of derived types on or off.
377         (resolve_typebound_generic_call): Set the new argument.
378         (resolve_typebound_function, resolve_typebound_subroutine):
379         Set 'types' argument for get_declared_from_expr appropriately.
380         Identify base expression, if not a variable, in the argument
381         list of class valued calls. Assign it to the 'base_expr' field
382         of the final expression. Strip away all references after the
383         last class reference.
384
385 2012-01-02  Tobias Burnus  <burnus@net-b.de>
386
387         PR fortran/51682
388         * trans-intrinsic.c (trans_this_image, trans_image_index,
389         trans_num_images, conv_intrinsic_cobound): Fold_convert the
390         caf_num_images/caf_this_images variables to the correct int kind.
391
392 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
393
394         * gfortranspec.c (lang_specific_driver): Update copyright notice
395         dates.
396 \f
397 Copyright (C) 2012 Free Software Foundation, Inc.
398
399 Copying and distribution of this file, with or without modification,
400 are permitted in any medium without royalty provided the copyright
401 notice and this notice are preserved.