OSDN Git Service

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