OSDN Git Service

2011-05-31 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-05-31  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/18918
4         * intrinsic.c (klass): Add CLASS_ATOMIC.
5         (add_subroutines): Add atomic_ref/atomic_define.
6         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
7         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
8         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
9         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
10         and GFC_ISYM_ATOMIC_REF.
11         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
12         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
13         functions.
14         * check.c (gfc_check_atomic, gfc_check_atomic_def,
15         gfc_check_atomic_ref): New functions.
16         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
17         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
18         * trans-intrinsic.c (conv_intrinsic_atomic_def,
19         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
20         functions.
21         (conv_intrinsic_move_alloc) Renamed from
22         gfc_conv_intrinsic_move_alloc - and made static.
23         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
24         (gfc_conv_intrinsic_subroutine) Add prototype.
25         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
26         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
27         global vars.
28         (gfc_init_kinds): Set them.
29
30 2011-05-31  Tobias Burnus  <burnus@net-b.de>
31
32         PR fortran/18918
33         * trans-array.c (gfc_trans_dummy_array_bias): Handle
34         cobounds of assumed-shape arrays.
35
36 2011-05-31  Tobias Burnus  <burnus@net-b.de>
37
38         PR fortran/18918
39         * resolve.c (resolve_fl_variable): Handle static coarrays
40         with non-constant cobounds.
41
42 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
43
44         PR fortran/47601
45         * module.c (mio_component_ref): Handle components of extended types.
46         * symbol.c (gfc_find_component): Return is sym is NULL.
47
48 2011-05-29  Tobias Burnus  <burnus@net-b.de>
49
50         PR fortran/18918
51         * interface.c (compare_parameter): Add check for passing coarray
52         to allocatable noncoarray dummy.
53
54 2011-05-29  Tobias Burnus  <burnus@net-b.de>
55             Richard Guenther  <rguenther@suse.de>
56
57         PR fortran/18918
58         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
59         the type's TREE_TYPE.
60         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
61         * trans.c (gfc_build_array_ref): Ditto.
62
63 2011-05-27  Tobias Burnus  <burnus@net-b.de>
64
65         PR fortran/18918
66         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
67         * match.c (gfc_match_nullify): Ditto.
68         * resolve.c (resolve_deallocate_expr): Ditto.
69         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
70         for nonpointers.
71
72 2011-05-27  Tobias Burnus  <burnus@net-b.de>
73
74         PR fortran/48820
75         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
76         * intrinsic.c (add_functions): Add rank intrinsic.
77         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
78         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
79         * simplify.c (gfc_simplify_rank): New function.
80         * intrinsic.texi (RANK): Add description for rank intrinsic.
81         * check.c (gfc_check_rank): New function.
82
83 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
84             Thomas Koenig  <tkoenig@gcc.gnu.org>
85
86         PR fortran/48955
87         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
88         changed to GFC_ENABLE_REVERSE.
89         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
90         to GFC_INHIBIT_REVERSE.
91         * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE,
92         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
93         * dependency.c (gfc_dep_resolver): Change names for elements of
94         gfc_reverse as necessary. Change the logic so that forward
95         dependences are remembered as well as backward ones. When both
96         have appeared, force a temporary.
97
98 2011-05-26  Tobias Burnus  <burnus@net-b.de>
99
100         PR fortran/18918
101         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
102         * trans-decl.c (has_coarray_vars, caf_init_block,
103         gfor_fndecl_caf_register): New file-global variables.
104         (gfc_finish_var_decl): Make sure that coarrays in main are static.
105         (gfc_build_qualified_array): Generate coarray token variable.
106         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
107         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
108         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
109         static coarrays.
110         (generate_local_decl): Check for local coarrays.
111         (create_main_function): SYNC ALL before calling MAIN.
112         (generate_coarray_sym_init): Register static coarray.
113         (generate_coarray_init): Generate CAF registering constructor
114         function.
115         (gfc_generate_function_code): Call it, if needed, do not create
116         cgraph twice.
117         (gfc_generate_module_vars, gfc_process_block_locals): Call
118         generate_coarray_init.
119         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
120         -fcoarray=lib.
121         * trans.h (gfor_fndecl_caf_register): New variable.
122         (lang_type): New element caf_token.
123         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
124
125 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
126
127         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
128         (gfortran$(exeext)): Use libcommon-target.a.
129
130 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
131
132         * frontend-passes.c (cfe_register_funcs):  Also register
133         character functions if their charlens are known and constant.
134         Also register allocatable functions.
135
136 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
137
138         PR fortran/48699
139         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
140         selector is ALLOCATABLE.
141
142 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
143
144         PR fortran/48706
145         * module.c (write_dt_extensions): Do not write extended types which
146         are local to a subroutine.
147
148 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
149
150         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
151
152 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
153
154         * gfortran.texi (set_fpe): Update documentation.
155         * invoke.texi (-ffpe-trap): Likewise.
156         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
157         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
158         precision an alias for it.
159
160 2011-05-19  Tobias Burnus  <burnus@net-b.de>
161
162         PR fortran/18918
163         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
164         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
165         coarrays.
166         * trans.c (gfc_build_array_ref): Return original type not variant
167         copy for scalar coarrays.
168         * trans-array.c (gfc_conv_array_ref): Ditto.
169
170 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
171
172         PR fortran/48700
173         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
174         argument to avoid memory leaks.
175
176 2011-05-16  Tobias Burnus  <burnus@net-b.de>
177
178         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
179         (Fortran 2008 status): Multi-image support for coarrays.
180         (TR 19113 status): New section.
181
182 2011-05-15  Tobias Burnus  <burnus@net-b.de>
183
184         PR fortran/18918
185         actual argument is not an array; rank mismatch is diagnosted later.
186         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
187         scalar coarrays.
188         * trans-types.c (gfc_get_array_type_bounds): Ditto.
189
190 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
191
192         PR middle-end/46500
193         * trans-types.c: Include "tm.h".
194         [0] (c_size_t_size): Remove.
195
196 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
197
198         PR libfortran/48915
199         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
200         is now the default, the library defaults to backtracing disabled.
201
202 2011-05-14  Tobias Burnus  <burnus@net-b.de>
203
204         * lang.opt (fdump-core): Re-add as ignored option
205         for backward compatibility.
206
207 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
208
209         PR libfortran/48915
210         * gfortran.texi: Update mixed-language programming section
211         reflecting the removal of the fdump-core option, and that
212         -fbacktrace is now enabled by default.
213
214 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
215
216         PR fortran/22572
217         * frontend-passes.c (cfe_register_funcs):  Also register functions
218         for potential elimination if the rank is > 0, the shape is unknown
219         and reallocate on assignment is active.
220         (create_var):  For rank > 0 functions with unknown shape, create
221         an allocatable temporary.
222
223 2011-05-14  Tobias Burnus  <burnus@net-b.de>
224
225         PR fortran/18918
226         * interface.c (compare_parameter): Skip diagnostic if
227         actual argument is not an array; rank mismatch is diagnosted later.
228
229 2011-05-14  Tobias Burnus  <burnus@net-b.de>
230
231         * options.c (gfc_init_options, gfc_post_options): Enable
232         -fstack-arrays by default if -Ofast is used.
233         * invoke.texi (-fstack-arrays): Document this.
234
235 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
236
237         PR libfortran/48915
238         * gfortran.h (gfc_option_t): Remove flag_dump_core.
239         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
240         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
241         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
242         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
243         enabled by default.
244         * lang.opt: Remove -fdump-core.
245         * options.c (gfc_init_options): Make backtrace default to enabled,
246         remove dump_core.
247         (gfc_handle_option): Remove OPT_fdump-core.
248         * trans-decl.c: Pass a 0 to preserve ABI.
249
250 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
251
252         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
253
254 2011-05-13  Tobias Burnus  <burnus@net-b.de>
255
256         PR fortran/48972
257         * io.c (resolve_tag_format, resolve_tag): Make sure
258         that the string is of default kind.
259         (gfc_resolve_inquire): Also resolve decimal tag.
260
261 2011-05-12  Tobias Burnus  <burnus@net-b.de>
262
263         PR fortran/48972
264         * resolve.c (resolve_intrinsic): Don't resolve module
265         intrinsics multiple times.
266
267 2011-05-11  Tobias Burnus  <burnus@net-b.de>
268
269         PR fortran/48889
270         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
271         instead of e->symtree->n.sym, if available.
272
273 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
274
275         * f95-lang.c (global_bindings_p): Return bool and simplify.
276
277 2011-05-07  Tobias Burnus  <burnus@net-b.de>
278
279         PR fortran/18918
280         PR fortran/48919
281         * trans.h: Move gfc_init_coarray_decl prototype ...
282         * gfortran.h: ... to here.
283         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
284         (gfc_parse_file): Update translate_all_program_units call.
285         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
286         new argument whether DECL_EXTERNAL should be used.
287         (create_main_function): Update gfc_init_coarray_decl call.
288         * trans-intrinsic.c (trans_this_image, trans_image_index,
289         conv_intrinsic_cobound): Ditto.
290
291 2011-05-06  Tobias Burnus  <burnus@net-b.de>
292
293         PR fortran/18918
294         * trans-array.c (gfc_walk_variable_expr): Continue walking
295         for scalar coarrays.
296         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
297         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
298         (trans_this_image): Fix algorithm.
299         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
300         gfc_sym_type): Handle scalar coarrays.
301
302 2011-05-06  Tobias Burnus  <burnus@net-b.de>
303
304         PR fortran/48858
305         PR fortran/48820
306         * lang.opt (std=f2008tr): New.
307         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
308         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
309         procedures for -std=f2008tr/gnu/legacy.
310         (gfc_match_import): Set sym to NULL.
311         * options.c (set_default_std_flags,gfc_handle_option): Handle
312         -std=f2008tr.
313         * invoke.texi (-std=): Document -std=f2008tr.
314
315 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
316
317         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
318         * trans-io.c (add_case): Likewise.
319         * trans-stmt.c (gfc_trans_integer_select): Likewise.
320         (gfc_trans_character_select): Likewise.
321
322 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
323
324         * trans-decl.c (trans_function_start): Do not set
325         dont_save_pending_sizes_p.
326
327 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
328
329         * trans.h (gfc_chainon_list): Delete.
330         * trans.c (gfc_chainon_list): Delete.
331
332 2011-05-04  Tobias Burnus  <burnus@net-b.de>
333
334         PR fortran/48864
335         * invoke.texi (fno-protect-parens): Document
336         that -Ofast implies -fno-protect-parens.
337         * options.c (gfc_init_options, gfc_post_options):
338         Make -Ofast imply -fno-protect-parens.
339
340 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
341
342         * trans-decl.c (build_library_function_decl_1): Call
343         build_function_type_vec.  Adjust argument list building accordingly.
344         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
345         * trans-types.c (gfc_get_function_type): Likewise.
346
347 2011-05-04  Richard Guenther  <rguenther@suse.de>
348
349         * trans-array.c (gfc_trans_array_constructor_value): Use
350         size_int for bounds of range types.
351         (gfc_trans_array_constructor_value): Use size_type_node
352         for memcpy argument.
353         * trans-common.c (build_field): Use gfc_charlen_type_node
354         for lengths.
355         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
356         as type to build_int_cst.
357         * trans-const.c (gfc_build_string_const): Use size_int
358         for bounds of range types.
359         (gfc_build_wide_string_const): Likewise.
360         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
361         for lengths.
362         (gfc_trans_character_select): Likewise.
363         (gfc_trans_character_select): Do not pass NULL
364         as type to build_int_cst.
365         (gfc_trans_character_select): Use size_int for bounds of range types.
366         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
367         (add_case): Do not pass NULL as type to build_int_cst.
368         (transfer_expr): Likewise.
369         (transfer_array_desc): Likewise.
370         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
371         for lengths.
372         (gfc_trans_assign_aux_var): Likewise.
373         (create_main_function): Use size_int for bounds of range types.
374         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
375         NULL as type to build_int_cst.
376         (gfc_conv_intrinsic_spacing): Likewise.
377         (gfc_conv_intrinsic_rrspacing): Likewise.
378         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
379
380 2011-05-04  Richard Guenther  <rguenther@suse.de>
381
382         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
383         argument to int_const_binop.
384
385 2011-05-03  Tobias Burnus  <burnus@net-b.de>
386
387         PR fortran/18918
388         * trans-intrinsic.c (trans_this_image): Implement version with
389         coarray argument.
390         (conv_intrinsic_cobound): Simplify code.
391         (gfc_conv_intrinsic_function): Call trans_this_image for
392         this_image(coarray) except for -fcoarray=single.
393
394 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
395
396         PR fortran/48720
397         * gfortran.texi: Document the 'Q' exponent-letter extension.
398         * invoke.texi: Document -Wreal-q-constant.
399         * lang.opt: Add -Wreal-q-constant option.
400         * gfortran.h: Add warn_real_q_constant to option struct.
401         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
402         exponent-letter for REAL(16) real-literal-constant with a
403         fallback to REAL(10) or error if REAL(10) is not available.
404         * options.c (gfc_init_options, set_Wall) Set it.
405         (gfc_handle_option): Handle new option.
406
407 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
408
409         * dump-prase-tree.c (show_code_node):  Set the current
410         namespace to the BLOCK before displaying it; restore
411         afterwards.
412
413 2011-04-30  Tobias Burnus  <burnus@net-b.de>
414
415         PR fortran/48821
416         * decl.c (gfc_match_import): Don't try to find the
417         symbol if already found.
418
419 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
420
421         PR fortran/48746
422         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
423         offset so that the lbounds are one.
424         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
425
426 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
427
428         PR fortran/48462
429         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
430         automatic reallocation when the lhs is a target.
431
432         PR fortran/48746
433         * trans-expr.c (fcncall_realloc_result): Make sure that the
434         result dtype field is set before the function call.
435
436 2011-04-29  Tobias Burnus  <burnus@net-b.de>
437
438         PR fortran/48810
439         * resolve.c (resolve_typebound_generic_call): Don't check access
440         flags of the specific function.
441
442         PR fortran/48800
443         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
444         to AS_ASSUMED_SHAPE for function results.
445         (resolve_fl_var_and_proc): Print also for function results with
446         AS_DEFERRED an error, if they are not a pointer or allocatable.
447         (resolve_types): Make sure arguments of procedures in interface
448         blocks are resolved.
449
450 2011-04-29  Michael Matz  <matz@suse.de>
451
452         * options.c (options.c): Set warn_maybe_uninitialized.
453
454 2011-04-28  Tobias Burnus  <burnus@net-b.de>
455
456         PR fortran/48112
457         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
458         function results only once.
459         (resolve_symbol): Always resolve function results.
460
461         PR fortran/48279
462         * expr.c (gfc_check_vardef_context): Fix handling of generic
463         EXPR_FUNCTION.
464         * interface.c (check_interface0): Reject internal functions
465         in generic interfaces, unless -std=gnu.
466
467 2011-04-27  Tobias Burnus  <burnus@net-b.de>
468
469         PR fortran/48788
470         * resolve.c (resolve_global_procedure): Error recovery -
471         avoid segfault for (non)character-returning functions.
472
473 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
474
475         * decl.c (gfc_match_end):  Check that the block name starts
476         with "block@".
477         * parse.c (gfc_build_block_ns):  Make block names unique by
478         numbering them.
479
480 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
481
482         * frontend-passes.c (inserted_block):  New variable.
483         (changed_statement):  Likewise.
484         (create_var):  Encase statement to be operated on in a BLOCK.
485         Adjust code insertion for BLOCK.
486         (cfe_code):  Set inserted_block and changed_statement to NULL.
487
488 2011-04-23  Tobias Burnus  <burnus@net-b.de>
489
490         PR fortran/18918
491         * module.c (mio_array_spec): Set as->cotype on reading.
492         * resolve.c (resolve_allocate_expr): Fix allocating coarray
493         components.
494
495 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
496
497         PR fortran/48405
498         * frontend_passes (cfe_register_funcs): Remove workaround for DO
499         loops.
500         (gfc_code_walker):  Make sure the pointer to the current
501         statement doen't change when other statements are inserted.
502
503 2011-04-21  Tobias Burnus  <burnus@net-b.de>
504
505         PR fortran/18918
506         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
507
508 2011-04-20  Jim Meyering  <meyering@redhat.com>
509
510         * expr.c (free_expr0): Remove useless if-before-free.
511         * gfortranspec.c (lang_specific_pre_link): Likewise.
512         * interface.c (gfc_extend_expr): Likewise.
513         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
514
515 2011-04-19  Tobias Burnus  <burnus@net-b.de>
516
517         PR fortran/48588
518         PR fortran/48692
519
520         * module.c (fix_mio_expr): Commit created symbol.
521
522 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
523
524         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
525
526 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
527
528         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
529         free.
530
531 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
532
533         * misc.c (gfc_getmem): Remove function.
534         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
535         usage with XCNEW or XCNEWVEC.
536         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
537         XCNEW or XCNEWVEC.
538         * options.c (gfc_handle_module_path_options)
539         (gfc_get_option_string): Likewise.
540         * resolve.c (gfc_resolve_forall): Likewise.
541         * simplify.c (simplify_transformation_to_array): Likewise.
542         * target-memory.c (gfc_target_interpret_expr): Likewise.
543         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
544         (get_init_field): Likewise.
545         * trans-expr.c (gfc_conv_statement_function): Likewise.
546         * trans-io.c (nml_full_name): Likewise.
547         * trans-stmt.c (gfc_trans_forall_1): Likewise.
548         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
549
550 2011-04-19  Tobias Burnus  <burnus@net-b.de>
551
552         PR fortran/48588
553         * parse.c (resolve_all_program_units): Skip modules.
554         (translate_all_program_units): Handle modules.
555         (gfc_parse_file): Defer code generation for modules.
556
557 2011-04-19  Martin Jambor  <mjambor@suse.cz>
558
559         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
560         instead of cgraph_get_create_node.
561
562 2011-04-18  Jim Meyering  <meyering@redhat.com>
563
564         remove now-unused definition of gfc_free
565         * misc.c (gfc_free): Remove function.
566         * gfortran.h (gfc_free): Remove its prototype.
567
568 2011-04-18  Jim Meyering  <meyering@redhat.com>
569
570         convert each use of gfc_free (p) to free (p)
571         Do that by running this command:
572           perl -pi -e    's/\bgfc_free ?\(/free (/' \
573             $(git grep -El '\bgfc_free ?\(')
574         which also corrects the few uses that lacked a space between
575         the function name and the open parenthesis.
576         Manually undo the change to the function definition itself
577         and its prototype.  They'll be removed next.
578         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
579         * constructor.c (node_free): Likewise.
580         * cpp.c (dump_queued_macros): Likewise.
581         * data.c (gfc_assign_data_value): Likewise.
582         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
583         (gfc_free_data_all, match_old_style_init): Likewise.
584         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
585         Likewise.
586         (gfc_match_modproc): Likewise.
587         * dependency.c (check_section_vs_section): Likewise.
588         * error.c (gfc_pop_error, gfc_free_error): Likewise.
589         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
590         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
591         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
592         Likewise.
593         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
594         (strip_function_call, optimize_comparison): Likewise.
595         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
596         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
597         Likewise.
598         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
599         (gfc_convert_chartype): Likewise.
600         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
601         Likewise.
602         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
603         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
604         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
605         Likewise.
606         (free_case, gfc_free_forall_iterator): Likewise.
607         * misc.c: Likewise.
608         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
609         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
610         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
611         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
612         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
613         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
614         * openmp.c (gfc_free_omp_clauses): Likewise.
615         * options.c (gfc_post_options): Likewise.
616         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
617         * primary.c (gfc_free_structure_ctor_component): Likewise.
618         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
619         (gfc_resolve_forall, resolve_equivalence): Likewise.
620         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
621         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
622         (load_file, gfc_read_orig_filename): Likewise.
623         * simplify.c (simplify_transformation_to_array): Likewise.
624         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
625         Likewise.
626         (gfc_simplify_compiler_options): Likewise.
627         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
628         (gfc_free_association_list): Likewise.
629         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
630         Likewise.
631         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
632         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
633         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
634         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
635         Likewise.
636         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
637         (gfc_free_namespace): Likewise.
638         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
639         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
640         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
641         * trans-common.c (get_init_field, create_common): Likewise.
642         * trans-const.c (gfc_build_wide_string_const): Likewise.
643         (gfc_conv_string_init): Likewise.
644         * trans-decl.c (gfc_generate_function_code): Likewise.
645         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
646         Likewise.
647         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
648         (gfc_trans_subarray_assign): Likewise.
649         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
650         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
651         (transfer_namelist_element, transfer_array_component): Likewise.
652         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
653         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
654         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
655         Likewise.
656
657 2011-04-15  Jim Meyering  <meyering@redhat.com>
658
659         gfortran: remove cpp definition of free, ...
660         in preparation for the s/gfc_free/free/ transformation.
661         * gfortran.h (free): Remove macro definition that would otherwise
662         prevent direct use of the function.
663
664 2011-04-18  Tobias Burnus  <burnus@net-b.de>
665
666         PR fortran/18918
667         * array.c (gfc_match_array_ref): Check for too many codimensions.
668         * check.c (gfc_check_image_index): Check number of elements
669         in SUB argument.
670         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
671
672 2011-04-18  Tobias Burnus  <burnus@net-b.de>
673
674         PR fortran/18918
675         * iresolve.c (gfc_resolve_image_index): Set ts.type.
676         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
677         are not known at compile time and handle -fcoarray=lib.
678         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
679         IMAGE_INDEX.
680         (conv_intrinsic_cobound): Fix comment typo.
681         (trans_this_image): New function.
682         * trans-array.c (gfc_unlikely): Move to trans.c.
683         * trans.c (gfc_unlikely): Function moved from trans-array.c.
684         (gfc_trans_runtime_check): Use it.
685         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
686         * trans.h (gfc_unlikely): Add prototype.
687
688 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
689
690         PR fortran/48462
691         * trans-expr.c (fcncall_realloc_result): Renamed version of
692         realloc_lhs_bounds_for_intrinsic_call that does not touch the
693         descriptor bounds anymore but makes a temporary descriptor to
694         hold the result.
695         (gfc_trans_arrayfunc_assign): Modify the reference to above
696         renamed function.
697
698 2011-05-17  Tobias Burnus  <burnus@net-b.de>
699
700         PR fortran/48624
701         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
702         for external procedures with proc arguments.
703
704 2011-04-15  Michael Matz  <matz@suse.de>
705
706         * trans-array.c (toplevel): Include gimple.h.
707         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
708         properly expand variable length arrays.
709         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
710         variable length decls and associate them with their scope.
711         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
712         * options.c (gfc_init_options): Handle -fstack_arrays option.
713         * lang.opt (fstack-arrays): Add option.
714         * invoke.texi (Code Gen Options): Document it.
715         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
716
717 2011-04-15  Tobias Burnus  <burnus@net-b.de>
718
719         PR fortran/18918
720         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
721         code which is also causing an ICE.
722
723 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
724
725         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
726
727 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
728
729         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
730         calling TREE_CHAIN.
731
732 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
733
734         PR fortran/48360
735         PR fortran/48456
736         * trans-array.c (get_std_lbound): For derived type variables
737         return array valued component lbound.
738
739 2011-04-12  Martin Jambor  <mjambor@suse.cz>
740
741         * trans-decl.c (gfc_generate_function_code): Call
742         cgraph_get_create_node instead of cgraph_node.
743
744 2011-04-11  Tobias Burnus  <burnus@net-b.de>
745
746         PR fortran/18918
747         * simplify.c (simplify_bound_dim): Exit for
748         ucobound's last dimension unless -fcoarray=single.
749         * trans-array (gfc_conv_descriptor_size_1): Renamed from
750         gfc_conv_descriptor_size, made static, has now from_dim and
751         to_dim arguments.
752         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
753         (gfc_conv_descriptor_cosize): New function.
754         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
755         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
756         and handle last codim of ucobound for when -fcoarray is not "single".
757
758 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
759
760         PR fortran/48448
761         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
762         flag_frontend_optimize.
763         * lang.opt (Wfunction-elimination):  Add.
764         (ffrontend-optimize):  Add.
765         * invoke.texi:  Add documentation for -Wfunction-elimination
766         and -ffrontend-optimize.  Add -faggressive-function-elimination
767         to list of code generation options.
768         * frontend-passes.c (gfc_run_passes):  Run optimizations if
769         flag_frontend_optimize is set.
770         (warn_function_elimination):  New function.
771         (cfe_expr_0):  Call it if requested to do so.
772         * options.c (gfc_init_options):  Initiate warn_function_elimination
773         and flag_frontend_optimize.
774         (gfc_post_options):  Set flag_frontend_optimize if not specified
775         by user, depending on the optimization level.
776         (gfc_handle_option):  Handle -Wfunction-elimination and
777         -ffrontend-optimize.
778
779 2011-04-06  Tobias Burnus  <burnus@net-b.de>
780
781         PR fortran/18918
782         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
783         call for this_image.
784
785 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
786
787         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
788         build_function_type_list instead of build_function_type.  Correct
789         argument order for func_frexp and func_scalbn.
790
791 2011-04-05  Duncan Sands  <baldrick@free.fr>
792
793         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
794
795 2010-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
796
797         * frontend-passes: (optimize_lexical_comparison): New function.
798         (optimize_expr): Call it.
799         (optimize_comparison): Also handle lexical comparison functions.
800         Return false instad of -2 for unequal comparison.
801
802 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
803
804         PR fortran/48412
805         * frontend-passes (cfe_expr_0):  Reverse the order of going
806         through the loops.
807
808 2011-04-04  Tobias Burnus  <burnus@net-b.de>
809             Mikael Morin  <mikael.morin@sfr.fr>
810
811         PR fortran/18918
812         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
813         * expr.c (gfc_is_coindexed): Ditto.
814         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
815         * interface.c (compare_parameter): Use gfc_expr_attr and
816         gfc_is_coindexed.
817         * resolve.c (check_dimension, compare_spec_to_ref,
818         resolve_allocate_expr, check_data_variable): Update for
819         DIMEN_THIS_IMAGE.
820         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
821         gfc_simplify_ucobound): Allow non-constant bounds.
822         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
823         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
824         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
825         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
826         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
827         gfc_conv_ss_startstride, gfc_conv_loop_setup,
828         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
829         gfc_walk_variable_expr): Handle codimen.
830         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
831         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
832         (conv_intrinsic_cobound): New function.
833         (gfc_conv_intrinsic_function): Call it.
834         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
835         ucobound, lcobound, this_image.
836         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
837         (gfc_get_dtype): Honour corank.
838         (gfc_get_nodesc_array_type): Save corank and codimensions.
839         (gfc_get_array_type_bounds): Save cobound.
840         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
841         (gfc_array_kind): Add corank item.
842         (GFC_TYPE_ARRAY_CORANK): New macro.
843
844 2011-04-03  Kai Tietz  <ktietz@redhat.com>
845
846         PR middle-end/48422
847         * Make-lang.in (f95-lang.o): Add some missing dependencies.
848
849 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
850
851         PR fortran/48352
852         * frontend-passes (cfe_register_funcs):  Don't
853         register functions if they appear as iterators in DO loops.
854
855 2011-03-30  Michael Matz  <matz@suse.de>
856
857         PR fortran/47516
858         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
859         don't use local variable.
860         (gfc_trans_arrayfunc_assign): Adjust caller.
861
862 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
863
864         PR fortran/48095
865         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
866         * module.c (MOD_VERSION): Bump.
867         (mio_typespec): Read/write 'interface' field.
868         * primary.c (match_string_constant,match_logical_constant): Remove
869         unneeded code.
870         (match_complex_constant): Make sure to clear the typespec.
871
872 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
873
874         * frontend-passes.c (create_var):  Warn about creating an
875         array temporary if requested.
876
877 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
878
879         PR fortran/47065
880         * frontend-passes.c (optimize_trim): Also follow references, except
881         when they are substring references or array references.
882
883 2011-03-27  Tobias Burnus  <burnus@net-b.de>
884
885         PR fortran/18918
886         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
887         GFC_ISYM_NUM_IMAGES.
888         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
889         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
890         rename.
891         * invoke.texi (-fcoarray=): Document "lib" argument.
892         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
893         * libgfortran.h (libgfortran_stat_codes): Add comments.
894         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
895         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
896         Handle GFC_FCOARRAY_LIB.
897         * trans.h (gfc_init_coarray_decl): New prototype.
898         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
899         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
900         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
901         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
902         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
903         New global variables.
904         * trans-decl.c: Declare several CAF functions (cf. above).
905         (gfc_build_builtin_function_decls): Initialize those.
906         (gfc_init_coarray_decl): New function.
907         (create_main_function): Call CAF init/finalize functions.
908         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
909         (gfc_conv_intrinsic_function): Call those.
910         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
911         Add code for GFC_FCOARRAY_LIB.
912
913 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
914
915         PR fortran/48291
916         * class.c (get_unique_hashed_string): Adjust maximum allowable length
917         for unique type string.
918
919 2011-03-25  Kai Tietz  <ktietz@redhat.com>
920
921         * scanner.c (preprocessor_line): Use filename_cmp
922         instead of strcmp.
923
924 2011-03-25  Tobias Burnus  <burnus@net-b.de>
925
926         PR fortran/48174
927         PR fortran/45304
928         * trans-types.c (gfc_get_function_type): Don't use varargs if the
929         procedure is known to have no arguments.
930
931 2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
932
933         PR fortran/22572
934         * gfortran.h (gfc_option_t) : Add
935         flag_aggressive_function_elimination.
936         (gfc_dep_compare_functions):  Add prototype.
937         * lang.opt: Add faggressive-function-elimination.
938         * invoke.texi: Document -faggressive-function-elimination.
939         * frontend_passes (expr_array):  New static variable.
940         (expr_size):  Likewise.
941         (expr_count):  Likewise.
942         (current_code):  Likewise.
943         (current_ns):  Likewise.
944         (gfc_run_passes):  Allocate and free space for expressions.
945         (cfe_register_funcs):  New function.
946         (create_var):  New function.
947         (cfc_expr_0):  New function.
948         (cfe_code):  New function.
949         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
950         and cfe_expr_0.
951         * dependency.c (gfc_dep_compare_functions):  New function.
952         (gfc_dep_compare_expr):  Use it.
953         * options.c (gfc_init_options):  Handle
954         flag_aggressive_function_elimination.
955         (gfc_handle_option):  Likewise.
956
957 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
958
959         * arith.c (arith_power): Plug memory leak.
960
961 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
962
963         PR fortran/48059
964         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
965         for polymorphic arguments.
966
967 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
968
969         PR fortran/48054
970         * intrinsic.texi: Clarify doc of logarithm functions.
971
972 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
973
974         PR fortran/47552
975         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
976         the string length variable.
977
978 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
979
980         PR fortran/47768
981         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
982         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
983
984 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
985             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
986
987         PR fortran/47850
988         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
989         the expression has an iterator.  Otherwise, iterate through the
990         array, checking for constant expressions for each element.
991
992 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
993
994         PR libfortran/47802
995         * intrinsic.texi: Update CTIME and FDATE documentation.
996
997 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
998
999         * invoke.texi (Option Summary, Fortran Dialect Options)
1000         (Preprocessing Options, Runtime Options, Code Gen Options):
1001         Fix vertical list spacing by using @itemx for additinoal
1002         items, empty line before @table.  Fix typos.
1003
1004 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1005
1006         PR fortran/47894
1007         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1008
1009 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1010
1011         PR fortran/47846
1012         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
1013         type-spec of deferred-length strings.
1014
1015 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1016
1017         PR fortran/47886
1018         * openmp.c (gfc_resolve_omp_directive): Resolve if()
1019         condition of OpenMP's task.
1020
1021 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1022
1023         PR fortran/47894
1024         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1025
1026 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1027
1028         PR fortran/47872
1029         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
1030         multitable for linebreak between different syntax variants.
1031
1032 2011-02-24  Richard Guenther  <rguenther@suse.de>
1033
1034         PR fortran/47839
1035         * f95-lang.c (pushdecl): For externs in non-global scope push
1036         a copy of the decl into the BLOCK.
1037
1038 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
1039
1040         PR fortran/40850
1041         * trans.c (gfc_prepend_expr_to_block): New function.
1042         * trans.h (gfc_prepend_expr_to_block): Declare.
1043         * trans-array.c (gfc_conv_array_parameter): Replace
1044         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
1045
1046 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
1047
1048         PR fortran/45743
1049         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
1050         gsymbol backend_decl if the procedure has a formal argument
1051         that is a procedure.
1052
1053 2011-02-22  Tobias Burnus  <burnus@net-b.de>
1054
1055         PR fortran/41359
1056         * trans-stmt.c (gfc_trans_if_1): Use correct line for
1057         expressions in the if condition.
1058
1059 2011-02-20  Tobias Burnus  <burnus@net-b.de>
1060
1061         PR fortran/47797
1062         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
1063         gfc_restore_backend_locus to have better debug locations.
1064         * trans-array.c (gfc_trans_deferred_array): Ditto.
1065
1066 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
1067
1068         PR fortran/45077
1069         PR fortran/44945
1070         * trans-types.c (gfc_get_derived_type): Remove code that looks
1071         for decls in gsym and add call to gfc_get_module_backend_decl.
1072         * trans.h : Add prototype for gfc_get_module_backend_decl.
1073         * trans-decl.c (gfc_get_module_backend_decl): New function.
1074         (gfc_get_symbol_decl): Call it.
1075
1076 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
1077
1078         PR fortran/47348
1079         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
1080         (get_array_ctor_var_strlen): Add block dummy and add call to
1081         get_array_ctor_all_strlen instead of giving up on substrings.
1082         Call gcc_unreachable for default case.
1083         (get_array_ctor_strlen): Add extra argument to in call to
1084         get_array_ctor_var_strlen.
1085
1086 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1087
1088         PR fortran/47789
1089         * primary.c (gfc_match_structure_constructor): Handle empty parent
1090         types.
1091
1092 2011-02-18  Tobias Burnus
1093
1094         PR fortran/47775
1095         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
1096         esym to check whether the specific procedure returns an
1097         allocatable or pointer.
1098
1099 2011-02-18  Michael Matz  <matz@suse.de>
1100
1101         PR fortran/45586
1102         * gfortran.h (struct gfc_component): Add norestrict_decl member.
1103         * trans.h (struct lang_type): Add nonrestricted_type member.
1104         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
1105         parent type.
1106         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
1107         (gfc_sym_type): Use it.
1108
1109 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1110
1111         PR fortran/47768
1112         * resolve.c (resolve_transfer): Reject variables with procedure pointer
1113         components.
1114
1115 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1116
1117         PR fortran/47767
1118         * gfortran.h (gfc_check_access): Removed prototype.
1119         (gfc_check_symbol_access): Added prototype.
1120         * module.c (gfc_check_access): Renamed to 'check_access', made static.
1121         (gfc_check_symbol_access): New function, basically a shortcut for
1122         'check_access'.
1123         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
1124         'gfc_check_symbol_access'.
1125         (write_operator,write_module): Renamed 'gfc_check_access'.
1126         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
1127         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
1128         'gfc_check_symbol_access'.
1129
1130 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
1131
1132         PR fortran/47745
1133         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
1134         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
1135         'gfc_build_class_symbol'.
1136         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
1137         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
1138         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
1139         'gfc_build_class_symbol'.
1140         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
1141
1142 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1143
1144         PR fortran/47633
1145         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
1146
1147 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1148
1149         PR fortran/47730
1150         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
1151
1152 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1153
1154         PR fortran/47728
1155         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
1156         arrays.
1157         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
1158         declaration.
1159
1160 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1161
1162         PR fortran/47349
1163         * interface.c (get_expr_storage_size): Handle derived-type components.
1164
1165 2011-02-13  Tobias Burnus  <burnus@net-b.de>
1166
1167         PR fortran/47569
1168         * interface.c (compare_parameter): Avoid ICE with
1169         character components.
1170
1171 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
1172
1173         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
1174         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
1175         'gfc_build_class_symbol'.
1176
1177 2011-02-12  Michael Matz  <matz@suse.de>
1178             Janus Weil  <janus@gcc.gnu.org>
1179             Tobias Burnus  <burnus@net-b.de>
1180
1181         PR fortran/45586
1182         * trans-expr.c (conv_parent_component_references): Avoid unintendent
1183         skipping of parent compounds.
1184
1185 2011-02-11  Tobias Burnus  <burnus@net-b.de>
1186
1187         PR fortran/47550
1188         * resolve.c (resolve_formal_arglist): PURE with VALUE
1189         and no INTENT: Add -std= diagnostics.
1190
1191 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1192
1193         PR fortran/47352
1194         * resolve.c (resolve_procedure_interface): If interface has a result
1195         variable, copy the typespec and set result pointer to self.
1196
1197 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1198
1199         PR fortran/47463
1200         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
1201
1202 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1203
1204         PR fortran/47637
1205         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
1206
1207 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1208
1209         * io.c (match_io_element): Do not set dt if not inquire.
1210
1211 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
1212
1213         PR fortran/45290
1214         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
1215         initialization target.
1216
1217 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
1218             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1219
1220         * gfortran.texi (Thread-safety): texinfo styling fixes.
1221         * intrinsic.texi: Likewise.
1222
1223 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1224
1225         * gfortran.texi (Compiler Characteristics): Add reference to
1226         thread-safety section.
1227
1228 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1229
1230         * gfortran.texi (Thread-safety): New section.
1231         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
1232         (GETENV): Likewise.
1233         (GET_ENVIRONMENT_VARIABLE): Likewise.
1234         (SYSTEM): Likewise.
1235
1236 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
1237
1238         PR fortran/47592
1239         * trans-stmt.c (gfc_trans_allocate): For deferred character
1240         length allocations with SOURCE, store to the values and string
1241         length to avoid calculating twice.  Replace gfc_start_block
1242         with gfc_init_block to avoid unnecessary contexts and to keep
1243         declarations of temporaries where they should be. Tidy up the
1244         code a bit.
1245
1246 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
1247
1248         PR fortran/42434
1249         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
1250
1251 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1252             Paul Thomas  <pault@gcc.gnu.org>
1253
1254         PR fortran/47082
1255         * trans-expr.c (gfc_trans_class_init_assign): Add call to
1256         gfc_get_derived_type.
1257         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
1258         or vtypes.
1259
1260 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1261
1262         PR fortran/47572
1263         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
1264
1265 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
1266
1267         PR fortran/47565
1268         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
1269         pointer components with allocatable result.
1270
1271 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1272
1273         PR fortran/47455
1274         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
1275         with pointer or allocatable result.
1276
1277 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
1278
1279         PR fortran/47519
1280         * trans-stmt.c (gfc_trans_allocate): Improve handling of
1281         deferred character lengths with SOURCE.
1282         * iresolve.c (gfc_resolve_repeat): Calculate character
1283         length from source length and ncopies.
1284         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
1285         expressions for ALLOCATE.
1286
1287 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1288
1289         PR fortran/47463
1290         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
1291         an argument of a typebound assignment being a component.
1292
1293 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1294
1295         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
1296         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1297
1298 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1299
1300         PR fortran/47042
1301         * resolve.c (resolve_fl_procedure): Reject stmt functions
1302         with pointer/allocatable attribute.
1303
1304 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1305
1306         PR fortran/47042
1307         * interface.c (gfc_procedure_use): Add explicit interface check for
1308         pointer/allocatable functions.
1309
1310 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
1311
1312         PR fortran/47523
1313         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
1314         expr and is assigned to a deferred character length scalar,
1315         make sure that the function is called before reallocation,
1316         so that the length is available. Include procedure pointer
1317         and procedure pointer component rhs as well.
1318
1319         PR fortran/45170
1320         PR fortran/35810
1321         PR fortran/47350
1322         * gfortran.dg/allocatable_function_5.f90: New test not added by
1323         mistake on 2011-01-28.
1324
1325 2011-01-29  Tobias Burnus  <burnus@net-b.de>
1326
1327         PR fortran/47531
1328         * check.c (gfc_check_shape): Support kind argument in SHAPE.
1329         * intrinsic.c (add_functions): Ditto.
1330         * resolve.c (gfc_resolve_shape): Ditto.
1331         * simplify.c (gfc_simplify_shape): Ditto.
1332         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
1333         gfc_simplify_shape): Update prototypes.
1334         * intrinisc.text (SHAPE): Document kind argument.
1335
1336 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1337
1338         PR fortran/47507
1339         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
1340         attribute also without INTENT.
1341
1342 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1343
1344         * gfortran.texi (Fortran 2003 status): Mention support for
1345         nonconstant namelist variables.
1346
1347 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
1348             Tobias Burnus  <burnus@gcc.gnu.org>
1349
1350         PR fortran/45170
1351         PR fortran/35810
1352         PR fortran/47350
1353         * interface.c (compare_actual_formal): An allocatable or pointer
1354         deferred length actual is only allowed if the formal argument
1355         is also deferred length. Clean up whitespace.
1356         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
1357         deferred character length formal arguments by reference. Do the
1358         same for function results.
1359         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
1360         and rhs character lengths, if deferred length lhs.  In this case
1361         set the lhs character length to that of the rhs.
1362         (gfc_conv_string_parameter): Remove assert that string length is
1363         an integer type.
1364         (is_scalar_reallocatable_lhs): New function.
1365         (alloc_scalar_allocatable_for_assignment): New function.
1366         (gfc_trans_assignment_1): Call above new function. If the rhs is
1367         a deferred character length itself, makes ure that the function
1368         is called before reallocation, so that the length is available.
1369         (gfc_trans_asssignment): Remove error about assignment to
1370         deferred length character variables.
1371         * gfortran.texi : Update entry about (re)allocation on
1372         assignment.
1373         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
1374         length character variables.
1375         * module.c (mio_typespec): Transfer deferred characteristic.
1376         * trans-types.c (gfc_get_function_type): New code to generate
1377         hidden typelist, so that those character lengths that are
1378         passed by reference get the right type.
1379         * resolve.c (resolve_contained_fntype): Supress error for
1380         deferred character length functions.
1381         (resolve_function, resolve_fl_procedure) The same.
1382         (check_symbols): Remove the error that support for
1383         entity with deferred type parameter is not yet implemented.
1384         (resolve_fl_derived): The same.
1385         match.c (alloc_opt_list): Allow MOLD for deferred length object.
1386         * trans-decl.c (gfc_get_symbol_decl): For deferred character
1387         length dummies, generate a local variable for string length.
1388         (create_function_arglist): Hidden length can be a pointer.
1389         (gfc_trans_deferred_vars): For deferred character length
1390         results and dummies, assign the string length to the local
1391         variable from the hidden argument on entry and the other way
1392         round on exit, as appropriate.
1393
1394 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1395
1396         PR fortran/47474
1397         * trans-decl.c (gfc_generate_function_code): Fix init
1398         of allocatable result variable with allocatable components.
1399
1400 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1401
1402         PR fortran/47472
1403         * options.c (gfc_handle_module_path_options): Save
1404         module path without trailing slash as include path.
1405
1406 2011-01-25  Tobias Burnus  <burnus@net-b.de>
1407
1408         PR fortran/47448
1409         * interface.c (gfc_check_operator_interface): Fix
1410         defined-assignment check.
1411
1412 2011-01-23  Tobias Burnus  <burnus@net-b.de>
1413
1414         PR fortran/47421
1415         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
1416         scalar allocatable dummy arguments.
1417
1418 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1419
1420         PR fortran/38536
1421         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
1422         check for array sections followed by component references
1423         which are illegal.  Also check for coindexed arguments.
1424
1425 2011-01-22  Tobias Burnus  <burnus@net-b.de>
1426
1427         PR fortran/47399
1428         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
1429         PARAMETER TBP.
1430
1431 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1432
1433         PR fortran/47394
1434         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
1435         Use defined instead of magic number exit status codes.
1436         * scanner.c (include_line, gfc_new_file): Ditto.
1437
1438 2011-01-21  Tobias Burnus  <burnus@net-b.de>
1439
1440         PR fortran/47377
1441         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
1442         without pointer attribute.
1443
1444 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
1445
1446         PR fortran/47240
1447         * resolve.c (expression_rank): Fix rank of procedure poiner components.
1448         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
1449         pointer components as actual arguments.
1450
1451 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
1452
1453         PR fortran/47331
1454         * gfortran.h (struct gfc_omp_saved_state): New type.
1455         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
1456         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
1457         call.
1458         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
1459         functions.
1460
1461 2011-01-17  Tobias Burnus  <burnus@net-b.de>
1462
1463         PR fortran/47327
1464         * invoke.texi (Options to request or suppress errors
1465         and warnings): Fix cross link.
1466
1467 2011-01-15  Tobias Burnus  <burnus@net-b.de>
1468
1469         * gfortran.texi: Update Fortran 2003 Status section.
1470
1471         PR fortran/47177
1472         * invoke.texi: Add missing "-E" to the -dM example.
1473
1474 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1475
1476         PR fortran/47268
1477         * intrinsic.texi (get_command_argument, get_environment_variable):
1478         Mark arguments as optional in the Arguments section.
1479
1480 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1481             Tobias Burnus  <burnus@net-b.de>
1482
1483         PR fortran/47260
1484         * trans-decl.c (gfc_get_extern_function_decl,
1485         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
1486         calling decl_attributes.
1487
1488 2011-01-13  Tobias Burnus  <burnus@net-b.de>
1489             Mikael Morin  <mikael@gcc.gnu.org>
1490
1491         PR fortran/45848
1492         PR fortran/47204
1493         * gfortran.h (gfc_code): Move union ext's case_list into
1494         the struct block.
1495         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
1496         by "block.".
1497         * frontend-passes.c (gfc_code_walker): Ditto.
1498         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
1499         gfc_match_type_is, gfc_match_class_is): Ditto.
1500         * resolve.c (resolve_select, resolve_select_type): Ditto.
1501         * st.c (gfc_free_statement): Ditto.
1502         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
1503         gfc_trans_character_select): Ditto.
1504         * parse.c (resolve_all_program_units): For error recovery, avoid
1505         segfault is proc_name is NULL.
1506
1507 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
1508
1509         PR fortran/47051
1510         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
1511         to be standard compliant by testing for shape rather than size
1512         before skipping reallocation. Improve comments.
1513
1514 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1515
1516         PR fortran/47224
1517         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
1518         of code.
1519
1520 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1521
1522         PR fortran/38536
1523         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
1524         use gfc_dep_compare_expr to compare start and end expession.
1525         Add FIXME for using gfc_deb_compare_expr elsewhere.
1526
1527 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
1528
1529         PR fortran/46313
1530         * class.c (get_unique_type_string): Make type name start with upper
1531         case letter.
1532
1533 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1534
1535         PR fortran/46405
1536         * invoke.texi:  Mention -ffree-line-length-none and
1537         -ffixed-line-length-none for preprocessing.
1538
1539 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
1540
1541         PR fortran/46896
1542         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
1543         procedure argument (eg TRANSPOSE) use a temporary if there is
1544         any chance of aliasing due to host or use association.
1545         (arrayfunc_assign_needs_temporary): Correct logic for function
1546         results and do not use a temporary for implicitly PURE
1547         variables.  Use a temporary for Cray pointees.
1548         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
1549         implicit pureness of containing procedure.
1550         * decl.c (match_old_style_init, gfc_match_data): Where decl
1551         would fail in PURE procedure, set implicit_pure to zero.
1552         * gfortran.h : Add implicit_pure to structure symbol_attr and
1553         add prototype for function gfc_implicit_pure.
1554         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
1555         Where decl would fail in PURE procedure, reset implicit_pure.
1556         * io.c (match_vtag, gfc_match_open, gfc_match_close,
1557         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
1558         * match.c (gfc_match_critical, gfc_match_stopcode,
1559         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
1560         same.
1561         * parse.c (decode_omp_directive): The same.
1562         (parse_contained): If not PURE, set implicit pure attribute.
1563         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
1564         resolve_function, resolve_ordinary_assign) : The same.
1565         (gfc_implicit_pure): New function.
1566         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
1567         to ab_attribute enum and use it in this function.
1568
1569 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1570
1571         PR fortran/45777
1572         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
1573         make static and move in front of its only caller, to ...
1574         * trans-array.c (symbols_could_alias): ... here.
1575         Pass information about pointer and target status as
1576         arguments.  Allocatable arrays don't alias anything
1577         unless they have the POINTER attribute.
1578         (gfc_could_be_alias):  Keep track of pointer and target
1579         status when following references.  Also check if typespecs
1580         of components match those of other components or symbols.
1581
1582 2011-01-07  Tobias Burnus  <burnus@net-b.de>
1583
1584         PR fortran/41580
1585         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
1586         * intrinsic.c (add_functions): Use simplify functions for
1587         EXTENDS_TYPE_OF and SAME_TYPE_AS.
1588         * intrinsic.h (gfc_simplify_extends_type_of,
1589         gfc_simplify_same_type_as): New prototypes.
1590         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
1591         gfc_simplify_same_type_as): New functions.
1592
1593 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
1594
1595         PR fortran/47189
1596         PR fortran/47194
1597         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
1598         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
1599         type.
1600         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
1601         * resolve.c (resolve_deallocate_expr): _data component will be added
1602         at translation stage.
1603         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
1604         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
1605
1606 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
1607
1608         PR fortran/33117
1609         PR fortran/46478
1610         * parse.c (parse_interface): Remove check for procedure types.
1611         * interface.c (check_interface0): Verify that procedures are
1612         either all SUBROUTINEs or all FUNCTIONs.
1613
1614 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1615
1616         PR fortran/47180
1617         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
1618         'vtab' is initialized).
1619
1620 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1621
1622         PR fortran/47180
1623         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
1624         assignment, set the _vptr component to the declared type.
1625
1626 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1627
1628         PR fortran/46017
1629         * resolve.c (resolve_allocate_deallocate): Follow references to
1630         check for duplicate occurence of allocation/deallocation objects.
1631
1632 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
1633
1634         PR fortran/47024
1635         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
1636         of polymorphic allocatables according to their declared type.
1637
1638 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
1639
1640         PR fortran/46448
1641         * class.c (gfc_find_derived_vtab): Set the module field for the copying
1642         routine to make sure it receives module name mangling.
1643
1644 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
1645
1646         * gfortranspec.c (lang_specific_driver): Update copyright notice
1647         dates.
1648
1649 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
1650
1651         * intrinsic.texi (LEADZ): Fix example.
1652
1653 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
1654
1655         PR fortran/46408
1656         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
1657         routine.
1658
1659 \f
1660 Copyright (C) 2011 Free Software Foundation, Inc.
1661
1662 Copying and distribution of this file, with or without modification,
1663 are permitted in any medium without royalty provided the copyright
1664 notice and this notice are preserved.