OSDN Git Service

PR fortran/50420
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
2
3         PR fortran/50420
4         * trans-intrinsic.c (walk_coarray): Allow subreferences after a
5         coarray object reference.
6
7 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
8
9         PR fortran/50420
10         * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
11         if they are coarrays.
12
13 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
14
15         * trans-array.h (gfc_walk_array_ref): New prototype.
16         * trans-array.c (gfc_walk_array_ref): New function, containing
17         all but the beginning of gfc_walk_variable_expr's code.
18         (gfc_walk_variable_expr): Use gfc_walk_array_ref.
19
20 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
21
22         PR fortran/50420
23         * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
24         ndim for the descriptor's rank.
25
26 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
27
28         PR fortran/50420
29         * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
30         from zero, and add then the relevant offset (either ndim or loop.dimen)
31         depending on context.
32
33 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
34
35         * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
36
37 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
38
39         * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
40         earlier.
41
42 2011-10-18  Janus Weil  <janus@gcc.gnu.org>
43
44         PR fortran/47023
45         * decl.c (verify_c_interop_param): Renamed to
46         'gfc_verify_c_interop_param'. Add error message for polymorphic
47         arguments.
48         (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
49         polymorphic variables.
50         (verify_bind_c_sym): Renamed 'verify_c_interop'.
51         * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
52         * check.c (gfc_check_sizeof): Ditto.
53         * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
54         * symbol.c (verify_bind_c_derived_type): Ditto.
55
56 2011-10-15  Tom Tromey  <tromey@redhat.com>
57             Dodji Seketeli  <dodji@redhat.com>
58
59         * cpp.c (print_line, cb_define): Adjust to avoid using internals
60         of struct line_map.  Use the public API instead.
61
62 2011-10-17  Janus Weil  <janus@gcc.gnu.org>
63
64         PR fortran/47023
65         PR fortran/50752
66         * primary.c (match_kind_param): Avoid segfault.
67
68 2011-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
69
70         * frontend-passes.c (current_ns):  Make static.
71         (create_var):  Note parent of newly created namespace.
72         (optimize_namespace):  Don't wak sibling namespaces
73         if they are EXEC_BLOCK because this is handled...
74         (gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.
75
76 2011-10-16  Janus Weil  <janus@gcc.gnu.org>
77
78         PR fortran/47023
79         * primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
80         (get_kind): Pass on 'is_iso_c' flag.
81         (match_integer_constant,match_real_constant,match_logical_constant):
82         Set 'ts.is_c_interop'.
83
84 2011-10-16  Janus Weil  <janus@gcc.gnu.org>
85
86         PR fortran/50547
87         * resolve.c (resolve_formal_arglist): Remove unneeded error message.
88         Some reshuffling.
89
90 2011-10-15  Tobias Burnus  <burnus@net-b.de>
91
92         * gfortran.texi (Fortran 2008 status, TS 29113 status,
93         Further Interoperability of Fortran with C): Update implementation
94         status, change references from TR 29113 to TS 29113.
95         * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
96         * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
97         * lang.opt (std=): Ditto.
98         * options.c (gfc_handle_option, set_default_std_flags): Ditto and
99         change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
100         * libgfortran.h: Ditto.
101         * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
102         * decl.c (verify_c_interop_param): Ditto.
103
104 2011-10-14  Janus Weil  <janus@gcc.gnu.org>
105
106         PR fortran/50570
107         * expr.c (gfc_check_vardef_context): Don't throw an error on
108         non-pointer assignments involving an intent(in) pointer dummy.
109
110 2011-10-14  Tobias Burnus  <burnus@net-b.de>
111
112         PR fortran/50718
113         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
114         for dummy arguments with VALUE attribute.
115
116 2011-10-11  Tobias Burnus  <burnus@net-b.de>
117             Janus Weil  <janus@gcc.gnu.org>
118
119         * invoke.texi (-fwhole-file): Update wording since -fwhole-file
120         is now enabled by default.
121
122 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
123
124         * trans-expr.c (gfc_conv_power_op): Delete old interface with two
125         parallel arrays to hold standard builtin declarations, and replace
126         it with a function based interface that can support creating
127         builtins on the fly in the future.  Change all uses, and poison
128         the old names.  Make sure 0 is not a legitimate builtin index.
129         (fill_with_spaces): Ditto.
130         (gfc_trans_string_copy): Ditto.
131         (gfc_trans_zero_assign): Ditto.
132         (gfc_build_memcpy_call): Ditto.
133         (alloc_scalar_allocatable_for_assignment): Ditto.
134         * trans-array.c (gfc_trans_array_constructor_value): Ditto.
135         (duplicate_allocatable): Ditto.
136         (gfc_alloc_allocatable_for_assignment): Ditto.
137         * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
138         (gfc_omp_clause_assign_op): Ditto.
139         (gfc_trans_omp_atomic): Ditto.
140         (gfc_trans_omp_do): Ditto.
141         (gfc_trans_omp_task): Ditto.
142         * trans-stmt.c (gfc_trans_stop): Ditto.
143         (gfc_trans_sync): Ditto.
144         (gfc_trans_allocate): Ditto.
145         (gfc_trans_deallocate): Ditto.
146         * trans.c (gfc_call_malloc): Ditto.
147         (gfc_allocate_using_malloc): Ditto.
148         (gfc_call_free): Ditto.
149         (gfc_deallocate_with_status): Ditto.
150         (gfc_deallocate_scalar_with_status): Ditto.
151         * f95-lang.c (gfc_define_builtin): Ditto.
152         (gfc_init_builtin_functions): Ditto.
153         * trans-decl.c (create_main_function): Ditto.
154         * trans-intrinsic.c (builtin_decl_for_precision): Ditto.
155
156 2011-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
157
158         PR fortran/50564
159         * frontend-passes (forall_level):  New variable.
160         (cfe_register_funcs):  Don't register functions if we
161         are within a forall loop.
162         (optimize_namespace):  Set forall_level to 0 before entry.
163         (gfc_code_walker):  Increase/decrease forall_level.
164
165 2011-10-09  Tobias Burnus  <burnus@net-b.de>
166
167         PR fortran/50273
168         * trans-common.c (translate_common): Fix -Walign-commons check.
169
170 2011-10-09  Mikael Morin  <mikael.morin@sfr.fr>
171
172         * interface.c (check_dummy_characteristics): Count dimensions starting
173         from one in diagnostic.
174
175 2011-10-09  Tobias Burnus  <burnus@net-b.de>
176
177         * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
178         dependency on iso-c-binding.def and iso-fortran-env.def.
179         * module.c (import_iso_c_binding_module): Add error when
180         explicitly importing a nonstandard symbol; extend standard-
181         depending loading.
182         * iso-c-binding.def: Add c_float128 and c_float128_complex
183         integer parameters (for -std=gnu).
184         * intrinsic.texi (ISO_C_Binding): Document them.
185         * symbol.c (generate_isocbinding_symbol): Change macros
186         to ignore GFC_STD_* data.
187         * trans-types.c (gfc_init_c_interop_kinds): Ditto; make
188         nonstatic and renamed from "init_c_interop_kinds".
189         (gfc_init_kinds): Don't call it
190         * trans-types.h (gfc_init_c_interop_kinds): Add prototype.
191         * f95-lang.c (gfc_init_decl_processing): Call it.
192
193 2011-10-09  Janus Weil  <janus@gcc.gnu.org>
194
195         PR fortran/50659
196         * expr.c (replace_symbol): Only do replacement if the symbol is a dummy.
197
198 2011-10-08  Paul Thomas  <pault@gcc.gnu.org>
199
200         PR fortran/47844
201         * trans-array.c (gfc_conv_array_index_offset): Use descriptor
202         stride for pointer function results.
203
204 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
205
206         * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.
207
208 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
209
210         * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.
211
212 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
213
214         * trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
215         Remove conditions on coarray.
216         (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
217         (gfc_conv_expr_descriptor): Ditto. Add assertions before the call.
218
219 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
220
221         * trans-array.c (gfc_conv_section_startstride): Remove coarray_last
222         argument. Remove condition on coarray_last.
223         (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
224         (gfc_conv_expr_descriptor): Ditto.
225
226 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
227
228         * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
229         handling.  Don't reset array ref's corank and codimensions' types
230         in the full array ref case.  Update loop upper limit.
231         Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.
232
233 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
234
235         * trans.h (gfc_ss_info): Remove codimen field.
236         * trans-array.c (gfc_get_array_ss): Don't set codimen field.
237         (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
238         (gfc_trans_constant_array_constructor): Update loop upper limit.
239         (gfc_conv_ss_startstride): Don't set codimen field.
240         Don't get descriptor's cobounds.
241         (gfc_walk_variable_expr): Update dimension index.
242         * trans-intrinsic.c (trans_this_image, trans_image_index,
243         conv_intrinsic_cobound): Don't set codimen field
244
245 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
246
247         * trans.h (gfc_loopinfo): Remove codimen field.
248         * trans-array.c (gfc_set_vector_loop_bounds,
249         gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
250         limit.
251         (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
252         codimension.
253         (gfc_start_scalarized_body): Update loop lower limit.
254         (gfc_conv_ss_startstride): Don't set loop's codimen field.
255         (gfc_conv_loop_setup): Remove unnecessary condition.
256         (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.
257
258 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
259
260         * trans.h (gfc_ss): Remove data.temp.codimen field.
261         * trans-array.c (gfc_conv_resolve_dependencies,
262         gfc_conv_expr_descriptor): Don't set temp's codimen field.
263
264 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
265
266         * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
267         associated dimen_type) in the full array ref case.
268
269 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
270
271         * trans-intrinsic.c (walk_coarray): New function.
272         (convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
273         (trans-this_image, trans_image_index, conv_intrinsic_cobound):
274         Use walk_coarray.
275
276 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
277
278         * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
279         cobounds evaluation.
280
281 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
282
283         * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.
284
285 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
286
287         * trans-array.c (gfc_conv_section_startstride): Move code to
288         evaluate_bound.  Use evaluate_bound.
289         (evaluate_bound): New function.
290
291 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
292
293         * trans-array.c (gfc_conv_section_startstride): Update assertion to
294         also accept coarrays.
295
296 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
297
298         * trans-array.c (gfc_conv_section_startstride): Factor common
299         array ref references.
300
301 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
302
303         * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
304         loop.codimen as argument to gfc_get_array_type_bounds.
305
306 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
307
308         * trans-array.h (struct gfc_se): New flag want_coarray.
309         * trans-intrinsic.c (trans_this_image, trans_image_index,
310         conv_intrinsic_cobound): Set want_coarray.
311         * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
312         earlier and without relying on the scalarizer.
313
314 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
315
316         * expr.c (gfc_get_corank): Return 0 if input expression is not a
317         coarray.
318
319 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
320
321         * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
322         descriptor setup code.
323
324 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
325
326         * resolve.c (compare_spec_to_ref): Move coarray ref initialization
327         code...
328         (resolve_array_ref): ... here.
329
330 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
331
332         * check.c (is_coarray): Remove.
333         (coarray_check): Use gfc_is_coarray.
334
335 2011-10-07  Janus Weil  <janus@gcc.gnu.org>
336
337         PR fortran/50625
338         * class.c (gfc_build_class_symbol): Fix whitespace.
339         * module.c (mio_symbol): Set 'class_ok' attribute.
340         * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
341         been built for class symbols.
342
343 2011-10-04  Janus Weil  <janus@gcc.gnu.org>
344
345         PR fortran/35831
346         * interface.c (check_dummy_characteristics): Check the array shape.
347
348 2011-10-01  Janus Weil  <janus@gcc.gnu.org>
349
350         PR fortran/50585
351         * interface.c (get_expr_storage_size): Check if 'length' component is
352         associated.
353
354 2011-09-29  Janus Weil  <janus@gcc.gnu.org>
355
356         PR fortran/50547
357         * resolve.c (resolve_formal_arglist): Fix pureness check for dummy
358         functions.
359
360         PR fortran/50553
361         * symbol.c (check_conflict): Forbid TARGET attribute for statement
362         functions.
363
364 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
365
366         * trans-types.c (gfc_type_for_size): Return wider type
367         if no suitable narrower type has been found.
368         (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
369         returned type doesn't have expected TYPE_MODE.
370
371 2011-09-26  Janus Weil  <janus@gcc.gnu.org>
372
373         PR fortran/50515
374         * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.
375
376         PR fortran/50517
377         * interface.c (gfc_compare_interfaces): Bugfix in check for result type.
378
379 2011-09-22  Janus Weil  <janus@gcc.gnu.org>
380
381         PR fortran/41733
382         * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
383         procedures.
384         * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
385         for PURE and ELEMENTAL attributes.
386         (compare_actual_formal): Remove pureness check here.
387
388 2011-09-20  Steven G. Kargl  <kargl@gcc.gnu.org>
389
390         * check.c (gfc_check_c_sizeof): Remove redundant word.
391
392 2011-09-20  Simon Baldwin  <simonb@google.com>
393
394         * module.c (gfc_dump_module): Omit timestamp from output.
395
396 2011-09-17  Janus Weil  <janus@gcc.gnu.org>
397
398         PR fortran/50403
399         * symbol.c (gfc_use_derived): Fix coding style.
400
401 2011-09-15  Janus Weil  <janus@gcc.gnu.org>
402
403         PR fortran/50401
404         * resolve.c (resolve_transfer): Check if component 'ref' is defined.
405
406         PR fortran/50403
407         * symbol.c (gfc_use_derived): Check if argument 'sym' is defined.
408
409 2011-09-14  Tobias Burnus  <burnus@net-b.de>
410
411         PR fortran/34547
412         PR fortran/50375
413         * check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
414         * resolve.c (resolve_transfer): Reject NULL without MOLD.
415         * interface.c (gfc_procedure_use): Reject NULL without MOLD
416         if no explicit interface is known.
417         (gfc_search_interface): Reject NULL without MOLD if it would
418         lead to ambiguity.
419
420 2011-09-13  Janus Weil  <janus@gcc.gnu.org>
421
422         PR fortran/50379
423         * symbol.c (check_conflict): Check conflict between GENERIC and RESULT
424         attributes.
425
426 2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
427
428         PR fortran/50327
429         * frontend-passes.c (dummy_expr_callback):  New function.
430         (convert_do_while):  New function.
431         (optimize_namespace):  Call code walker to convert do while loops.
432
433 2011-09-11  Janus Weil  <janus@gcc.gnu.org>
434
435         PR fortran/35831
436         PR fortran/47978
437         * interface.c (check_dummy_characteristics): New function to check the
438         characteristics of dummy arguments.
439         (gfc_compare_interfaces,gfc_check_typebound_override): Call it here.
440
441 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
442
443         * trans-array.c (gfc_trans_constant_array_constructor): Remove
444         superfluous initialisation of DIM field.
445         (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
446         (gfc_conv_expr_descriptor): Ditto.
447         * trans-expr.c (gfc_conv_procedure_call): Ditto.
448
449 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
450
451         * trans-array.h (gfc_get_scalar_ss): New prototype.
452         * trans-array.c (gfc_get_scalar_ss): New function.
453         (gfc_walk_variable_expr, gfc_walk_op_expr,
454         gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
455         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
456         (gfc_trans_assignment_1): Ditto.
457         * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
458         gfc_trans_where_3): Ditto.
459
460 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
461
462         * trans-array.h (gfc_get_temp_ss): New prototype.
463         * trans-array.c (gfc_get_temp_ss): New function.
464         (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
465         (gfc_conv_expr_descriptor): Ditto.
466         * trans-expr.c (gfc_conv_subref_array_arg): Ditto.
467
468 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
469
470         * trans-array.h (gfc_get_array_ss): New prototype.
471         * trans-array.c (gfc_get_array_ss): New function.
472         (gfc_walk_variable_expr, gfc_walk_function_expr,
473         gfc_walk_array_constructor): Re-use gfc_get_array_ss.
474         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
475         * trans-intrinsic.c (gfc_walk_intrinsic_bound,
476         gfc_walk_intrinsic_libfunc): Ditto.
477         * trans-io.c (transfer_array_component): Ditto.
478
479 2011-09-08  Tobias Burnus  <burnus@net-b.de>
480
481         PR fortran/44646
482         * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
483         * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
484         * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
485         * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
486         lock_unlock_statement, sync_statement, gfc_match_allocate,
487         gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
488         (gfc_match_do): Match DO CONCURRENT.
489         (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
490         match_forall_iterator, match_forall_header, match_simple_forall,
491         gfc_match_forall): Move up in the file.
492         * parse.c (check_do_closure, parse_do_block): Handle do concurrent.
493         * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
494         * resolve.c (do_concurrent_flag): New global variable.
495         (resolve_function, pure_subroutine, resolve_branch,
496         gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
497         diagnostic.
498         * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
499         * trans-stmt.c (gfc_trans_do_concurrent): New function.
500         (gfc_trans_forall_1): Handle do concurrent.
501         * trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
502         * trans.c (trans_code): Call it.
503         * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.
504
505 2011-09-07  Janus Weil  <janus@gcc.gnu.org>
506
507         PR fortran/48095
508         * primary.c (gfc_match_structure_constructor): Handle parsing of
509         procedure pointers components in structure constructors.
510         * resolve.c (resolve_structure_cons): Check interface of procedure
511         pointer components. Changed wording of some error messages.
512
513 2011-09-04  Janus Weil  <janus@gcc.gnu.org>
514
515         PR fortran/50227
516         * trans-types.c (gfc_sym_type): Check for proc_name.
517
518 2011-08-30  Tobias Burnus  <burnus@net-b.de>
519
520         PR fortran/45044
521         * trans-common.c (build_common_decl): Warn if named common
522         block's size is not everywhere the same.
523
524 2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>
525
526         PR fortran/45170
527         * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
528
529 2011-08-29  Janus Weil  <janus@gcc.gnu.org>
530
531         PR fortran/50225
532         * trans-decl.c (gfc_generate_function_code): Nullify polymorphic
533         allocatable function results.
534
535 2011-08-29  Tobias Burnus  <burnus@net-b.de>
536
537         * trans-decl.c (generate_coarray_sym_init): Use
538         GFC_CAF_COARRAY_STATIC for static coarrays.
539
540 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
541
542         * scanner.c (load_file): Don't abuse LC_RENAME reason while
543         (indirectly) calling linemap_add.
544
545 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
546
547         * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
548         if threadprivate.
549         * symbol.c (check_conflict): Allow threadprivate attribute with
550         FL_PROCEDURE if proc_pointer.
551
552 2011-08-25  Mikael Morin  <mikael@gcc.gnu.org>
553
554         PR fortran/50050
555         * expr.c (gfc_free_shape): Do nothing if shape is NULL.
556         (free_expr0): Remove redundant NULL shape check.
557         * resolve.c (check_host_association): Ditto.
558         * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
559         non-NULL.
560         * trans-io.c (transfer_array_component): Ditto.
561
562 2011-08-25  Tobias Burnus  <burnus@net-b.de>
563
564         * trans-array.c (gfc_conv_descriptor_token): Add assert.
565         * trans-decl.c (gfc_build_qualified_array,
566         create_function_arglist): Handle assumed-shape arrays.
567         * trans-expr.c (gfc_conv_procedure_call): Ditto.
568         * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
569         add "caf_token" to assumed-shape descriptors, new akind argument.
570         (gfc_get_array_type_bounds): Pass akind.
571         * trans.h (lang_decl): New elements caf_offset and token.
572         (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.
573
574 2011-08-25  Tobias Burnus  <burnus@net-b.de>
575
576         * trans-array.c (structure_alloc_comps): Fix for allocatable
577         scalar coarray components.
578         * trans-expr.c (gfc_conv_component_ref): Ditto.
579         * trans-type.c (gfc_get_derived_type): Ditto.
580
581 2011-08-24  Tobias Burnus  <burnus@net-b.de>
582
583         PR fortran/50163
584         * expr.c (check_init_expr): Return when an error occured.
585
586 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
587
588         * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
589
590 2011-08-23  Tobias Burnus  <burnus@net-b.de>
591
592         PR fortran/31600
593         * symbol.c (gfc_add_type): Better diagnostic if redefining
594         use-associated symbol.
595         * module.c (gfc_use_module): Use module name as locus.
596
597 2011-08-22  Gabriel Charette  <gchare@google.com>
598
599         * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
600         defined in cpp_define_builtins.
601
602 2011-08-22  Mikael Morin  <mikael@gcc.gnu.org>
603
604         PR fortran/50050
605         * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
606         * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
607         (free_expr0): Re-use gfc_free_shape.
608         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
609         * trans-io.c (transfer_array_component): Ditto.
610         * resolve.c (check_host_association): Ditto.
611         (gfc_expr_to_initialize): Don't force the rank value and free the shape
612         after updating the expression. Recalculate shape and rank.
613         (resolve_where_shape): Re-use gfc_clear_shape.
614         * array.c (gfc_array_ref_shape): Ditto.
615
616 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
617
618         PR fortran/47659
619         * expr.c (gfc_check_assign): Check for type conversions when the
620         right-hand side is a constant REAL/COMPLEX contstant the left-hand
621         side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
622         for REAL does not change the value of the constant.
623
624 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
625
626         PR fortran/50130
627         * resolve.c (resolve_array_ref):  Don't calculate upper bound
628         if the stride is zero.
629
630 2011-08-20  Janus Weil  <janus@gcc.gnu.org>
631
632         PR fortran/49638
633         * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
634         (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
635         result value "-3".
636         * frontend-passes.c (optimize_comparison): Ditto.
637         * interface.c (gfc_check_typebound_override): Ditto.
638
639 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
640
641         PR fortran/50129
642         * parse.c (parse_where): Undo changes after emitting an error. 
643
644 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
645
646         PR fortran/49792
647         * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
648         bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
649         lhs needs reallocation.
650         * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
651         code is NULL, emit a barrier if workshare emitted no code at all
652         and NOWAIT clause isn't present.
653
654 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
655
656         PR fortran/50071
657         * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
658         * parse.c (check_statement_label): Accept ST_END_BLOCK and
659         ST_END_ASSOCIATE as valid branch target.
660         (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
661         Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
662         * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
663         EXEC_END_NESTED_BLOCK.
664         (resolve_branch): Ditto.
665         (resolve_code): Add EXEC_END_NESTED_BLOCK case.
666         * st.c (gfc_free_statement): Ditto.
667         * trans.c (trans_code): Ditto.
668
669 2011-08-18  Mikael Morin  <mikael.morin@sfr.fr>
670
671         PR fortran/50071
672         * symbol.c (gfc_get_st_label): Use the derived type namespace when
673         we are parsing a derived type definition.
674
675 2011-08-18  Tobias Burnus  <burnus@net-b.de>
676
677         PR fortran/18918
678         * parse.c (parse_derived): Add lock_type
679         checks, improve coarray_comp handling.
680         * resolve.c (resolve_allocate_expr,
681         resolve_lock_unlock, resolve_symbol): Fix lock_type
682         constraint checks.
683
684 2011-08-17  Tobias Burnus  <burnus@net-b.de>
685
686         PR fortran/31461
687         * trans-decl.c (generate_local_decl): Warn about
688         unused explicitly imported module variables/parameters.
689
690 2011-08-17  Janus Weil  <janus@gcc.gnu.org>
691
692         PR fortran/50070
693         * resolve.c (resolve_fl_variable): Reject non-constant character lengths
694         in COMMON variables.
695
696 2011-08-16  Tobias Burnus  <burnus@net-b.de>
697             Dominique Dhumieres  <dominiq@lps.ens.fr>
698
699         PR fortran/50094
700         * resolve.c (resolve_symbol): Fix stupid typo.
701
702 2011-08-15  Tobias Burnus  <burnus@net-b.de>
703
704         * resolve.c (resolve_symbol): Fix coarray result-var check.
705
706 2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>
707
708         * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.
709
710 2011-08-14  Janus Weil  <janus@gcc.gnu.org>
711
712         PR fortran/50073
713         * decl.c (check_function_name): New function, separated off from
714         'variable_decl' and slightly extended.
715         (variable_decl,attr_decl1): Call it.
716
717 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
718
719         * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
720
721 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
722             Thomas Koenig  <tkoenig@gcc.gnu.org>
723
724         PR fortran/49638
725         * dependency.c (are_identical_variables): For dummy arguments only
726         check for equal names, not equal symbols.
727         * interface.c (gfc_check_typebound_override): Add checking for rank
728         and character length.
729
730 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
731
732         PR fortran/49638
733         * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
734         two prototypes.
735         * dependency.c (gfc_are_identical_variables,are_identical_variables):
736         Renamed the former to the latter and made static.
737         (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
738         commutativity of multiplication.
739         (gfc_is_same_range,is_same_range): Renamed the former to the latter,
740         made static and removed argument 'def'.
741         (check_section_vs_section): Renamed 'gfc_is_same_range'.
742         * gfortran.h (gfc_check_typebound_override): New prototype.
743         * interface.c (gfc_check_typebound_override): Moved here from ...
744         * resolve.c (check_typebound_override): ... here (and renamed).
745         (resolve_typebound_procedure): Renamed 'check_typebound_override'.
746
747 2011-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
748
749         PR fortran/50004
750         * target-memory.c (gfc_target_expr-size): Don't clobber typespec
751         for derived types.
752         * simplify.c (gfc_simplify_transfer): Don't calculate source_size
753         twice.
754
755 2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
756
757         PR fortran/37211
758         * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
759         * target-memory.h (gfc_target_interpret_expr):  Add boolean
760         argument wether to convert wide characters.
761         * target-memory.c (gfc_target_expr_size):  Also return length
762         of characters for non-constant expressions if these can be
763         determined from the cl.
764         (interpret_array):  Add argument for gfc_target_interpret_expr.
765         (gfc_interpret_derived):  Likewise.
766         (gfc_target_interpret_expr):  Likewise.
767         * check.c:  Include target-memory.h.
768         (gfc_calculate_transfer_sizes):  New function.
769         (gfc_check_transfer):  When -Wsurprising is in force, calculate
770         sizes and warn if result is larger than size (check moved from
771         gfc_simplify_transfer).
772         * simplify.c (gfc_simplify_transfer):  Use
773         gfc_calculate_transfer_sizes.  Remove warning.
774
775 2011-08-04  Richard Guenther  <rguenther@suse.de>
776
777         PR fortran/49957
778         * trans-array.c (add_to_offset): New function.
779         (gfc_conv_array_ref): Build the array index expression in optimally
780         associated order.
781         (gfc_walk_variable_expr): Adjust for the backward walk.
782
783 2011-08-02  Daniel Kraft  <d@domob.eu>
784
785         PR fortran/49885
786         * trans-array.c (gfc_trans_auto_array_allocation): Change
787         gfc_start_block to gfc_init_block to avoid spurious extra-scope.
788
789 2011-08-02  Tobias Burnus  <burnus@net-b.de>
790
791         * trans-array.c (gfc_array_allocate): Pass token to
792           gfc_allocate_allocatable for -fcoarray=lib.
793         * trans-stmt.c (gfc_trans_allocate): Update
794         gfc_allocate_allocatable call.
795         * trans.h (gfc_allocate_allocatable): Update prototype.
796         (gfc_allocate_using_lib): Remove.
797         * trans.c (gfc_allocate_using_lib): Make static, handle token.
798         (gfc_allocate_allocatable): Ditto.
799
800 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
801
802         PR fortran/46752
803         * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
804         * openmp.c (gfc_free_omp_clauses): Free also final_expr.
805         (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
806         (gfc_match_omp_clauses): Handle parsing final and mergeable
807         clauses.
808         (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
809         (gfc_match_omp_taskyield): New function.
810         (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
811         Cray pointers in clauses other than REDUCTION.
812         (gfc_match_omp_atomic): Match optional
813         read/write/update/capture keywords after !$omp atomic.
814         (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
815         * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
816         print final and mergeable clauses.
817         (show_code_node): Handle EXEC_OMP_TASKYIELD.
818         * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
819         mergeable clauses.
820         (gfc_trans_omp_taskyield): New function.
821         (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
822         (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
823         (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
824         (gfc_omp_predetermined_sharing): Adjust comment.
825         * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
826         ST_OMP_END_ATOMIC.
827         (gfc_omp_clauses): Add final_expr and mergeable fields.
828         (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
829         (gfc_omp_atomic_op): New enum typedef.
830         (struct gfc_code): Add ext.omp_atomic.
831         * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
832         * frontend-passes.c (gfc_code_walker): Also walk final_expr.
833         * resolve.c (gfc_resolve_blocks, resolve_code): Handle
834         EXEC_OMP_TASKYIELD.
835         * st.c (gfc_free_statement): Likewise.
836         * match.h (gfc_match_omp_taskyield): New prototype.
837         * parse.c (decode_omp_directive): Handle taskyield directive.
838         Handle !$omp end atomic.
839         (case_executable): Add ST_OMP_TASKYIELD case.
840         (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
841         (parse_omp_atomic): Return gfc_statement instead of void.
842         For !$omp atomic capture parse two assignments instead of
843         just one and require !$omp end atomic afterwards, for
844         other !$omp atomic forms just allow !$omp end atomic at the
845         end.
846         (parse_omp_structured_block, parse_executable): Adjust
847         parse_omp_atomic callers.
848
849 2011-08-02  Tobias Burnus  <burnus@net-b.de>
850
851         * intrinsic.c (OMP_LIB): Updated openmp_version's
852         value to 201107.
853         * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
854         * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
855         remove deleted omp_integer_kind and omp_logical_kind constants.
856
857 2011-07-31  Janus Weil  <janus@gcc.gnu.org>
858
859         PR fortran/49112
860         * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
861         only call 'resolve_fl_derived0'.
862         (resolve_typebound_procedures): Resolve typebound procedures of
863         parent type.
864         (resolve_fl_derived0): New function, which does a part of the work
865         for 'resolve_fl_derived'.
866         (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
867         things.
868
869 2011-07-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
870
871         PR fortran/48876
872         * expr.c (gfc_simplify_expr):  If end of a string is less
873         than zero, set it to zero.
874
875 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
876
877         PR fortran/31067
878         * frontend-passes.c (optimize_minmaxloc): New function.
879         (optimize_expr): Call it.
880
881 2011-07-27  Tobias Burnus  <burnus@net-b.de>
882
883         PR fortran/45586
884         * trans-types.c (gfc_get_derived_type): Ensure that pointer
885         component types are marked as nonrestricted.
886
887 2011-07-27  Daniel Carrera  <dcarrera@gmail.com>
888
889         PR fortran/49755
890         * trans.c (gfc_allocate_using_malloc): Change function signature.
891         Return nothing. New parameter "pointer". Eliminate temorary variables. 
892         (gfc_allocate_using_lib): Ditto.
893         (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
894         and gfc_allocate_using_malloc. Do not free and then reallocate a
895         variable that is already allocated.
896         (gfc_likely): New function. Basedon gfc_unlikely.
897         * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
898         Instructions to modify the array descriptor are stored in this block
899         while other instructions continue to be stored in "pblock".
900         (gfc_array_allocate): Update call to gfc_array_init_size. Move the
901         descriptor_block so that the array descriptor is only updated if
902         the array was allocated successfully.
903         Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
904         * trans.h (gfc_allocate_allocatable): Change function signature.
905         Function now returns void.
906         (gfc_allocate_using_lib): Ditto, and new function parameter.
907         (gfc_allocate_using_malloc): Ditto.
908         * trans-openmp.c (gfc_omp_clause_default_ctor,
909         gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
910         to gfc_allocate_allocatable with gfc_allocate_using_malloc.
911         * trans-stmt.c (gfc_trans_allocate): Update function calls for
912         gfc_allocate_allocatable and gfc_allocate_using_malloc.
913
914 2011-07-26  Tobias Burnus  <burnus@net-b.de>
915
916         * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
917         (gfc_conv_descriptor_token): New function.
918         * trans-array.h (gfc_conv_descriptor_token): New prototype.
919         * trans-types.c (gfc_get_array_descriptor_base): For coarrays
920         with -fcoarray=lib, append "void *token" to the array descriptor.
921         (gfc_array_descriptor_base_caf): New static variable.
922         * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
923         when passing a descriptor coarray to a nondescriptor dummy. 
924
925 2011-07-23  Tobias Burnus  <burnus@net-b.de>
926
927         * resolve.c (resolve_symbol): Fix coarray var decl check.
928
929 2011-07-21  Daniel Carrera  <dcarrera@gmail.com>
930
931         * trans.c (gfc_allocate_with_status): Split into two functions
932         gfc_allocate_using_malloc and gfc_allocate_usig_lib.
933         (gfc_allocate_using_malloc): The status parameter is now the
934         actual status rather than a pointer. Code cleanup.
935         (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
936         errlen. Pass these to the coarray lib.
937         * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
938         gfc_allocate_allocatable.
939         (gfc_omp_clause_copy_ctor): Ditto.
940         (gfc_trans_omp_array_reduction): Ditto.
941         * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
942         gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
943         fuctions. If using coarray lib, pass errmsg and errlen to the allocate
944         functions. Move error checking outside the if (!gfc_array_allocate)
945         block so that it also affects trees produced by gfc_array_allocate.
946         * trans-array.c (gfc_array_allocate): Add new parameters errmsg
947         and errlen. Replace parameter pstat by status. Code cleanup. Update
948         calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
949         * trans-array.h (gfc_array_allocate): Update signature of
950         gfc_array_allocate.
951
952 2011-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
953
954         * gfortran.texi: Remove a duplicate word.
955
956 2011-07-21  Tobias Burnus  <burnus@net-b.de>
957
958         * check.c (gfc_check_present): Allow coarrays.
959         * trans-array.c (gfc_conv_array_ref): Avoid casting
960         when a pointer is wanted.
961         * trans-decl.c (create_function_arglist): For -fcoarray=lib,
962         handle hidden token and offset arguments for nondescriptor
963         coarrays.
964         * trans-expr.c (get_tree_for_caf_expr): New function.
965         (gfc_conv_procedure_call): For -fcoarray=lib pass the
966         token and offset for nondescriptor coarray dummies.
967         * trans.h (lang_type): Add caf_offset tree.
968         (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
969
970 2011-07-19  Tobias Burnus  <burnus@net-b.de>
971
972         * expr.c (gfc_is_coarray): New function.
973         * gfortran.h (gfc_is_coarray): New prototype.
974         * interface.c (compare_parameter): Use it.
975
976 2011-07-19  Richard Guenther  <rguenther@suse.de>
977
978         * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
979         (gfc_trans_string_copy): Likewise.
980         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
981         * trans-types.c (gfc_get_array_descr_info): Likewise.
982         * trans.c (gfc_build_array_ref): Likewise.
983
984 2011-07-19  Janus Weil  <janus@gcc.gnu.org>
985
986         PR fortran/49708
987         * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
988
989 2011-07-18  Tobias Burnus  <burnus@net-b.de>
990
991         * trans-decl.c (gfc_build_qualified_array): Make coarray's
992         token TYPE_QUAL_RESTRICT.
993
994 2011-07-18  Tobias Burnus  <burnus@net-b.de>
995
996         * resolve.c (resolve_transfer): Mention defined I/O
997         in the diagnostic for alloc_comp/pointer_comp.
998
999 2011-07-17  Tobias Burnus  <burnus@net-b.de>
1000
1001         PR fortran/34657
1002         * module.c (check_for_ambiguous): Check whether the name is matches
1003         the current program unit.
1004
1005 2011-07-17  Tobias Burnus  <burnus@net-b.de>
1006
1007         PR fortran/49624
1008         * expr.c (gfc_check_pointer_assign): Fix checking for invalid
1009         pointer bounds.
1010
1011 2011-07-16  Tobias Burnus  <burnus@net-b.de>
1012         
1013         * expr.c (gfc_ref_this_image): New function.
1014         (gfc_is_coindexed): Use it.
1015         * gfortran.h (gfc_ref_this_image): New prototype.
1016         * resolve.c (resolve_deallocate_expr,
1017         resolve_allocate_expr): Support alloc scalar coarrays.
1018         * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
1019         gfc_conv_descriptor_cosize, gfc_array_allocate,
1020         gfc_trans_deferred_array): Ditto.
1021         * trans-expr.c (gfc_conv_variable) Ditto.:
1022         * trans-stmt.c (gfc_trans_deallocate): Ditto.
1023         * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
1024         gfc_get_array_descr_info): Ditto.
1025         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1026
1027 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
1028
1029         PR fortran/49698
1030         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
1031         inner_size to gfc_index_one_node instead of integer_one_node.
1032
1033 2011-07-10  Tobias Burnus  <burnus@net-b.de>
1034
1035         PR fortran/49690
1036         * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
1037
1038 2011-07-09  Uros Bizjak  <ubizjak@gmail.com>
1039
1040         PR fortran/48926
1041         * expr.c (gfc_get_corank): Change return value to int.
1042         * gfortran.h (gfc_get_corank): Update function prototype.
1043
1044 2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
1045
1046         PR fortran/49648
1047         * resolve.c (resolve_symbol): Force resolution of function result's
1048         array specification.
1049
1050 2011-07-07  Tobias Burnus  <burnus@net-b.de>
1051
1052         * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
1053         with NULL arguments for (new) stat=/errmsg= arguments.
1054
1055 2011-07-06  Daniel Carrera  <dcarrera@gmail.com>
1056
1057         * trans-array.c (gfc_array_allocate): Rename allocatable_array to
1058         allocatable. Rename function gfc_allocate_array_with_status to
1059         gfc_allocate_allocatable_with_status. Update function call for
1060         gfc_allocate_with_status.
1061         * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
1062         gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
1063         * trans-stmt.c (gfc_trans_allocate): Update function call for
1064         gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
1065         to gfc_allocate_allocatable_with_status.
1066         * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
1067         so it uses the library for memory allocation when -fcoarray=lib.
1068         (gfc_allocate_allocatable_with_status): Renamed from
1069         gfc_allocate_array_with_status.
1070         (gfc_allocate_allocatable_with_status): Update function call for
1071         gfc_allocate_with_status.
1072         * trans.h (gfc_coarray_type): New enum.
1073         (gfc_allocate_with_status): Update prototype.
1074         (gfc_allocate_allocatable_with_status): Renamed from
1075         gfc_allocate_array_with_status.
1076         * trans-decl.c (generate_coarray_sym_init): Use the new constant
1077         GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
1078
1079 2011-07-06  Richard Guenther  <rguenther@suse.de>
1080
1081         * f95-lang.c (gfc_init_decl_processing):
1082         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
1083
1084 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
1085
1086         PR fortran/49623
1087         * gfortranspec.c (lang_specific_driver): Ignore options with
1088         CL_ERR_MISSING_ARG errors.
1089
1090 2011-07-02  Janus Weil  <janus@gcc.gnu.org>
1091
1092         PR fortran/49562
1093         * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
1094
1095 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1096
1097         PR fortran/49540
1098         * gfortran.h (gfc_constructor): Add repeat field.
1099         * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
1100         * array.c (current_expand): Add repeat field.
1101         (expand_constructor): Copy repeat.
1102         * constructor.c (node_free, node_copy, gfc_constructor_get,
1103         gfc_constructor_lookup): Handle repeat field.
1104         (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
1105         * data.h (gfc_assign_data_value): Add mpz_t * argument.
1106         (gfc_assign_data_value_range): Removed.
1107         * constructor.h (gfc_constructor_advance): Removed.
1108         (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
1109         * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
1110         also handle overwriting a range with a single entry.
1111         (gfc_assign_data_value_range): Removed.
1112         * resolve.c (check_data_variable): Adjust gfc_assign_data_value
1113         call.  Use gfc_assign_data_value instead of
1114         gfc_assign_data_value_expr.
1115
1116 2011-06-27  Janus Weil  <janus@gcc.gnu.org>
1117
1118         PR fortran/49466
1119         * trans-array.c (structure_alloc_comps): Make sure sub-components
1120         and extended types are correctly deallocated.
1121
1122 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
1123
1124         * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
1125         * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
1126         * trans-decl.c: Add sync_ or SYNC__ to builtin names.
1127
1128 2011-06-21  Janus Weil  <janus@gcc.gnu.org>
1129
1130         PR fortran/49112
1131         * class.c (gfc_find_derived_vtab): Make vtab and default initialization
1132         symbols SAVE_IMPLICIT.
1133
1134 2011-06-20  Tobias Burnus  <burnus@net-b.de>
1135
1136         PR fortran/18918
1137         * gfortran.h (gfc_check_vardef_context): Update prototype.
1138         (iso_fortran_env_symbol): Handle derived types.
1139         (symbol_attribute): Add lock_comp.
1140         * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
1141         * interface.c (compare_parameter, gfc_procedure_use): Handle
1142         LOCK_TYPE.
1143         (compare_actual_formal): Update
1144         gfc_check_vardef_context call.
1145         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
1146         * intrinsic.c (check_arglist): Ditto.
1147         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
1148         * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
1149         * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
1150         * module.c (mio_symbol_attribute): Handle lock_comp.
1151         (create_derived_type): New function.
1152         (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
1153         * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
1154         * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
1155         checks for LOCK_TYPE.
1156         (gfc_resolve_iterator, resolve_deallocate_expr,
1157         resolve_allocate_expr, resolve_code, resolve_transfer): Update
1158         gfc_check_vardef_context call.
1159         * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
1160         * trans-stmt.c (gfc_trans_lock_unlock): New function.
1161         * trans.c (trans_code): Handle LOCK and UNLOCK.
1162
1163 2011-06-18  Janus Weil  <janus@gcc.gnu.org>
1164
1165         PR fortran/49400
1166         * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
1167         BLOCK constructs.
1168
1169 2011-06-17  Janus Weil  <janus@gcc.gnu.org>
1170
1171         PR fortran/48699
1172         * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
1173         make sure the vtab is present.
1174
1175 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
1176
1177         PR fortran/49074
1178         * interface.c (gfc_extend_assign): Propagate the locus from the
1179         assignment to the type-bound procedure call.
1180
1181 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
1182
1183         PR fortran/49417
1184         * module.c (mio_component): Make sure the 'class_ok' attribute is set
1185         for use-associated CLASS components.
1186         * parse.c (parse_derived): Check for 'class_ok' attribute.
1187         * resolve.c (resolve_fl_derived): Ditto.
1188
1189 2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
1190
1191         * frontend-passes.c (remove_trim):  New function.
1192         (optimize_assignment):  Use it.
1193         (optimize_comparison):  Likewise.  Return correct status
1194         for previous change.
1195
1196 2011-06-12  Tobias Burnus
1197
1198         PR fortran/49324
1199         * trans-expr.c (gfc_trans_assignment_1): Tell
1200         gfc_trans_scalar_assign to also deep-copy RHS nonvariables
1201         with allocatable components.
1202         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
1203
1204 2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1205
1206         * frontend-passes.c (optimize_assignment): Follow chains
1207         of concatenation operators to the end for removing trailing
1208         TRIMS for assignments.
1209
1210 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
1211
1212         * trans-decl.c (gfc_build_builtin_function_decls):
1213         Updated declaration of caf_sync_all and caf_sync_images.
1214         * trans-stmt.c (gfc_trans_sync): Function
1215         can now handle a "stat" variable that has an integer type
1216         different from integer_type_node.
1217
1218 2011-06-09  Richard Guenther  <rguenther@suse.de>
1219
1220         * trans.c (gfc_allocate_array_with_status): Mark error path
1221         as unlikely.
1222
1223 2011-06-08  Tobias Burnus  <burnus@net-b.de>
1224
1225         PR fortran/18918
1226         * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
1227         (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
1228         (gfc_code): Add expr4.
1229         * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
1230         * match.c (gfc_match_lock, gfc_match_unlock,
1231         lock_unlock_statement): New functions.
1232         (sync_statement): Bug fix, avoiding double freeing.
1233         (gfc_match_if): Handle LOCK/UNLOCK statement.
1234         * parse.c (decode_statement, next_statement,
1235         gfc_ascii_statement): Ditto.
1236         * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
1237         * resolve.c (resolve_lock_unlock): New function.
1238         (resolve_code): Call it.
1239         * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
1240
1241 2011-06-07  Richard Guenther  <rguenther@suse.de>
1242
1243         * f95-lang.c (gfc_init_decl_processing): Do not set
1244         size_type_node or call set_sizetype.
1245
1246 2011-06-05  Tobias Burnus  <burnus@net-b.de>
1247
1248         PR fortran/49255
1249         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1250         for F2008.
1251
1252 2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
1253         Thomas Koenig  <tkoenig@gcc.gnu.org>
1254
1255         * dump-parse-tree.c (show_symbol):  Don't dump namespace
1256         for ENTRY to avoid infinite recursion.
1257
1258 2011-06-02  Asher Langton  <langton2@llnl.gov>
1259
1260         PR fortran/49268
1261         * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
1262         pointees as AS_EXPLICIT.
1263
1264 2011-06-02  Asher Langton  <langton2@llnl.gov>
1265
1266         PR fortran/37039
1267         * decl.c (variable_decl): Merge current_as before copying to cp_as.
1268
1269 2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1270
1271         PR fortran/49265
1272         * decl.c (gfc_match_modproc):  Allow for a double colon in a module
1273         procedure statement.
1274         * parse.c ( decode_statement): Deal with whitespace around :: in
1275         gfc_match_modproc.
1276
1277 2011-05-31  Tobias Burnus  <burnus@net-b.de>
1278
1279         PR fortran/18918
1280         * intrinsic.c (klass): Add CLASS_ATOMIC.
1281         (add_subroutines): Add atomic_ref/atomic_define.
1282         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
1283         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
1284         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
1285         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
1286         and GFC_ISYM_ATOMIC_REF.
1287         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
1288         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
1289         functions.
1290         * check.c (gfc_check_atomic, gfc_check_atomic_def,
1291         gfc_check_atomic_ref): New functions.
1292         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
1293         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
1294         * trans-intrinsic.c (conv_intrinsic_atomic_def,
1295         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
1296         functions.
1297         (conv_intrinsic_move_alloc) Renamed from
1298         gfc_conv_intrinsic_move_alloc - and made static.
1299         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
1300         (gfc_conv_intrinsic_subroutine) Add prototype.
1301         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
1302         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
1303         global vars.
1304         (gfc_init_kinds): Set them.
1305
1306 2011-05-31  Tobias Burnus  <burnus@net-b.de>
1307
1308         PR fortran/18918
1309         * trans-array.c (gfc_trans_dummy_array_bias): Handle
1310         cobounds of assumed-shape arrays.
1311
1312 2011-05-31  Tobias Burnus  <burnus@net-b.de>
1313
1314         PR fortran/18918
1315         * resolve.c (resolve_fl_variable): Handle static coarrays
1316         with non-constant cobounds.
1317
1318 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
1319
1320         PR fortran/47601
1321         * module.c (mio_component_ref): Handle components of extended types.
1322         * symbol.c (gfc_find_component): Return is sym is NULL.
1323
1324 2011-05-29  Tobias Burnus  <burnus@net-b.de>
1325
1326         PR fortran/18918
1327         * interface.c (compare_parameter): Add check for passing coarray
1328         to allocatable noncoarray dummy.
1329
1330 2011-05-29  Tobias Burnus  <burnus@net-b.de>
1331             Richard Guenther  <rguenther@suse.de>
1332
1333         PR fortran/18918
1334         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
1335         the type's TREE_TYPE.
1336         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
1337         * trans.c (gfc_build_array_ref): Ditto.
1338
1339 2011-05-27  Tobias Burnus  <burnus@net-b.de>
1340
1341         PR fortran/18918
1342         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
1343         * match.c (gfc_match_nullify): Ditto.
1344         * resolve.c (resolve_deallocate_expr): Ditto.
1345         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
1346         for nonpointers.
1347
1348 2011-05-27  Tobias Burnus  <burnus@net-b.de>
1349
1350         PR fortran/48820
1351         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
1352         * intrinsic.c (add_functions): Add rank intrinsic.
1353         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
1354         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
1355         * simplify.c (gfc_simplify_rank): New function.
1356         * intrinsic.texi (RANK): Add description for rank intrinsic.
1357         * check.c (gfc_check_rank): New function.
1358
1359 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
1360             Thomas Koenig  <tkoenig@gcc.gnu.org>
1361
1362         PR fortran/48955
1363         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
1364         changed to GFC_ENABLE_REVERSE.
1365         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
1366         to GFC_INHIBIT_REVERSE.
1367         * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE,
1368         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
1369         * dependency.c (gfc_dep_resolver): Change names for elements of
1370         gfc_reverse as necessary. Change the logic so that forward
1371         dependences are remembered as well as backward ones. When both
1372         have appeared, force a temporary.
1373
1374 2011-05-26  Tobias Burnus  <burnus@net-b.de>
1375
1376         PR fortran/18918
1377         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
1378         * trans-decl.c (has_coarray_vars, caf_init_block,
1379         gfor_fndecl_caf_register): New file-global variables.
1380         (gfc_finish_var_decl): Make sure that coarrays in main are static.
1381         (gfc_build_qualified_array): Generate coarray token variable.
1382         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
1383         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
1384         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
1385         static coarrays.
1386         (generate_local_decl): Check for local coarrays.
1387         (create_main_function): SYNC ALL before calling MAIN.
1388         (generate_coarray_sym_init): Register static coarray.
1389         (generate_coarray_init): Generate CAF registering constructor
1390         function.
1391         (gfc_generate_function_code): Call it, if needed, do not create
1392         cgraph twice.
1393         (gfc_generate_module_vars, gfc_process_block_locals): Call
1394         generate_coarray_init.
1395         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
1396         -fcoarray=lib.
1397         * trans.h (gfor_fndecl_caf_register): New variable.
1398         (lang_type): New element caf_token.
1399         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
1400
1401 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1402
1403         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
1404         (gfortran$(exeext)): Use libcommon-target.a.
1405
1406 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
1407
1408         * frontend-passes.c (cfe_register_funcs):  Also register
1409         character functions if their charlens are known and constant.
1410         Also register allocatable functions.
1411
1412 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
1413
1414         PR fortran/48699
1415         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
1416         selector is ALLOCATABLE.
1417
1418 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
1419
1420         PR fortran/48706
1421         * module.c (write_dt_extensions): Do not write extended types which
1422         are local to a subroutine.
1423
1424 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1425
1426         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
1427
1428 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
1429
1430         * gfortran.texi (set_fpe): Update documentation.
1431         * invoke.texi (-ffpe-trap): Likewise.
1432         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
1433         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
1434         precision an alias for it.
1435
1436 2011-05-19  Tobias Burnus  <burnus@net-b.de>
1437
1438         PR fortran/18918
1439         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
1440         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
1441         coarrays.
1442         * trans.c (gfc_build_array_ref): Return original type not variant
1443         copy for scalar coarrays.
1444         * trans-array.c (gfc_conv_array_ref): Ditto.
1445
1446 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
1447
1448         PR fortran/48700
1449         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
1450         argument to avoid memory leaks.
1451
1452 2011-05-16  Tobias Burnus  <burnus@net-b.de>
1453
1454         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
1455         (Fortran 2008 status): Multi-image support for coarrays.
1456         (TR 19113 status): New section.
1457
1458 2011-05-15  Tobias Burnus  <burnus@net-b.de>
1459
1460         PR fortran/18918
1461         actual argument is not an array; rank mismatch is diagnosted later.
1462         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
1463         scalar coarrays.
1464         * trans-types.c (gfc_get_array_type_bounds): Ditto.
1465
1466 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
1467
1468         PR middle-end/46500
1469         * trans-types.c: Include "tm.h".
1470         [0] (c_size_t_size): Remove.
1471
1472 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
1473
1474         PR libfortran/48915
1475         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
1476         is now the default, the library defaults to backtracing disabled.
1477
1478 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1479
1480         * lang.opt (fdump-core): Re-add as ignored option
1481         for backward compatibility.
1482
1483 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
1484
1485         PR libfortran/48915
1486         * gfortran.texi: Update mixed-language programming section
1487         reflecting the removal of the fdump-core option, and that
1488         -fbacktrace is now enabled by default.
1489
1490 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1491
1492         PR fortran/22572
1493         * frontend-passes.c (cfe_register_funcs):  Also register functions
1494         for potential elimination if the rank is > 0, the shape is unknown
1495         and reallocate on assignment is active.
1496         (create_var):  For rank > 0 functions with unknown shape, create
1497         an allocatable temporary.
1498
1499 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1500
1501         PR fortran/18918
1502         * interface.c (compare_parameter): Skip diagnostic if
1503         actual argument is not an array; rank mismatch is diagnosted later.
1504
1505 2011-05-14  Tobias Burnus  <burnus@net-b.de>
1506
1507         * options.c (gfc_init_options, gfc_post_options): Enable
1508         -fstack-arrays by default if -Ofast is used.
1509         * invoke.texi (-fstack-arrays): Document this.
1510
1511 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
1512
1513         PR libfortran/48915
1514         * gfortran.h (gfc_option_t): Remove flag_dump_core.
1515         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
1516         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
1517         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
1518         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
1519         enabled by default.
1520         * lang.opt: Remove -fdump-core.
1521         * options.c (gfc_init_options): Make backtrace default to enabled,
1522         remove dump_core.
1523         (gfc_handle_option): Remove OPT_fdump-core.
1524         * trans-decl.c: Pass a 0 to preserve ABI.
1525
1526 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
1527
1528         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
1529
1530 2011-05-13  Tobias Burnus  <burnus@net-b.de>
1531
1532         PR fortran/48972
1533         * io.c (resolve_tag_format, resolve_tag): Make sure
1534         that the string is of default kind.
1535         (gfc_resolve_inquire): Also resolve decimal tag.
1536
1537 2011-05-12  Tobias Burnus  <burnus@net-b.de>
1538
1539         PR fortran/48972
1540         * resolve.c (resolve_intrinsic): Don't resolve module
1541         intrinsics multiple times.
1542
1543 2011-05-11  Tobias Burnus  <burnus@net-b.de>
1544
1545         PR fortran/48889
1546         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
1547         instead of e->symtree->n.sym, if available.
1548
1549 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1550
1551         * f95-lang.c (global_bindings_p): Return bool and simplify.
1552
1553 2011-05-07  Tobias Burnus  <burnus@net-b.de>
1554
1555         PR fortran/18918
1556         PR fortran/48919
1557         * trans.h: Move gfc_init_coarray_decl prototype ...
1558         * gfortran.h: ... to here.
1559         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
1560         (gfc_parse_file): Update translate_all_program_units call.
1561         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
1562         new argument whether DECL_EXTERNAL should be used.
1563         (create_main_function): Update gfc_init_coarray_decl call.
1564         * trans-intrinsic.c (trans_this_image, trans_image_index,
1565         conv_intrinsic_cobound): Ditto.
1566
1567 2011-05-06  Tobias Burnus  <burnus@net-b.de>
1568
1569         PR fortran/18918
1570         * trans-array.c (gfc_walk_variable_expr): Continue walking
1571         for scalar coarrays.
1572         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
1573         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
1574         (trans_this_image): Fix algorithm.
1575         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
1576         gfc_sym_type): Handle scalar coarrays.
1577
1578 2011-05-06  Tobias Burnus  <burnus@net-b.de>
1579
1580         PR fortran/48858
1581         PR fortran/48820
1582         * lang.opt (std=f2008tr): New.
1583         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
1584         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
1585         procedures for -std=f2008tr/gnu/legacy.
1586         (gfc_match_import): Set sym to NULL.
1587         * options.c (set_default_std_flags,gfc_handle_option): Handle
1588         -std=f2008tr.
1589         * invoke.texi (-std=): Document -std=f2008tr.
1590
1591 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1592
1593         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
1594         * trans-io.c (add_case): Likewise.
1595         * trans-stmt.c (gfc_trans_integer_select): Likewise.
1596         (gfc_trans_character_select): Likewise.
1597
1598 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1599
1600         * trans-decl.c (trans_function_start): Do not set
1601         dont_save_pending_sizes_p.
1602
1603 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1604
1605         * trans.h (gfc_chainon_list): Delete.
1606         * trans.c (gfc_chainon_list): Delete.
1607
1608 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1609
1610         PR fortran/48864
1611         * invoke.texi (fno-protect-parens): Document
1612         that -Ofast implies -fno-protect-parens.
1613         * options.c (gfc_init_options, gfc_post_options):
1614         Make -Ofast imply -fno-protect-parens.
1615
1616 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1617
1618         * trans-decl.c (build_library_function_decl_1): Call
1619         build_function_type_vec.  Adjust argument list building accordingly.
1620         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1621         * trans-types.c (gfc_get_function_type): Likewise.
1622
1623 2011-05-04  Richard Guenther  <rguenther@suse.de>
1624
1625         * trans-array.c (gfc_trans_array_constructor_value): Use
1626         size_int for bounds of range types.
1627         (gfc_trans_array_constructor_value): Use size_type_node
1628         for memcpy argument.
1629         * trans-common.c (build_field): Use gfc_charlen_type_node
1630         for lengths.
1631         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
1632         as type to build_int_cst.
1633         * trans-const.c (gfc_build_string_const): Use size_int
1634         for bounds of range types.
1635         (gfc_build_wide_string_const): Likewise.
1636         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
1637         for lengths.
1638         (gfc_trans_character_select): Likewise.
1639         (gfc_trans_character_select): Do not pass NULL
1640         as type to build_int_cst.
1641         (gfc_trans_character_select): Use size_int for bounds of range types.
1642         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
1643         (add_case): Do not pass NULL as type to build_int_cst.
1644         (transfer_expr): Likewise.
1645         (transfer_array_desc): Likewise.
1646         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
1647         for lengths.
1648         (gfc_trans_assign_aux_var): Likewise.
1649         (create_main_function): Use size_int for bounds of range types.
1650         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
1651         NULL as type to build_int_cst.
1652         (gfc_conv_intrinsic_spacing): Likewise.
1653         (gfc_conv_intrinsic_rrspacing): Likewise.
1654         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
1655
1656 2011-05-04  Richard Guenther  <rguenther@suse.de>
1657
1658         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
1659         argument to int_const_binop.
1660
1661 2011-05-03  Tobias Burnus  <burnus@net-b.de>
1662
1663         PR fortran/18918
1664         * trans-intrinsic.c (trans_this_image): Implement version with
1665         coarray argument.
1666         (conv_intrinsic_cobound): Simplify code.
1667         (gfc_conv_intrinsic_function): Call trans_this_image for
1668         this_image(coarray) except for -fcoarray=single.
1669
1670 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1671
1672         PR fortran/48720
1673         * gfortran.texi: Document the 'Q' exponent-letter extension.
1674         * invoke.texi: Document -Wreal-q-constant.
1675         * lang.opt: Add -Wreal-q-constant option.
1676         * gfortran.h: Add warn_real_q_constant to option struct.
1677         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
1678         exponent-letter for REAL(16) real-literal-constant with a
1679         fallback to REAL(10) or error if REAL(10) is not available.
1680         * options.c (gfc_init_options, set_Wall) Set it.
1681         (gfc_handle_option): Handle new option.
1682
1683 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1684
1685         * dump-prase-tree.c (show_code_node):  Set the current
1686         namespace to the BLOCK before displaying it; restore
1687         afterwards.
1688
1689 2011-04-30  Tobias Burnus  <burnus@net-b.de>
1690
1691         PR fortran/48821
1692         * decl.c (gfc_match_import): Don't try to find the
1693         symbol if already found.
1694
1695 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
1696
1697         PR fortran/48746
1698         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
1699         offset so that the lbounds are one.
1700         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
1701
1702 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
1703
1704         PR fortran/48462
1705         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
1706         automatic reallocation when the lhs is a target.
1707
1708         PR fortran/48746
1709         * trans-expr.c (fcncall_realloc_result): Make sure that the
1710         result dtype field is set before the function call.
1711
1712 2011-04-29  Tobias Burnus  <burnus@net-b.de>
1713
1714         PR fortran/48810
1715         * resolve.c (resolve_typebound_generic_call): Don't check access
1716         flags of the specific function.
1717
1718         PR fortran/48800
1719         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
1720         to AS_ASSUMED_SHAPE for function results.
1721         (resolve_fl_var_and_proc): Print also for function results with
1722         AS_DEFERRED an error, if they are not a pointer or allocatable.
1723         (resolve_types): Make sure arguments of procedures in interface
1724         blocks are resolved.
1725
1726 2011-04-29  Michael Matz  <matz@suse.de>
1727
1728         * options.c (options.c): Set warn_maybe_uninitialized.
1729
1730 2011-04-28  Tobias Burnus  <burnus@net-b.de>
1731
1732         PR fortran/48112
1733         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
1734         function results only once.
1735         (resolve_symbol): Always resolve function results.
1736
1737         PR fortran/48279
1738         * expr.c (gfc_check_vardef_context): Fix handling of generic
1739         EXPR_FUNCTION.
1740         * interface.c (check_interface0): Reject internal functions
1741         in generic interfaces, unless -std=gnu.
1742
1743 2011-04-27  Tobias Burnus  <burnus@net-b.de>
1744
1745         PR fortran/48788
1746         * resolve.c (resolve_global_procedure): Error recovery -
1747         avoid segfault for (non)character-returning functions.
1748
1749 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1750
1751         * decl.c (gfc_match_end):  Check that the block name starts
1752         with "block@".
1753         * parse.c (gfc_build_block_ns):  Make block names unique by
1754         numbering them.
1755
1756 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1757
1758         * frontend-passes.c (inserted_block):  New variable.
1759         (changed_statement):  Likewise.
1760         (create_var):  Encase statement to be operated on in a BLOCK.
1761         Adjust code insertion for BLOCK.
1762         (cfe_code):  Set inserted_block and changed_statement to NULL.
1763
1764 2011-04-23  Tobias Burnus  <burnus@net-b.de>
1765
1766         PR fortran/18918
1767         * module.c (mio_array_spec): Set as->cotype on reading.
1768         * resolve.c (resolve_allocate_expr): Fix allocating coarray
1769         components.
1770
1771 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1772
1773         PR fortran/48405
1774         * frontend_passes (cfe_register_funcs): Remove workaround for DO
1775         loops.
1776         (gfc_code_walker):  Make sure the pointer to the current
1777         statement doen't change when other statements are inserted.
1778
1779 2011-04-21  Tobias Burnus  <burnus@net-b.de>
1780
1781         PR fortran/18918
1782         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
1783
1784 2011-04-20  Jim Meyering  <meyering@redhat.com>
1785
1786         * expr.c (free_expr0): Remove useless if-before-free.
1787         * gfortranspec.c (lang_specific_pre_link): Likewise.
1788         * interface.c (gfc_extend_expr): Likewise.
1789         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1790
1791 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1792
1793         PR fortran/48588
1794         PR fortran/48692
1795
1796         * module.c (fix_mio_expr): Commit created symbol.
1797
1798 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1799
1800         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
1801
1802 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1803
1804         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
1805         free.
1806
1807 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1808
1809         * misc.c (gfc_getmem): Remove function.
1810         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
1811         usage with XCNEW or XCNEWVEC.
1812         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
1813         XCNEW or XCNEWVEC.
1814         * options.c (gfc_handle_module_path_options)
1815         (gfc_get_option_string): Likewise.
1816         * resolve.c (gfc_resolve_forall): Likewise.
1817         * simplify.c (simplify_transformation_to_array): Likewise.
1818         * target-memory.c (gfc_target_interpret_expr): Likewise.
1819         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
1820         (get_init_field): Likewise.
1821         * trans-expr.c (gfc_conv_statement_function): Likewise.
1822         * trans-io.c (nml_full_name): Likewise.
1823         * trans-stmt.c (gfc_trans_forall_1): Likewise.
1824         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
1825
1826 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1827
1828         PR fortran/48588
1829         * parse.c (resolve_all_program_units): Skip modules.
1830         (translate_all_program_units): Handle modules.
1831         (gfc_parse_file): Defer code generation for modules.
1832
1833 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1834
1835         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
1836         instead of cgraph_get_create_node.
1837
1838 2011-04-18  Jim Meyering  <meyering@redhat.com>
1839
1840         remove now-unused definition of gfc_free
1841         * misc.c (gfc_free): Remove function.
1842         * gfortran.h (gfc_free): Remove its prototype.
1843
1844 2011-04-18  Jim Meyering  <meyering@redhat.com>
1845
1846         convert each use of gfc_free (p) to free (p)
1847         Do that by running this command:
1848           perl -pi -e    's/\bgfc_free ?\(/free (/' \
1849             $(git grep -El '\bgfc_free ?\(')
1850         which also corrects the few uses that lacked a space between
1851         the function name and the open parenthesis.
1852         Manually undo the change to the function definition itself
1853         and its prototype.  They'll be removed next.
1854         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
1855         * constructor.c (node_free): Likewise.
1856         * cpp.c (dump_queued_macros): Likewise.
1857         * data.c (gfc_assign_data_value): Likewise.
1858         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
1859         (gfc_free_data_all, match_old_style_init): Likewise.
1860         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
1861         Likewise.
1862         (gfc_match_modproc): Likewise.
1863         * dependency.c (check_section_vs_section): Likewise.
1864         * error.c (gfc_pop_error, gfc_free_error): Likewise.
1865         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
1866         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
1867         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
1868         Likewise.
1869         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
1870         (strip_function_call, optimize_comparison): Likewise.
1871         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
1872         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
1873         Likewise.
1874         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
1875         (gfc_convert_chartype): Likewise.
1876         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
1877         Likewise.
1878         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
1879         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
1880         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
1881         Likewise.
1882         (free_case, gfc_free_forall_iterator): Likewise.
1883         * misc.c: Likewise.
1884         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
1885         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
1886         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
1887         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
1888         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
1889         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
1890         * openmp.c (gfc_free_omp_clauses): Likewise.
1891         * options.c (gfc_post_options): Likewise.
1892         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
1893         * primary.c (gfc_free_structure_ctor_component): Likewise.
1894         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
1895         (gfc_resolve_forall, resolve_equivalence): Likewise.
1896         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
1897         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
1898         (load_file, gfc_read_orig_filename): Likewise.
1899         * simplify.c (simplify_transformation_to_array): Likewise.
1900         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
1901         Likewise.
1902         (gfc_simplify_compiler_options): Likewise.
1903         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
1904         (gfc_free_association_list): Likewise.
1905         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
1906         Likewise.
1907         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
1908         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
1909         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
1910         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
1911         Likewise.
1912         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
1913         (gfc_free_namespace): Likewise.
1914         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
1915         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
1916         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
1917         * trans-common.c (get_init_field, create_common): Likewise.
1918         * trans-const.c (gfc_build_wide_string_const): Likewise.
1919         (gfc_conv_string_init): Likewise.
1920         * trans-decl.c (gfc_generate_function_code): Likewise.
1921         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
1922         Likewise.
1923         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
1924         (gfc_trans_subarray_assign): Likewise.
1925         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
1926         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
1927         (transfer_namelist_element, transfer_array_component): Likewise.
1928         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1929         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
1930         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
1931         Likewise.
1932
1933 2011-04-15  Jim Meyering  <meyering@redhat.com>
1934
1935         gfortran: remove cpp definition of free, ...
1936         in preparation for the s/gfc_free/free/ transformation.
1937         * gfortran.h (free): Remove macro definition that would otherwise
1938         prevent direct use of the function.
1939
1940 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1941
1942         PR fortran/18918
1943         * array.c (gfc_match_array_ref): Check for too many codimensions.
1944         * check.c (gfc_check_image_index): Check number of elements
1945         in SUB argument.
1946         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
1947
1948 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1949
1950         PR fortran/18918
1951         * iresolve.c (gfc_resolve_image_index): Set ts.type.
1952         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
1953         are not known at compile time and handle -fcoarray=lib.
1954         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
1955         IMAGE_INDEX.
1956         (conv_intrinsic_cobound): Fix comment typo.
1957         (trans_this_image): New function.
1958         * trans-array.c (gfc_unlikely): Move to trans.c.
1959         * trans.c (gfc_unlikely): Function moved from trans-array.c.
1960         (gfc_trans_runtime_check): Use it.
1961         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
1962         * trans.h (gfc_unlikely): Add prototype.
1963
1964 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
1965
1966         PR fortran/48462
1967         * trans-expr.c (fcncall_realloc_result): Renamed version of
1968         realloc_lhs_bounds_for_intrinsic_call that does not touch the
1969         descriptor bounds anymore but makes a temporary descriptor to
1970         hold the result.
1971         (gfc_trans_arrayfunc_assign): Modify the reference to above
1972         renamed function.
1973
1974 2011-05-17  Tobias Burnus  <burnus@net-b.de>
1975
1976         PR fortran/48624
1977         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
1978         for external procedures with proc arguments.
1979
1980 2011-04-15  Michael Matz  <matz@suse.de>
1981
1982         * trans-array.c (toplevel): Include gimple.h.
1983         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
1984         properly expand variable length arrays.
1985         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
1986         variable length decls and associate them with their scope.
1987         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
1988         * options.c (gfc_init_options): Handle -fstack_arrays option.
1989         * lang.opt (fstack-arrays): Add option.
1990         * invoke.texi (Code Gen Options): Document it.
1991         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
1992
1993 2011-04-15  Tobias Burnus  <burnus@net-b.de>
1994
1995         PR fortran/18918
1996         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
1997         code which is also causing an ICE.
1998
1999 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
2000
2001         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
2002
2003 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
2004
2005         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
2006         calling TREE_CHAIN.
2007
2008 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
2009
2010         PR fortran/48360
2011         PR fortran/48456
2012         * trans-array.c (get_std_lbound): For derived type variables
2013         return array valued component lbound.
2014
2015 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2016
2017         * trans-decl.c (gfc_generate_function_code): Call
2018         cgraph_get_create_node instead of cgraph_node.
2019
2020 2011-04-11  Tobias Burnus  <burnus@net-b.de>
2021
2022         PR fortran/18918
2023         * simplify.c (simplify_bound_dim): Exit for
2024         ucobound's last dimension unless -fcoarray=single.
2025         * trans-array (gfc_conv_descriptor_size_1): Renamed from
2026         gfc_conv_descriptor_size, made static, has now from_dim and
2027         to_dim arguments.
2028         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
2029         (gfc_conv_descriptor_cosize): New function.
2030         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
2031         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
2032         and handle last codim of ucobound for when -fcoarray is not "single".
2033
2034 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2035
2036         PR fortran/48448
2037         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
2038         flag_frontend_optimize.
2039         * lang.opt (Wfunction-elimination):  Add.
2040         (ffrontend-optimize):  Add.
2041         * invoke.texi:  Add documentation for -Wfunction-elimination
2042         and -ffrontend-optimize.  Add -faggressive-function-elimination
2043         to list of code generation options.
2044         * frontend-passes.c (gfc_run_passes):  Run optimizations if
2045         flag_frontend_optimize is set.
2046         (warn_function_elimination):  New function.
2047         (cfe_expr_0):  Call it if requested to do so.
2048         * options.c (gfc_init_options):  Initiate warn_function_elimination
2049         and flag_frontend_optimize.
2050         (gfc_post_options):  Set flag_frontend_optimize if not specified
2051         by user, depending on the optimization level.
2052         (gfc_handle_option):  Handle -Wfunction-elimination and
2053         -ffrontend-optimize.
2054
2055 2011-04-06  Tobias Burnus  <burnus@net-b.de>
2056
2057         PR fortran/18918
2058         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
2059         call for this_image.
2060
2061 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2062
2063         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
2064         build_function_type_list instead of build_function_type.  Correct
2065         argument order for func_frexp and func_scalbn.
2066
2067 2011-04-05  Duncan Sands  <baldrick@free.fr>
2068
2069         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
2070
2071 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
2072
2073         * frontend-passes: (optimize_lexical_comparison): New function.
2074         (optimize_expr): Call it.
2075         (optimize_comparison): Also handle lexical comparison functions.
2076         Return false instad of -2 for unequal comparison.
2077
2078 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
2079
2080         PR fortran/48412
2081         * frontend-passes (cfe_expr_0):  Reverse the order of going
2082         through the loops.
2083
2084 2011-04-04  Tobias Burnus  <burnus@net-b.de>
2085             Mikael Morin  <mikael.morin@sfr.fr>
2086
2087         PR fortran/18918
2088         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
2089         * expr.c (gfc_is_coindexed): Ditto.
2090         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
2091         * interface.c (compare_parameter): Use gfc_expr_attr and
2092         gfc_is_coindexed.
2093         * resolve.c (check_dimension, compare_spec_to_ref,
2094         resolve_allocate_expr, check_data_variable): Update for
2095         DIMEN_THIS_IMAGE.
2096         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
2097         gfc_simplify_ucobound): Allow non-constant bounds.
2098         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
2099         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
2100         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
2101         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
2102         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
2103         gfc_conv_ss_startstride, gfc_conv_loop_setup,
2104         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
2105         gfc_walk_variable_expr): Handle codimen.
2106         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
2107         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
2108         (conv_intrinsic_cobound): New function.
2109         (gfc_conv_intrinsic_function): Call it.
2110         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
2111         ucobound, lcobound, this_image.
2112         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
2113         (gfc_get_dtype): Honour corank.
2114         (gfc_get_nodesc_array_type): Save corank and codimensions.
2115         (gfc_get_array_type_bounds): Save cobound.
2116         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
2117         (gfc_array_kind): Add corank item.
2118         (GFC_TYPE_ARRAY_CORANK): New macro.
2119
2120 2011-04-03  Kai Tietz  <ktietz@redhat.com>
2121
2122         PR middle-end/48422
2123         * Make-lang.in (f95-lang.o): Add some missing dependencies.
2124
2125 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
2126
2127         PR fortran/48352
2128         * frontend-passes (cfe_register_funcs):  Don't
2129         register functions if they appear as iterators in DO loops.
2130
2131 2011-03-30  Michael Matz  <matz@suse.de>
2132
2133         PR fortran/47516
2134         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
2135         don't use local variable.
2136         (gfc_trans_arrayfunc_assign): Adjust caller.
2137
2138 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
2139
2140         PR fortran/48095
2141         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
2142         * module.c (MOD_VERSION): Bump.
2143         (mio_typespec): Read/write 'interface' field.
2144         * primary.c (match_string_constant,match_logical_constant): Remove
2145         unneeded code.
2146         (match_complex_constant): Make sure to clear the typespec.
2147
2148 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
2149
2150         * frontend-passes.c (create_var):  Warn about creating an
2151         array temporary if requested.
2152
2153 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2154
2155         PR fortran/47065
2156         * frontend-passes.c (optimize_trim): Also follow references, except
2157         when they are substring references or array references.
2158
2159 2011-03-27  Tobias Burnus  <burnus@net-b.de>
2160
2161         PR fortran/18918
2162         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
2163         GFC_ISYM_NUM_IMAGES.
2164         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
2165         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
2166         rename.
2167         * invoke.texi (-fcoarray=): Document "lib" argument.
2168         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
2169         * libgfortran.h (libgfortran_stat_codes): Add comments.
2170         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
2171         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
2172         Handle GFC_FCOARRAY_LIB.
2173         * trans.h (gfc_init_coarray_decl): New prototype.
2174         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
2175         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
2176         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
2177         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
2178         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
2179         New global variables.
2180         * trans-decl.c: Declare several CAF functions (cf. above).
2181         (gfc_build_builtin_function_decls): Initialize those.
2182         (gfc_init_coarray_decl): New function.
2183         (create_main_function): Call CAF init/finalize functions.
2184         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
2185         (gfc_conv_intrinsic_function): Call those.
2186         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
2187         Add code for GFC_FCOARRAY_LIB.
2188
2189 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
2190
2191         PR fortran/48291
2192         * class.c (get_unique_hashed_string): Adjust maximum allowable length
2193         for unique type string.
2194
2195 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2196
2197         * scanner.c (preprocessor_line): Use filename_cmp
2198         instead of strcmp.
2199
2200 2011-03-25  Tobias Burnus  <burnus@net-b.de>
2201
2202         PR fortran/48174
2203         PR fortran/45304
2204         * trans-types.c (gfc_get_function_type): Don't use varargs if the
2205         procedure is known to have no arguments.
2206
2207 2011-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2208
2209         PR fortran/22572
2210         * gfortran.h (gfc_option_t) : Add
2211         flag_aggressive_function_elimination.
2212         (gfc_dep_compare_functions):  Add prototype.
2213         * lang.opt: Add faggressive-function-elimination.
2214         * invoke.texi: Document -faggressive-function-elimination.
2215         * frontend_passes (expr_array):  New static variable.
2216         (expr_size):  Likewise.
2217         (expr_count):  Likewise.
2218         (current_code):  Likewise.
2219         (current_ns):  Likewise.
2220         (gfc_run_passes):  Allocate and free space for expressions.
2221         (cfe_register_funcs):  New function.
2222         (create_var):  New function.
2223         (cfc_expr_0):  New function.
2224         (cfe_code):  New function.
2225         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
2226         and cfe_expr_0.
2227         * dependency.c (gfc_dep_compare_functions):  New function.
2228         (gfc_dep_compare_expr):  Use it.
2229         * options.c (gfc_init_options):  Handle
2230         flag_aggressive_function_elimination.
2231         (gfc_handle_option):  Likewise.
2232
2233 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2234
2235         * arith.c (arith_power): Plug memory leak.
2236
2237 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
2238
2239         PR fortran/48059
2240         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
2241         for polymorphic arguments.
2242
2243 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2244
2245         PR fortran/48054
2246         * intrinsic.texi: Clarify doc of logarithm functions.
2247
2248 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2249
2250         PR fortran/47552
2251         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
2252         the string length variable.
2253
2254 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
2255
2256         PR fortran/47768
2257         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
2258         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
2259
2260 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
2261             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2262
2263         PR fortran/47850
2264         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
2265         the expression has an iterator.  Otherwise, iterate through the
2266         array, checking for constant expressions for each element.
2267
2268 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
2269
2270         PR libfortran/47802
2271         * intrinsic.texi: Update CTIME and FDATE documentation.
2272
2273 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2274
2275         * invoke.texi (Option Summary, Fortran Dialect Options)
2276         (Preprocessing Options, Runtime Options, Code Gen Options):
2277         Fix vertical list spacing by using @itemx for additinoal
2278         items, empty line before @table.  Fix typos.
2279
2280 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2281
2282         PR fortran/47894
2283         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
2284
2285 2011-02-26  Tobias Burnus  <burnus@net-b.de>
2286
2287         PR fortran/47846
2288         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
2289         type-spec of deferred-length strings.
2290
2291 2011-02-26  Tobias Burnus  <burnus@net-b.de>
2292
2293         PR fortran/47886
2294         * openmp.c (gfc_resolve_omp_directive): Resolve if()
2295         condition of OpenMP's task.
2296
2297 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2298
2299         PR fortran/47894
2300         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
2301
2302 2011-02-24  Tobias Burnus  <burnus@net-b.de>
2303
2304         PR fortran/47872
2305         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
2306         multitable for linebreak between different syntax variants.
2307
2308 2011-02-24  Richard Guenther  <rguenther@suse.de>
2309
2310         PR fortran/47839
2311         * f95-lang.c (pushdecl): For externs in non-global scope push
2312         a copy of the decl into the BLOCK.
2313
2314 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
2315
2316         PR fortran/40850
2317         * trans.c (gfc_prepend_expr_to_block): New function.
2318         * trans.h (gfc_prepend_expr_to_block): Declare.
2319         * trans-array.c (gfc_conv_array_parameter): Replace
2320         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
2321
2322 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
2323
2324         PR fortran/45743
2325         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
2326         gsymbol backend_decl if the procedure has a formal argument
2327         that is a procedure.
2328
2329 2011-02-22  Tobias Burnus  <burnus@net-b.de>
2330
2331         PR fortran/41359
2332         * trans-stmt.c (gfc_trans_if_1): Use correct line for
2333         expressions in the if condition.
2334
2335 2011-02-20  Tobias Burnus  <burnus@net-b.de>
2336
2337         PR fortran/47797
2338         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
2339         gfc_restore_backend_locus to have better debug locations.
2340         * trans-array.c (gfc_trans_deferred_array): Ditto.
2341
2342 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
2343
2344         PR fortran/45077
2345         PR fortran/44945
2346         * trans-types.c (gfc_get_derived_type): Remove code that looks
2347         for decls in gsym and add call to gfc_get_module_backend_decl.
2348         * trans.h : Add prototype for gfc_get_module_backend_decl.
2349         * trans-decl.c (gfc_get_module_backend_decl): New function.
2350         (gfc_get_symbol_decl): Call it.
2351
2352 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
2353
2354         PR fortran/47348
2355         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
2356         (get_array_ctor_var_strlen): Add block dummy and add call to
2357         get_array_ctor_all_strlen instead of giving up on substrings.
2358         Call gcc_unreachable for default case.
2359         (get_array_ctor_strlen): Add extra argument to in call to
2360         get_array_ctor_var_strlen.
2361
2362 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
2363
2364         PR fortran/47789
2365         * primary.c (gfc_match_structure_constructor): Handle empty parent
2366         types.
2367
2368 2011-02-18  Tobias Burnus
2369
2370         PR fortran/47775
2371         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
2372         esym to check whether the specific procedure returns an
2373         allocatable or pointer.
2374
2375 2011-02-18  Michael Matz  <matz@suse.de>
2376
2377         PR fortran/45586
2378         * gfortran.h (struct gfc_component): Add norestrict_decl member.
2379         * trans.h (struct lang_type): Add nonrestricted_type member.
2380         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
2381         parent type.
2382         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
2383         (gfc_sym_type): Use it.
2384
2385 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
2386
2387         PR fortran/47768
2388         * resolve.c (resolve_transfer): Reject variables with procedure pointer
2389         components.
2390
2391 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
2392
2393         PR fortran/47767
2394         * gfortran.h (gfc_check_access): Removed prototype.
2395         (gfc_check_symbol_access): Added prototype.
2396         * module.c (gfc_check_access): Renamed to 'check_access', made static.
2397         (gfc_check_symbol_access): New function, basically a shortcut for
2398         'check_access'.
2399         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
2400         'gfc_check_symbol_access'.
2401         (write_operator,write_module): Renamed 'gfc_check_access'.
2402         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
2403         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
2404         'gfc_check_symbol_access'.
2405
2406 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
2407
2408         PR fortran/47745
2409         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
2410         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
2411         'gfc_build_class_symbol'.
2412         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
2413         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
2414         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
2415         'gfc_build_class_symbol'.
2416         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
2417
2418 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
2419
2420         PR fortran/47633
2421         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
2422
2423 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
2424
2425         PR fortran/47730
2426         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
2427
2428 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
2429
2430         PR fortran/47728
2431         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
2432         arrays.
2433         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
2434         declaration.
2435
2436 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
2437
2438         PR fortran/47349
2439         * interface.c (get_expr_storage_size): Handle derived-type components.
2440
2441 2011-02-13  Tobias Burnus  <burnus@net-b.de>
2442
2443         PR fortran/47569
2444         * interface.c (compare_parameter): Avoid ICE with
2445         character components.
2446
2447 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
2448
2449         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
2450         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
2451         'gfc_build_class_symbol'.
2452
2453 2011-02-12  Michael Matz  <matz@suse.de>
2454             Janus Weil  <janus@gcc.gnu.org>
2455             Tobias Burnus  <burnus@net-b.de>
2456
2457         PR fortran/45586
2458         * trans-expr.c (conv_parent_component_references): Avoid unintendent
2459         skipping of parent compounds.
2460
2461 2011-02-11  Tobias Burnus  <burnus@net-b.de>
2462
2463         PR fortran/47550
2464         * resolve.c (resolve_formal_arglist): PURE with VALUE
2465         and no INTENT: Add -std= diagnostics.
2466
2467 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
2468
2469         PR fortran/47352
2470         * resolve.c (resolve_procedure_interface): If interface has a result
2471         variable, copy the typespec and set result pointer to self.
2472
2473 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
2474
2475         PR fortran/47463
2476         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
2477
2478 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
2479
2480         PR fortran/47637
2481         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
2482
2483 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2484
2485         * io.c (match_io_element): Do not set dt if not inquire.
2486
2487 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
2488
2489         PR fortran/45290
2490         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
2491         initialization target.
2492
2493 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
2494             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2495
2496         * gfortran.texi (Thread-safety): texinfo styling fixes.
2497         * intrinsic.texi: Likewise.
2498
2499 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
2500
2501         * gfortran.texi (Compiler Characteristics): Add reference to
2502         thread-safety section.
2503
2504 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
2505
2506         * gfortran.texi (Thread-safety): New section.
2507         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
2508         (GETENV): Likewise.
2509         (GET_ENVIRONMENT_VARIABLE): Likewise.
2510         (SYSTEM): Likewise.
2511
2512 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
2513
2514         PR fortran/47592
2515         * trans-stmt.c (gfc_trans_allocate): For deferred character
2516         length allocations with SOURCE, store to the values and string
2517         length to avoid calculating twice.  Replace gfc_start_block
2518         with gfc_init_block to avoid unnecessary contexts and to keep
2519         declarations of temporaries where they should be. Tidy up the
2520         code a bit.
2521
2522 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
2523
2524         PR fortran/42434
2525         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
2526
2527 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
2528             Paul Thomas  <pault@gcc.gnu.org>
2529
2530         PR fortran/47082
2531         * trans-expr.c (gfc_trans_class_init_assign): Add call to
2532         gfc_get_derived_type.
2533         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
2534         or vtypes.
2535
2536 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
2537
2538         PR fortran/47572
2539         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
2540
2541 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
2542
2543         PR fortran/47565
2544         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
2545         pointer components with allocatable result.
2546
2547 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
2548
2549         PR fortran/47455
2550         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
2551         with pointer or allocatable result.
2552
2553 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
2554
2555         PR fortran/47519
2556         * trans-stmt.c (gfc_trans_allocate): Improve handling of
2557         deferred character lengths with SOURCE.
2558         * iresolve.c (gfc_resolve_repeat): Calculate character
2559         length from source length and ncopies.
2560         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
2561         expressions for ALLOCATE.
2562
2563 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
2564
2565         PR fortran/47463
2566         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
2567         an argument of a typebound assignment being a component.
2568
2569 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2570
2571         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
2572         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
2573
2574 2011-01-31  Tobias Burnus  <burnus@net-b.de>
2575
2576         PR fortran/47042
2577         * resolve.c (resolve_fl_procedure): Reject stmt functions
2578         with pointer/allocatable attribute.
2579
2580 2011-01-31  Tobias Burnus  <burnus@net-b.de>
2581
2582         PR fortran/47042
2583         * interface.c (gfc_procedure_use): Add explicit interface check for
2584         pointer/allocatable functions.
2585
2586 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
2587
2588         PR fortran/47523
2589         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
2590         expr and is assigned to a deferred character length scalar,
2591         make sure that the function is called before reallocation,
2592         so that the length is available. Include procedure pointer
2593         and procedure pointer component rhs as well.
2594
2595         PR fortran/45170
2596         PR fortran/35810
2597         PR fortran/47350
2598         * gfortran.dg/allocatable_function_5.f90: New test not added by
2599         mistake on 2011-01-28.
2600
2601 2011-01-29  Tobias Burnus  <burnus@net-b.de>
2602
2603         PR fortran/47531
2604         * check.c (gfc_check_shape): Support kind argument in SHAPE.
2605         * intrinsic.c (add_functions): Ditto.
2606         * resolve.c (gfc_resolve_shape): Ditto.
2607         * simplify.c (gfc_simplify_shape): Ditto.
2608         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
2609         gfc_simplify_shape): Update prototypes.
2610         * intrinisc.text (SHAPE): Document kind argument.
2611
2612 2011-01-28  Tobias Burnus  <burnus@net-b.de>
2613
2614         PR fortran/47507
2615         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
2616         attribute also without INTENT.
2617
2618 2011-01-28  Tobias Burnus  <burnus@net-b.de>
2619
2620         * gfortran.texi (Fortran 2003 status): Mention support for
2621         nonconstant namelist variables.
2622
2623 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
2624             Tobias Burnus  <burnus@gcc.gnu.org>
2625
2626         PR fortran/45170
2627         PR fortran/35810
2628         PR fortran/47350
2629         * interface.c (compare_actual_formal): An allocatable or pointer
2630         deferred length actual is only allowed if the formal argument
2631         is also deferred length. Clean up whitespace.
2632         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
2633         deferred character length formal arguments by reference. Do the
2634         same for function results.
2635         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
2636         and rhs character lengths, if deferred length lhs.  In this case
2637         set the lhs character length to that of the rhs.
2638         (gfc_conv_string_parameter): Remove assert that string length is
2639         an integer type.
2640         (is_scalar_reallocatable_lhs): New function.
2641         (alloc_scalar_allocatable_for_assignment): New function.
2642         (gfc_trans_assignment_1): Call above new function. If the rhs is
2643         a deferred character length itself, makes ure that the function
2644         is called before reallocation, so that the length is available.
2645         (gfc_trans_asssignment): Remove error about assignment to
2646         deferred length character variables.
2647         * gfortran.texi : Update entry about (re)allocation on
2648         assignment.
2649         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
2650         length character variables.
2651         * module.c (mio_typespec): Transfer deferred characteristic.
2652         * trans-types.c (gfc_get_function_type): New code to generate
2653         hidden typelist, so that those character lengths that are
2654         passed by reference get the right type.
2655         * resolve.c (resolve_contained_fntype): Supress error for
2656         deferred character length functions.
2657         (resolve_function, resolve_fl_procedure) The same.
2658         (check_symbols): Remove the error that support for
2659         entity with deferred type parameter is not yet implemented.
2660         (resolve_fl_derived): The same.
2661         match.c (alloc_opt_list): Allow MOLD for deferred length object.
2662         * trans-decl.c (gfc_get_symbol_decl): For deferred character
2663         length dummies, generate a local variable for string length.
2664         (create_function_arglist): Hidden length can be a pointer.
2665         (gfc_trans_deferred_vars): For deferred character length
2666         results and dummies, assign the string length to the local
2667         variable from the hidden argument on entry and the other way
2668         round on exit, as appropriate.
2669
2670 2011-01-27  Tobias Burnus  <burnus@net-b.de>
2671
2672         PR fortran/47474
2673         * trans-decl.c (gfc_generate_function_code): Fix init
2674         of allocatable result variable with allocatable components.
2675
2676 2011-01-27  Tobias Burnus  <burnus@net-b.de>
2677
2678         PR fortran/47472
2679         * options.c (gfc_handle_module_path_options): Save
2680         module path without trailing slash as include path.
2681
2682 2011-01-25  Tobias Burnus  <burnus@net-b.de>
2683
2684         PR fortran/47448
2685         * interface.c (gfc_check_operator_interface): Fix
2686         defined-assignment check.
2687
2688 2011-01-23  Tobias Burnus  <burnus@net-b.de>
2689
2690         PR fortran/47421
2691         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
2692         scalar allocatable dummy arguments.
2693
2694 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2695
2696         PR fortran/38536
2697         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
2698         check for array sections followed by component references
2699         which are illegal.  Also check for coindexed arguments.
2700
2701 2011-01-22  Tobias Burnus  <burnus@net-b.de>
2702
2703         PR fortran/47399
2704         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
2705         PARAMETER TBP.
2706
2707 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2708
2709         PR fortran/47394
2710         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
2711         Use defined instead of magic number exit status codes.
2712         * scanner.c (include_line, gfc_new_file): Ditto.
2713
2714 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2715
2716         PR fortran/47377
2717         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
2718         without pointer attribute.
2719
2720 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
2721
2722         PR fortran/47240
2723         * resolve.c (expression_rank): Fix rank of procedure poiner components.
2724         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
2725         pointer components as actual arguments.
2726
2727 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
2728
2729         PR fortran/47331
2730         * gfortran.h (struct gfc_omp_saved_state): New type.
2731         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
2732         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
2733         call.
2734         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
2735         functions.
2736
2737 2011-01-17  Tobias Burnus  <burnus@net-b.de>
2738
2739         PR fortran/47327
2740         * invoke.texi (Options to request or suppress errors
2741         and warnings): Fix cross link.
2742
2743 2011-01-15  Tobias Burnus  <burnus@net-b.de>
2744
2745         * gfortran.texi: Update Fortran 2003 Status section.
2746
2747         PR fortran/47177
2748         * invoke.texi: Add missing "-E" to the -dM example.
2749
2750 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2751
2752         PR fortran/47268
2753         * intrinsic.texi (get_command_argument, get_environment_variable):
2754         Mark arguments as optional in the Arguments section.
2755
2756 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
2757             Tobias Burnus  <burnus@net-b.de>
2758
2759         PR fortran/47260
2760         * trans-decl.c (gfc_get_extern_function_decl,
2761         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
2762         calling decl_attributes.
2763
2764 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2765             Mikael Morin  <mikael@gcc.gnu.org>
2766
2767         PR fortran/45848
2768         PR fortran/47204
2769         * gfortran.h (gfc_code): Move union ext's case_list into
2770         the struct block.
2771         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
2772         by "block.".
2773         * frontend-passes.c (gfc_code_walker): Ditto.
2774         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
2775         gfc_match_type_is, gfc_match_class_is): Ditto.
2776         * resolve.c (resolve_select, resolve_select_type): Ditto.
2777         * st.c (gfc_free_statement): Ditto.
2778         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
2779         gfc_trans_character_select): Ditto.
2780         * parse.c (resolve_all_program_units): For error recovery, avoid
2781         segfault is proc_name is NULL.
2782
2783 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
2784
2785         PR fortran/47051
2786         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
2787         to be standard compliant by testing for shape rather than size
2788         before skipping reallocation. Improve comments.
2789
2790 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2791
2792         PR fortran/47224
2793         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
2794         of code.
2795
2796 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2797
2798         PR fortran/38536
2799         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
2800         use gfc_dep_compare_expr to compare start and end expession.
2801         Add FIXME for using gfc_deb_compare_expr elsewhere.
2802
2803 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2804
2805         PR fortran/46313
2806         * class.c (get_unique_type_string): Make type name start with upper
2807         case letter.
2808
2809 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2810
2811         PR fortran/46405
2812         * invoke.texi:  Mention -ffree-line-length-none and
2813         -ffixed-line-length-none for preprocessing.
2814
2815 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
2816
2817         PR fortran/46896
2818         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
2819         procedure argument (eg TRANSPOSE) use a temporary if there is
2820         any chance of aliasing due to host or use association.
2821         (arrayfunc_assign_needs_temporary): Correct logic for function
2822         results and do not use a temporary for implicitly PURE
2823         variables.  Use a temporary for Cray pointees.
2824         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
2825         implicit pureness of containing procedure.
2826         * decl.c (match_old_style_init, gfc_match_data): Where decl
2827         would fail in PURE procedure, set implicit_pure to zero.
2828         * gfortran.h : Add implicit_pure to structure symbol_attr and
2829         add prototype for function gfc_implicit_pure.
2830         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
2831         Where decl would fail in PURE procedure, reset implicit_pure.
2832         * io.c (match_vtag, gfc_match_open, gfc_match_close,
2833         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
2834         * match.c (gfc_match_critical, gfc_match_stopcode,
2835         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
2836         same.
2837         * parse.c (decode_omp_directive): The same.
2838         (parse_contained): If not PURE, set implicit pure attribute.
2839         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
2840         resolve_function, resolve_ordinary_assign) : The same.
2841         (gfc_implicit_pure): New function.
2842         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
2843         to ab_attribute enum and use it in this function.
2844
2845 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2846
2847         PR fortran/45777
2848         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
2849         make static and move in front of its only caller, to ...
2850         * trans-array.c (symbols_could_alias): ... here.
2851         Pass information about pointer and target status as
2852         arguments.  Allocatable arrays don't alias anything
2853         unless they have the POINTER attribute.
2854         (gfc_could_be_alias):  Keep track of pointer and target
2855         status when following references.  Also check if typespecs
2856         of components match those of other components or symbols.
2857
2858 2011-01-07  Tobias Burnus  <burnus@net-b.de>
2859
2860         PR fortran/41580
2861         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
2862         * intrinsic.c (add_functions): Use simplify functions for
2863         EXTENDS_TYPE_OF and SAME_TYPE_AS.
2864         * intrinsic.h (gfc_simplify_extends_type_of,
2865         gfc_simplify_same_type_as): New prototypes.
2866         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
2867         gfc_simplify_same_type_as): New functions.
2868
2869 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
2870
2871         PR fortran/47189
2872         PR fortran/47194
2873         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
2874         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
2875         type.
2876         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
2877         * resolve.c (resolve_deallocate_expr): _data component will be added
2878         at translation stage.
2879         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
2880         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
2881
2882 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
2883
2884         PR fortran/33117
2885         PR fortran/46478
2886         * parse.c (parse_interface): Remove check for procedure types.
2887         * interface.c (check_interface0): Verify that procedures are
2888         either all SUBROUTINEs or all FUNCTIONs.
2889
2890 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2891
2892         PR fortran/47180
2893         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
2894         'vtab' is initialized).
2895
2896 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2897
2898         PR fortran/47180
2899         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
2900         assignment, set the _vptr component to the declared type.
2901
2902 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2903
2904         PR fortran/46017
2905         * resolve.c (resolve_allocate_deallocate): Follow references to
2906         check for duplicate occurence of allocation/deallocation objects.
2907
2908 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2909
2910         PR fortran/47024
2911         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
2912         of polymorphic allocatables according to their declared type.
2913
2914 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
2915
2916         PR fortran/46448
2917         * class.c (gfc_find_derived_vtab): Set the module field for the copying
2918         routine to make sure it receives module name mangling.
2919
2920 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
2921
2922         * gfortranspec.c (lang_specific_driver): Update copyright notice
2923         dates.
2924
2925 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
2926
2927         * intrinsic.texi (LEADZ): Fix example.
2928
2929 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
2930
2931         PR fortran/46408
2932         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
2933         routine.
2934
2935 \f
2936 Copyright (C) 2011 Free Software Foundation, Inc.
2937
2938 Copying and distribution of this file, with or without modification,
2939 are permitted in any medium without royalty provided the copyright
2940 notice and this notice are preserved.