OSDN Git Service

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