OSDN Git Service

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