OSDN Git Service

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