OSDN Git Service

367383e4c9901e61b4347d3dbd7823504ef4e621
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2012-05-23  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/53389
4         * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
5         ss->is_alloc_lhs is set.
6
7 2012-05-07  Tobias Burnus  <burnus@net-b.de>
8
9         Backport from mainline:
10         2012-05-07  Tobias Burnus  <burnus@net-b.de>
11
12         PR fortran/53255
13         * resolve.c (resolve_typebound_static): Fix handling
14         of overridden specific to generic operator.
15
16 2012-05-05  Tobias Burnus  <burnus@net-b.de>
17
18         Backport from mainline:
19         2012-05-04  Tobias Burnus  <burnus@net-b.de>
20
21         PR fortran/53111
22         * resolve.c (resolve_fl_derived): Fix -std=f95
23         diagnostic for generic vs. DT names.
24
25 2012-05-02  Tobias Burnus  <burnus@net-b.de>
26
27         Backport from mainline
28         2012-04-12  Tobias Burnus  <burnus@net-b.de>
29
30         PR fortran/52864
31         * expr.c (gfc_check_vardef_context): Fix assignment check for
32         pointer components.
33
34 2012-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
35
36         PR fortran/53148
37         Backport from trunk
38         * frontend-passes.c (create_var):  If the statement has a label,
39         put the label around the block.
40
41 2012-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
42
43         PR fortran/52893
44         Backport from trunk
45         * frontend-passes.c:  Keep track of wether we are in an implicit
46         DO loop; do not do function elimination if we are.
47
48 2012-04-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
49
50         PR fortran/52668
51         Backport from trunk
52         * module.c:  Only mark symbols as use_only if they have been
53         imported via an only list.
54
55 2012-03-22  Tobias Burnus  <burnus@net-b.de>
56
57         PR fortran/52452
58         * resolve.c (resolve_intrinsic): Don't search for a
59         function if we know that it is a subroutine.
60
61 2012-03-22  Release Manager
62
63         * GCC 4.7.0 released.
64
65 2012-03-10  Tobias Burnus  <burnus@net-b.de>
66
67         PR fortran/52469
68         * trans-types.c (gfc_get_function_type): Handle backend_decl
69         of a procedure pointer.
70
71 2012-02-29  Paul Thomas  <pault@gcc.gnu.org>
72
73         PR fortran/52386
74         * trans-expr.c (fcncall_realloc_result): Dereference the
75         descriptor if needed.
76
77 2012-02-22  Tobias Burnus  <burnus@net-b.de>
78
79         PR fortran/52335
80         * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
81
82 2012-02-18  Tobias Burnus  <burnus@net-b.de>
83
84         PR fortran/52295
85         * interface.c (check_interface0): Internal procs in
86         generic interfaces are allowed in Fortran 2008.
87
88 2012-02-17  Tobias Burnus  <burnus@net-b.de>
89             Roland Stigge  <stigge@antcom.de>
90
91         PR translation/52273
92         * interface.c (compare_actual_formal): Fix typo "at at".
93
94 2012-02-17  Tobias Burnus  <burnus@net-b.de>
95
96         * gfortran.texi (Q exponent-letter): Fix grammar.
97
98 2012-02-17  Tobias Burnus  <burnus@net-b.de>
99
100         * gfortran.texi (Status): Fix typos.
101         * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with
102         a majuscule.
103
104 2012-02-17  Tobias Burnus  <burnus@net-b.de>
105             Roland Stigge  <stigge@antcom.de>
106
107         PR translation/52232
108         PR translation/52234
109         PR translation/52245
110         PR translation/52246
111         PR translation/52262
112         PR translation/52273
113         * io.c (gfc_match_open): Fix typo.
114         * interface.c (compare_actual_formal): Ditto.
115         * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto.
116         * match.c (alloc_opt_list, gfc_match_nullify): Ditto.
117         * check.c (gfc_check_associated, gfc_check_null): Ditto.
118
119 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
120
121         PR fortran/50981
122         * trans-stmt.c (gfc_get_proc_ifc_for_call): New function.
123         (gfc_trans_call): Use gfc_get_proc_ifc_for_call.
124
125 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
126
127         * trans-array.c (gfc_walk_elemental_function_args,
128         gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out
129         of gfc_walk_elemental_function_args.
130         * trans-stmt.c (gfc_trans_call): Ditto.
131         * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype.
132         (gfc_walk_elemental_function_args): Update prototype.
133
134 2012-02-12  Mikael Morin  <mikael@gcc.gnu.org>
135
136         * trans-array.c (gfc_get_proc_ifc_for_expr): New function.
137         (gfc_walk_elemental_function_args): Move code to
138         gfc_get_proc_ifc_for_expr and call it.
139
140 2012-02-08  Tobias Burnus  <burnus@net-b.de>
141
142         PR fortran/52151
143         * trans-expr.c (fcncall_realloc_result): Set also the stride.
144
145 2012-02-07  Tobias Burnus  <burnus@net-b.de>
146
147         PR fortran/51514
148         * trans-expr.c (gfc_conv_procedure_call): Add _data component
149         for calls of scalar CLASS actuals to TYPE dummies.
150
151 2012-02-05  Thomas König  <tkoenig@gcc.gnu.org>
152
153         PR fortran/48847
154         * trans-decl.c:  Warn about unused dummy procedure arguments
155         if -Wunused-dummy-argument is specified.  Suppress middle-end
156         warnings about procedure arguments.
157
158 2012-02-05  Paul Thomas  <pault@gcc.gnu.org>
159
160         * trans-array.c (gfc_array_allocate): Zero memory for all class
161         array allocations.
162         * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
163
164         PR fortran/52102
165         * trans-stmt.c (gfc_trans_allocate): Before correcting a class
166         array reference, ensure that 'dataref' points to the _data
167         component that is followed by the array reference..
168
169 2012-02-02  Mikael Morin  <mikael@gcc.gnu.org>
170
171         PR fortran/41587
172         PR fortran/46356
173         PR fortran/51754
174         PR fortran/50981
175         * class.c (insert_component_ref, class_data_ref_missing,
176         gfc_fix_class_refs): New functions.
177         * gfortran.h (gfc_fix_class_refs): New prototype.
178         * trans-expr.c (gfc_conv_expr): Remove special case handling and call
179         gfc_fix_class_refs instead.
180
181 2012-02-02  Paul Thomas  <pault@gcc.gnu.org>
182
183         PR fortran/52012
184         * trans-expr.c (fcncall_realloc_result): If variable shape is
185         correct, retain the bounds, whatever they are.
186
187 2012-02-02  Tobias Burnus  <burnus@net-b.de>
188
189         PR fortran/52093
190         * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
191
192 2012-02-01  Thomas König  <tkoenig@gcc.gnu.org>
193
194         PR fortran/51958
195         * frontend-passes.c (convert_elseif):  New function.
196         (optimize_namespace):  Call it.
197
198 2012-02-01  Tobias Burnus  <burnus@net-b.de>
199
200         PR fortran/52024
201         * module.c (MOD_VERSION): Bump.
202         (mio_typebound_proc): Read/write is_operator from/to the
203         .mod file.
204
205 2012-02-01  Tobias Burnus  <burnus@net-b.de>
206
207         PR fortran/52059
208         * trans-expr.c (gfc_conv_procedure_call): Add array ref
209         only to variables.
210
211 2012-01-31  Tobias Burnus  <burnus@net-b.de>
212
213         PR fortran/52024
214         * gfortran.h (gfc_tbp_generic): Store whether the
215         generic is an operator.
216         * decl.c (gfc_match_generic): Set that flag.
217         * resolve.c (check_generic_tbp_ambiguity): Use it in the
218         gfc_compare_interfaces check.
219
220 2012-01-31  Tobias Burnus  <burnus@net-b.de>
221
222         PR fortran/52029
223         * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
224
225 2012-01-31  Tobias Burnus  <burnus@net-b.de>
226
227         PR fortran/52013
228         * class.c (get_unique_hashed_string): Adapt trim length.
229         (gfc_build_class_symbol) Encode also corank in the container name.
230
231 2012-01-31  Paul Thomas  <pault@gcc.gnu.org>
232
233         PR fortran/52012
234         * trans-expr.c (fcncall_realloc_result): Correct calculation of
235         result offset.
236
237 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
238
239         * module.c (pointer_info): Make true_name and module pointers
240         rather than arrays, order pointers before other fields.
241         (free_pi_tree): free true_name and module as well.
242         (mio_read_string): Rename to read_string.
243         (mio_write_string): Remove.
244         (load_commons): Use read_string.
245         (read_module): Use read_string rather than mio_internal_string.
246         (write_blank_common): Call write_atom directly.
247         (write_symbol): Likewise.
248
249 2012-01-29  Tobias Burnus  <burnus@net-b.de>
250
251         PR fortran/41600
252         * expr.c (gfc_default_initializer): Convert the values if
253         the type does not match.
254
255 2012-01-29  Tobias Burnus  <burnus@net-b.de>
256
257         PR fortran/51972
258         * trans-array.c (structure_alloc_comps): Fix assignment of
259         polymorphic components (polymorphic deep copying).
260
261 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
262
263         PR fortran/51808
264         * decl.c (set_binding_label): Make binding_label argument const.
265         (curr_binding_label): Constify.
266         * gfortran.h (gfc_symbol): Constify binding_label.
267         (gfc_common_head): Likewise.
268         (get_iso_c_sym): Likewise.
269         * match.c (gfc_match_name_C): Constify buffer argument.
270         * match.h (gfc_match_name_C): Likewise.
271         * resolve.c (set_name_and_label): Constify binding_label argument.
272         (gfc_iso_c_sub_interface): Constify binding_label variable.
273         * symbol.c (get_iso_c_sym): Constify binding_label argument.
274
275 2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>
276
277         PR fortran/51808
278         * decl.c (set_binding_label): Move prototype from match.h to here.
279         (curr_binding_label): Make a pointer rather than static array.
280         (build_sym): Check sym->binding_label pointer rather than array,
281         update set_binding_label call, handle curr_binding_label changes.
282         (set_binding_label): Handle new curr_binding_label, dest_label
283         double ptr, and sym->binding_label.
284         (verify_bind_c_sym): Handle sym->binding_label being a pointer.
285         (set_verify_bind_c_sym): Check sym->binding_label pointer rather
286         than array, update set_binding_label call.
287         (gfc_match_bind_c_stmt): Handle curr_binding_label change.
288         (match_procedure_decl): Update set_binding_label call.
289         (gfc_match_bind_c): Change binding_label to pointer, update
290         gfc_match_name_C call.
291         * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
292         (gfc_symbol): Make binding_label a pointer.
293         (gfc_common_head): Likewise.
294         * match.c (gfc_match_name_C): Heap allocate bind(C) name.
295         * match.h (gfc_match_name_C): Change prototype argument.
296         (set_binding_label): Move prototype to decl.c.
297         * module.c (struct pointer_info): Make binding_label a pointer.
298         (free_pi_tree): Free unused binding_label.
299         (mio_read_string): New function.
300         (mio_write_string): New function.
301         (load_commons): Redo reading of binding_label.
302         (read_module): Likewise.
303         (write_common_0): Change to write empty string instead of name if
304         no binding_label.
305         (write_blank_common): Write empty string for binding label.
306         (write_symbol): Change to write empty string instead of name if no
307         binding_label.
308         * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
309         (set_name_and_label): Make binding_label double pointer, use
310         asprintf.
311         (gfc_iso_c_sub_interface): Make binding_label a pointer.
312         (resolve_bind_c_comms): Handle cases if
313         gfc_common_head->binding_label is NULL.
314         (gfc_verify_binding_labels): sym->binding_label is a pointer.
315         * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for
316         binding_label.
317         (gen_special_c_interop_ptr): Don't set binding label.
318         (generate_isocbinding_symbol): Insert binding_label into symbol
319         table.
320         (get_iso_c_sym): Use pointer assignment instead of strcpy.
321         * trans-common.c (gfc_sym_mangled_common_id): Handle
322         com->binding_label being a pointer.
323         * trans-decl.c (gfc_sym_mangled_identifier): Handle
324         sym->binding_label being a pointer.
325         (gfc_sym_mangled_function_id): Likewise.
326
327 2012-01-29  Tobias Burnus  <burnus@net-b.de>
328
329         PR fortran/52038
330         * resolve.c (symbol_as): Remove unused, accidentally
331         added function.
332
333 2012-01-28  Tobias Burnus  <burnus@net-b.de>
334
335         PR fortran/51972
336         * trans-stmt.c (gfc_trans_allocate): Properly check whether
337         we have a BT_CLASS which needs to be memset.
338
339 2012-01-27  Tobias Burnus  <burnus@net-b.de>
340
341         PR fortran/52022
342         * trans-expr.c (gfc_conv_procedure_call): Fix passing
343         of functions, which return allocatables.
344
345 2012-01-27  Tobias Burnus  <burnus@net-b.de>
346
347         PR fortran/52016
348         * resolve.c (resolve_formal_arglist): Fix elemental
349         constraint checks for polymorphic dummies also for
350         pointers.
351
352 2012-01-27  Tobias Burnus  <burnus@net-b.de>
353
354         PR fortran/51970
355         PR fortran/51977
356         * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
357         handle array spec for BT_CLASS.
358         * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
359         * frontend-passes.c (create_var): Ditto.
360         * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
361         * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
362         instead of attr.pointer.
363         (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
364         * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
365         * trans-stmt.c (trans_associate_var): Ask for the descriptor.
366
367 2012-01-27  Tobias Burnus  <burnus@net-b.de>
368
369         PR fortran/51953
370         * match.c (gfc_match_allocate): Allow more than allocate
371         object with SOURCE=.
372
373 2012-01-27  Tobias Burnus  <burnus@net-b.de>
374
375         PR fortran/52016
376         * resolve.c (resolve_formal_arglist): Fix elemental
377         constraint checks for polymorphic dummies.
378
379 2012-01-27  Paul Thomas  <pault@gcc.gnu.org>
380             Tobias Burnus <burnus@gcc.gnu.org>
381
382         PR fortran/48705
383         PR fortran/51870
384         PR fortran/51943
385         PR fortran/51946
386         * trans-array.c (gfc_array_init_size): Add two extra arguments
387         to convey the dynamic element size of a calls object and to
388         return the number of elements that have been allocated.
389         (gfc_array_allocate): Add the same arguments and use them to
390         call gfc_array_init_size.  Before the allocation dereference
391         the data pointer, if necessary. Set the allocated array to zero
392         if the class element size or expr3 are non-null.
393         * trans-expr.c (gfc_conv_class_to_class): Give this function
394         global scope.
395         (get_class_array_ref): New function.
396         (gfc_copy_class_to_class): New function.
397         * trans-array.h : Update prototype for gfc_array_allocate.
398         * trans-stmt.c (gfc_trans_allocate): For non-variable class
399         STATUS expressions extract the class object and the dynamic
400         element size. Use the latter to call gfc_array_allocate and
401         the former for setting the vptr and, via
402         gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
403         * trans.h : Prototypes for gfc_get_class_array_ref,
404         gfc_copy_class_to_class and gfc_conv_class_to_class.
405
406 2012-01-25  Tobias Burnus  <burnus@net-b.de>
407
408         * resolve.c (symbol_as): Check also for attr.class_ok.
409
410 2012-01-25  Tobias Burnus  <burnus@net-b.de>
411
412         PR fortran/51995
413         * class.c (gfc_build_class_symbol): Fix invalid freeing
414         issue with fclass->f2k_derived.
415
416 2012-01-25  Tobias Burnus  <burnus@net-b.de>
417
418         PR fortran/51995
419         * class.c (gfc_build_class_symbol): Ensure that
420         fclass->f2k_derived is set.
421
422 2012-01-25  Tobias Burnus  <burnus@net-b.de>
423
424         PR fortran/51966
425         * resolve.c (resolve_structure_cons): Only create an
426         array constructors for nonscalars.
427
428 2012-01-23  Tobias Burnus  <burnus@net-b.de>
429
430         PR fortran/51948
431         * check.c (variable_check): Fix checking for
432          variables and deeply nested BLOCKs.
433
434 2012-01-21  Tobias Burnus  <burnus@net-b.de>
435             Steven G. Kargl  <kargl@gcc.gnu.org>
436
437         PR fortran/50556
438         * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
439         attribute.
440
441 2012-01-21  Tobias Burnus  <burnus@net-b.de>
442
443         PR fortran/51913
444         * interface.c (compare_parameter): Fix CLASS comparison.
445
446 2012-01-20  Tobias Burnus  <burnus@net-b.de>
447             Janus Weil  <janus@gcc.gnu.org>
448
449         PR fortran/51056
450         * module.c (load_needed, read_module): Don't mark __vtab etc.
451         as use_only.
452
453 2012-01-19  Tobias Burnus  <burnus@net-b.de>
454
455         PR fortran/51904
456         * expr.c (gfc_build_intrinsic_call): Also set the symtree.
457
458 2012-01-18  Paul Thomas  <pault@gcc.gnu.org>
459
460         PR fortran/51634
461         * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
462         components of temporary class arguments.
463
464 2012-01-17  Tobias Burnus  <burnus@net-b.de>
465             Janne Blomqvist  <jb@gcc.gnu.org>
466
467         PR fortran/51869
468         * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
469         LHS after allocation, if it has allocatable components.
470         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
471
472 2012-01-16  Mikael Morin  <mikael@gcc.gnu.org>
473             Tobias Burnus  <burnus@net-b.de>
474
475         PR fortran/50981
476         * trans-array.c (gfc_walk_elemental_function_args): Fix
477         passing of deallocated allocatables/pointers as absent argument. 
478
479 2012-01-16  Tobias Burnus  <burnus@net-b.de>
480
481         PR fortran/51809
482         * class.c (gfc_find_derived_vtab): Mark __vtab and
483         __def_init as FL_VARIABLE not as FL_PARAMETER.
484         * expr.c (gfc_simplify_expr): Remove special
485         handling of __vtab.
486         * resolve.c (resolve_values): Ditto.
487         * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
488         and __def_init as TREE_READONLY.
489
490 2012-01-16  Zydrunas Gimbutas  <gimbutas@cims.nyu.edu>
491         Andreas Kloeckner  <kloeckner@cims.nyu.edu>
492         Steven G. Kargl  <kargl@gcc.gnu.org>
493
494         PR fortran/48426
495         * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
496         * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
497         -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
498         and -finteger-4-integer-8. User-desired type conversion information.
499         * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
500         in declaration parsing.
501         * trans-types.c (gfc_init_kinds): User-specified type conversion
502         checked for current backend.
503         * primary.c (match_integer_constant,match_real_constant): Implement
504         type conversion in constant parsing.
505         * options.c (gfc_init_options,gfc_handle_option): Translate input
506         options to flags in internal options data structure.
507         * invoke.texi: Document new options.  Re-order options in Options
508         summary section.
509
510 2012-01-16  Paul Thomas  <pault@gcc.gnu.org>
511
512         * trans-array.c (gfc_trans_create_temp_array): In the case of a
513         class array temporary, detect a null 'eltype' on entry and use 
514         'initial' to provde the class reference and so, through the
515         vtable, the element size for the dynamic type.
516         * trans-stmt.c (gfc_conv_elemental_dependencies): For class
517         expressions, set 'eltype' to null and pass the values via the
518         'initial' expression.
519
520 2012-01-14  Tobias Burnus  <burnus@net-b.de>
521
522         PR fortran/51800
523         * resolve.c (build_default_init_expr): Also initialize
524         nonconstant-length strings with -finit-character=<n>.
525
526 2011-01-14  Tobias Burnus  <burnus@net-b.de>
527
528         PR fortran/51816
529         * module.c (read_module): Don't make nonexisting
530         intrinsic operators as found.
531         (rename_list_remove_duplicate): New function.
532         (gfc_use_modules): Use it.
533
534 2012-01-13  Paul Thomas  <pault@gcc.gnu.org>
535
536         PR fortran/48351
537         * trans-array.c (structure_alloc_comps): Suppress interative
538         call to self, when current component is deallocated using
539         gfc_trans_dealloc_allocated.
540         * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
541         attribute from the declared type to the class structure.
542
543 2012-01-13  Tobias Burnus  <burnus@net-b.de>
544
545         PR fortran/51842
546         * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
547         instead of a signed int of size POINTER_SIZE for
548         gfc_index_integer_kind.
549
550 2012-01-12  Tobias Burnus  <burnus@net-b.de>
551
552         PR fortran/36755
553         * intrinsic.texi (CHMOD): Extend a bit and remove statement
554         that /bin/chmod is called.
555
556 2012-01-10  Gerald Pfeifer  <gerald@pfeifer.com>
557
558         * gfortran.texi (Fortran 2003 Status): Fix grammar.
559
560 2012-01-10  Tobias Burnus  <burnus@net-b.de>
561
562         PR fortran/51652
563         * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
564         check whether type-spec matches declaration.
565
566 2012-01-10  Tobias Burnus  <burnus@net-b.de>
567
568         * resolve.c (resolve_ordinary_assign): Improve error wording.
569
570 2012-01-09  Paul Thomas  <pault@gcc.gnu.org>
571
572         PR fortran/51791
573         * interface.c (matching_typebound_op): Drill down through
574         possible parentheses to obtain base expression. Do not test for
575         'class_ok' but, instead for the class structure components.
576         * resolve.c (resolve_ordinary_assign): Extend error message for
577         polymorphic assignment to advise checking for specific
578         subroutine.
579
580         PR fortran/51792
581         * resolve.c (resolve_typebound_function): Restore 'static' to
582         declaration.
583
584 2012-01-09  Mikael Morin  <mikael@gcc.gnu.org>
585
586         PR fortran/51758
587         * trans-array.c (gfc_walk_elemental_function_args):
588         Skip over NULL() actual arguments.
589
590 2012-01-09  Tobias Burnus  <burnus@net-b.de>
591
592         * gfortran.texi: Bump copyright year.
593         (Fortran 2003 Status): Update polymorphism item, add
594         item for generic interface with DT name.
595
596 2012-01-09  Tobias Burnus  <burnus@net-b.de>
597
598         PR fortran/51578
599         * gfortran.h (gfc_use_list):
600         * match.h (gfc_use_module): Rename to ...
601         (gfc_use_modules): ... this.
602         * module.c (use_locus, specified_nonint, specified_int): Remove
603         global variable.
604         (module_name): Change type to const char*, used with gfc_get_string.
605         (module_list): New global variable.
606         (free_rename): Free argument not global var.
607         (gfc_match_use): Save match to module_list.
608         (load_generic_interfaces, read_module): Don't free symtree.
609         (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
610         type change of module_name.
611         (write_symbol0, write_generic): Optimize due to the type change.
612         (import_iso_c_binding_module, use_iso_fortran_env_module): Use
613         locus of rename->where.
614         (gfc_use_module): Take module_list as argument.
615         (gfc_use_modules): New function.
616         (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
617         * parse.c (last_was_use_stmt): New global variable.
618         (use_modules): New function.
619         (decode_specification_statement, decode_statement): Move USE match up
620         and call use_modules.
621         (next_free, next_fixed): Call use_modules.
622         (accept_statement): Don't call gfc_module_use.
623
624 2012-01-06  Tobias Burnus <burnus@net-b.de>
625
626         * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
627         Update call to gfc_trans_dealloc_allocated.
628         * trans.c (gfc_allocate_using_malloc): Fix spacing.
629         (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
630         label_finish when an error occurs.
631         (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
632         * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
633         Update prototype.
634         (gfor_fndecl_caf_deregister): New tree symbol.
635         * trans-expr.c (gfc_conv_procedure_call): Update
636         gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
637         * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
638         structure_alloc_comps, gfc_trans_deferred_array): Ditto.
639         (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
640         * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
641         gfc_trans_dealloc_allocated): Update prototypes.
642         * trans-stmt.c (gfc_trans_sync): Fix indentation.
643         (gfc_trans_allocate): Fix errmsg padding and label handling.
644         (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
645         * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
646         * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
647         to avoid other stats accidentally matching this one.
648         * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
649         (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
650         and add decl for caf_deregister.
651         (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
652         * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
653         gfc_deallocate_with_status.
654
655 2012-01-05  Paul Thomas  <pault@gcc.gnu.org>
656
657         PR fortran/PR48946
658         * resolve.c (resolve_typebound_static): If the typebound
659         procedure is 'deferred' try to find the correct specific
660         procedure in the derived type operator space itself.
661
662 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
663
664         PR fortran/50981
665         * trans-array.h (gfc_walk_elemental_function_args): New argument.
666         * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
667         * trans-stmt.c (gfc_trans_call): Ditto.
668         * trans-array.c (gfc_walk_function_expr): Ditto.
669         (gfc_walk_elemental_function_args): Get the dummy argument list
670         if possible.  Check that the dummy and the actual argument are both
671         optional, and set can_be_null_ref accordingly.
672
673 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
674
675         PR fortran/50981
676         * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
677         * trans-array.c: If the reference can be NULL, save the reference
678         instead of the value.
679         * trans-expr.c (gfc_conv_expr): If we have saved a reference,
680         dereference it.
681
682 2012-01-04  Mikael Morin  <mikael@gcc.gnu.org>
683
684         * trans-expr.c (gfc_conv_expr): Move address taking...
685         (gfc_conv_expr_reference): ... here.
686
687 2012-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
688
689         PR fortran/49693
690         * trans-common.c (create_common): Update copyright years.  Mark
691         variables as used to avoid warnings about unused variables in
692         common blocks.
693
694 2012-01-03  Hans-Peter Nilsson  <hp@axis.com>
695
696         * gfortran.h (struct gfc_expr): Add missing "struct"
697         qualifier for member base_expr.
698
699 2012-01-02  Paul Thomas  <pault@gcc.gnu.org>
700
701         PR fortran/51529
702         * trans-array.c (gfc_array_allocate): Null allocated memory of
703         newly allocted class arrays.
704
705         PR fortran/46262
706         PR fortran/46328
707         PR fortran/51052
708         * interface.c(build_compcall_for_operator): Add a type to the
709         expression.
710         * trans-expr.c (conv_base_obj_fcn_val): New function.
711         (gfc_conv_procedure_call): Use base_expr to detect non-variable
712         base objects and, ensuring that there is a temporary variable,
713         build up the typebound call using conv_base_obj_fcn_val.
714         (gfc_trans_class_assign): Pick out class procedure pointer
715         assignments and do the assignment with no further prcessing.
716         (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
717         gfc_trans_class_assign): Move to top of file.
718         * gfortran.h : Add 'base_expr' field to gfc_expr.
719         * resolve.c (get_declared_from_expr): Add 'types' argument to
720         switch checking of derived types on or off.
721         (resolve_typebound_generic_call): Set the new argument.
722         (resolve_typebound_function, resolve_typebound_subroutine):
723         Set 'types' argument for get_declared_from_expr appropriately.
724         Identify base expression, if not a variable, in the argument
725         list of class valued calls. Assign it to the 'base_expr' field
726         of the final expression. Strip away all references after the
727         last class reference.
728
729 2012-01-02  Tobias Burnus  <burnus@net-b.de>
730
731         PR fortran/51682
732         * trans-intrinsic.c (trans_this_image, trans_image_index,
733         trans_num_images, conv_intrinsic_cobound): Fold_convert the
734         caf_num_images/caf_this_images variables to the correct int kind.
735
736 2012-01-01  Jakub Jelinek  <jakub@redhat.com>
737
738         * gfortranspec.c (lang_specific_driver): Update copyright notice
739         dates.
740 \f
741 Copyright (C) 2012 Free Software Foundation, Inc.
742
743 Copying and distribution of this file, with or without modification,
744 are permitted in any medium without royalty provided the copyright
745 notice and this notice are preserved.