OSDN Git Service

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