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