OSDN Git Service

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