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