OSDN Git Service

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