OSDN Git Service

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