OSDN Git Service

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