OSDN Git Service

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