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