OSDN Git Service

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