OSDN Git Service

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