OSDN Git Service

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