OSDN Git Service

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