OSDN Git Service

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