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