OSDN Git Service

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