OSDN Git Service

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