OSDN Git Service

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