OSDN Git Service

Add ability to force lexed tokens' source_locations.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-08-22  Gabriel Charette  <gchare@google.com>
2
3         * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
4         defined in cpp_define_builtins.
5
6 2011-08-22  Mikael Morin  <mikael.morin@gcc.gnu.org>
7
8         PR fortran/50050
9         * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
10         * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
11         (free_expr0): Re-use gfc_free_shape.
12         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
13         * trans-io.c (transfer_array_component): Ditto.
14         * resolve.c (check_host_association): Ditto.
15         (gfc_expr_to_initialize): Don't force the rank value and free the shape
16         after updating the expression. Recalculate shape and rank.
17         (resolve_where_shape): Re-use gfc_clear_shape.
18         * array.c (gfc_array_ref_shape): Ditto.
19
20 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
21
22         PR fortran/47659
23         * expr.c (gfc_check_assign): Check for type conversions when the
24         right-hand side is a constant REAL/COMPLEX contstant the left-hand
25         side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
26         for REAL does not change the value of the constant.
27
28 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
29
30         PR fortran/50130
31         * resolve.c (resolve_array_ref):  Don't calculate upper bound
32         if the stride is zero.
33
34 2011-08-20  Janus Weil  <janus@gcc.gnu.org>
35
36         PR fortran/49638
37         * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
38         (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
39         result value "-3".
40         * frontend-passes.c (optimize_comparison): Ditto.
41         * interface.c (gfc_check_typebound_override): Ditto.
42
43 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
44
45         PR fortran/50129
46         * parse.c (parse_where): Undo changes after emitting an error. 
47
48 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
49
50         PR fortran/49792
51         * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
52         bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
53         lhs needs reallocation.
54         * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
55         code is NULL, emit a barrier if workshare emitted no code at all
56         and NOWAIT clause isn't present.
57
58 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
59
60         PR fortran/50071
61         * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
62         * parse.c (check_statement_label): Accept ST_END_BLOCK and
63         ST_END_ASSOCIATE as valid branch target.
64         (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
65         Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
66         * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
67         EXEC_END_NESTED_BLOCK.
68         (resolve_branch): Ditto.
69         (resolve_code): Add EXEC_END_NESTED_BLOCK case.
70         * st.c (gfc_free_statement): Ditto.
71         * trans.c (trans_code): Ditto.
72
73 2011-08-18  Mikael Morin  <mikael.morin@sfr.fr>
74
75         PR fortran/50071
76         * symbol.c (gfc_get_st_label): Use the derived type namespace when
77         we are parsing a derived type definition.
78
79 2011-08-18  Tobias Burnus  <burnus@net-b.de>
80
81         PR fortran/18918
82         * parse.c (parse_derived): Add lock_type
83         checks, improve coarray_comp handling.
84         * resolve.c (resolve_allocate_expr,
85         resolve_lock_unlock, resolve_symbol): Fix lock_type
86         constraint checks.
87
88 2011-08-17  Tobias Burnus  <burnus@net-b.de>
89
90         PR fortran/31461
91         * trans-decl.c (generate_local_decl): Warn about
92         unused explicitly imported module variables/parameters.
93
94 2011-08-17  Janus Weil  <janus@gcc.gnu.org>
95
96         PR fortran/50070
97         * resolve.c (resolve_fl_variable): Reject non-constant character lengths
98         in COMMON variables.
99
100 2011-08-16  Tobias Burnus  <burnus@net-b.de>
101             Dominique Dhumieres  <dominiq@lps.ens.fr>
102
103         PR fortran/50094
104         * resolve.c (resolve_symbol): Fix stupid typo.
105
106 2011-08-15  Tobias Burnus  <burnus@net-b.de>
107
108         * resolve.c (resolve_symbol): Fix coarray result-var check.
109
110 2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>
111
112         * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.
113
114 2011-08-14  Janus Weil  <janus@gcc.gnu.org>
115
116         PR fortran/50073
117         * decl.c (check_function_name): New function, separated off from
118         'variable_decl' and slightly extended.
119         (variable_decl,attr_decl1): Call it.
120
121 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
122
123         * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
124
125 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
126             Thomas Koenig  <tkoenig@gcc.gnu.org>
127
128         PR fortran/49638
129         * dependency.c (are_identical_variables): For dummy arguments only
130         check for equal names, not equal symbols.
131         * interface.c (gfc_check_typebound_override): Add checking for rank
132         and character length.
133
134 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
135
136         PR fortran/49638
137         * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
138         two prototypes.
139         * dependency.c (gfc_are_identical_variables,are_identical_variables):
140         Renamed the former to the latter and made static.
141         (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
142         commutativity of multiplication.
143         (gfc_is_same_range,is_same_range): Renamed the former to the latter,
144         made static and removed argument 'def'.
145         (check_section_vs_section): Renamed 'gfc_is_same_range'.
146         * gfortran.h (gfc_check_typebound_override): New prototype.
147         * interface.c (gfc_check_typebound_override): Moved here from ...
148         * resolve.c (check_typebound_override): ... here (and renamed).
149         (resolve_typebound_procedure): Renamed 'check_typebound_override'.
150
151 2011-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
152
153         PR fortran/50004
154         * target-memory.c (gfc_target_expr-size): Don't clobber typespec
155         for derived types.
156         * simplify.c (gfc_simplify_transfer): Don't calculate source_size
157         twice.
158
159 2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
160
161         PR fortran/37211
162         * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
163         * target-memory.h (gfc_target_interpret_expr):  Add boolean
164         argument wether to convert wide characters.
165         * target-memory.c (gfc_target_expr_size):  Also return length
166         of characters for non-constant expressions if these can be
167         determined from the cl.
168         (interpret_array):  Add argument for gfc_target_interpret_expr.
169         (gfc_interpret_derived):  Likewise.
170         (gfc_target_interpret_expr):  Likewise.
171         * check.c:  Include target-memory.h.
172         (gfc_calculate_transfer_sizes):  New function.
173         (gfc_check_transfer):  When -Wsurprising is in force, calculate
174         sizes and warn if result is larger than size (check moved from
175         gfc_simplify_transfer).
176         * simplify.c (gfc_simplify_transfer):  Use
177         gfc_calculate_transfer_sizes.  Remove warning.
178
179 2011-08-04  Richard Guenther  <rguenther@suse.de>
180
181         PR fortran/49957
182         * trans-array.c (add_to_offset): New function.
183         (gfc_conv_array_ref): Build the array index expression in optimally
184         associated order.
185         (gfc_walk_variable_expr): Adjust for the backward walk.
186
187 2011-08-02  Daniel Kraft  <d@domob.eu>
188
189         PR fortran/49885
190         * trans-array.c (gfc_trans_auto_array_allocation): Change
191         gfc_start_block to gfc_init_block to avoid spurious extra-scope.
192
193 2011-08-02  Tobias Burnus  <burnus@net-b.de>
194
195         * trans-array.c (gfc_array_allocate): Pass token to
196           gfc_allocate_allocatable for -fcoarray=lib.
197         * trans-stmt.c (gfc_trans_allocate): Update
198         gfc_allocate_allocatable call.
199         * trans.h (gfc_allocate_allocatable): Update prototype.
200         (gfc_allocate_using_lib): Remove.
201         * trans.c (gfc_allocate_using_lib): Make static, handle token.
202         (gfc_allocate_allocatable): Ditto.
203
204 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
205
206         PR fortran/46752
207         * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
208         * openmp.c (gfc_free_omp_clauses): Free also final_expr.
209         (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
210         (gfc_match_omp_clauses): Handle parsing final and mergeable
211         clauses.
212         (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
213         (gfc_match_omp_taskyield): New function.
214         (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
215         Cray pointers in clauses other than REDUCTION.
216         (gfc_match_omp_atomic): Match optional
217         read/write/update/capture keywords after !$omp atomic.
218         (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
219         * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
220         print final and mergeable clauses.
221         (show_code_node): Handle EXEC_OMP_TASKYIELD.
222         * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
223         mergeable clauses.
224         (gfc_trans_omp_taskyield): New function.
225         (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
226         (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
227         (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
228         (gfc_omp_predetermined_sharing): Adjust comment.
229         * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
230         ST_OMP_END_ATOMIC.
231         (gfc_omp_clauses): Add final_expr and mergeable fields.
232         (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
233         (gfc_omp_atomic_op): New enum typedef.
234         (struct gfc_code): Add ext.omp_atomic.
235         * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
236         * frontend-passes.c (gfc_code_walker): Also walk final_expr.
237         * resolve.c (gfc_resolve_blocks, resolve_code): Handle
238         EXEC_OMP_TASKYIELD.
239         * st.c (gfc_free_statement): Likewise.
240         * match.h (gfc_match_omp_taskyield): New prototype.
241         * parse.c (decode_omp_directive): Handle taskyield directive.
242         Handle !$omp end atomic.
243         (case_executable): Add ST_OMP_TASKYIELD case.
244         (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
245         (parse_omp_atomic): Return gfc_statement instead of void.
246         For !$omp atomic capture parse two assignments instead of
247         just one and require !$omp end atomic afterwards, for
248         other !$omp atomic forms just allow !$omp end atomic at the
249         end.
250         (parse_omp_structured_block, parse_executable): Adjust
251         parse_omp_atomic callers.
252
253 2011-08-02  Tobias Burnus  <burnus@net-b.de>
254
255         * intrinsic.c (OMP_LIB): Updated openmp_version's
256         value to 201107.
257         * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
258         * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
259         remove deleted omp_integer_kind and omp_logical_kind constants.
260
261 2011-07-31  Janus Weil  <janus@gcc.gnu.org>
262
263         PR fortran/49112
264         * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
265         only call 'resolve_fl_derived0'.
266         (resolve_typebound_procedures): Resolve typebound procedures of
267         parent type.
268         (resolve_fl_derived0): New function, which does a part of the work
269         for 'resolve_fl_derived'.
270         (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
271         things.
272
273 2011-07-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
274
275         PR fortran/48876
276         * expr.c (gfc_simplify_expr):  If end of a string is less
277         than zero, set it to zero.
278
279 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
280
281         PR fortran/31067
282         * frontend-passes.c (optimize_minmaxloc): New function.
283         (optimize_expr): Call it.
284
285 2011-07-27  Tobias Burnus  <burnus@net-b.de>
286
287         PR fortran/45586
288         * trans-types.c (gfc_get_derived_type): Ensure that pointer
289         component types are marked as nonrestricted.
290
291 2011-07-27  Daniel Carrera  <dcarrera@gmail.com>
292
293         PR fortran/49755
294         * trans.c (gfc_allocate_using_malloc): Change function signature.
295         Return nothing. New parameter "pointer". Eliminate temorary variables. 
296         (gfc_allocate_using_lib): Ditto.
297         (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
298         and gfc_allocate_using_malloc. Do not free and then reallocate a
299         variable that is already allocated.
300         (gfc_likely): New function. Basedon gfc_unlikely.
301         * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
302         Instructions to modify the array descriptor are stored in this block
303         while other instructions continue to be stored in "pblock".
304         (gfc_array_allocate): Update call to gfc_array_init_size. Move the
305         descriptor_block so that the array descriptor is only updated if
306         the array was allocated successfully.
307         Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
308         * trans.h (gfc_allocate_allocatable): Change function signature.
309         Function now returns void.
310         (gfc_allocate_using_lib): Ditto, and new function parameter.
311         (gfc_allocate_using_malloc): Ditto.
312         * trans-openmp.c (gfc_omp_clause_default_ctor,
313         gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
314         to gfc_allocate_allocatable with gfc_allocate_using_malloc.
315         * trans-stmt.c (gfc_trans_allocate): Update function calls for
316         gfc_allocate_allocatable and gfc_allocate_using_malloc.
317
318 2011-07-26  Tobias Burnus  <burnus@net-b.de>
319
320         * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
321         (gfc_conv_descriptor_token): New function.
322         * trans-array.h (gfc_conv_descriptor_token): New prototype.
323         * trans-types.c (gfc_get_array_descriptor_base): For coarrays
324         with -fcoarray=lib, append "void *token" to the array descriptor.
325         (gfc_array_descriptor_base_caf): New static variable.
326         * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
327         when passing a descriptor coarray to a nondescriptor dummy. 
328
329 2011-07-23  Tobias Burnus  <burnus@net-b.de>
330
331         * resolve.c (resolve_symbol): Fix coarray var decl check.
332
333 2011-07-21  Daniel Carrera  <dcarrera@gmail.com>
334
335         * trans.c (gfc_allocate_with_status): Split into two functions
336         gfc_allocate_using_malloc and gfc_allocate_usig_lib.
337         (gfc_allocate_using_malloc): The status parameter is now the
338         actual status rather than a pointer. Code cleanup.
339         (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
340         errlen. Pass these to the coarray lib.
341         * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
342         gfc_allocate_allocatable.
343         (gfc_omp_clause_copy_ctor): Ditto.
344         (gfc_trans_omp_array_reduction): Ditto.
345         * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
346         gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
347         fuctions. If using coarray lib, pass errmsg and errlen to the allocate
348         functions. Move error checking outside the if (!gfc_array_allocate)
349         block so that it also affects trees produced by gfc_array_allocate.
350         * trans-array.c (gfc_array_allocate): Add new parameters errmsg
351         and errlen. Replace parameter pstat by status. Code cleanup. Update
352         calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
353         * trans-array.h (gfc_array_allocate): Update signature of
354         gfc_array_allocate.
355
356 2011-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
357
358         * gfortran.texi: Remove a duplicate word.
359
360 2011-07-21  Tobias Burnus  <burnus@net-b.de>
361
362         * check.c (gfc_check_present): Allow coarrays.
363         * trans-array.c (gfc_conv_array_ref): Avoid casting
364         when a pointer is wanted.
365         * trans-decl.c (create_function_arglist): For -fcoarray=lib,
366         handle hidden token and offset arguments for nondescriptor
367         coarrays.
368         * trans-expr.c (get_tree_for_caf_expr): New function.
369         (gfc_conv_procedure_call): For -fcoarray=lib pass the
370         token and offset for nondescriptor coarray dummies.
371         * trans.h (lang_type): Add caf_offset tree.
372         (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
373
374 2011-07-19  Tobias Burnus  <burnus@net-b.de>
375
376         * expr.c (gfc_is_coarray): New function.
377         * gfortran.h (gfc_is_coarray): New prototype.
378         * interface.c (compare_parameter): Use it.
379
380 2011-07-19  Richard Guenther  <rguenther@suse.de>
381
382         * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
383         (gfc_trans_string_copy): Likewise.
384         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
385         * trans-types.c (gfc_get_array_descr_info): Likewise.
386         * trans.c (gfc_build_array_ref): Likewise.
387
388 2011-07-19  Janus Weil  <janus@gcc.gnu.org>
389
390         PR fortran/49708
391         * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
392
393 2011-07-18  Tobias Burnus  <burnus@net-b.de>
394
395         * trans-decl.c (gfc_build_qualified_array): Make coarray's
396         token TYPE_QUAL_RESTRICT.
397
398 2011-07-18  Tobias Burnus  <burnus@net-b.de>
399
400         * resolve.c (resolve_transfer): Mention defined I/O
401         in the diagnostic for alloc_comp/pointer_comp.
402
403 2011-07-17  Tobias Burnus  <burnus@net-b.de>
404
405         PR fortran/34657
406         * module.c (check_for_ambiguous): Check whether the name is matches
407         the current program unit.
408
409 2011-07-17  Tobias Burnus  <burnus@net-b.de>
410
411         PR fortran/49624
412         * expr.c (gfc_check_pointer_assign): Fix checking for invalid
413         pointer bounds.
414
415 2011-07-16  Tobias Burnus  <burnus@net-b.de>
416         
417         * expr.c (gfc_ref_this_image): New function.
418         (gfc_is_coindexed): Use it.
419         * gfortran.h (gfc_ref_this_image): New prototype.
420         * resolve.c (resolve_deallocate_expr,
421         resolve_allocate_expr): Support alloc scalar coarrays.
422         * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
423         gfc_conv_descriptor_cosize, gfc_array_allocate,
424         gfc_trans_deferred_array): Ditto.
425         * trans-expr.c (gfc_conv_variable) Ditto.:
426         * trans-stmt.c (gfc_trans_deallocate): Ditto.
427         * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
428         gfc_get_array_descr_info): Ditto.
429         * trans-decl.c (gfc_get_symbol_decl): Ditto.
430
431 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
432
433         PR fortran/49698
434         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
435         inner_size to gfc_index_one_node instead of integer_one_node.
436
437 2011-07-10  Tobias Burnus  <burnus@net-b.de>
438
439         PR fortran/49690
440         * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
441
442 2011-07-09  Uros Bizjak  <ubizjak@gmail.com>
443
444         PR fortran/48926
445         * expr.c (gfc_get_corank): Change return value to int.
446         * gfortran.h (gfc_get_corank): Update function prototype.
447
448 2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
449
450         PR fortran/49648
451         * resolve.c (resolve_symbol): Force resolution of function result's
452         array specification.
453
454 2011-07-07  Tobias Burnus  <burnus@net-b.de>
455
456         * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
457         with NULL arguments for (new) stat=/errmsg= arguments.
458
459 2011-07-06  Daniel Carrera  <dcarrera@gmail.com>
460
461         * trans-array.c (gfc_array_allocate): Rename allocatable_array to
462         allocatable. Rename function gfc_allocate_array_with_status to
463         gfc_allocate_allocatable_with_status. Update function call for
464         gfc_allocate_with_status.
465         * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
466         gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
467         * trans-stmt.c (gfc_trans_allocate): Update function call for
468         gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
469         to gfc_allocate_allocatable_with_status.
470         * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
471         so it uses the library for memory allocation when -fcoarray=lib.
472         (gfc_allocate_allocatable_with_status): Renamed from
473         gfc_allocate_array_with_status.
474         (gfc_allocate_allocatable_with_status): Update function call for
475         gfc_allocate_with_status.
476         * trans.h (gfc_coarray_type): New enum.
477         (gfc_allocate_with_status): Update prototype.
478         (gfc_allocate_allocatable_with_status): Renamed from
479         gfc_allocate_array_with_status.
480         * trans-decl.c (generate_coarray_sym_init): Use the new constant
481         GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
482
483 2011-07-06  Richard Guenther  <rguenther@suse.de>
484
485         * f95-lang.c (gfc_init_decl_processing):
486         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
487
488 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
489
490         PR fortran/49623
491         * gfortranspec.c (lang_specific_driver): Ignore options with
492         CL_ERR_MISSING_ARG errors.
493
494 2011-07-02  Janus Weil  <janus@gcc.gnu.org>
495
496         PR fortran/49562
497         * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
498
499 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
500
501         PR fortran/49540
502         * gfortran.h (gfc_constructor): Add repeat field.
503         * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
504         * array.c (current_expand): Add repeat field.
505         (expand_constructor): Copy repeat.
506         * constructor.c (node_free, node_copy, gfc_constructor_get,
507         gfc_constructor_lookup): Handle repeat field.
508         (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
509         * data.h (gfc_assign_data_value): Add mpz_t * argument.
510         (gfc_assign_data_value_range): Removed.
511         * constructor.h (gfc_constructor_advance): Removed.
512         (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
513         * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
514         also handle overwriting a range with a single entry.
515         (gfc_assign_data_value_range): Removed.
516         * resolve.c (check_data_variable): Adjust gfc_assign_data_value
517         call.  Use gfc_assign_data_value instead of
518         gfc_assign_data_value_expr.
519
520 2011-06-27  Janus Weil  <janus@gcc.gnu.org>
521
522         PR fortran/49466
523         * trans-array.c (structure_alloc_comps): Make sure sub-components
524         and extended types are correctly deallocated.
525
526 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
527
528         * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
529         * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
530         * trans-decl.c: Add sync_ or SYNC__ to builtin names.
531
532 2011-06-21  Janus Weil  <janus@gcc.gnu.org>
533
534         PR fortran/49112
535         * class.c (gfc_find_derived_vtab): Make vtab and default initialization
536         symbols SAVE_IMPLICIT.
537
538 2011-06-20  Tobias Burnus  <burnus@net-b.de>
539
540         PR fortran/18918
541         * gfortran.h (gfc_check_vardef_context): Update prototype.
542         (iso_fortran_env_symbol): Handle derived types.
543         (symbol_attribute): Add lock_comp.
544         * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
545         * interface.c (compare_parameter, gfc_procedure_use): Handle
546         LOCK_TYPE.
547         (compare_actual_formal): Update
548         gfc_check_vardef_context call.
549         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
550         * intrinsic.c (check_arglist): Ditto.
551         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
552         * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
553         * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
554         * module.c (mio_symbol_attribute): Handle lock_comp.
555         (create_derived_type): New function.
556         (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
557         * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
558         * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
559         checks for LOCK_TYPE.
560         (gfc_resolve_iterator, resolve_deallocate_expr,
561         resolve_allocate_expr, resolve_code, resolve_transfer): Update
562         gfc_check_vardef_context call.
563         * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
564         * trans-stmt.c (gfc_trans_lock_unlock): New function.
565         * trans.c (trans_code): Handle LOCK and UNLOCK.
566
567 2011-06-18  Janus Weil  <janus@gcc.gnu.org>
568
569         PR fortran/49400
570         * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
571         BLOCK constructs.
572
573 2011-06-17  Janus Weil  <janus@gcc.gnu.org>
574
575         PR fortran/48699
576         * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
577         make sure the vtab is present.
578
579 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
580
581         PR fortran/49074
582         * interface.c (gfc_extend_assign): Propagate the locus from the
583         assignment to the type-bound procedure call.
584
585 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
586
587         PR fortran/49417
588         * module.c (mio_component): Make sure the 'class_ok' attribute is set
589         for use-associated CLASS components.
590         * parse.c (parse_derived): Check for 'class_ok' attribute.
591         * resolve.c (resolve_fl_derived): Ditto.
592
593 2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
594
595         * frontend-passes.c (remove_trim):  New function.
596         (optimize_assignment):  Use it.
597         (optimize_comparison):  Likewise.  Return correct status
598         for previous change.
599
600 2011-06-12  Tobias Burnus
601
602         PR fortran/49324
603         * trans-expr.c (gfc_trans_assignment_1): Tell
604         gfc_trans_scalar_assign to also deep-copy RHS nonvariables
605         with allocatable components.
606         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
607
608 2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
609
610         * frontend-passes.c (optimize_assignment): Follow chains
611         of concatenation operators to the end for removing trailing
612         TRIMS for assignments.
613
614 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
615
616         * trans-decl.c (gfc_build_builtin_function_decls):
617         Updated declaration of caf_sync_all and caf_sync_images.
618         * trans-stmt.c (gfc_trans_sync): Function
619         can now handle a "stat" variable that has an integer type
620         different from integer_type_node.
621
622 2011-06-09  Richard Guenther  <rguenther@suse.de>
623
624         * trans.c (gfc_allocate_array_with_status): Mark error path
625         as unlikely.
626
627 2011-06-08  Tobias Burnus  <burnus@net-b.de>
628
629         PR fortran/18918
630         * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
631         (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
632         (gfc_code): Add expr4.
633         * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
634         * match.c (gfc_match_lock, gfc_match_unlock,
635         lock_unlock_statement): New functions.
636         (sync_statement): Bug fix, avoiding double freeing.
637         (gfc_match_if): Handle LOCK/UNLOCK statement.
638         * parse.c (decode_statement, next_statement,
639         gfc_ascii_statement): Ditto.
640         * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
641         * resolve.c (resolve_lock_unlock): New function.
642         (resolve_code): Call it.
643         * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
644
645 2011-06-07  Richard Guenther  <rguenther@suse.de>
646
647         * f95-lang.c (gfc_init_decl_processing): Do not set
648         size_type_node or call set_sizetype.
649
650 2011-06-05  Tobias Burnus  <burnus@net-b.de>
651
652         PR fortran/49255
653         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
654         for F2008.
655
656 2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
657         Thomas Koenig  <tkoenig@gcc.gnu.org>
658
659         * dump-parse-tree.c (show_symbol):  Don't dump namespace
660         for ENTRY to avoid infinite recursion.
661
662 2011-06-02  Asher Langton  <langton2@llnl.gov>
663
664         PR fortran/49268
665         * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
666         pointees as AS_EXPLICIT.
667
668 2011-06-02  Asher Langton  <langton2@llnl.gov>
669
670         PR fortran/37039
671         * decl.c (variable_decl): Merge current_as before copying to cp_as.
672
673 2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
674
675         PR fortran/49265
676         * decl.c (gfc_match_modproc):  Allow for a double colon in a module
677         procedure statement.
678         * parse.c ( decode_statement): Deal with whitespace around :: in
679         gfc_match_modproc.
680
681 2011-05-31  Tobias Burnus  <burnus@net-b.de>
682
683         PR fortran/18918
684         * intrinsic.c (klass): Add CLASS_ATOMIC.
685         (add_subroutines): Add atomic_ref/atomic_define.
686         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
687         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
688         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
689         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
690         and GFC_ISYM_ATOMIC_REF.
691         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
692         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
693         functions.
694         * check.c (gfc_check_atomic, gfc_check_atomic_def,
695         gfc_check_atomic_ref): New functions.
696         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
697         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
698         * trans-intrinsic.c (conv_intrinsic_atomic_def,
699         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
700         functions.
701         (conv_intrinsic_move_alloc) Renamed from
702         gfc_conv_intrinsic_move_alloc - and made static.
703         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
704         (gfc_conv_intrinsic_subroutine) Add prototype.
705         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
706         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
707         global vars.
708         (gfc_init_kinds): Set them.
709
710 2011-05-31  Tobias Burnus  <burnus@net-b.de>
711
712         PR fortran/18918
713         * trans-array.c (gfc_trans_dummy_array_bias): Handle
714         cobounds of assumed-shape arrays.
715
716 2011-05-31  Tobias Burnus  <burnus@net-b.de>
717
718         PR fortran/18918
719         * resolve.c (resolve_fl_variable): Handle static coarrays
720         with non-constant cobounds.
721
722 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
723
724         PR fortran/47601
725         * module.c (mio_component_ref): Handle components of extended types.
726         * symbol.c (gfc_find_component): Return is sym is NULL.
727
728 2011-05-29  Tobias Burnus  <burnus@net-b.de>
729
730         PR fortran/18918
731         * interface.c (compare_parameter): Add check for passing coarray
732         to allocatable noncoarray dummy.
733
734 2011-05-29  Tobias Burnus  <burnus@net-b.de>
735             Richard Guenther  <rguenther@suse.de>
736
737         PR fortran/18918
738         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
739         the type's TREE_TYPE.
740         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
741         * trans.c (gfc_build_array_ref): Ditto.
742
743 2011-05-27  Tobias Burnus  <burnus@net-b.de>
744
745         PR fortran/18918
746         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
747         * match.c (gfc_match_nullify): Ditto.
748         * resolve.c (resolve_deallocate_expr): Ditto.
749         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
750         for nonpointers.
751
752 2011-05-27  Tobias Burnus  <burnus@net-b.de>
753
754         PR fortran/48820
755         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
756         * intrinsic.c (add_functions): Add rank intrinsic.
757         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
758         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
759         * simplify.c (gfc_simplify_rank): New function.
760         * intrinsic.texi (RANK): Add description for rank intrinsic.
761         * check.c (gfc_check_rank): New function.
762
763 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
764             Thomas Koenig  <tkoenig@gcc.gnu.org>
765
766         PR fortran/48955
767         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
768         changed to GFC_ENABLE_REVERSE.
769         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
770         to GFC_INHIBIT_REVERSE.
771         * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE,
772         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
773         * dependency.c (gfc_dep_resolver): Change names for elements of
774         gfc_reverse as necessary. Change the logic so that forward
775         dependences are remembered as well as backward ones. When both
776         have appeared, force a temporary.
777
778 2011-05-26  Tobias Burnus  <burnus@net-b.de>
779
780         PR fortran/18918
781         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
782         * trans-decl.c (has_coarray_vars, caf_init_block,
783         gfor_fndecl_caf_register): New file-global variables.
784         (gfc_finish_var_decl): Make sure that coarrays in main are static.
785         (gfc_build_qualified_array): Generate coarray token variable.
786         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
787         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
788         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
789         static coarrays.
790         (generate_local_decl): Check for local coarrays.
791         (create_main_function): SYNC ALL before calling MAIN.
792         (generate_coarray_sym_init): Register static coarray.
793         (generate_coarray_init): Generate CAF registering constructor
794         function.
795         (gfc_generate_function_code): Call it, if needed, do not create
796         cgraph twice.
797         (gfc_generate_module_vars, gfc_process_block_locals): Call
798         generate_coarray_init.
799         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
800         -fcoarray=lib.
801         * trans.h (gfor_fndecl_caf_register): New variable.
802         (lang_type): New element caf_token.
803         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
804
805 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
806
807         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
808         (gfortran$(exeext)): Use libcommon-target.a.
809
810 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
811
812         * frontend-passes.c (cfe_register_funcs):  Also register
813         character functions if their charlens are known and constant.
814         Also register allocatable functions.
815
816 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
817
818         PR fortran/48699
819         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
820         selector is ALLOCATABLE.
821
822 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
823
824         PR fortran/48706
825         * module.c (write_dt_extensions): Do not write extended types which
826         are local to a subroutine.
827
828 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
829
830         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
831
832 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
833
834         * gfortran.texi (set_fpe): Update documentation.
835         * invoke.texi (-ffpe-trap): Likewise.
836         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
837         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
838         precision an alias for it.
839
840 2011-05-19  Tobias Burnus  <burnus@net-b.de>
841
842         PR fortran/18918
843         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
844         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
845         coarrays.
846         * trans.c (gfc_build_array_ref): Return original type not variant
847         copy for scalar coarrays.
848         * trans-array.c (gfc_conv_array_ref): Ditto.
849
850 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
851
852         PR fortran/48700
853         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
854         argument to avoid memory leaks.
855
856 2011-05-16  Tobias Burnus  <burnus@net-b.de>
857
858         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
859         (Fortran 2008 status): Multi-image support for coarrays.
860         (TR 19113 status): New section.
861
862 2011-05-15  Tobias Burnus  <burnus@net-b.de>
863
864         PR fortran/18918
865         actual argument is not an array; rank mismatch is diagnosted later.
866         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
867         scalar coarrays.
868         * trans-types.c (gfc_get_array_type_bounds): Ditto.
869
870 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
871
872         PR middle-end/46500
873         * trans-types.c: Include "tm.h".
874         [0] (c_size_t_size): Remove.
875
876 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
877
878         PR libfortran/48915
879         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
880         is now the default, the library defaults to backtracing disabled.
881
882 2011-05-14  Tobias Burnus  <burnus@net-b.de>
883
884         * lang.opt (fdump-core): Re-add as ignored option
885         for backward compatibility.
886
887 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
888
889         PR libfortran/48915
890         * gfortran.texi: Update mixed-language programming section
891         reflecting the removal of the fdump-core option, and that
892         -fbacktrace is now enabled by default.
893
894 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
895
896         PR fortran/22572
897         * frontend-passes.c (cfe_register_funcs):  Also register functions
898         for potential elimination if the rank is > 0, the shape is unknown
899         and reallocate on assignment is active.
900         (create_var):  For rank > 0 functions with unknown shape, create
901         an allocatable temporary.
902
903 2011-05-14  Tobias Burnus  <burnus@net-b.de>
904
905         PR fortran/18918
906         * interface.c (compare_parameter): Skip diagnostic if
907         actual argument is not an array; rank mismatch is diagnosted later.
908
909 2011-05-14  Tobias Burnus  <burnus@net-b.de>
910
911         * options.c (gfc_init_options, gfc_post_options): Enable
912         -fstack-arrays by default if -Ofast is used.
913         * invoke.texi (-fstack-arrays): Document this.
914
915 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
916
917         PR libfortran/48915
918         * gfortran.h (gfc_option_t): Remove flag_dump_core.
919         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
920         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
921         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
922         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
923         enabled by default.
924         * lang.opt: Remove -fdump-core.
925         * options.c (gfc_init_options): Make backtrace default to enabled,
926         remove dump_core.
927         (gfc_handle_option): Remove OPT_fdump-core.
928         * trans-decl.c: Pass a 0 to preserve ABI.
929
930 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
931
932         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
933
934 2011-05-13  Tobias Burnus  <burnus@net-b.de>
935
936         PR fortran/48972
937         * io.c (resolve_tag_format, resolve_tag): Make sure
938         that the string is of default kind.
939         (gfc_resolve_inquire): Also resolve decimal tag.
940
941 2011-05-12  Tobias Burnus  <burnus@net-b.de>
942
943         PR fortran/48972
944         * resolve.c (resolve_intrinsic): Don't resolve module
945         intrinsics multiple times.
946
947 2011-05-11  Tobias Burnus  <burnus@net-b.de>
948
949         PR fortran/48889
950         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
951         instead of e->symtree->n.sym, if available.
952
953 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
954
955         * f95-lang.c (global_bindings_p): Return bool and simplify.
956
957 2011-05-07  Tobias Burnus  <burnus@net-b.de>
958
959         PR fortran/18918
960         PR fortran/48919
961         * trans.h: Move gfc_init_coarray_decl prototype ...
962         * gfortran.h: ... to here.
963         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
964         (gfc_parse_file): Update translate_all_program_units call.
965         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
966         new argument whether DECL_EXTERNAL should be used.
967         (create_main_function): Update gfc_init_coarray_decl call.
968         * trans-intrinsic.c (trans_this_image, trans_image_index,
969         conv_intrinsic_cobound): Ditto.
970
971 2011-05-06  Tobias Burnus  <burnus@net-b.de>
972
973         PR fortran/18918
974         * trans-array.c (gfc_walk_variable_expr): Continue walking
975         for scalar coarrays.
976         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
977         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
978         (trans_this_image): Fix algorithm.
979         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
980         gfc_sym_type): Handle scalar coarrays.
981
982 2011-05-06  Tobias Burnus  <burnus@net-b.de>
983
984         PR fortran/48858
985         PR fortran/48820
986         * lang.opt (std=f2008tr): New.
987         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
988         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
989         procedures for -std=f2008tr/gnu/legacy.
990         (gfc_match_import): Set sym to NULL.
991         * options.c (set_default_std_flags,gfc_handle_option): Handle
992         -std=f2008tr.
993         * invoke.texi (-std=): Document -std=f2008tr.
994
995 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
996
997         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
998         * trans-io.c (add_case): Likewise.
999         * trans-stmt.c (gfc_trans_integer_select): Likewise.
1000         (gfc_trans_character_select): Likewise.
1001
1002 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1003
1004         * trans-decl.c (trans_function_start): Do not set
1005         dont_save_pending_sizes_p.
1006
1007 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1008
1009         * trans.h (gfc_chainon_list): Delete.
1010         * trans.c (gfc_chainon_list): Delete.
1011
1012 2011-05-04  Tobias Burnus  <burnus@net-b.de>
1013
1014         PR fortran/48864
1015         * invoke.texi (fno-protect-parens): Document
1016         that -Ofast implies -fno-protect-parens.
1017         * options.c (gfc_init_options, gfc_post_options):
1018         Make -Ofast imply -fno-protect-parens.
1019
1020 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
1021
1022         * trans-decl.c (build_library_function_decl_1): Call
1023         build_function_type_vec.  Adjust argument list building accordingly.
1024         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1025         * trans-types.c (gfc_get_function_type): Likewise.
1026
1027 2011-05-04  Richard Guenther  <rguenther@suse.de>
1028
1029         * trans-array.c (gfc_trans_array_constructor_value): Use
1030         size_int for bounds of range types.
1031         (gfc_trans_array_constructor_value): Use size_type_node
1032         for memcpy argument.
1033         * trans-common.c (build_field): Use gfc_charlen_type_node
1034         for lengths.
1035         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
1036         as type to build_int_cst.
1037         * trans-const.c (gfc_build_string_const): Use size_int
1038         for bounds of range types.
1039         (gfc_build_wide_string_const): Likewise.
1040         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
1041         for lengths.
1042         (gfc_trans_character_select): Likewise.
1043         (gfc_trans_character_select): Do not pass NULL
1044         as type to build_int_cst.
1045         (gfc_trans_character_select): Use size_int for bounds of range types.
1046         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
1047         (add_case): Do not pass NULL as type to build_int_cst.
1048         (transfer_expr): Likewise.
1049         (transfer_array_desc): Likewise.
1050         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
1051         for lengths.
1052         (gfc_trans_assign_aux_var): Likewise.
1053         (create_main_function): Use size_int for bounds of range types.
1054         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
1055         NULL as type to build_int_cst.
1056         (gfc_conv_intrinsic_spacing): Likewise.
1057         (gfc_conv_intrinsic_rrspacing): Likewise.
1058         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
1059
1060 2011-05-04  Richard Guenther  <rguenther@suse.de>
1061
1062         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
1063         argument to int_const_binop.
1064
1065 2011-05-03  Tobias Burnus  <burnus@net-b.de>
1066
1067         PR fortran/18918
1068         * trans-intrinsic.c (trans_this_image): Implement version with
1069         coarray argument.
1070         (conv_intrinsic_cobound): Simplify code.
1071         (gfc_conv_intrinsic_function): Call trans_this_image for
1072         this_image(coarray) except for -fcoarray=single.
1073
1074 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1075
1076         PR fortran/48720
1077         * gfortran.texi: Document the 'Q' exponent-letter extension.
1078         * invoke.texi: Document -Wreal-q-constant.
1079         * lang.opt: Add -Wreal-q-constant option.
1080         * gfortran.h: Add warn_real_q_constant to option struct.
1081         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
1082         exponent-letter for REAL(16) real-literal-constant with a
1083         fallback to REAL(10) or error if REAL(10) is not available.
1084         * options.c (gfc_init_options, set_Wall) Set it.
1085         (gfc_handle_option): Handle new option.
1086
1087 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1088
1089         * dump-prase-tree.c (show_code_node):  Set the current
1090         namespace to the BLOCK before displaying it; restore
1091         afterwards.
1092
1093 2011-04-30  Tobias Burnus  <burnus@net-b.de>
1094
1095         PR fortran/48821
1096         * decl.c (gfc_match_import): Don't try to find the
1097         symbol if already found.
1098
1099 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
1100
1101         PR fortran/48746
1102         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
1103         offset so that the lbounds are one.
1104         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
1105
1106 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
1107
1108         PR fortran/48462
1109         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
1110         automatic reallocation when the lhs is a target.
1111
1112         PR fortran/48746
1113         * trans-expr.c (fcncall_realloc_result): Make sure that the
1114         result dtype field is set before the function call.
1115
1116 2011-04-29  Tobias Burnus  <burnus@net-b.de>
1117
1118         PR fortran/48810
1119         * resolve.c (resolve_typebound_generic_call): Don't check access
1120         flags of the specific function.
1121
1122         PR fortran/48800
1123         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
1124         to AS_ASSUMED_SHAPE for function results.
1125         (resolve_fl_var_and_proc): Print also for function results with
1126         AS_DEFERRED an error, if they are not a pointer or allocatable.
1127         (resolve_types): Make sure arguments of procedures in interface
1128         blocks are resolved.
1129
1130 2011-04-29  Michael Matz  <matz@suse.de>
1131
1132         * options.c (options.c): Set warn_maybe_uninitialized.
1133
1134 2011-04-28  Tobias Burnus  <burnus@net-b.de>
1135
1136         PR fortran/48112
1137         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
1138         function results only once.
1139         (resolve_symbol): Always resolve function results.
1140
1141         PR fortran/48279
1142         * expr.c (gfc_check_vardef_context): Fix handling of generic
1143         EXPR_FUNCTION.
1144         * interface.c (check_interface0): Reject internal functions
1145         in generic interfaces, unless -std=gnu.
1146
1147 2011-04-27  Tobias Burnus  <burnus@net-b.de>
1148
1149         PR fortran/48788
1150         * resolve.c (resolve_global_procedure): Error recovery -
1151         avoid segfault for (non)character-returning functions.
1152
1153 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1154
1155         * decl.c (gfc_match_end):  Check that the block name starts
1156         with "block@".
1157         * parse.c (gfc_build_block_ns):  Make block names unique by
1158         numbering them.
1159
1160 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1161
1162         * frontend-passes.c (inserted_block):  New variable.
1163         (changed_statement):  Likewise.
1164         (create_var):  Encase statement to be operated on in a BLOCK.
1165         Adjust code insertion for BLOCK.
1166         (cfe_code):  Set inserted_block and changed_statement to NULL.
1167
1168 2011-04-23  Tobias Burnus  <burnus@net-b.de>
1169
1170         PR fortran/18918
1171         * module.c (mio_array_spec): Set as->cotype on reading.
1172         * resolve.c (resolve_allocate_expr): Fix allocating coarray
1173         components.
1174
1175 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1176
1177         PR fortran/48405
1178         * frontend_passes (cfe_register_funcs): Remove workaround for DO
1179         loops.
1180         (gfc_code_walker):  Make sure the pointer to the current
1181         statement doen't change when other statements are inserted.
1182
1183 2011-04-21  Tobias Burnus  <burnus@net-b.de>
1184
1185         PR fortran/18918
1186         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
1187
1188 2011-04-20  Jim Meyering  <meyering@redhat.com>
1189
1190         * expr.c (free_expr0): Remove useless if-before-free.
1191         * gfortranspec.c (lang_specific_pre_link): Likewise.
1192         * interface.c (gfc_extend_expr): Likewise.
1193         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1194
1195 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1196
1197         PR fortran/48588
1198         PR fortran/48692
1199
1200         * module.c (fix_mio_expr): Commit created symbol.
1201
1202 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1203
1204         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
1205
1206 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1207
1208         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
1209         free.
1210
1211 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1212
1213         * misc.c (gfc_getmem): Remove function.
1214         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
1215         usage with XCNEW or XCNEWVEC.
1216         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
1217         XCNEW or XCNEWVEC.
1218         * options.c (gfc_handle_module_path_options)
1219         (gfc_get_option_string): Likewise.
1220         * resolve.c (gfc_resolve_forall): Likewise.
1221         * simplify.c (simplify_transformation_to_array): Likewise.
1222         * target-memory.c (gfc_target_interpret_expr): Likewise.
1223         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
1224         (get_init_field): Likewise.
1225         * trans-expr.c (gfc_conv_statement_function): Likewise.
1226         * trans-io.c (nml_full_name): Likewise.
1227         * trans-stmt.c (gfc_trans_forall_1): Likewise.
1228         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
1229
1230 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1231
1232         PR fortran/48588
1233         * parse.c (resolve_all_program_units): Skip modules.
1234         (translate_all_program_units): Handle modules.
1235         (gfc_parse_file): Defer code generation for modules.
1236
1237 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1238
1239         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
1240         instead of cgraph_get_create_node.
1241
1242 2011-04-18  Jim Meyering  <meyering@redhat.com>
1243
1244         remove now-unused definition of gfc_free
1245         * misc.c (gfc_free): Remove function.
1246         * gfortran.h (gfc_free): Remove its prototype.
1247
1248 2011-04-18  Jim Meyering  <meyering@redhat.com>
1249
1250         convert each use of gfc_free (p) to free (p)
1251         Do that by running this command:
1252           perl -pi -e    's/\bgfc_free ?\(/free (/' \
1253             $(git grep -El '\bgfc_free ?\(')
1254         which also corrects the few uses that lacked a space between
1255         the function name and the open parenthesis.
1256         Manually undo the change to the function definition itself
1257         and its prototype.  They'll be removed next.
1258         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
1259         * constructor.c (node_free): Likewise.
1260         * cpp.c (dump_queued_macros): Likewise.
1261         * data.c (gfc_assign_data_value): Likewise.
1262         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
1263         (gfc_free_data_all, match_old_style_init): Likewise.
1264         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
1265         Likewise.
1266         (gfc_match_modproc): Likewise.
1267         * dependency.c (check_section_vs_section): Likewise.
1268         * error.c (gfc_pop_error, gfc_free_error): Likewise.
1269         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
1270         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
1271         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
1272         Likewise.
1273         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
1274         (strip_function_call, optimize_comparison): Likewise.
1275         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
1276         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
1277         Likewise.
1278         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
1279         (gfc_convert_chartype): Likewise.
1280         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
1281         Likewise.
1282         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
1283         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
1284         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
1285         Likewise.
1286         (free_case, gfc_free_forall_iterator): Likewise.
1287         * misc.c: Likewise.
1288         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
1289         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
1290         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
1291         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
1292         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
1293         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
1294         * openmp.c (gfc_free_omp_clauses): Likewise.
1295         * options.c (gfc_post_options): Likewise.
1296         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
1297         * primary.c (gfc_free_structure_ctor_component): Likewise.
1298         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
1299         (gfc_resolve_forall, resolve_equivalence): Likewise.
1300         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
1301         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
1302         (load_file, gfc_read_orig_filename): Likewise.
1303         * simplify.c (simplify_transformation_to_array): Likewise.
1304         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
1305         Likewise.
1306         (gfc_simplify_compiler_options): Likewise.
1307         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
1308         (gfc_free_association_list): Likewise.
1309         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
1310         Likewise.
1311         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
1312         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
1313         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
1314         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
1315         Likewise.
1316         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
1317         (gfc_free_namespace): Likewise.
1318         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
1319         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
1320         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
1321         * trans-common.c (get_init_field, create_common): Likewise.
1322         * trans-const.c (gfc_build_wide_string_const): Likewise.
1323         (gfc_conv_string_init): Likewise.
1324         * trans-decl.c (gfc_generate_function_code): Likewise.
1325         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
1326         Likewise.
1327         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
1328         (gfc_trans_subarray_assign): Likewise.
1329         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
1330         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
1331         (transfer_namelist_element, transfer_array_component): Likewise.
1332         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1333         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
1334         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
1335         Likewise.
1336
1337 2011-04-15  Jim Meyering  <meyering@redhat.com>
1338
1339         gfortran: remove cpp definition of free, ...
1340         in preparation for the s/gfc_free/free/ transformation.
1341         * gfortran.h (free): Remove macro definition that would otherwise
1342         prevent direct use of the function.
1343
1344 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1345
1346         PR fortran/18918
1347         * array.c (gfc_match_array_ref): Check for too many codimensions.
1348         * check.c (gfc_check_image_index): Check number of elements
1349         in SUB argument.
1350         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
1351
1352 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1353
1354         PR fortran/18918
1355         * iresolve.c (gfc_resolve_image_index): Set ts.type.
1356         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
1357         are not known at compile time and handle -fcoarray=lib.
1358         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
1359         IMAGE_INDEX.
1360         (conv_intrinsic_cobound): Fix comment typo.
1361         (trans_this_image): New function.
1362         * trans-array.c (gfc_unlikely): Move to trans.c.
1363         * trans.c (gfc_unlikely): Function moved from trans-array.c.
1364         (gfc_trans_runtime_check): Use it.
1365         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
1366         * trans.h (gfc_unlikely): Add prototype.
1367
1368 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
1369
1370         PR fortran/48462
1371         * trans-expr.c (fcncall_realloc_result): Renamed version of
1372         realloc_lhs_bounds_for_intrinsic_call that does not touch the
1373         descriptor bounds anymore but makes a temporary descriptor to
1374         hold the result.
1375         (gfc_trans_arrayfunc_assign): Modify the reference to above
1376         renamed function.
1377
1378 2011-05-17  Tobias Burnus  <burnus@net-b.de>
1379
1380         PR fortran/48624
1381         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
1382         for external procedures with proc arguments.
1383
1384 2011-04-15  Michael Matz  <matz@suse.de>
1385
1386         * trans-array.c (toplevel): Include gimple.h.
1387         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
1388         properly expand variable length arrays.
1389         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
1390         variable length decls and associate them with their scope.
1391         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
1392         * options.c (gfc_init_options): Handle -fstack_arrays option.
1393         * lang.opt (fstack-arrays): Add option.
1394         * invoke.texi (Code Gen Options): Document it.
1395         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
1396
1397 2011-04-15  Tobias Burnus  <burnus@net-b.de>
1398
1399         PR fortran/18918
1400         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
1401         code which is also causing an ICE.
1402
1403 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1404
1405         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
1406
1407 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1408
1409         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
1410         calling TREE_CHAIN.
1411
1412 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
1413
1414         PR fortran/48360
1415         PR fortran/48456
1416         * trans-array.c (get_std_lbound): For derived type variables
1417         return array valued component lbound.
1418
1419 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1420
1421         * trans-decl.c (gfc_generate_function_code): Call
1422         cgraph_get_create_node instead of cgraph_node.
1423
1424 2011-04-11  Tobias Burnus  <burnus@net-b.de>
1425
1426         PR fortran/18918
1427         * simplify.c (simplify_bound_dim): Exit for
1428         ucobound's last dimension unless -fcoarray=single.
1429         * trans-array (gfc_conv_descriptor_size_1): Renamed from
1430         gfc_conv_descriptor_size, made static, has now from_dim and
1431         to_dim arguments.
1432         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
1433         (gfc_conv_descriptor_cosize): New function.
1434         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
1435         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
1436         and handle last codim of ucobound for when -fcoarray is not "single".
1437
1438 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1439
1440         PR fortran/48448
1441         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
1442         flag_frontend_optimize.
1443         * lang.opt (Wfunction-elimination):  Add.
1444         (ffrontend-optimize):  Add.
1445         * invoke.texi:  Add documentation for -Wfunction-elimination
1446         and -ffrontend-optimize.  Add -faggressive-function-elimination
1447         to list of code generation options.
1448         * frontend-passes.c (gfc_run_passes):  Run optimizations if
1449         flag_frontend_optimize is set.
1450         (warn_function_elimination):  New function.
1451         (cfe_expr_0):  Call it if requested to do so.
1452         * options.c (gfc_init_options):  Initiate warn_function_elimination
1453         and flag_frontend_optimize.
1454         (gfc_post_options):  Set flag_frontend_optimize if not specified
1455         by user, depending on the optimization level.
1456         (gfc_handle_option):  Handle -Wfunction-elimination and
1457         -ffrontend-optimize.
1458
1459 2011-04-06  Tobias Burnus  <burnus@net-b.de>
1460
1461         PR fortran/18918
1462         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
1463         call for this_image.
1464
1465 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1466
1467         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
1468         build_function_type_list instead of build_function_type.  Correct
1469         argument order for func_frexp and func_scalbn.
1470
1471 2011-04-05  Duncan Sands  <baldrick@free.fr>
1472
1473         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
1474
1475 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1476
1477         * frontend-passes: (optimize_lexical_comparison): New function.
1478         (optimize_expr): Call it.
1479         (optimize_comparison): Also handle lexical comparison functions.
1480         Return false instad of -2 for unequal comparison.
1481
1482 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1483
1484         PR fortran/48412
1485         * frontend-passes (cfe_expr_0):  Reverse the order of going
1486         through the loops.
1487
1488 2011-04-04  Tobias Burnus  <burnus@net-b.de>
1489             Mikael Morin  <mikael.morin@sfr.fr>
1490
1491         PR fortran/18918
1492         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
1493         * expr.c (gfc_is_coindexed): Ditto.
1494         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
1495         * interface.c (compare_parameter): Use gfc_expr_attr and
1496         gfc_is_coindexed.
1497         * resolve.c (check_dimension, compare_spec_to_ref,
1498         resolve_allocate_expr, check_data_variable): Update for
1499         DIMEN_THIS_IMAGE.
1500         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
1501         gfc_simplify_ucobound): Allow non-constant bounds.
1502         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
1503         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
1504         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
1505         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
1506         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
1507         gfc_conv_ss_startstride, gfc_conv_loop_setup,
1508         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
1509         gfc_walk_variable_expr): Handle codimen.
1510         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
1511         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
1512         (conv_intrinsic_cobound): New function.
1513         (gfc_conv_intrinsic_function): Call it.
1514         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
1515         ucobound, lcobound, this_image.
1516         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
1517         (gfc_get_dtype): Honour corank.
1518         (gfc_get_nodesc_array_type): Save corank and codimensions.
1519         (gfc_get_array_type_bounds): Save cobound.
1520         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
1521         (gfc_array_kind): Add corank item.
1522         (GFC_TYPE_ARRAY_CORANK): New macro.
1523
1524 2011-04-03  Kai Tietz  <ktietz@redhat.com>
1525
1526         PR middle-end/48422
1527         * Make-lang.in (f95-lang.o): Add some missing dependencies.
1528
1529 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1530
1531         PR fortran/48352
1532         * frontend-passes (cfe_register_funcs):  Don't
1533         register functions if they appear as iterators in DO loops.
1534
1535 2011-03-30  Michael Matz  <matz@suse.de>
1536
1537         PR fortran/47516
1538         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
1539         don't use local variable.
1540         (gfc_trans_arrayfunc_assign): Adjust caller.
1541
1542 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
1543
1544         PR fortran/48095
1545         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
1546         * module.c (MOD_VERSION): Bump.
1547         (mio_typespec): Read/write 'interface' field.
1548         * primary.c (match_string_constant,match_logical_constant): Remove
1549         unneeded code.
1550         (match_complex_constant): Make sure to clear the typespec.
1551
1552 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1553
1554         * frontend-passes.c (create_var):  Warn about creating an
1555         array temporary if requested.
1556
1557 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1558
1559         PR fortran/47065
1560         * frontend-passes.c (optimize_trim): Also follow references, except
1561         when they are substring references or array references.
1562
1563 2011-03-27  Tobias Burnus  <burnus@net-b.de>
1564
1565         PR fortran/18918
1566         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
1567         GFC_ISYM_NUM_IMAGES.
1568         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
1569         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
1570         rename.
1571         * invoke.texi (-fcoarray=): Document "lib" argument.
1572         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
1573         * libgfortran.h (libgfortran_stat_codes): Add comments.
1574         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
1575         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1576         Handle GFC_FCOARRAY_LIB.
1577         * trans.h (gfc_init_coarray_decl): New prototype.
1578         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
1579         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
1580         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
1581         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
1582         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
1583         New global variables.
1584         * trans-decl.c: Declare several CAF functions (cf. above).
1585         (gfc_build_builtin_function_decls): Initialize those.
1586         (gfc_init_coarray_decl): New function.
1587         (create_main_function): Call CAF init/finalize functions.
1588         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
1589         (gfc_conv_intrinsic_function): Call those.
1590         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
1591         Add code for GFC_FCOARRAY_LIB.
1592
1593 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
1594
1595         PR fortran/48291
1596         * class.c (get_unique_hashed_string): Adjust maximum allowable length
1597         for unique type string.
1598
1599 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1600
1601         * scanner.c (preprocessor_line): Use filename_cmp
1602         instead of strcmp.
1603
1604 2011-03-25  Tobias Burnus  <burnus@net-b.de>
1605
1606         PR fortran/48174
1607         PR fortran/45304
1608         * trans-types.c (gfc_get_function_type): Don't use varargs if the
1609         procedure is known to have no arguments.
1610
1611 2011-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1612
1613         PR fortran/22572
1614         * gfortran.h (gfc_option_t) : Add
1615         flag_aggressive_function_elimination.
1616         (gfc_dep_compare_functions):  Add prototype.
1617         * lang.opt: Add faggressive-function-elimination.
1618         * invoke.texi: Document -faggressive-function-elimination.
1619         * frontend_passes (expr_array):  New static variable.
1620         (expr_size):  Likewise.
1621         (expr_count):  Likewise.
1622         (current_code):  Likewise.
1623         (current_ns):  Likewise.
1624         (gfc_run_passes):  Allocate and free space for expressions.
1625         (cfe_register_funcs):  New function.
1626         (create_var):  New function.
1627         (cfc_expr_0):  New function.
1628         (cfe_code):  New function.
1629         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
1630         and cfe_expr_0.
1631         * dependency.c (gfc_dep_compare_functions):  New function.
1632         (gfc_dep_compare_expr):  Use it.
1633         * options.c (gfc_init_options):  Handle
1634         flag_aggressive_function_elimination.
1635         (gfc_handle_option):  Likewise.
1636
1637 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1638
1639         * arith.c (arith_power): Plug memory leak.
1640
1641 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
1642
1643         PR fortran/48059
1644         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
1645         for polymorphic arguments.
1646
1647 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1648
1649         PR fortran/48054
1650         * intrinsic.texi: Clarify doc of logarithm functions.
1651
1652 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1653
1654         PR fortran/47552
1655         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
1656         the string length variable.
1657
1658 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
1659
1660         PR fortran/47768
1661         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
1662         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
1663
1664 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
1665             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1666
1667         PR fortran/47850
1668         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
1669         the expression has an iterator.  Otherwise, iterate through the
1670         array, checking for constant expressions for each element.
1671
1672 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
1673
1674         PR libfortran/47802
1675         * intrinsic.texi: Update CTIME and FDATE documentation.
1676
1677 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1678
1679         * invoke.texi (Option Summary, Fortran Dialect Options)
1680         (Preprocessing Options, Runtime Options, Code Gen Options):
1681         Fix vertical list spacing by using @itemx for additinoal
1682         items, empty line before @table.  Fix typos.
1683
1684 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1685
1686         PR fortran/47894
1687         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1688
1689 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1690
1691         PR fortran/47846
1692         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
1693         type-spec of deferred-length strings.
1694
1695 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1696
1697         PR fortran/47886
1698         * openmp.c (gfc_resolve_omp_directive): Resolve if()
1699         condition of OpenMP's task.
1700
1701 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1702
1703         PR fortran/47894
1704         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1705
1706 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1707
1708         PR fortran/47872
1709         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
1710         multitable for linebreak between different syntax variants.
1711
1712 2011-02-24  Richard Guenther  <rguenther@suse.de>
1713
1714         PR fortran/47839
1715         * f95-lang.c (pushdecl): For externs in non-global scope push
1716         a copy of the decl into the BLOCK.
1717
1718 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
1719
1720         PR fortran/40850
1721         * trans.c (gfc_prepend_expr_to_block): New function.
1722         * trans.h (gfc_prepend_expr_to_block): Declare.
1723         * trans-array.c (gfc_conv_array_parameter): Replace
1724         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
1725
1726 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
1727
1728         PR fortran/45743
1729         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
1730         gsymbol backend_decl if the procedure has a formal argument
1731         that is a procedure.
1732
1733 2011-02-22  Tobias Burnus  <burnus@net-b.de>
1734
1735         PR fortran/41359
1736         * trans-stmt.c (gfc_trans_if_1): Use correct line for
1737         expressions in the if condition.
1738
1739 2011-02-20  Tobias Burnus  <burnus@net-b.de>
1740
1741         PR fortran/47797
1742         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
1743         gfc_restore_backend_locus to have better debug locations.
1744         * trans-array.c (gfc_trans_deferred_array): Ditto.
1745
1746 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
1747
1748         PR fortran/45077
1749         PR fortran/44945
1750         * trans-types.c (gfc_get_derived_type): Remove code that looks
1751         for decls in gsym and add call to gfc_get_module_backend_decl.
1752         * trans.h : Add prototype for gfc_get_module_backend_decl.
1753         * trans-decl.c (gfc_get_module_backend_decl): New function.
1754         (gfc_get_symbol_decl): Call it.
1755
1756 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
1757
1758         PR fortran/47348
1759         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
1760         (get_array_ctor_var_strlen): Add block dummy and add call to
1761         get_array_ctor_all_strlen instead of giving up on substrings.
1762         Call gcc_unreachable for default case.
1763         (get_array_ctor_strlen): Add extra argument to in call to
1764         get_array_ctor_var_strlen.
1765
1766 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1767
1768         PR fortran/47789
1769         * primary.c (gfc_match_structure_constructor): Handle empty parent
1770         types.
1771
1772 2011-02-18  Tobias Burnus
1773
1774         PR fortran/47775
1775         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
1776         esym to check whether the specific procedure returns an
1777         allocatable or pointer.
1778
1779 2011-02-18  Michael Matz  <matz@suse.de>
1780
1781         PR fortran/45586
1782         * gfortran.h (struct gfc_component): Add norestrict_decl member.
1783         * trans.h (struct lang_type): Add nonrestricted_type member.
1784         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
1785         parent type.
1786         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
1787         (gfc_sym_type): Use it.
1788
1789 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1790
1791         PR fortran/47768
1792         * resolve.c (resolve_transfer): Reject variables with procedure pointer
1793         components.
1794
1795 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1796
1797         PR fortran/47767
1798         * gfortran.h (gfc_check_access): Removed prototype.
1799         (gfc_check_symbol_access): Added prototype.
1800         * module.c (gfc_check_access): Renamed to 'check_access', made static.
1801         (gfc_check_symbol_access): New function, basically a shortcut for
1802         'check_access'.
1803         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
1804         'gfc_check_symbol_access'.
1805         (write_operator,write_module): Renamed 'gfc_check_access'.
1806         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
1807         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
1808         'gfc_check_symbol_access'.
1809
1810 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
1811
1812         PR fortran/47745
1813         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
1814         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
1815         'gfc_build_class_symbol'.
1816         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
1817         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
1818         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
1819         'gfc_build_class_symbol'.
1820         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
1821
1822 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1823
1824         PR fortran/47633
1825         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
1826
1827 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1828
1829         PR fortran/47730
1830         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
1831
1832 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1833
1834         PR fortran/47728
1835         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
1836         arrays.
1837         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
1838         declaration.
1839
1840 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1841
1842         PR fortran/47349
1843         * interface.c (get_expr_storage_size): Handle derived-type components.
1844
1845 2011-02-13  Tobias Burnus  <burnus@net-b.de>
1846
1847         PR fortran/47569
1848         * interface.c (compare_parameter): Avoid ICE with
1849         character components.
1850
1851 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
1852
1853         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
1854         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
1855         'gfc_build_class_symbol'.
1856
1857 2011-02-12  Michael Matz  <matz@suse.de>
1858             Janus Weil  <janus@gcc.gnu.org>
1859             Tobias Burnus  <burnus@net-b.de>
1860
1861         PR fortran/45586
1862         * trans-expr.c (conv_parent_component_references): Avoid unintendent
1863         skipping of parent compounds.
1864
1865 2011-02-11  Tobias Burnus  <burnus@net-b.de>
1866
1867         PR fortran/47550
1868         * resolve.c (resolve_formal_arglist): PURE with VALUE
1869         and no INTENT: Add -std= diagnostics.
1870
1871 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1872
1873         PR fortran/47352
1874         * resolve.c (resolve_procedure_interface): If interface has a result
1875         variable, copy the typespec and set result pointer to self.
1876
1877 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1878
1879         PR fortran/47463
1880         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
1881
1882 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1883
1884         PR fortran/47637
1885         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
1886
1887 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1888
1889         * io.c (match_io_element): Do not set dt if not inquire.
1890
1891 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
1892
1893         PR fortran/45290
1894         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
1895         initialization target.
1896
1897 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
1898             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1899
1900         * gfortran.texi (Thread-safety): texinfo styling fixes.
1901         * intrinsic.texi: Likewise.
1902
1903 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1904
1905         * gfortran.texi (Compiler Characteristics): Add reference to
1906         thread-safety section.
1907
1908 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1909
1910         * gfortran.texi (Thread-safety): New section.
1911         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
1912         (GETENV): Likewise.
1913         (GET_ENVIRONMENT_VARIABLE): Likewise.
1914         (SYSTEM): Likewise.
1915
1916 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
1917
1918         PR fortran/47592
1919         * trans-stmt.c (gfc_trans_allocate): For deferred character
1920         length allocations with SOURCE, store to the values and string
1921         length to avoid calculating twice.  Replace gfc_start_block
1922         with gfc_init_block to avoid unnecessary contexts and to keep
1923         declarations of temporaries where they should be. Tidy up the
1924         code a bit.
1925
1926 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
1927
1928         PR fortran/42434
1929         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
1930
1931 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1932             Paul Thomas  <pault@gcc.gnu.org>
1933
1934         PR fortran/47082
1935         * trans-expr.c (gfc_trans_class_init_assign): Add call to
1936         gfc_get_derived_type.
1937         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
1938         or vtypes.
1939
1940 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1941
1942         PR fortran/47572
1943         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
1944
1945 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
1946
1947         PR fortran/47565
1948         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
1949         pointer components with allocatable result.
1950
1951 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1952
1953         PR fortran/47455
1954         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
1955         with pointer or allocatable result.
1956
1957 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
1958
1959         PR fortran/47519
1960         * trans-stmt.c (gfc_trans_allocate): Improve handling of
1961         deferred character lengths with SOURCE.
1962         * iresolve.c (gfc_resolve_repeat): Calculate character
1963         length from source length and ncopies.
1964         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
1965         expressions for ALLOCATE.
1966
1967 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1968
1969         PR fortran/47463
1970         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
1971         an argument of a typebound assignment being a component.
1972
1973 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1974
1975         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
1976         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1977
1978 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1979
1980         PR fortran/47042
1981         * resolve.c (resolve_fl_procedure): Reject stmt functions
1982         with pointer/allocatable attribute.
1983
1984 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1985
1986         PR fortran/47042
1987         * interface.c (gfc_procedure_use): Add explicit interface check for
1988         pointer/allocatable functions.
1989
1990 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
1991
1992         PR fortran/47523
1993         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
1994         expr and is assigned to a deferred character length scalar,
1995         make sure that the function is called before reallocation,
1996         so that the length is available. Include procedure pointer
1997         and procedure pointer component rhs as well.
1998
1999         PR fortran/45170
2000         PR fortran/35810
2001         PR fortran/47350
2002         * gfortran.dg/allocatable_function_5.f90: New test not added by
2003         mistake on 2011-01-28.
2004
2005 2011-01-29  Tobias Burnus  <burnus@net-b.de>
2006
2007         PR fortran/47531
2008         * check.c (gfc_check_shape): Support kind argument in SHAPE.
2009         * intrinsic.c (add_functions): Ditto.
2010         * resolve.c (gfc_resolve_shape): Ditto.
2011         * simplify.c (gfc_simplify_shape): Ditto.
2012         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
2013         gfc_simplify_shape): Update prototypes.
2014         * intrinisc.text (SHAPE): Document kind argument.
2015
2016 2011-01-28  Tobias Burnus  <burnus@net-b.de>
2017
2018         PR fortran/47507
2019         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
2020         attribute also without INTENT.
2021
2022 2011-01-28  Tobias Burnus  <burnus@net-b.de>
2023
2024         * gfortran.texi (Fortran 2003 status): Mention support for
2025         nonconstant namelist variables.
2026
2027 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
2028             Tobias Burnus  <burnus@gcc.gnu.org>
2029
2030         PR fortran/45170
2031         PR fortran/35810
2032         PR fortran/47350
2033         * interface.c (compare_actual_formal): An allocatable or pointer
2034         deferred length actual is only allowed if the formal argument
2035         is also deferred length. Clean up whitespace.
2036         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
2037         deferred character length formal arguments by reference. Do the
2038         same for function results.
2039         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
2040         and rhs character lengths, if deferred length lhs.  In this case
2041         set the lhs character length to that of the rhs.
2042         (gfc_conv_string_parameter): Remove assert that string length is
2043         an integer type.
2044         (is_scalar_reallocatable_lhs): New function.
2045         (alloc_scalar_allocatable_for_assignment): New function.
2046         (gfc_trans_assignment_1): Call above new function. If the rhs is
2047         a deferred character length itself, makes ure that the function
2048         is called before reallocation, so that the length is available.
2049         (gfc_trans_asssignment): Remove error about assignment to
2050         deferred length character variables.
2051         * gfortran.texi : Update entry about (re)allocation on
2052         assignment.
2053         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
2054         length character variables.
2055         * module.c (mio_typespec): Transfer deferred characteristic.
2056         * trans-types.c (gfc_get_function_type): New code to generate
2057         hidden typelist, so that those character lengths that are
2058         passed by reference get the right type.
2059         * resolve.c (resolve_contained_fntype): Supress error for
2060         deferred character length functions.
2061         (resolve_function, resolve_fl_procedure) The same.
2062         (check_symbols): Remove the error that support for
2063         entity with deferred type parameter is not yet implemented.
2064         (resolve_fl_derived): The same.
2065         match.c (alloc_opt_list): Allow MOLD for deferred length object.
2066         * trans-decl.c (gfc_get_symbol_decl): For deferred character
2067         length dummies, generate a local variable for string length.
2068         (create_function_arglist): Hidden length can be a pointer.
2069         (gfc_trans_deferred_vars): For deferred character length
2070         results and dummies, assign the string length to the local
2071         variable from the hidden argument on entry and the other way
2072         round on exit, as appropriate.
2073
2074 2011-01-27  Tobias Burnus  <burnus@net-b.de>
2075
2076         PR fortran/47474
2077         * trans-decl.c (gfc_generate_function_code): Fix init
2078         of allocatable result variable with allocatable components.
2079
2080 2011-01-27  Tobias Burnus  <burnus@net-b.de>
2081
2082         PR fortran/47472
2083         * options.c (gfc_handle_module_path_options): Save
2084         module path without trailing slash as include path.
2085
2086 2011-01-25  Tobias Burnus  <burnus@net-b.de>
2087
2088         PR fortran/47448
2089         * interface.c (gfc_check_operator_interface): Fix
2090         defined-assignment check.
2091
2092 2011-01-23  Tobias Burnus  <burnus@net-b.de>
2093
2094         PR fortran/47421
2095         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
2096         scalar allocatable dummy arguments.
2097
2098 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2099
2100         PR fortran/38536
2101         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
2102         check for array sections followed by component references
2103         which are illegal.  Also check for coindexed arguments.
2104
2105 2011-01-22  Tobias Burnus  <burnus@net-b.de>
2106
2107         PR fortran/47399
2108         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
2109         PARAMETER TBP.
2110
2111 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2112
2113         PR fortran/47394
2114         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
2115         Use defined instead of magic number exit status codes.
2116         * scanner.c (include_line, gfc_new_file): Ditto.
2117
2118 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2119
2120         PR fortran/47377
2121         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
2122         without pointer attribute.
2123
2124 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
2125
2126         PR fortran/47240
2127         * resolve.c (expression_rank): Fix rank of procedure poiner components.
2128         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
2129         pointer components as actual arguments.
2130
2131 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
2132
2133         PR fortran/47331
2134         * gfortran.h (struct gfc_omp_saved_state): New type.
2135         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
2136         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
2137         call.
2138         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
2139         functions.
2140
2141 2011-01-17  Tobias Burnus  <burnus@net-b.de>
2142
2143         PR fortran/47327
2144         * invoke.texi (Options to request or suppress errors
2145         and warnings): Fix cross link.
2146
2147 2011-01-15  Tobias Burnus  <burnus@net-b.de>
2148
2149         * gfortran.texi: Update Fortran 2003 Status section.
2150
2151         PR fortran/47177
2152         * invoke.texi: Add missing "-E" to the -dM example.
2153
2154 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2155
2156         PR fortran/47268
2157         * intrinsic.texi (get_command_argument, get_environment_variable):
2158         Mark arguments as optional in the Arguments section.
2159
2160 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
2161             Tobias Burnus  <burnus@net-b.de>
2162
2163         PR fortran/47260
2164         * trans-decl.c (gfc_get_extern_function_decl,
2165         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
2166         calling decl_attributes.
2167
2168 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2169             Mikael Morin  <mikael@gcc.gnu.org>
2170
2171         PR fortran/45848
2172         PR fortran/47204
2173         * gfortran.h (gfc_code): Move union ext's case_list into
2174         the struct block.
2175         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
2176         by "block.".
2177         * frontend-passes.c (gfc_code_walker): Ditto.
2178         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
2179         gfc_match_type_is, gfc_match_class_is): Ditto.
2180         * resolve.c (resolve_select, resolve_select_type): Ditto.
2181         * st.c (gfc_free_statement): Ditto.
2182         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
2183         gfc_trans_character_select): Ditto.
2184         * parse.c (resolve_all_program_units): For error recovery, avoid
2185         segfault is proc_name is NULL.
2186
2187 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
2188
2189         PR fortran/47051
2190         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
2191         to be standard compliant by testing for shape rather than size
2192         before skipping reallocation. Improve comments.
2193
2194 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2195
2196         PR fortran/47224
2197         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
2198         of code.
2199
2200 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2201
2202         PR fortran/38536
2203         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
2204         use gfc_dep_compare_expr to compare start and end expession.
2205         Add FIXME for using gfc_deb_compare_expr elsewhere.
2206
2207 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2208
2209         PR fortran/46313
2210         * class.c (get_unique_type_string): Make type name start with upper
2211         case letter.
2212
2213 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2214
2215         PR fortran/46405
2216         * invoke.texi:  Mention -ffree-line-length-none and
2217         -ffixed-line-length-none for preprocessing.
2218
2219 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
2220
2221         PR fortran/46896
2222         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
2223         procedure argument (eg TRANSPOSE) use a temporary if there is
2224         any chance of aliasing due to host or use association.
2225         (arrayfunc_assign_needs_temporary): Correct logic for function
2226         results and do not use a temporary for implicitly PURE
2227         variables.  Use a temporary for Cray pointees.
2228         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
2229         implicit pureness of containing procedure.
2230         * decl.c (match_old_style_init, gfc_match_data): Where decl
2231         would fail in PURE procedure, set implicit_pure to zero.
2232         * gfortran.h : Add implicit_pure to structure symbol_attr and
2233         add prototype for function gfc_implicit_pure.
2234         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
2235         Where decl would fail in PURE procedure, reset implicit_pure.
2236         * io.c (match_vtag, gfc_match_open, gfc_match_close,
2237         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
2238         * match.c (gfc_match_critical, gfc_match_stopcode,
2239         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
2240         same.
2241         * parse.c (decode_omp_directive): The same.
2242         (parse_contained): If not PURE, set implicit pure attribute.
2243         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
2244         resolve_function, resolve_ordinary_assign) : The same.
2245         (gfc_implicit_pure): New function.
2246         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
2247         to ab_attribute enum and use it in this function.
2248
2249 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2250
2251         PR fortran/45777
2252         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
2253         make static and move in front of its only caller, to ...
2254         * trans-array.c (symbols_could_alias): ... here.
2255         Pass information about pointer and target status as
2256         arguments.  Allocatable arrays don't alias anything
2257         unless they have the POINTER attribute.
2258         (gfc_could_be_alias):  Keep track of pointer and target
2259         status when following references.  Also check if typespecs
2260         of components match those of other components or symbols.
2261
2262 2011-01-07  Tobias Burnus  <burnus@net-b.de>
2263
2264         PR fortran/41580
2265         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
2266         * intrinsic.c (add_functions): Use simplify functions for
2267         EXTENDS_TYPE_OF and SAME_TYPE_AS.
2268         * intrinsic.h (gfc_simplify_extends_type_of,
2269         gfc_simplify_same_type_as): New prototypes.
2270         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
2271         gfc_simplify_same_type_as): New functions.
2272
2273 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
2274
2275         PR fortran/47189
2276         PR fortran/47194
2277         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
2278         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
2279         type.
2280         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
2281         * resolve.c (resolve_deallocate_expr): _data component will be added
2282         at translation stage.
2283         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
2284         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
2285
2286 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
2287
2288         PR fortran/33117
2289         PR fortran/46478
2290         * parse.c (parse_interface): Remove check for procedure types.
2291         * interface.c (check_interface0): Verify that procedures are
2292         either all SUBROUTINEs or all FUNCTIONs.
2293
2294 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2295
2296         PR fortran/47180
2297         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
2298         'vtab' is initialized).
2299
2300 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2301
2302         PR fortran/47180
2303         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
2304         assignment, set the _vptr component to the declared type.
2305
2306 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2307
2308         PR fortran/46017
2309         * resolve.c (resolve_allocate_deallocate): Follow references to
2310         check for duplicate occurence of allocation/deallocation objects.
2311
2312 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2313
2314         PR fortran/47024
2315         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
2316         of polymorphic allocatables according to their declared type.
2317
2318 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
2319
2320         PR fortran/46448
2321         * class.c (gfc_find_derived_vtab): Set the module field for the copying
2322         routine to make sure it receives module name mangling.
2323
2324 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
2325
2326         * gfortranspec.c (lang_specific_driver): Update copyright notice
2327         dates.
2328
2329 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
2330
2331         * intrinsic.texi (LEADZ): Fix example.
2332
2333 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
2334
2335         PR fortran/46408
2336         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
2337         routine.
2338
2339 \f
2340 Copyright (C) 2011 Free Software Foundation, Inc.
2341
2342 Copying and distribution of this file, with or without modification,
2343 are permitted in any medium without royalty provided the copyright
2344 notice and this notice are preserved.