OSDN Git Service

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