OSDN Git Service

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