OSDN Git Service

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