OSDN Git Service

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