OSDN Git Service

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