OSDN Git Service

d0b003d475cd76d834e466bdf80ecc419a24568d
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-11-10  Tobias Burnus <burnus@net-b.de>
2
3         PR fortran/46244
4         * resolve.c (resolve_fl_derived): Don't allow CLASS in
5         sequence/BIND(C) types.
6
7 2010-11-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
8             Mikael Morin   <mikael@gcc.gnu.org>
9
10         PR fortran/46331
11         * intrinsic.c: Correctly set the pure attributes for intrinsic
12         functions.
13         * expr.c (check_specification_function): Remove this function and move
14         its code into gfc_is_constant_expr. (gfc_is_constant_expr): Change the
15         order of checks by checking for non-constant arguments first.  Then,
16         check for initialization functions, followed by intrinsics.
17
18 2010-11-09  Janus Weil  <janus@gcc.gnu.org>
19
20         PR fortran/46313
21         * gfortran.h (gfc_add_data_component,gfc_add_vptr_component,
22         gfc_add_hash_component,gfc_add_size_component,
23         gfc_add_def_init_component): New macros.
24         * class.c (gfc_add_component_ref): Renamed data component.
25         (get_unique_type_string): New function.
26         (gfc_build_class_symbol): Use 'get_unique_type_string' to construct
27         uniques names for the class containers. Rename components.
28         (gfc_find_derived_vtab): Use 'get_unique_type_string' to construct
29         uniques names for the vtab symbols. Rename components.
30         * decl.c (attr_decl1): Renamed class container components.
31         * iresolve.c (gfc_resolve_extends_type_of): Ditto.
32         * match.c (select_type_set_tmp): Renamed temporaries.
33         * module.c (read_module): Renamed vtab and vtype symbols.
34         * resolve.c (resolve_structure_cons,resolve_typebound_function,
35         resolve_typebound_subroutine,resolve_deallocate_expr,
36         resolve_select_type,resolve_fl_derived): Renamed class container and
37         vtab components.
38         * trans-array.c (structure_alloc_comps): Ditto.
39         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
40         * trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure,
41         gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto.
42         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof,
43         gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated,
44         gfc_conv_same_type_as): Ditto.
45         * trans-stmt.c (gfc_trans_allocate): Ditto.
46
47 2010-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
48
49         PR fortran/43899
50         * trans-decl.c (generate_local_decl): Do not generate unused warning
51         for variables in namelists.
52
53 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
54
55         PR fortran/46344
56         * decl.c (build_struct): Build vtab immediately if derived type
57         has already been declared.
58
59 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
60
61         PR fortran/46344
62         * trans-types.c (gfc_copy_dt_decls_ifequal): Handle CLASS components.
63
64 2010-11-06  Janus Weil  <janus@gcc.gnu.org>
65
66         PR fortran/46330
67         * trans-expr.c (gfc_trans_class_assign): Find 'vtab' symbol in correct
68         namespace.
69
70 2010-11-05  Janus Weil  <janus@gcc.gnu.org>
71
72         PR fortran/45451
73         PR fortran/46174
74         * class.c (gfc_find_derived_vtab): Improved search for existing vtab.
75         Add component '$copy' to vtype symbol for polymorphic deep copying.
76         * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated
77         during resolution stage.
78         * resolve.c (resolve_codes): Don't resolve code if namespace is already
79         resolved.
80         * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for
81         polymorphic ALLOCATE statements with SOURCE.
82
83 2010-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
84             Paul Thomas  <pault@gcc.gnu.org>
85
86         * dump-parse-tree.c (code_indent):  Take label into acount
87         when calculating indent.
88         (show_typespec):  Also display class.
89         (show_attr):  Add module name to argument.
90         Don't show UNKNOWN for flavor, access and save. Don't show
91         SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
92         association.  Show intent only for dummy arguments.
93         Set length of shown symbol names to minimum of 12.
94         Show attributes header.
95         (show_symbol):  Adjust show_level.
96         (show_symtree):  Clear up display for ambiguous.  Show if symbol
97         was imported from namespace.
98         (show_code_node):  Clear up indenting.  Traverse symtree and
99         show code directly instead of calling show_namespace.
100
101 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
102
103         * trans-decl.c (add_argument_checking): Use build_zero_cst instead of
104         fold_convert.
105         * trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
106         * trans-stmt.c (gfc_trans_do): Likewise.
107
108 2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
109             Tobias Burnus  <burnus@net-b.de>
110
111         PR fortran/45170
112         * array.c (gfc_match_array_constructor): Reject deferred type
113         parameter (DTP) in type-spec.
114         * decl.c (char_len_param_value, match_char_length,
115         gfc_match_char_spec, build_sym, variable_decl,
116         enumerator_decl): Support DTP.
117         * expr.c (check_inquiry): Fix check due to support for DTP.
118         * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
119         * misc.c (gfc_clear_ts): Set it to false.
120         * match.c (gfc_match_allocate): Support DTP.
121         * resolve.c (resolve_allocate_expr): Not-implemented error for DTP.
122         (resolve_fl_variable): Add DTP constraint check.
123         * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
124         error for DTP.
125
126 2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
127
128         PR fortran/46152
129         * fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
130         with a gfc_find_symbol to prevent namespace pollution.  Remove dead
131         code.
132         (match_type_spec): Remove parsing of '::'.  Collapse character
133         kind checking to one location.
134         (gfc_match_allocate): Use correct locus in error message.
135
136 2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
137
138         * gfortran.h (gfc_option_t):  Replace dump_parse_tree by
139         dump_fortran_original and add dump_fortran_optimized.
140         * lang.opt: Add fdump-fortran-original and
141         fdump-fortran-optimized.  Document that fdump-parse-tree is
142         deprecated.
143         * gfortran.texi: Add -fdump-fortran-original and
144         -fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
145         * frontend-passes.c (gfc_run_passes):  If optimizing and
146         if gfc_option.dump_fortran_optimized is set, dump the parse tree
147         after optimization.
148         * parse.c:  Rename gfc_option.dump_parse_tree to
149         gfc_option.dump_fortran_original.
150         * options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
151         to gfc_option.dump_fortran_original and handle
152         gfc_option.dump_fortran_optimize.
153         (gfc_post_options): Rename gfc_option.dump_parse_tree
154         to gfc_option.dump_fortran_original.
155         (gfc_handle_option):  Rename OPT_fdump_parse_tree to
156         OPT_fdump_fortran_original and gfc_option.dump_parse_tree
157         to gfc_option.dump_fortran_original.  Handle
158         OPT_fdump_fortran_optimized.
159
160 2010-10-30  Janus Weil  <janus@gcc.gnu.org>
161
162         PR fortran/44917
163         PR fortran/44926
164         PR fortran/46196
165         * interface.c (count_types_test): Symmetrize type check.
166         (generic_correspondence): Ditto.
167
168 2010-10-27  Janus Weil  <janus@gcc.gnu.org>
169
170         PR fortran/46161
171         * interface.c (compare_allocatable): Handle polymorphic allocatables.
172         (compare_parameter): Add two error messages for polymorphic dummies.
173
174 2010-10-26  Janus Weil  <janus@gcc.gnu.org>
175
176         PR fortran/42647
177         * trans.h (gfc_deallocate_scalar_with_status): New prototype.
178         * trans.c (gfc_deallocate_scalar_with_status): New function for
179         deallocation of allocatable scalars.
180         * trans-array.c (structure_alloc_comps): Call it here ...
181         * trans-decl.c (gfc_trans_deferred_vars): ... here ...
182         * trans-stmt.c (gfc_trans_deallocate): ... and here.
183
184 2010-10-26  Tobias Burnus  <burnus@net-b.de>
185
186         PR fortran/45451
187         * trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.
188
189         PR fortran/43018
190         * trans-array.c (duplicate_allocatable): Use size of type and not
191         the size of the pointer to the type.
192
193 2010-10-25  Steven G. Kargl  <kargl@gcc.gnu.org>
194
195         PR fortran/46140
196         * fortran/scanner.c (include_line): Check return value of load_file.
197
198 2010-10-23  Tobias Burnus  <burnus@net-b.de>
199
200         PR fortran/46122
201         * expr.c (gfc_check_vardef_context): Fix PROTECTED check.
202
203 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
204
205         PR fortran/46060
206         * match.h (gfc_matching_ptr_assignment): New global variable to indicate
207         we're currently matching a (non-proc-)pointer assignment.
208         * decl.c (match_pointer_init): Set it.
209         * match.c (gfc_match_pointer_assignment): Ditto.
210         * primary.c (matching_actual_arglist): New global variable to indicate
211         we're currently matching an actual argument list.
212         (gfc_match_actual_arglist): Set it.
213         (gfc_match_varspec): Reject procedure pointer component calls with
214         missing argument list.
215
216 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
217
218         PR fortran/46067
219         * interface.c (gfc_compare_interfaces): Switch arguments of type
220         comparison (important for polymorphic variables).
221
222 2010-10-21  Tobias Burnus  <burnus@net-b.de>
223
224         PR fortran/46100
225         * expr.c (gfc_check_vardef_context): Treat pointer functions
226         as variables.
227
228 2010-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
229
230         PR fortran/46079
231         * trans_stmt.c (gfc_trans_stop): Fix whitespace.  Build a call to new
232         F08 numeric stop function.
233         * trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
234         * trans-decl.c (gfc_build_builtin_function_decls): Build declaration
235         for stop_numeric_f08.
236
237 2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
238
239         * gfortran.h: Remove definition of bt enumerator.
240         * libgfortran.h: Add bt enumerator type alighned with defintion.
241         Remove the dtype enumerator, no longer used.
242         previously given in libgfortran/io.h
243         * trans-types.c: Use new bt enumerator.
244         * trans-io.c: Likewise.
245
246 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
247
248         * trans-io.c (gfc_build_io_library_fndecls):
249         Array descriptor arguments to transfer_array can be
250         dereferenced recursively.
251
252 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
253
254         PR fortran/20165
255         PR fortran/31593
256         PR fortran/43665
257         * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
258         IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
259         IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
260         IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
261         (gfc_build_io_library_fndecls):  Add corresponding function
262         decls.
263         (transfer_expr):  If the current transfer is a READ, use
264         the iocall with the original version, otherwise the version
265         with _WRITE.
266         (transfer_array_desc):  Likewise.
267
268 2010-10-15  Tobias Burnus  <burnus@net-b.de>
269
270         PR fortran/45186
271         * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
272         (gfc_trans_runtime_error_vararg): Remove prototype.
273         * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
274         (gfc_add_modify, gfc_evaluate_now): Use them.
275         (trans_runtime_error_vararg): Renamed from
276         gfc_trans_runtime_error_vararg, made static and use locus.
277         (gfc_trans_runtime_error): Use it.
278         (gfc_trans_runtime_check): Ditto and make use of locus.
279         * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
280         gfc_trans_do, gfc_trans_do_while): Improve line number
281         associated with generated expressions.
282
283 2010-10-12  Daniel Kraft  <d@domob.eu>
284
285         PR fortran/38936
286         * parse.c (parse_associate): Set typespec of associate-name if that of
287         the target is already available.
288
289 2010-10-10  Janus Weil  <janus@gcc.gnu.org>
290
291         PR fortran/45961
292         * resolve.c (resolve_typebound_function): Bugfix for type-bound
293         operators.
294
295 2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
296
297         * frontend-passes.c:  Include opts.h.
298         (optimize_comparison):  Renamed from optimize_equality.
299         Change second argument to operation to be compared.
300         Use flag_finite_math_only to avoid comparing REAL and
301         COMPLEX only when NANs are honored.  Simplify comparing
302         of string concatenations where left or right operands are
303         equal.  Simplify all comparison operations, based on the result
304         of gfc_dep_compare_expr.
305         * dependency.c:  Include arith.h.
306         (gfc_are_identical_variables):  Volatile variables should not
307         compare equal to themselves.
308         (gfc_dep_compare_expr):  Handle string constants and string
309         concatenations.
310
311 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
312
313         * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
314         * gfortran.h (gfc_init_options_struct): Declare.
315         * options.c (gfc_init_options_struct): New.  Split out from
316         gfc_init_options.
317
318 2010-10-07  Janus Weil  <janus@gcc.gnu.org>
319
320         PR fortran/45933
321         * resolve.c (resolve_typebound_function): Use correct declared type
322         for type-bound operators.
323
324 2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>
325
326         PR fortran/45916
327         Revert revision 165026:
328         2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
329
330         * decl.c (match_procedure_in_type): Assertify if conditions.
331
332 2010-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
333
334         PR fortran/45889
335         * resolve.c (resolve_transfer): Use expression inside parenthesis to
336         find acutal component to be transgferred.
337
338 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
339
340         * trans-stmt.c (gfc_trans_allocate): free lhs expr.
341
342 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
343
344         * trans-array.c (gfc_free_ss_chain): Made non-static.
345         * trans-array.h (gfc_free_ss_chain): New prototype.
346         * trans-stmt.c (gfc_trans_where_2): Free ss chains.
347
348 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
349
350         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
351         subcomponents.
352
353 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
354
355         * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
356
357 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
358
359         * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
360         before calling gfc_free_expr.
361
362 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
363
364         * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
365         gfc_advance_se_ss_chain.
366         * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
367         gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
368         calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
369         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
370         * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
371
372 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
373
374         * trans.c (gfc_restore_backend_locus): New function.
375         (gfc_get_backend_locus): Renamed to ...
376         (gfc_save_backend_locus): ... this.
377         * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
378         gfc_save_backend_locus): Same.
379         * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
380         gfc_trans_deferred_array): Rename gfc_get_backend_locus to
381         gfc_save_backend_locus.
382         (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
383         end.
384         (gfc_trans_g77_array, gfc_trans_deferred_array): Use
385         gfc_restore_backend_locus instead of gfc_set_backend_locus.
386         (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
387         return.
388         * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
389         gfc_trans_deferred_vars):
390         Rename gfc_get_backend_locus to gfc_save_backend_locus.
391         Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
392
393 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
394
395         * trans-array.c (gfc_build_constant_array_constructor): Free array
396         spec when done.
397
398 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
399
400         * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
401         before overwriting it.
402
403 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
404
405         * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
406         * symbol.c (gen_shape_param): Ditto.
407
408 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
409
410         * symbol.c (free_entry_list): New function.
411         (gfc_free_namespace): Free list of entries.
412
413 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
414
415         * symbol.c (free_components): Free list of formal args and formal
416         namespace.
417
418 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
419
420         * simplify.c (gfc_simplify_size): Clear temporary mpz int before
421         returning.
422
423 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
424
425         * resolve.c (add_dt_to_dt_list): Remove unneeded if.
426
427 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
428
429         * resolve.c (check_typebound_baseobject): Free local expr before
430         returning.
431
432 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
433
434         * primary.c (gfc_match_structure_constructor): Invert the assert logic.
435
436 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
437
438         * primary.c (gfc_free_structure_ctor_component): Also free the
439         component structure itself.
440
441 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
442
443         * module.c (gfc_use_module): Free atom_string when done with it.
444
445 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
446
447         * module.c (read_module): Remove useless string duplication.
448
449 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
450
451         * gfortranspec.c (append_arg): Remove commented code.
452
453 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
454
455         * decl.c (match_procedure_in_type): Assertify if conditions.
456
457 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
458
459         * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
460         preprocessing is disabled.
461
462 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
463
464         PR middle-end/45838
465         * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
466         ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
467         (gfc_define_builtin): Change last argument to int bitmask from bool,
468         control addition of TREE_NOTHROW and leaf attribute as well.
469         (DO_DEFINE_MATH_BUILTIN): Adjust callers.
470         (gfc_init_builtin_functions): Likewise.  Remove
471         ATTR_{,CONST_}NOTHROW_LIST enum.
472
473 2010-10-04  Andi Kleen <ak@linux.intel.com>
474
475         * Make-lang.in (gfortran, f951): Add + to build rule.
476
477 2010-10-04  Richard Guenther  <rguenther@suse.de>
478
479         * f95-lang.c (current_translation_unit): New global variable.
480         (gfc_create_decls): Build a translation-unit decl.
481         (pushdecl): In the global binding-level use the
482         translation-unit decl as DECL_CONTEXT.
483         * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
484         (build_function_decl): Likewise.  Delay setting the assembler
485         name, leave setting of DECL_CONTEXT to pushdecl.
486         (trans_function_start): Use DECL_FILE_SCOPE_P.
487         (gfc_create_module_variable): Likewise.  Remove questionable
488         asserts.
489         * trans.c (gfc_generate_module_code): Likewise.
490
491 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
492
493         * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
494         instead of duplicating code.
495         * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
496         BASEVER.
497
498 2010-10-02  Janus Weil  <janus@gcc.gnu.org>
499
500         PR fortran/45748
501         * resolve.c (resolve_formal_arglist): Avoid setting default type for
502         formal arguments of intrinsic procedures.
503
504 2010-09-30  Janus Weil  <janus@gcc.gnu.org>
505
506         PR fortran/45828
507         * resolve.c (resolve_allocate_expr): Do not use
508         'gfc_has_default_initializer'.
509
510 2010-09-30  Tobias Burnus  <burnus@net-b.de>
511
512         * gfortran.tex (Fortran 2008 status): Update list of
513         implemented features.
514
515 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
516
517         * lang.opt: Don't use VarExists.
518
519 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
520
521         * cpp.c (cpp_define_builtins): Update names of gfc_option_t
522         members.
523         (gfc_cpp_post_options): Update names of cpp_options members.
524         (cb_cpp_error): Update names of diagnostic_context members.
525         * f95-lang.c (gfc_init_builtin_functions): Update names of
526         gfc_option_t members.
527         * gfortran.h (gfc_option_t): Rename warn_conversion and
528         flag_openmp.
529         * intrinsic.c (gfc_convert_type_warn): Update names of
530         gfc_option_t members.
531         * options.c (gfc_init_options, gfc_post_options, set_Wall,
532         gfc_handle_option): Update names of gfc_option_t members.
533         * parse.c (next_free, next_fixed): Update names of gfc_option_t
534         members.
535         * scanner.c (pedantic): Remove extern declaration.
536         (skip_free_comments, skip_fixed_comments, include_line): Update
537         names of gfc_option_t members.
538         * trans-decl.c (gfc_generate_function_code): Update names of
539         gfc_option_t members.
540
541 2010-09-28  Tobias Burnus  <burnus@net-b.de>
542
543         PR fortran/40569
544         PR fortran/40568
545         * intrinsic.c (add_functions): Make compiler_version and
546         compiler_options CLASS_INQUIRY.
547         * gfortran.h (gfc_get_option_string): New prototype.
548         * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
549         Add documentation.
550         (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
551         (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
552         (ISO_C_BINDING): Refer to C_SIZEOF.
553         * options.c (gfc_get_option_string): New function.
554         * simplify.c (gfc_simplify_compiler_options): Use it.
555         (gfc_simplify_compiler_version): Include compiler name.
556
557 2010-09-28  Jan Hubicka  <jh@suse.cz>
558
559         * f95-lang.c (gfc_define_builtin): Make leaf.
560         (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
561         and ATTR_NOTHROW_LEAF_LIST.
562         (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
563         (DEF_GOMP_BUILTIN): Likewise.
564
565 2010-09-28  Tobias Burnus  <burnus@net-b.de>
566
567         PR fortran/45756
568         * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
569         module parameters.
570
571 2010-09-27  Tobias Burnus  <burnus@net-b.de>
572
573         PR fortran/40569
574         PR fortran/40568
575         * intrinsic.h (gfc_simplify_compiler_options,
576         gfc_simplify_compiler_version): New prototypes.
577         * intrinsic.c (gfc_intrinsic_function_by_id,
578         make_from_module): New functions.
579         (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
580         gfc_specific_intrinsic): Don't return module intrinsics.
581         (add_functions): Add compiler_options, compiler_version.
582         (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
583         * symbol.c (std_for_isocbinding_symbol): Add version check for
584         NAMED_FUNCTIONS.
585         * iso-fortran-env.def: Add compiler_options, compiler_version.
586         * iso-c-binding.def: Add c_sizeof.
587         * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
588         (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
589         (gfc_intrinsic_function_by_id): New prototype.
590         * module.c (create_intrinsic_function): New function.
591         (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
592         * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
593         * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
594         by ISYM ID.
595         * simplify.c (gfc_simplify_compiler_options,
596         gfc_simplify_compiler_version): New functions.
597
598 2010-09-26  Daniel Kraft  <d@domob.eu>
599
600         PR fortran/45783
601         PR fortran/45795
602         * resolve.c (resolve_select_type): Clarify code.
603         (resolve_assoc_var): Only set typespec if it is currently unknown.
604
605 2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
606
607         PR fortran/45793
608         * module.c (create_int_parameter_array): Set the array value shape.
609
610 2010-09-25  Tobias Burnus  <burnus@net-b.de>
611
612         * gfortran.texi: Re-add accidently removed \input line.
613
614 2010-09-25  Daniel Kraft  <d@domob.eu>
615
616         PR fortran/45776
617         * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
618         * io.c (resolve_tag): F2008 check for NEWUNIT and variable
619         definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
620         (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
621         `extra_comma' with changed semantics.
622         (gfc_resolve_dt): Check variable definitions.
623         (match_io_element): Remove INTENT and PURE checks here and
624         initialize code->ext.dt member.
625         (match_io): Set dt->dt_io_kind.
626         (gfc_resolve_inquire): Check variable definition for all tags
627         except UNIT, FILE and ID.
628         * resolve.c (resolve_transfer): Variable definition check.
629
630 2010-09-25  Tobias Burnus  <burnus@net-b.de>
631
632         * interface.c (gfc_match_end_interface): Constify char pointer
633         to fix warning.
634
635 2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
636
637         * interface.c (gfc_match_end_interface): Deal with user defined
638         operators that overload rational operators and C1202.
639
640 2010-09-24  Tobias Burnus  <burnus@net-b.de>
641
642         * gfortran.texi: Add second space after end-of-sentence period;
643         change / to /@/ to allow hyphenation of URLs.
644         (Standards): Remove duplicated OpenMP, update wording given that
645         Fortran 2008 now released.
646         (Fortran 2008 status): Update and add list of implemented features.
647
648 2010-09-24  Tobias Burnus  <burnus@net-b.de>
649
650         PR fortran/40571
651         * iso-fortran-env.def: Add NAMED_KINDARRAY with
652         character_kinds, integer_kinds, logical_kinds and
653         real_kinds.
654         * gfortran.h: Add them to iso_fortran_env_symbol.
655         * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
656         LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
657         libgfortran_stat_codes to libgfortran_error_codes.
658         * module.c (create_int_parameter_array): New function.
659         (use_iso_fortran_env_module): Use it for
660         NAMED_KINDARRAY of iso-fortran-env.def.
661         * trans-decl.c (gfc_get_symbol_decl): Parameter
662         arrays of intrinsics modules become local static variables.
663         * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
664         integer_kinds, logical_kinds and real_kinds.
665
666 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
667
668         PR fortran/45744
669         * frontend-passes.c (optimize_binop_array_assignment):
670         Only re-use lhs as intermediate storage if kind and type
671         parameters match.
672
673 2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
674
675         PR fortran/45745
676         PR fortran/45648
677         * trans-array.c (gfc_conv_expr_descriptor): Handle
678         ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
679
680 2010-09-23  Tobias Burnus  <burnus@net-b.de>
681
682         * intrinsic.texi (OpenMP modules): Add named constants of
683         OMP_LIB.
684
685 2010-09-23  Daniel Kraft  <d@domob.eu>
686
687         PR fortran/38936
688         PR fortran/44044
689         PR fortran/45474
690         * gfortran.h (gfc_check_vardef_context): New method.
691         (struct symbol_attribute): New flag `select_type_temporary'.
692         * primary.c (gfc_variable_attr): Clarify initialization of ref.
693         (match_variable): Remove PROTECTED check and assignment check
694         for PARAMETERs (this is now done later).
695         * match.c (gfc_match_iterator): Remove INTENT(IN) check.
696         (gfc_match_associate): Defer initialization of newAssoc->variable.
697         (gfc_match_nullify): Remove PURE definability check.
698         (select_type_set_tmp): Set new `select_type_temporary' flag.
699         * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
700         (gfc_check_pointer_assign): Ditto (and other checks removed).
701         (gfc_check_vardef_context): New method.
702         * interface.c (compare_parameter_protected): Removed.
703         (compare_actual_formal): Use `gfc_check_vardef_context' for checks
704         related to INTENT([IN]OUT) arguments.
705         * intrinsic.c (check_arglist): Check INTENT for intrinsics.
706         * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
707         (remove_last_array_ref): New method.
708         (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
709         (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
710         (resolve_assoc_var): Remove checks for definability here.
711         (resolve_select_type): Handle resolving of code->block here.
712         (resolve_ordinary_assign): Remove PURE check.
713         (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
714         Use `gfc_check_vardef_context' for assignments and pointer-assignments.
715
716 2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
717
718         * gfortran.texi (Argument list functions): Allow URL to wrap.
719         * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
720         (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
721         (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
722         code markups in the text.
723         * invoke.texi (Fortran Dialect Options)
724         (Error and Warning Options, Directory Options, Code Gen Options):
725         Likewise.  Remove @code inside @smallexample.
726
727 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
728
729         * gfortranspec.c (lang_specific_driver): Handle OPT__version and
730         OPT__help instead of OPT_fversion and OPT_fhelp.
731         * lang.opt (-all-warnings, -assert, -assert=, -comments,
732         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
733         -dump, -dump=, -include-barrier, -include-directory,
734         -include-directory=, -include-directory-after,
735         -include-directory-after=, -include-prefix, -include-prefix=,
736         -no-line-commands, -no-standard-includes, -output, -output=,
737         -preprocess, -print-missing-file-dependencies, -trace-includes,
738         -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
739         -write-dependencies, -write-user-dependencies): New.
740
741 2010-09-21  Jason Blevins  <jrblevin@sdf.org>
742
743         * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
744         execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
745         Correct spelling.
746
747 2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
748
749         PR fortran/45648
750         * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
751         info->dim.
752
753         PR fortran/45648
754         * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
755         accessing dimensions in reversed order. 
756
757         PR fortran/45648
758         * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
759         intrinsic function call. 
760
761         * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
762         Update asserts accordingly.
763
764         PR fortran/45648
765         * trans.h (gfc_se): New field force_tmp. 
766         * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
767         and set parmse.force_tmp if some alias is found. 
768         * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
769         if se->force_tmp is set. 
770
771 2010-09-20  Janus Weil  <janus@gcc.gnu.org>
772
773         PR fortran/45438
774         * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
775         TBPs, PPCs and pointer/allocatable components.
776
777 2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
778
779         PR fortran/45081
780         * simplify.c (is_constant_array_expr): Allow structure array
781         elements as well as constants.
782         (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
783         gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
784         type of source to the result.
785
786 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
787
788         * frontend-passes.c (gfc_expr_walker):  Also
789         handle EXPR_SUBSTRING.
790
791 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
792
793         * frontend-passes.c (gfc_expr_walker):  Handle
794         constructors and references.
795
796 2010-09-16  Tobias Burnus  <burnus@net-b.de>
797
798         PR fortran/43665
799         * trans-types.c (create_fn_spec): New function.
800         (gfc_get_function_type): Call it.
801
802 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
803
804         * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
805         (gfc_expr_walker, gfc_code_walker): New prototypes.
806         * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
807         (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
808         (optimize_namespace): Use gfc_code_walker.
809         (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
810         (optimize_expr_0, optimize_code_node,
811         optimize_actual_arglist): Removed.
812         (optimize_assignment): Don't call optimize_expr_0.
813
814 2010-09-16  Janus Weil  <janus@gcc.gnu.org>
815
816         PR fortran/45674
817         * interface.c (compare_parameter): Create vtab for actual argument,
818         instead of formal (if needed).
819
820 2010-09-15  Janus Weil  <janus@gcc.gnu.org>
821
822         PR fortran/45577
823         * resolve.c (resolve_allocate_expr): Do default initialization via
824         EXEC_INIT_ASSIGN.
825
826 2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
827
828         * mathbuiltins.def: Do not defined huge_val built-in.
829         * trans-const.c (gfc_build_inf_or_huge): New function.
830         * trans-const.h (gfc_build_inf_or_huge): New prototype.
831         * f95-lang.c (gfc_init_builtin_functions): Don't defined
832         huge_val built-ins.
833         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
834         have functions of type (*) (void) anymore.
835         (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
836         (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
837         of generating a call to huge_val().
838
839 2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>
840
841         * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
842         * dependency.c (gfc_check_dependency): Don't depend on
843         expr's inline_noncopying_intrinsic_attribute.
844         * dependency.c (gfc_check_argument_var_dependency,
845         gfc_check_argument_dependency): Ditto. Recursively check dependency
846         as NOT_ELEMENTAL in the non-copying (=transpose) case.
847         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
848         * resolve.c (find_noncopying_intrinsics): Remove.
849         (resolve_function, resolve_call): Remove call to
850         find_noncopying_intrinsics.
851
852         * trans-array.c (gfc_conv_array_transpose): Remove.
853         (gfc_walk_subexpr): Make non-static. Move prototype...
854         * trans-array.h (gfc_walk_subexpr): ... here.
855         * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
856         handling.
857         (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
858         gfc_inline_intrinsic_function_p): New.
859         (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
860         Remove transpose from the libcall list.
861         (gfc_walk_intrinsic_function): Special case inline intrinsic.
862         * trans.h (gfc_inline_intrinsic_function_p): New prototype.
863
864 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
865
866         * trans-expr.c (expr_is_variable): New function taking non-copying
867         intrinsic functions into account.
868         (gfc_trans_assignment_1): Use expr_is_variable.
869
870 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
871
872         * trans-array.c (gfc_conv_loop_setup): Access the shape along the
873         real array dimension instead of the scalarizer (loop) dimension.
874
875 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
876
877         * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
878         transposed references.
879
880 2010-09-10  Tobias Burnus  <burnus@net-b.de>
881
882         PR fortran/45186
883         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
884         build4_stat_loc): New inline functions.
885         (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
886         (build1_v, build2_v, build3_v, build4_v): Use input_location
887         as locus.
888         * trans-array.c (gfc_trans_scalarized_loop_end,
889         gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
890         * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
891         gfc_finish_wrapped_block): Ditto.
892         * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
893         * trans-expr.c (gfc_conv_missing_dummy,
894         gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
895         * trans-openmp.c (gfc_omp_clause_default_ctor,
896         gfc_trans_omp_critical, gfc_trans_omp_parallel,
897         gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
898         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
899         gfc_trans_omp_single, gfc_trans_omp_task,
900         gfc_trans_omp_workshare): Ditto.
901
902 2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
903
904         * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
905         for dummy argument that appears in a specification statement.
906
907 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
908
909         * trans-array.c (gfc_get_array_ref_dim): New function.
910         (gfc_trans_create_temp_array): Reconstruct array
911         bounds from loop bounds. Use array bounds instead of loop bounds.
912
913 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
914
915         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
916         Get the array dimension from the dim array.
917
918 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
919
920         * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
921         dim array to get the stride in the innermost loop.
922
923 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
924
925         * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
926         (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
927         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
928
929 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
930
931         * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
932         and info dimension are the same. Loop over loop dimension.
933         * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
934
935 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
936
937         * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
938         name
939
940 2010-09-09  Tobias Burnus  <burnus@net-b.de>
941
942         PR fortran/43665
943         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
944         STAT): Show also syntax for the function version.
945         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
946          add_sym_3s_intent): Remove function.
947         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
948         as argument.
949         (add_sym_2_intent): New function.
950         (add_functions): Set intent for functions which modify
951         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
952         argument name of hostnm from "a" to "c"
953         (add_subroutines): Change add_sym_*s_intent to
954         add_sym_*s and add intent to the add_sym_*s calls.
955
956 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
957
958         PR fortran/38282
959         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
960         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
961         * gfortran.h: Define ISYM values for above intrinsics.
962         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
963         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
964         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
965         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
966         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
967         gfc_simplify_merge_bits, gfc_simplify_rshift,
968         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
969         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
970         gfc_resolve_shift): New prototypes.
971         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
972         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
973         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
974         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
975         functions.
976         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
977         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
978         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
979         functions.
980         (gfc_conv_intrinsic_function): Call above static functions.
981         * intrinsic.texi: Document new intrinsics.
982         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
983         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
984         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
985         gfc_simplify_merge_bits, gfc_simplify_rshift, 
986         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
987         New functions.
988
989 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
990
991         * frontend-passes.c (optimize_code_node): Walk block chain by default.
992
993         PR fortran/45597
994         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
995         instead of code->block.
996
997         PR fortran/45595
998         * openmp.c (resolve_omp_do): Report not enough do loops for
999         collapse even if block->next is NULL.
1000
1001 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1002
1003         PR fortran/45576
1004         * dependency.c (gfc_deb_compare_expr):  Take missing optional
1005         arguments into account.
1006
1007 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1008
1009         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1010         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1011         (gfc_build_intrinsic_function_decls): Don't build the
1012         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
1013         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
1014         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
1015         of calling clz128/ctz128 library functions.
1016
1017 2010-09-07  Jan Hubicka  <jh@suse.cz>
1018
1019         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
1020         initializers.
1021
1022 2010-09-07  Tobias Burnus <burnus@net-b.de>
1023         
1024         PR fortran/45583
1025         * intrinsic.texi (COS): Remove superfluous "n".
1026
1027 2010-09-07  Tobias Burnus <burnus@net-b.de>
1028
1029         PR fortran/45186
1030         * trans-array.c (gfc_conv_descriptor_data_get,
1031         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
1032         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
1033         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
1034         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
1035         gfc_conv_shift_descriptor_lbound,
1036         gfc_set_loop_bounds_from_array_spec,
1037         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
1038         gfc_conv_array_transpose, gfc_get_iteration_count,
1039         gfc_grow_array, gfc_trans_array_ctor_element,
1040         gfc_trans_array_constructor_subarray,
1041         gfc_trans_array_constructor_value,
1042         constant_array_constructor_loop_size, gfc_trans_array_constructor,
1043         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
1044         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
1045         gfc_conv_array_ref, gfc_trans_preloop_setup,
1046         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1047         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
1048         gfc_conv_descriptor_size, gfc_array_init_size,
1049         gfc_array_allocate, gfc_array_deallocate,
1050         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
1051         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
1052         get_array_charlen, gfc_conv_expr_descriptor,
1053         array_parameter_size, gfc_conv_array_parameter,
1054         gfc_trans_dealloc_allocated, get_full_array_size,
1055         duplicate_allocatable,
1056         structure_alloc_comps): Change fold_build[0-9] to
1057         fold_build[0-9]_loc.
1058         (duplicate_allocatable, structure_alloc_comps,
1059         gfc_duplicate_allocatable): Add space after function name.
1060
1061 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
1062
1063         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
1064         checking string length value.
1065         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
1066         gfc_charlen_type_node type.
1067
1068         PR fortran/45564
1069         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
1070         length to gfc_charlen_type_node.
1071
1072 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1073
1074         PR fortran/36931
1075         * frontend-passes.c (optimize_binop_array_assignment):  New
1076         function.
1077         (optimize_assignment):  Call it.
1078
1079 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1080
1081         PR fortran/34145
1082         * trans-expr.c (gfc_conv_substring):  If start and end
1083         of the string reference are equal, set the length to one.
1084
1085 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1086
1087         PR fortran/45560
1088         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
1089
1090 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1091
1092         PR fortran/45560
1093         * dump-parse-tree.c (gfc_debug_expr): New function.
1094
1095 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1096
1097         PR fortran/38282
1098         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
1099         (check_specific): Special case for those intrinsics.
1100         * gfortran.h (gfc_isym_id): Add new intrinsics
1101         * intrinsic.h (gfc_check_transf_bit_intrins,
1102         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1103         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
1104         New prototypes.
1105         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
1106         gfc_resolve_iparity, resolve_transformational): New functions.
1107         (gfc_resolve_product, gfc_resolve_sum,
1108         gfc_resolve_parity): Use resolve_transformational.
1109         * check.c (gfc_check_transf_bit_intrins): New function.
1110         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
1111         gfc_simplify_iparity, do_bit_any, do_bit_ior,
1112         do_bit_xor, simplify_transformation): New functions.
1113         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
1114         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
1115         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
1116         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
1117         Handle IALL, IANY and IPARITY intrinsics.       
1118         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
1119         order.
1120         (IALL, IANY, IPARITY): Document new intrinsics.
1121
1122 2010-09-05  Tobias Burnus <burnus@net-b.de>
1123
1124         PR fortran/45186
1125         * f95-lang.c (gfc_truthvalue_conversion): Use
1126         fold_build[0-9]_loc instead of fold_build[0-9].
1127         * convert.c (convert): Ditto.
1128         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1129         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
1130         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
1131         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
1132         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
1133         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1134         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1135         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
1136         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1137         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
1138         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
1139         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
1140         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
1141         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1142         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
1143         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1144         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
1145         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
1146         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
1147         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
1148         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
1149         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
1150         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
1151         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
1152         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
1153         gfc_conv_associated, gfc_conv_same_type_as,
1154         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
1155
1156 2010-09-04  Tobias Burnus  <burnus@net-b.de>
1157
1158         PR fortran/45530
1159         * resolve.c (resolve_fl_namelist): Change constraint checking
1160         order to prevent endless loop.
1161
1162 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
1163
1164         PR fortran/45507
1165         * resolve.c (resolve_allocate_expr): Generate default initializers
1166         already at this point, resolve them and put them into expr3, ...
1167         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
1168         translation stage.
1169
1170 2010-09-03  Tobias Burnus  <burnus@net-b.de>
1171
1172         PR fortran/45186
1173         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
1174         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
1175         of build_call_expr.
1176         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
1177         gfc_conv_string_length, gfc_conv_substring,
1178         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1179         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1180         gfc_conv_expr_op, gfc_build_compare_string,
1181         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
1182         gfc_conv_derived_to_class, conv_isocbinding_procedure,
1183         gfc_conv_procedure_call, fill_with_spaces,
1184         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
1185         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
1186         gfc_trans_scalar_assign, gfc_trans_zero_assign,
1187         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
1188         fold_build[0-9] to fold_build[0-9]_loc.
1189         * trans-io.c (set_parameter_const, set_parameter_value,
1190         set_parameter_ref, gfc_convert_array_to_string, set_string,
1191         set_internal_unit, io_result, set_error_locus,
1192         nml_get_addr_expr, build_dt): Ditto.
1193         * trans-openmp.c (gfc_omp_clause_default_ctor,
1194         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1195         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
1196         gfc_trans_omp_do): Ditto.
1197         * trans.c (gfc_add_modify, gfc_build_addr_expr,
1198         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
1199         gfc_trans_runtime_check, gfc_call_malloc,
1200         gfc_allocate_with_status, gfc_allocate_array_with_status,
1201         gfc_call_free, gfc_deallocate_with_status,
1202         gfc_call_realloc): Ditto.
1203
1204 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1205
1206         PR fortran/45159
1207         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
1208         arglists for pure user functions, or for those intrinsic
1209         functions which are also pure.
1210         * intrinsics.c (add_conv):  Mark conversion functions as pure.
1211         (add_char_conversions):  Likewise.
1212
1213 2010-09-03  Daniel Kraft  <d@domob.eu>
1214
1215         PR fortran/34162
1216         * resolve.c (resolve_actual_arglist): Allow internal procedure
1217         as actual argument with Fortran 2008.
1218
1219 2010-09-03  Daniel Kraft  <d@domob.eu>
1220
1221         PR fortran/44602
1222         * gfortran.h (struct gfc_code): Renamed `whichloop' to
1223         `which_construct' as this is no longer restricted to loops.
1224         * parse.h (struct gfc_state_data): New field `construct'.
1225         * match.c (match_exit_cycle): Handle EXIT from non-loops.
1226         * parse.c (push_state): Set `construct' field.
1227         * resolve.c (resolve_select_type): Extend comment.
1228         * trans-stmt.c (gfc_trans_if): Add exit label.
1229         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
1230         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
1231         (gfc_trans_do), (gfc_trans_do_while): Ditto.
1232         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
1233         (gfc_trans_cycle): Ditto.
1234         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
1235
1236 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1237
1238         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
1239         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
1240         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
1241         * intrinsic.texi (RSHIFT): Fix documentation.
1242
1243 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1244
1245         PR fortran/45186
1246         * trans-common.c (create_common): Change build[0-9] to
1247         build[0-9]_loc.
1248         * trans-const.c (gfc_conv_constant_to_tree,
1249         gfc_conv_constant_to_tree): Ditto.
1250         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
1251         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
1252         add_argument_checking, create_main_function,
1253         gfc_generate_return): Ditto.
1254         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
1255         * trans-stmt.c (allocate_temp_for_forall_nest_1,
1256         compute_inner_temp_size, compute_overall_iter_number,
1257         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
1258         gfc_conv_elemental_dependencies, gfc_do_allocate,
1259         gfc_evaluate_where_mask, gfc_trans_allocate,
1260         gfc_trans_arithmetic_if, gfc_trans_call,
1261         gfc_trans_character_select, gfc_trans_deallocate,
1262         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
1263         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
1264         gfc_trans_integer_select, gfc_trans_logical_select,
1265         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
1266         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
1267         gfc_trans_where_assign) Ditto.
1268
1269 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
1270
1271         PR fortran/44541
1272         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
1273         variable.
1274
1275 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1276
1277         PR fortran/45489
1278         * resolve.c (apply_default_init): Mark symbol as referenced,
1279         if it is initialized.
1280         (resolve_symbol): Change intialized check for BT_DERIVED such
1281         that also function results get initialized; remove now obsolete
1282         gfc_set_sym_referenced for BT_CLASS.
1283
1284 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
1285
1286         PR fortran/44541
1287         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
1288         * resolve.c (resolve_allocate_expr): Defer handling of default
1289         initialization to 'gfc_trans_allocate'.
1290         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
1291         (resolve_fl_derived): Suppress error messages for vtypes.
1292         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
1293         polymorphic MOLD expression.
1294         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
1295         dummy initialization.
1296
1297 2010-09-01  Tobias Burnus  <burnus@net-b.de>
1298
1299         * gfortran.texi (preprocessing): Update URL to COCO.
1300
1301 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1302
1303         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
1304         array quad_decls. Remove unnecessary assignment.
1305
1306 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1307
1308         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
1309         other than long double.
1310         * mathbuiltins.def: Add builtins from the POW and CPOW family.
1311         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
1312         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
1313         prefix to function name.
1314         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
1315         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
1316         function name.
1317         (gfc_conv_intrinsic_exponent): Likewise.
1318         (gfc_conv_intrinsic_abs): Likewise.
1319         (gfc_conv_intrinsic_mod): Likewise.
1320         (gfc_conv_intrinsic_sign): Likewise.
1321         (gfc_conv_intrinsic_arith): Likewise.
1322         (gfc_conv_intrinsic_fraction): Likewise.
1323         (gfc_conv_intrinsic_nearest): Likewise.
1324         (gfc_conv_intrinsic_spacing): Likewise.
1325         (gfc_conv_intrinsic_rrspacing): Likewise.
1326         (gfc_conv_intrinsic_scale): Likewise.
1327         (gfc_conv_intrinsic_set_exponent): Likewise.
1328
1329 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1330
1331         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
1332         * intrinsic.h (gfc_resolve_execute_command_line): New function.
1333         * iresolve.c (gfc_resolve_execute_command_line): New function.
1334         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
1335         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
1336
1337 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1338
1339         PR fortran/38282
1340         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
1341         and parity{,l,ll} builtins.
1342         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
1343         (gfc_conv_intrinsic_function): Call above new functions.
1344         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
1345         functions.
1346         * intrinsic.texi: Document POPCNT and POPPAR.
1347
1348 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
1349
1350         PR fortran/45456
1351         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
1352
1353 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1354
1355         * Make-lang.in: Add frontend-passes.o dependencies.
1356
1357 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1358
1359         PR fortran/42769
1360         * resolve.c (resolve_structure_cons): For derived types, make sure the
1361         type has been resolved.
1362         (resolve_typebound_procedures): Make sure the vtab has been generated.
1363
1364 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1365
1366         PR fortran/45439
1367         * match.c (gfc_match_select_type): Give the associate-name the
1368         FL_VARIABLE attribute.
1369
1370 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1371
1372         * simplify.c (gfc_simplify_bessel_n2): Fix indention
1373         and argument type.
1374
1375 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1376
1377         PR fortran/45436
1378         * trans-types.c (gfc_init_kinds): Disable TFmode.
1379
1380 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1381
1382         PR fortran/45432
1383         * match.c (gfc_match_allocate): Avoid double free on error.
1384
1385 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1386
1387         PR fortran/32049
1388         * gfortran.h (gfc_real_info): Add c_float128 field.
1389         * mathbuiltins.def: Indicate which builtins are const.
1390         * trans-types.h (float128_type_node, complex_float128_type_node,
1391         gfc_real16_is_float128): New variables.
1392         * trans-types.c (float128_type_node, complex_float128_type_node,
1393         gfc_real16_is_float128): New variables.
1394         (gfc_init_kinds): Allow TFmode.
1395         (gfc_build_real_type): Mark __float128 types as such.
1396         (gfc_init_types): Initialize float128_type_node and
1397         complex_float128_type_node
1398         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
1399         argument of OTHER_BUILTIN macro.
1400         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
1401         (builtin_decl_for_precision): Special case for __float128.
1402         (builtin_decl_for_float_kind): Likewise.
1403         (define_quad_builtin): New function.
1404         (gfc_build_intrinsic_lib_fndecls): Create all __float128
1405         library decls if necessary. Store them in the real16_decl and
1406         complex16_decl builtin map fields.
1407         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
1408         library function names.
1409
1410 2010-08-27  Tobias Burnus  <burnus@net-b.de>
1411
1412         PR fortran/33197
1413         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
1414         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
1415         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
1416         gfc_resolve_parity): New prototypes.
1417         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
1418         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
1419         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
1420         gfc_resolve_parity): New functions.
1421         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
1422         New functions.
1423         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
1424         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
1425         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
1426         * gcc/fortran/simplify.c (simplify_transformation_to_array):
1427         Add post-processing opterator.
1428         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1429         gfc_simplify_product, gfc_simplify_sum): Update call.
1430         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
1431         gfc_simplify_parity): New functions.
1432
1433 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1434
1435         PR fortran/45420
1436         * match.c (select_type_set_tmp): Add the possibility to reset the
1437         temporary to NULL.
1438         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
1439
1440 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1441
1442         PR fortran/45159
1443         * dependency.c (check_section_vs_section):  Single test for
1444         identical strides which takes into account that only one
1445         of the strides may be NULL.
1446
1447 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1448
1449         PR fortran/43217
1450         * primary.c (match_hollerith_constant): Calculate padding needed to
1451         fill default integer and allocate string for that size.  Set pad bytes
1452         to ' '.
1453         * gfortran.h: Add hollerith pad value to type spec union.
1454         * data.c (create_character_initializer): Fix spelling of function name.
1455         Use hollerith pad value to calculate length.
1456         * arith.c (hollerith2representation); Use hollerith pad value to
1457         calculate length.
1458
1459 2010-08-26  Daniel Kraft  <d@domob.eu>
1460
1461         PR fortran/38936
1462         PR fortran/44047
1463         PR fortran/45384
1464         * gfortran.h (struct gfc_association_list): New flag `dangling'.
1465         (gfc_build_block_ns): Declared here...
1466         * parse.h (gfc_build_block_ns): ...instead of here.
1467         * trans.h (gfc_process_block_locals): Expect additionally the
1468         gfc_association_list of BLOCK (if present).
1469         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
1470         * resolve.c (resolve_variable): Only check for invalid *array*
1471         references on associate-names.
1472         (resolve_assoc_var): New method with code previously in resolve_symbol.
1473         (resolve_select_type): Use association to give the selector and
1474         temporaries their values instead of ordinary assignment.
1475         (resolve_fl_var_and_proc): Allow CLASS associate-names.
1476         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
1477         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
1478         to `gfc_process_block_locals' to match new interface.
1479         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
1480         here automatically.
1481         (gfc_process_block_locals): Defer them rather here when linked to
1482         from the BLOCK's association list.
1483
1484 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1485
1486         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
1487         TREE_NOTHROW on fndecls that can't throw.  Set
1488         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
1489         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
1490         gfor_fndecl_associated.
1491
1492 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
1493
1494         PR fortran/45380
1495         * frontend-passes.c (optimize_equality): Don't optimize array equality
1496
1497 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
1498
1499         PR fortran/45366
1500         * resolve.c (resolve_procedure_interface): New function split off from
1501         'resolve_symbol'.
1502         (resolve_formal_arglist): Call it here ...
1503         (resolve_symbol): ... and here.
1504
1505 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1506
1507         * Make-lang.in (gfortranspec.o): Update dependencies.
1508         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
1509         opts.h.
1510         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
1511         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
1512         (g77_xargc): Make unsigned.
1513         (g77_xargv): Change to g77_x_decoded_options.
1514         (g77_newargc): Make unsigned.
1515         (g77_newargv): Change to g77_new_decoded_options.
1516         (strings_same, options_same): New.
1517         (append_arg): Use cl_decoded_option structures.
1518         (append_option): New.
1519         (add_arg_libgfortran): New.
1520         (lang_specific_driver): Use cl_decoded_option structures.
1521
1522 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
1523
1524         PR fortran/45271
1525         PR fortran/45290
1526         * class.c (add_proc_comp): Add static initializer for PPCs.
1527         (add_procs_to_declared_vtab): Modified comment.
1528         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
1529         initializer if the component is part of a vtype.
1530         (mio_component_list): Add argument 'vtype', pass it on to
1531         'mio_component'.
1532         (mio_symbol): Modified call to 'mio_component_list'.
1533         * trans.h (gfc_conv_initializer): Modified prototype.
1534         (gfc_trans_assign_vtab_procs): Removed.
1535         * trans-common.c (create_common): Modified call to
1536         'gfc_conv_initializer'.
1537         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
1538         gfc_emit_parameter_debug_info): Modified call to
1539         'gfc_conv_initializer'.
1540         (build_function_decl): Remove assertion.
1541         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1542         Removed call to 'gfc_trans_assign_vtab_procs'.
1543         (gfc_conv_initializer): Add argument 'procptr'.
1544         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
1545         (gfc_trans_assign_vtab_procs): Removed.
1546         * trans-stmt.c (gfc_trans_allocate): Removed call to
1547         'gfc_trans_assign_vtab_procs'.
1548
1549 2010-08-21  Tobias Burnus  <burnus@net-b.de>
1550
1551         PR fortran/36158
1552         PR fortran/33197
1553         * intrinsic.c (add_sym): Init value attribute.
1554         (set_attr_value): New function.
1555         (add_functions) Use it and add JN/YN resolvers.
1556         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
1557         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
1558         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
1559         * iresolve.c (gfc_resolve_bessel_n2): New function.
1560         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
1561         formal arg list.
1562         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
1563         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
1564         * simplify.c (): For YN set to -INF if previous values
1565         was -INF.
1566         * trans-expr.c (gfc_conv_procedure_call): Don't crash
1567         if sym->as is NULL.
1568         * iresolve.c (gfc_resolve_extends_type_of): Set the
1569         type of the dummy argument to the one of the actual.
1570
1571 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1572
1573         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
1574
1575 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1576
1577         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
1578         comment, not -lg2c.
1579
1580 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1581
1582         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
1583
1584 2010-08-19  Daniel Kraft  <d@domob.eu>
1585
1586         PR fortran/29785
1587         PR fortran/45016
1588         * trans.h (struct gfc_se): New flag `byref_noassign'.
1589         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
1590         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1591         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
1592         and check for compile-time errors with those.
1593         * trans-decl.c (trans_associate_var): Use new routine
1594         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
1595         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
1596         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1597         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
1598         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
1599         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
1600         rank remapping for assignment.
1601
1602 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1603
1604         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
1605         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
1606         into recurrence.
1607
1608 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1609
1610         PR fortran/36158
1611         PR fortran/33197
1612         * check.c (gfc_check_bessel_n2): New function.
1613         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1614         * intrinsic.c (add_functions): Add transformational version
1615         of the Bessel_jn/yn intrinsics.
1616         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1617         gfc_simplify_bessel_yn2): New prototypes.
1618         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1619         transformational variant.
1620         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1621         Check for negative order.
1622         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1623         gfc_simplify_bessel_yn2): New functions.
1624
1625 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1626
1627         PR fortran/41859
1628         * resolve.c (resolve_transfer): Traverse operands and set expression
1629         to be checked to a non EXPR_OP type.
1630
1631 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
1632
1633         PR fortran/45290
1634         * gfortran.h (gfc_add_save): Modified prototype.
1635         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1636         (match_pointer_init): New function to match F08 pointer initialization.
1637         (variable_decl,match_procedure_decl,match_ppc_decl): Use
1638         'match_pointer_init'.
1639         (match_attr_spec): Module variables are implicitly SAVE.
1640         (gfc_match_save): Modified call to 'gfc_add_save'.
1641         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1642         initialization.
1643         * primary.c (gfc_variable_attr): Handle SAVE attribute.
1644         * resolve.c (resolve_structure_cons): Add new argument and do pointer
1645         initialization checks.
1646         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1647         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1648         (resolve_fl_variable): Handle SAVE_IMPLICIT.
1649         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1650         SAVE_IMPLICIT.
1651         * trans-decl.c (gfc_create_module_variable): Module variables with
1652         TARGET can already exist.
1653         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1654         (gfc_conv_initializer): Implement non-NULL pointer
1655         initialization.
1656
1657 2010-08-18  Tobias Burnus  <burnus@net-b.de>
1658
1659         PR fortran/45295
1660         * intrinsic.texi (selected_char_kind): Document ISO_10646
1661         support.
1662
1663 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1664
1665         PR fortran/45304
1666         * trans-decl.c (build_library_function_decl_1): Chain on
1667         void_list_node instead of creating a new TREE_LIST.
1668         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1669         * trans-types.c (gfc_get_function_type): Likewise.  Set
1670         typelist to void_list_node for the main program.
1671
1672 2010-08-17  Daniel Kraft  <d@domob.eu>
1673
1674         PR fortran/38936
1675         * gfortran.h (struct gfc_association_list): New member `where'.
1676         (gfc_is_associate_pointer) New method.
1677         * match.c (gfc_match_associate): Remember locus for each associate
1678         name matched and do not try to set variable flag.
1679         * parse.c (parse_associate): Use remembered locus for symbols.
1680         * primary.c (match_variable): Instead of variable-flag check for
1681         associate names set it for all such names used.
1682         * symbol.c (gfc_is_associate_pointer): New method.
1683         * resolve.c (resolve_block_construct): Don't generate assignments
1684         to give associate-names their values.
1685         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1686         (resolve_symbol): Set some more attributes for associate variables,
1687         set variable flag here and check it and don't try to build an
1688         explicitely shaped array-spec for array associate variables.
1689         * trans-expr.c (gfc_conv_variable): Dereference in case of association
1690         to scalar variable.
1691         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1692         (gfc_sym_type): Return pointer type for association to scalar vars.
1693         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1694         (trans_associate_var): New method.
1695         (gfc_trans_deferred_vars): Handle association symbols.
1696
1697 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1698
1699         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
1700         RejectDriver.
1701         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
1702         RejectDriver.
1703         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1704         OPT_MDX and OPT_MMDX.
1705
1706 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1707
1708         * lang.opt (MDX, MMDX): Mark RejectDriver.
1709
1710 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
1711
1712         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1713         vtabs for generics any more).
1714
1715 2010-08-15  Daniel Kraft  <d@domob.eu>
1716
1717         PR fortran/38936
1718         * gfortran.h (gfc_find_proc_namespace): New method.
1719         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1720         around with namespace.
1721         * symbol.c (gfc_find_proc_namespace): New method.
1722         * trans-decl.c (gfc_build_qualified_array): Use it for correct
1723         value of nest.
1724         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1725         * parse.c (parse_associate): Removed assignment-generation here...
1726         * resolve.c (resolve_block_construct): ...and added it here.
1727         (resolve_variable): Handle names that are arrays but were not parsed
1728         as such because of association.
1729         (resolve_code): Fix BLOCK resolution.
1730         (resolve_symbol): Generate array-spec for associate-names.
1731
1732 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1733
1734         PR fortran/45211
1735         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1736         (verify_c_interop): Handle unresolved DT with bind(C).
1737
1738 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1739
1740         * trans-expr.c (gfc_conv_expr_present): Regard nullified
1741         pointer arrays as absent.
1742         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1743         dummys as absent argument.
1744         * interface.c (compare_actual_formal,compare_parameter):
1745         Ditto.
1746
1747 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1748
1749         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1750         dummies with intent(in).
1751
1752 2010-08-15  Daniel Kraft  <d@domob.eu>
1753
1754         PR fortran/45197
1755         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1756         routines not IMPURE also as PURE.
1757         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1758         `NO_CLASS' in `CLASS_IMPURE'.
1759         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1760         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1761         (add_functions): Ditto.
1762         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1763         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1764         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1765         are not ALLOCATABLE and have their INTENT specified.
1766
1767 2010-08-13  Daniel Kraft  <d@domob.eu>
1768
1769         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1770         * array.c (gfc_match_array_spec): Match implied-shape specification and
1771         handle AS_IMPLIED_SHAPE correctly otherwise.
1772         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1773         (variable_decl): Some checks for implied-shape declaration.
1774         * resolve.c (resolve_symbol): Assert that array-spec is no longer
1775         AS_IMPLIED_SHAPE in any case.
1776
1777 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
1778
1779         * lang.opt (MD, MMD): Change to MDX and MMDX.
1780         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1781
1782 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
1783
1784         PR fortran/44595
1785         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1786         'gfc_intrinsic_arg'.
1787         (check_arglist,check_specific): Add reference to 'name' field.
1788         (init_arglist): Remove reference to 'name' field.
1789         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1790         * check.c (variable_check): Reverse order of checks. Respect intent of
1791         formal arg.
1792         (int_or_proc_check): New function.
1793         (coarray_check): New function.
1794         (allocatable_check): New function.
1795         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1796         (gfc_check_complex): Use 'int_or_real_check'.
1797         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1798         gfc_check_ucobound): Use 'coarray_check'.
1799         (gfc_check_pack): Use 'real_or_complex_check'.
1800         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1801         'int_or_proc_check'.
1802         (scalar_check,type_check,numeric_check,int_or_real_check,
1803         real_or_complex_check,kind_check,double_check,logical_array_check,
1804         array_check,same_type_check,rank_check,nonoptional_check,
1805         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1806         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1807         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1808         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1809         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1810         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1811         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1812         to 'name' field.
1813
1814 2010-08-10  Daniel Kraft  <d@domob.eu>
1815
1816         * gfortran.texi (Interoperability with C): Fix ordering in menu
1817         and add new subsection about pointers.
1818         (Interoperable Subroutines and Functions): Split off the pointer part.
1819         (working with Pointers): New subsection with extended discussion
1820         of pointers (especially procedure pointers).
1821
1822 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1823
1824         PR fortran/44235
1825         * array.c (gfc_ref_dimen_size):  Add end argument.
1826         If end is non-NULL, calculate it.
1827         (ref_size):  Adjust call to gfc_ref_dimen_size.
1828         (gfc_array_dimen_size):  Likewise.
1829         (gfc_array_res_shape):  Likewise.
1830         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
1831         * resolve.c (resolve_array_ref):  For stride not equal to -1,
1832         fill in the lowest possible end.
1833
1834 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
1835
1836         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1837
1838 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
1839
1840         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1841         alloca.
1842         (check_some_aliasing): Likewise.
1843         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1844         (gfc_conv_intrinsic_int): Likewise.
1845         (gfc_conv_intrinsic_lib_function): Likewise.
1846         (gfc_conv_intrinsic_cmplx): Likewise.
1847         (gfc_conv_intrinsic_ctime): Likewise.
1848         (gfc_conv_intrinsic_fdate): Likewise.
1849         (gfc_conv_intrinsic_ttynam): Likewise.
1850         (gfc_conv_intrinsic_minmax): Likewise.
1851         (gfc_conv_intrinsic_minmax_char): Likewise.
1852         (gfc_conv_intrinsic_ishftc): Likewise.
1853         (gfc_conv_intrinsic_index_scan_verify): Likewise.
1854         (gfc_conv_intrinsic_merge): Likewise.
1855         (gfc_conv_intrinsic_trim): Likewise.
1856         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1857
1858 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1859
1860         PR fortran/45159
1861         * dependency.c (check_section_vs_section):  Handle cases where
1862         the start expression coincides with the lower or upper
1863         bound of the array.
1864
1865 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
1866
1867         PR fortran/42207
1868         PR fortran/44064
1869         PR fortran/44065
1870         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1871         container types. Do not artificially increase refs. Commit symbols one
1872         by one.
1873         * interface.c (compare_parameter): Make sure vtabs are present before
1874         generating module variables.
1875         * resolve.c (resolve_allocate_expr): Ditto.
1876
1877 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1878
1879         PR fortran/45183
1880         PR fortran/44857
1881         * resolve.c (resolve_structure_cons): Fix
1882         freeing of charlen.
1883
1884 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
1885
1886         PR fortran/42051
1887         PR fortran/44064
1888         * symbol.c (changed_syms): Made static again.
1889         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
1890         Changed conditional internal error into assert.
1891         Rename function to ...
1892         (gfc_enforce_clean_symbol_state): ... this.
1893         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
1894         Rename the former to the latter.
1895         * parse.c (decode_statement, decode_omp_directive,
1896         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1897         on GFC_DEBUG.
1898         (changed_syms): Remove declaration.
1899         (next_statement): Use gfc_enforce_clean_symbol_state.
1900
1901 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1902
1903         PR fortran/44857
1904         * resolve.c (resolve_structure_cons): Fix handling of
1905         initialization structure constructors with character
1906         elements of the wrong length.
1907         * array.c (gfc_check_iter_variable): Add NULL check.
1908         (gfc_resolve_character_array_constructor): Also truncate
1909         character length.
1910
1911 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1912
1913         * trans-io.c (gfc_build_io_library_fndecls): Fix return
1914         value of some libgfortran functions.
1915
1916 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1917
1918         PR fortran/45159
1919         * dependency.c (gfc_deb_compare_expr):  Remove any integer
1920         conversion functions to larger types from both arguments.
1921         Remove handling these functions futher down.
1922
1923 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
1924
1925         PR fortran/44584
1926         PR fortran/45161
1927         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
1928         * resolve.c (resolve_tb_generic_targets): Check for errors.
1929
1930 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1931
1932         PR fortran/45159
1933         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
1934         can be reversed.
1935
1936 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1937
1938         PR fortran/36854
1939         * dependency.h:  Add prototype for gfc_are_identical_variables.
1940         * frontend-passes.c:  Include depencency.h.
1941         (optimimize_equality):  Use gfc_are_identical_variables.
1942         * dependency.c (identical_array_ref): New function.
1943         (gfc_are_identical_variables):  New function.
1944         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
1945         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
1946         prefix from statc function.
1947         (check_section_vs_section): Change arguments to gfc_array_ref,
1948         adjust function body accordingly.
1949
1950 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1951             Janus Weil  <janus@gcc.gnu.org>
1952
1953         PR fortran/42051
1954         PR fortran/44064
1955         PR fortran/45151
1956         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
1957         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1958         gfc_copy_formal_args, gfc_copy_formal_args_intr,
1959         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
1960         * parse.c (parse_derived_contains, parse_spec, parse_progunit):
1961         Call reject_statement in case of error.
1962         (match_deferred_characteritics): Call gfc_undo_symbols in case match
1963         fails.
1964
1965 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
1966
1967         PR fortran/44912
1968         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1969         (gfc_find_derived_vtab): Make vtabs and vtypes public.
1970         * module.c (read_module): When reading module files, always import
1971         vtab and vtype symbols.
1972
1973 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
1974
1975         PR fortran/42051
1976         PR fortran/44064
1977         * symbol.c (changed_syms): Made non-static.
1978         * parse.c (changed_syms): Declare new external.
1979         (next_statement): Assert changed_syms is NULL at the beginning.
1980
1981 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
1982             Steven G. Kargl  <kargl@gcc.gnu.org>
1983
1984         PR fortran/44929
1985         * match.c (match_type_spec): Try to parse derived types before
1986         intrinsic types.
1987
1988 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
1989
1990         * gfortran.h (gfc_release_symbol): New prototype.
1991         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1992         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1993         Use gfc_release_symbol.
1994         * parse.c (gfc_fixup_sibling_symbols): Ditto.
1995         * resolve.c (resolve_symbol): Ditto.
1996
1997 2010-07-29  Tobias Burnus  <burnus@net-b.de>
1998
1999         PR fortran/45087
2000         PR fortran/45125
2001         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
2002         external procedure declarations in modules.
2003         (gfc_get_symbol_decl): Modify assert.
2004
2005 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2006
2007         PR fortran/44962
2008         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
2009
2010 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2011
2012         PR fortran/45004
2013         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
2014         (gfc_trans_class_assign): Modified prototype.
2015         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
2016         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
2017         (gfc_trans_class_assign): ... here. Modified actual arguments.
2018         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
2019         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
2020         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
2021
2022 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
2023
2024         PR fortran/42051
2025         PR fortran/44064
2026         * class.c (gfc_find_derived_vtab): Accept or discard newly created
2027         symbols before returning.
2028
2029 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
2030
2031         * lang.opt (cpp): Remove Joined and Separate markers.
2032         (cpp=): New internal option.
2033         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
2034         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
2035         OPT_cpp.
2036
2037 2010-07-29  Daniel Kraft  <d@domob.eu>
2038
2039         PR fortran/45117
2040         * array.c (resolve_array_bound): Fix error message to properly handle
2041         non-variable expressions.
2042
2043 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
2044
2045         * decl.c (free_value): Also free repeat field.
2046         * data.c (gfc_assign_data_value): Always free offset before returning.
2047
2048 2010-07-28  Daniel Kraft  <d@domob.eu>
2049
2050         * gfortran.h (gfc_build_intrinsic_call): New method.
2051         * expr.c (gfc_build_intrinsic_call): New method.
2052         * simplify.c (range_check): Ignore non-constant value.
2053         (simplify_bound_dim): Handle non-variable expressions and
2054         fix memory leak with non-free'ed expression.
2055         (simplify_bound): Handle non-variable expressions.
2056         (gfc_simplify_shape): Ditto.
2057         (gfc_simplify_size): Ditto, but only in certain cases possible.
2058
2059 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2060
2061         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
2062         Remove.
2063
2064 2010-07-28  Tobias Burnus  <burnus@net-b.de>
2065
2066         PR fortran/45077
2067         * trans-types.c (gfc_get_derived_type): Fix DT declaration
2068         from modules for whole-file mode.
2069
2070 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2071
2072         * gfortran.h (gfc_handle_option): Update prototype and return
2073         value type.
2074         * options.c (gfc_handle_option): Update prototype and return value
2075         type.
2076
2077 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2078
2079         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
2080         decoded options in allocating deferred_opt.
2081         * cpp.h (gfc_cpp_init_options): Update prototype.
2082         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
2083         * gfortran.h (gfc_option_lang_mask): New.
2084         (gfc_init_options): Update prototype.
2085         * options.c (gfc_option_lang_mask): New.
2086         (gfc_init_options): Update prototype.  Pass new arguments to
2087         gfc_cpp_init_options.
2088
2089 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2090
2091         PR fortran/40873
2092         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
2093         for functions which are later in the same file.
2094         (gfc_create_function_decl, build_function_decl,
2095         build_entry_thunks): Add global argument.
2096         * trans.c (gfc_generate_module_code): Update
2097         gfc_create_function_decl call.
2098         * trans.h (gfc_create_function_decl): Update prototype.
2099         * resolve.c (resolve_global_procedure): Also resolve for
2100         IFSRC_IFBODY.
2101
2102 2010-07-26  Richard Henderson  <rth@redhat.com>
2103
2104         PR target/44132
2105         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
2106         (gfc_write_global_declarations): New.
2107
2108 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2109
2110         PR fortran/45066
2111         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
2112         for call to transfer_namelist_element.
2113         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
2114         for -fwhole-file.
2115
2116 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2117
2118         PR fortran/40628
2119         * Make-lang.in:  Add fortran/frontend-passes.o.
2120         * gfortran.h:  Add prototype for gfc_run_passes.
2121         * resolve.c (gfc_resolve):  Call gfc_run_passes.
2122         * frontend-passes.c:  New file.
2123
2124 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2125
2126         PR fortran/42852
2127         * scanner.c (gfc_next_char_literal): Enable truncation warning for
2128         free-form '&'.
2129
2130 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
2131
2132         PR fortran/44660
2133         * gfortran.h (gfc_namespace): New field old_equiv.
2134         (gfc_free_equiv_until): New prototype.
2135         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
2136         a parameterized stop condition.
2137         (gfc_free_equiv): Use gfc_free_equiv_until.
2138         * parse.c (next_statement): Save equivalence list.
2139         (reject_statement): Restore equivalence list.
2140
2141 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2142
2143         PR fortran/42852
2144         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
2145         in the function so that it does not get missed by early exits.
2146         (load_line): Add checks for quoted strings and free form comments to
2147         disable warnings on comments. Add check for ampersand as first
2148         character after truncation and don't warn for this case, but warn if
2149         there are subsequent non-whitespace characters.
2150
2151 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2152
2153         PR fortran/40011
2154         * parse.c (gfc_parse_file): Do not override
2155         gfc_global_ns_list items.
2156
2157 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2158
2159         * options.c (gfc_init_options): Enable -fwhole-file by default.
2160         * interface.c (compare_parameter): Assume a Hollerith constant is
2161         compatible with all other argument types.
2162
2163 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2164
2165         PR fortran/44945
2166         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
2167         -fwhole-file also for derived types.
2168         * trans-types.c (copy_dt_decls_ifequal): Remove static and
2169         rename to gfc_copy_dt_decls_ifequal.
2170         (gfc_get_derived_type): Update call.
2171         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
2172
2173 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2174
2175         PR fortran/45030
2176         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
2177
2178 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
2179
2180         * trans-types.c (gfc_get_array_descriptor_base,
2181         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
2182         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
2183         instead of clearing DECL_NAME.
2184         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
2185
2186 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
2187
2188         PR fortran/24524
2189         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
2190         field.
2191         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
2192         reverse the scalarization loop.
2193         gfc_conv_resolve_dependencies: Pass the reverse field of the
2194         loopinfo to gfc_dep_resolver.
2195         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
2196         assignment by resetting loop.reverse.
2197         gfortran.h : Add the gfc_reverse enum.
2198         trans.h : Add the reverse field to gfc_loopinfo.
2199         dependency.c (gfc_check_dependency): Pass null to the new arg
2200         of gfc_dep_resolver.
2201         (gfc_check_section_vs_section): Check for reverse dependencies.
2202         (gfc_dep_resolver): Add reverse argument and deal with the loop
2203         reversal logic.
2204         dependency.h : Modify prototype for gfc_dep_resolver to include
2205         gfc_reverse *.
2206
2207 2010-07-23  Daniel Kraft  <d@domob.eu>
2208
2209         PR fortran/44709
2210         * gfortran.h (gfc_find_symtree_in_proc): New method.
2211         * symbol.c (gfc_find_symtree_in_proc): New method.
2212         * match.c (match_exit_cycle): Look for loop name also in parent
2213         namespaces within current procedure.
2214
2215 2010-07-22  Tobias Burnus  <burnus@net-b.de>
2216
2217         PR fortran/45019
2218         * dependency.c (gfc_check_dependency): Add argument alising check.
2219         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
2220
2221 2010-07-22  Daniel Kraft  <d@domob.eu>
2222
2223         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
2224         now in the correct place.
2225
2226 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
2227
2228         PR fortran/44929
2229         * Revert my commit r162325.
2230
2231 2010-07-21  Daniel Kraft  <d@domob.eu>
2232
2233         * trans.h (gfc_get_return_label): Removed.
2234         (gfc_generate_return): New method.
2235         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2236         returning a tree directly.
2237         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
2238         (gfc_trans_block_construct): Update for new interface to
2239         `gfc_trans_deferred_vars'.
2240         * trans-decl.c (current_function_return_label): Removed.
2241         (current_procedure_symbol): New variable.
2242         (gfc_get_return_label): Removed.
2243         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2244         returning a tree directly.
2245         (get_proc_result), (gfc_generate_return): New methods.
2246         (gfc_generate_function_code): Clean up and do init/cleanup here
2247         also with gfc_wrapped_block.  Remove return-label but rather
2248         return directly.
2249
2250 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2251
2252         PR fortran/44929
2253         * fortran/match.c (match_type_spec): Check for derived type before
2254         intrinsic types.
2255
2256 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2257
2258         PR fortran/42385
2259         * interface.c (matching_typebound_op): Add argument for the
2260         return of the generic name for the procedure.
2261         (build_compcall_for_operator): Add an argument for the generic
2262         name of an operator procedure and supply it to the expression.
2263         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
2264         calls to the above procedures.
2265         * resolve.c (resolve_typebound_function): Catch procedure
2266         component calls for CLASS objects, check that the vtable is
2267         complete and insert the $vptr and procedure components, to make
2268         the call.
2269         (resolve_typebound_function): The same.
2270         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
2271         an allocatable scalar if it is a result.
2272
2273 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2274
2275         PR fortran/44353
2276         * match.c (gfc_match_iterator): Reverted.
2277
2278 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
2279
2280         PR fortran/44353
2281         * match.c (gfc_match_iterator): Remove error that iterator
2282         cannot be INTENT(IN).
2283
2284 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
2285
2286         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
2287         Access subscript through the "dim" field index.
2288         (gfc_trans_create_temp_array): Access ss info through the "dim" field
2289         index.
2290         (gfc_conv_array_index_offset): Ditto.
2291         (gfc_conv_loop_setup): Ditto.
2292         (gfc_conv_expr_descriptor): Ditto.
2293         (gfc_conv_ss_startstride): Ditto.  Update call to
2294         gfc_conv_section_startstride.
2295         (gfc_conv_section_startstride): Set values along the array dimension.
2296         Get array dimension directly from the argument.
2297
2298 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2299
2300         * trans.h (gfc_string_to_single_character): New prototype.
2301         * trans-expr.c (string_to_single_character): Renamed to ...
2302         (gfc_string_to_single_character): ... this.  No longer static.
2303         (gfc_conv_scalar_char_value, gfc_build_compare_string,
2304         gfc_trans_string_copy): Adjust callers.
2305         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
2306         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
2307         (select_struct): Move to toplevel, add GTY(()).
2308         (gfc_trans_character_select): Optimize SELECT CASE
2309         with character length 1.
2310
2311 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2312
2313         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2314         * trans-common.c: Likewise.
2315         * trans-decl.c: Likewise.
2316         * trans-types.c: Likewise.
2317         * trans.c: Likewise.
2318
2319 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
2320
2321         PR fortran/44936
2322         * resolve.c (resolve_typebound_generic_call): Resolve generic
2323         non-polymorphic type-bound procedure calls to the correct specific
2324         procedure.
2325         (resolve_typebound_subroutine): Remove superfluous code.
2326
2327 2010-07-15  Daniel Kraft  <d@domob.eu>
2328
2329         PR fortran/44709
2330         * trans.h (struct gfc_wrapped_block): New struct.
2331         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2332         (gfc_finish_wrapped_block): New method.
2333         (gfc_init_default_dt): Add new init code to block rather than
2334         returning it.
2335         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
2336         (gfc_trans_dummy_array_bias): Ditto.
2337         (gfc_trans_g77_array): Ditto.
2338         (gfc_trans_deferred_array): Ditto.
2339         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
2340         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
2341         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2342         (gfc_finish_wrapped_block): New method.
2343         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
2344         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
2345         (gfc_trans_deferred_array): Ditto.
2346         * trans-decl.c (gfc_trans_dummy_character): Ditto.
2347         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
2348         (init_intent_out_dt): Ditto.
2349         (gfc_init_default_dt): Add new init code to block rather than
2350         returning it.
2351         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
2352         and cleanup code and put it all together.
2353
2354 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2355
2356         * trans.h (gfc_build_compare_string): Add CODE argument.
2357         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
2358         gfc_build_compare_string.
2359         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
2360         gfc_build_compare_string.
2361         (string_to_single_character): Rename len variable to length.
2362         (gfc_optimize_len_trim): New function.
2363         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
2364         or NE_EXPR and one of the strings is string literal with LEN_TRIM
2365         bigger than the length of the other string, they compare unequal.
2366
2367         PR fortran/40206
2368         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
2369         in CASE_LABEL_EXPR and use NULL for low for the default case.
2370
2371 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
2372
2373         * trans-array.c (gfc_conv_section_upper_bound): Remove
2374         (gfc_conv_section_startstride): Don't set the upper bound in the
2375         vector subscript case.
2376         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
2377
2378 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
2379
2380         PR fortran/44925
2381         * gfortran.h (gfc_is_data_pointer): Remove prototype.
2382         * dependency.c (gfc_is_data_pointer): Make it static.
2383         * intrinsic.texi: Update documentation on C_LOC.
2384         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
2385         and add a check for polymorphic variables.
2386
2387 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
2388
2389         * trans-expr.c (string_to_single_character): Also optimize
2390         string literals containing a single char followed only by spaces.
2391         (gfc_trans_string_copy): Remove redundant string_to_single_character
2392         calls.
2393
2394         * trans-decl.c (gfc_build_intrinsic_function_decls,
2395         gfc_build_builtin_function_decls): Mark functions as
2396         DECL_PURE_P or TREE_READONLY.
2397
2398 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2399
2400         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
2401         instead of build_function_call_expr.
2402         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
2403
2404 2010-07-13  Tobias Burnus  <burnus@net-b.de>
2405             Daniel Franke  <franke.daniel@gmail.com>
2406
2407         PR fortran/43665
2408         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
2409         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
2410         static.
2411         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
2412
2413 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
2414             Tobias Burnus  <burnus@net-b.de>
2415
2416         PR fortran/43665
2417         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
2418         noclobber/noescape annotations to function calls.
2419         (gfc_build_builtin_function_decls): Likewise.
2420
2421 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
2422
2423         PR fortran/44434
2424         PR fortran/44565
2425         PR fortran/43945
2426         PR fortran/44869
2427         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
2428         * class.c (gfc_build_class_symbol): Modified call to
2429         'gfc_find_derived_vtab'.
2430         (add_proc_component): Removed, moved code into 'add_proc_comp'.
2431         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
2432         generics.
2433         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
2434         Removed treatment of generics.
2435         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
2436         Call 'add_proc_comp' instead of duplicating code.
2437         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
2438         and 'declared'.
2439         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
2440         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
2441         Removed treatment of generics.
2442         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
2443         'gfc_find_derived_vtab'.
2444         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2445         Removed treatment of generics.
2446         (resolve_select_type,resolve_fl_derived): Modified call to
2447         'gfc_find_derived_vtab'.
2448         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2449         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
2450         Ditto.
2451         * trans-stmt.c (gfc_trans_allocate): Ditto.
2452
2453 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2454
2455         PR fortran/37077
2456         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
2457         internal unit.
2458
2459 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
2460
2461         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2462         * resolve.c (build_default_init_expr): Ditto.
2463
2464 2010-07-11  Tobias Burnus  <burnus@net-b.de>
2465
2466         PR fortran/44702
2467         * module.c (sort_iso_c_rename_list): Remove.
2468         (import_iso_c_binding_module,use_iso_fortran_env_module):
2469         Allow multiple imports of the same symbol.
2470
2471 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
2472
2473         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
2474
2475 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
2476
2477         PR fortran/44869
2478         * decl.c (build_sym,attr_decl1): Only build the class container if the
2479         symbol has sufficient attributes.
2480         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
2481         pointer attribute for classes.
2482         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
2483         * module.c (MOD_VERSION): Bump.
2484         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
2485         (mio_symbol_attribute): Handle class_pointer attribute.
2486         * parse.c (parse_derived): Use class_pointer instead of pointer
2487         attribute for classes.
2488         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
2489         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
2490         resolve_allocate_expr,resolve_fl_derived): Ditto.
2491         (resolve_fl_var_and_proc): Check for class_ok attribute.
2492
2493 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
2494
2495         * trans-io.c (gfc_build_st_parameter): Update calls to
2496         gfc_add_field_to_struct.
2497         * trans-stmt.c (ADD_FIELD): Ditto.
2498         * trans-types.c
2499         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
2500         C_ADDRESS field.
2501         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
2502         fieldlist, remove fieldlist from argument list.
2503         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
2504         and remove fieldlist from argument list.
2505         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
2506         gfc_get_mixed_entry_union): Move setting
2507         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
2508         * trans-types.h (gfc_add_field_to_struct): Update prototype.
2509
2510 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
2511
2512         PR fortran/44773
2513         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
2514         if the lhs has never been host associated, as well as not being
2515         use associated, a pointer or a target.
2516         * resolve.c (resolve_variable): Mark variables that are host
2517         associated.
2518         * gfortran.h: Add the host_assoc bit to the symbol_attribute
2519         structure.
2520
2521 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
2522
2523         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
2524         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
2525         SIZEOF and C_SIZEOF.
2526
2527 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
2528
2529         PR fortran/44649
2530         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
2531         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
2532         gfc_resolve_storage_size): New prototypes.
2533         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
2534         * intrinsic.c (add_functions): Add STORAGE_SIZE.
2535         * iresolve.c (gfc_resolve_storage_size): New function.
2536         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
2537         arguments.
2538         (gfc_conv_intrinsic_storage_size): New function.
2539         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
2540
2541 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
2542
2543         PR fortran/44847
2544         * match.c (match_exit_cycle): Error on EXIT also from collapsed
2545         !$omp do loops.  Error on CYCLE to non-innermost collapsed
2546         !$omp do loops.
2547
2548 2010-07-08  Tobias Burnus  <burnus@net-b.de>
2549
2550         PR fortran/18918
2551         * array.c (gfc_match_array_ref): Better error message for
2552         coarrays with too few ranks.
2553         (match_subscript): Move one diagnostic to caller.
2554         * gfortran.h (gfc_get_corank): Add prottype.
2555         * expr.c (gfc_get_corank): New function.
2556         * iresolve.c (resolve_bound): Fix rank for cobounds.
2557         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
2558         gfc_resolve_ucobound, gfc_resolve_this_image): Update
2559         resolve_bound call.
2560
2561 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2562
2563         PR fortran/44742
2564         * array.c (gfc_expand_constructor): Add optional diagnostic.
2565         * gfortran.h (gfc_expand_constructor): Update prototype.
2566         * expr.c (gfc_simplify_expr, check_init_expr,
2567         gfc_reduce_init_expr): Update gfc_expand_constructor call.
2568         * resolve.c (gfc_resolve_expr): Ditto.
2569
2570 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2571
2572         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
2573         * trans-intrinsic.c: Ditto.
2574         * trans-types.c: Ditto.
2575         * convert.c: Include diagnostic-core.h instead of toplev.h.
2576         * options.c: Ditto.
2577         * trans-array.c: Ditto.
2578         * trans-const.c: Ditto.
2579         * trans-expr.c: Ditto.
2580         * trans-io.c: Ditto.
2581         * trans-openmp.c: Ditto.
2582         * trans.c: Ditto.
2583
2584 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2585
2586         PR fortran/PR44693
2587         * check.c (dim_rank_check):  Also check intrinsic functions.
2588         Adjust permissible rank for functions which reduce the rank of
2589         their argument.  Spread is an exception, where DIM can
2590         be one larger than the rank of array.
2591
2592 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
2593
2594         PR fortran/44797
2595         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
2596
2597 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
2598
2599         PR fortran/44596
2600         * trans-types.c (gfc_get_derived_type): Derived type fields
2601         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
2602         but build_pointer_type_for_mode must be used for this.
2603
2604 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2605
2606         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
2607         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
2608         type of gfc_conv_procedure_call.
2609         (conv_generic_with_optional_char_arg): Likewise.
2610         * trans-stmt.c (gfc_trans_call): Likewise.
2611         * trans-expr.c (gfc_conv_function_expr): Likewise.
2612         (gfc_conv_procedure_call): Use build_call_vec instead of
2613         build_call_list.
2614
2615 2010-07-04  Daniel Kraft  <d@domob.eu>
2616
2617         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2618
2619 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
2620
2621         PR fortran/44596
2622         PR fortran/44745
2623         * trans-types.c (gfc_get_derived_type): Derived type fields
2624         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2625
2626 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
2627
2628         PR fortran/44662
2629         * decl.c (match_procedure_in_type): Clear structure before using.
2630         (gfc_match_generic): Ditto.
2631
2632 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
2633
2634         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2635         * trans-types.c (gfc_add_field_to_struct_1): New function, most
2636         of which comes from...
2637         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
2638         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2639         building fields.
2640         (gfc_get_array_descriptor_base): Likewise.
2641         (gfc_get_mixed_entry_union): Likewise.
2642         (gfc_get_derived_type): Add extra chain parameter for
2643         gfc_add_field_to_struct.
2644         * trans-stmt.c (gfc_trans_character_select): Likewise.
2645         * trans-io.c (gfc_build_st_parameter): Likewise.
2646
2647 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2648
2649         PR fortran/44718
2650         * resolve.c (is_external_proc): Prevent procedure pointers from being
2651         regarded as external procedures.
2652
2653 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2654
2655         PR fortran/44696
2656         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2657         passed as second argument of ASSOCIATED.
2658
2659 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
2660
2661         PR fortran/44582
2662         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2663         to determine if a function assignment can be made without a
2664         temporary.
2665         (gfc_trans_arrayfunc_assign): Move all the conditions that
2666         suppress the direct function call to the above new functon and
2667         call it.
2668
2669 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
2670
2671         PR fortran/40158
2672         * interface.c (argument_rank_mismatch): New function.
2673         (compare_parameter): Call new function instead of generating
2674         the error directly.
2675
2676 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2677
2678         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
2679         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2680         initializers.
2681
2682 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2683
2684         * Make-lang.in: Update dependencies.
2685
2686 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
2687
2688         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2689         and exit_label fields.
2690         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2691         individually.
2692         * trans-stmt.c (gfc_trans_simple_do): Likewise.
2693         (gfc_trans_do): Likewise.
2694         (gfc_trans_do_while): Likewise.
2695         (gfc_trans_cycle): Use cycle_label directly.
2696         (gfc_trans_exit): Use exit_label directly.
2697
2698 2010-06-27  Daniel Kraft  <d@domob.eu>
2699
2700         * dump-parse-tree.c (show_symbol): Dump target-expression for
2701         associate names.
2702         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2703         (show_namespace): Use show_level for correct indentation of
2704         "inner namespaces" (contained procedures or BLOCK).
2705
2706 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2707
2708         PR fortran/44678
2709         * dump-parse-tree.c (show_code_node):  Show namespace for
2710         EXEC_BLOCK.
2711
2712 2010-06-26  Tobias Burnus  <burnus@net-b.de>
2713
2714         * decl.c (gfc_match_decl_type_spec): Support
2715         TYPE(intrinsic-type-spec).
2716
2717 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2718
2719         * intrinsic.h (gfc_check_selected_real_kind,
2720         gfc_simplify_selected_real_kind): Update prototypes.
2721         * intrinsic.c (add_functions): Add radix support to
2722         selected_real_kind.
2723         * check.c (gfc_check_selected_real_kind): Ditto.
2724         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2725         * trans-decl.c (gfc_build_intrinsic_function_decls):
2726         Change call from selected_real_kind to selected_real_kind2008.
2727         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2728         (PRECISION, RANGE, RADIX): Add cross @refs.
2729
2730 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2731
2732         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2733         * gfortran.texi (_gfortran_set_options): Update for
2734         GFC_STD_F2008_OBS addition.
2735         * libgfortran.h: Add GFC_STD_F2008_OBS.
2736         * options.c (set_default_std_flags, gfc_handle_option): Handle
2737         GFC_STD_F2008_OBS.
2738         io.c (check_format): Fix allow_std check.
2739
2740 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2741
2742         * decl.c (gfc_match_entry): Allow END besides
2743         END SUBROUTINE/END FUNCTION for contained procedures.
2744
2745 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2746
2747         * parse.c (next_free, next_fixed): Allow ";" as first character.
2748
2749 2010-06-24  Tobias Burnus  <burnus@net-b.de>
2750
2751         PR fortran/44614
2752         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2753
2754 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
2755
2756         PR fortran/44616
2757         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2758         containers.
2759
2760 2010-06-21  Tobias Burnus  <burnus@net-b.de>
2761
2762         PR fortran/40632
2763         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2764         checks.
2765         * symbol.c (gfc_add_contiguous): New function.
2766         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2767         * decl.c (match_attr_spec): Ditto.
2768         (gfc_match_contiguous): New function.
2769         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2770         contiguous.
2771         * gfortran.h (symbol_attribute): Add contiguous.
2772         (gfc_is_simply_contiguous): Add prototype.
2773         (gfc_add_contiguous): Add prototype.
2774         * match.h (gfc_match_contiguous): Add prototype.
2775         * parse.c (decode_specification_statement,
2776         decode_statement): Handle contiguous attribute.
2777         * expr.c (gfc_is_simply_contiguous): New function.
2778         * dump-parse-tree.c (show_attr): Handle contiguous.
2779         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2780         Ditto.
2781         * trans-expr.c (gfc_add_interface_mapping): Copy
2782         attr.contiguous.
2783         * trans-array.c (gfc_conv_descriptor_stride_get,
2784         gfc_conv_array_parameter): Handle contiguous arrays.
2785         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2786         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2787         Ditto.
2788         * trans.h (gfc_array_kind): Ditto.
2789         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2790
2791 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2792
2793         * options.c (gfc_handle_option): Don't handle N_OPTS.
2794
2795 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
2796
2797         PR fortran/44584
2798         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2799         to avoid ICE.
2800
2801 2010-06-18  Tobias Burnus  <burnus@net-b.de>
2802
2803         PR fortran/44556
2804         * resolve.c (resolve_allocate_deallocate): Properly check
2805         part-refs in stat=/errmsg= for invalid use.
2806
2807 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
2808
2809         PR fortran/44558
2810         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2811         Return directly in case of an error.
2812
2813 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
2814
2815         PR fortran/44549
2816         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2817         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2818         structure to each procedure in a procedure list.
2819         * module.c (mio_typebound_proc): Add NULL argument to
2820         'gfc_get_typebound_proc'.
2821         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2822         to initialize the new structure.
2823
2824 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
2825
2826         PR fortran/43388
2827         * gfortran.h (gfc_expr): Add new member 'mold'.
2828         * match.c (gfc_match_allocate): Implement the MOLD tag.
2829         * resolve.c (resolve_allocate_expr): Ditto.
2830         * trans-stmt.c (gfc_trans_allocate): Ditto.
2831
2832 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2833
2834         PR fortran/44536
2835         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2836         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2837         GFC_DECL_SAVED_DESCRIPTOR set.
2838         (gfc_omp_report_decl): New function.
2839         * trans.h (gfc_omp_report_decl): New prototype.
2840         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2841
2842 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
2843
2844         PR fortran/31588
2845         PR fortran/43954
2846         * gfortranspec.c (lang_specific_driver): Removed deprecation
2847         warning for -M.
2848         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2849         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2850         * cpp.h (gfc_cpp_makedep): New.
2851         (gfc_cpp_add_dep): New.
2852         (gfc_cpp_add_target): New.
2853         * cpp.c (gfc_cpp_option): Add deps* members.
2854         (gfc_cpp_makedep): New.
2855         (gfc_cpp_add_dep): New.
2856         (gfc_cpp_add_target): New.
2857         (gfc_cpp_init_options): Initialize new options.
2858         (gfc_cpp_handle_option): Handle new options.
2859         (gfc_cpp_post_options): Map new options to libcpp-options.
2860         (gfc_cpp_init): Handle deferred -MQ and -MT options.
2861         (gfc_cpp_done): If requested, write dependencies to file.
2862         * module.c (gfc_dump_module): Add a module filename as target.
2863         * scanner.c (open_included_file): New parameter system; add the
2864         included file as dependency.
2865         (gfc_open_included_file): Add the included file as dependency.
2866         (gfc_open_intrinsic_module): Likewise.
2867         * invoke.texi: Removed deprecation warning for -M.
2868         * gfortran.texi: Removed Makefile-dependencies project.
2869
2870 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
2871
2872         * resolve.c (resolve_global_procedure): Improved checking if an
2873         explicit interface is required.
2874
2875 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2876
2877         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2878         return type.
2879         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2880         (gfc_conv_intrinsic_ttynam): Likewise.
2881         (gfc_conv_intrinsic_trim): Likewise.
2882
2883 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
2884
2885         PR fortran/40117
2886         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2887
2888 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2889
2890         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2891
2892 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2893
2894         * mathbuiltins.def: Add builtins that do not directly correspond
2895         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2896         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2897         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2898         code_{r,c}{4,8,10,16} fields. Add
2899         {,complex}{float,double,long_double}_built_in fields.
2900         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2901         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2902         definition of OTHER_BUILTIN.
2903         (real_compnt_info): Remove unused struct.
2904         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2905         functions.
2906         (build_round_expr): Call builtin_decl_for_precision instead of
2907         series of if-else.
2908         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
2909         instead of a switch.
2910         (gfc_build_intrinsic_lib_fndecls): Match
2911         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
2912         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
2913         kinds.
2914         (gfc_conv_intrinsic_lib_function): Go through all the extended
2915         gfc_intrinsic_map.
2916         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
2917         instead of a switch.
2918         (gfc_conv_intrinsic_abs): Likewise.
2919         (gfc_conv_intrinsic_mod): Likewise.
2920         (gfc_conv_intrinsic_sign): Likewise.
2921         (gfc_conv_intrinsic_fraction): Likewise.
2922         (gfc_conv_intrinsic_nearest): Likewise.
2923         (gfc_conv_intrinsic_spacing): Likewise.
2924         (gfc_conv_intrinsic_rrspacing): Likewise.
2925         (gfc_conv_intrinsic_scale): Likewise.
2926         (gfc_conv_intrinsic_set_exponent): Likewise.
2927
2928 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
2929
2930         PR fortran/42051
2931         PR fortran/43896
2932         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
2933         functions with CLASS formal arguments.
2934
2935 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
2936
2937         PR fortran/44207
2938         * resolve.c (conformable_arrays): Handle allocatable components.
2939
2940 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2941
2942         PR fortran/38273
2943         * gfortran.texi: Document that Cray pointers cannot be function
2944         results.
2945
2946 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2947
2948         PR fortran/36234
2949         * gfortran.texi: Document lack of support for syntax
2950         "complex FUNCTION name*16()", and existence of alternative
2951         legacy syntax "complex*16 FUNCTION name()".
2952
2953 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2954
2955         PR fortran/43032
2956         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2957         POSIX's fsync(), and how to call the latter from Fortran code.
2958
2959 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
2960
2961         PR fortran/44457
2962         * interface.c (compare_actual_formal): Reject actual arguments with
2963         array subscript passed to ASYNCHRONOUS dummys.
2964
2965 2010-06-10  Daniel Kraft  <d@domob.eu>
2966
2967         PR fortran/38936
2968         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2969         (struct gfc_symbol): New field `assoc'.
2970         (struct gfc_association_list): New struct.
2971         (struct gfc_code): New struct `block' in union, move `ns' there
2972         and add association list.
2973         (gfc_free_association_list): New method.
2974         (gfc_has_vector_subscript): Made public;
2975         * match.h (gfc_match_associate): New method.
2976         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2977         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2978         * interface.c (gfc_has_vector_subscript): Made public.
2979         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2980         * match.c (gfc_match_associate): New method.
2981         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2982         * primary.c (match_variable): Don't allow names associated to expr here.
2983         * parse.c (decode_statement): Try matching ASSOCIATE statement.
2984         (case_exec_markers, case_end): Add ASSOCIATE statement.
2985         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2986         (parse_associate): New method.
2987         (parse_executable): Handle ST_ASSOCIATE.
2988         (parse_block_construct): Change reference to gfc_code's `ns' field.
2989         * resolve.c (resolve_select_type): Ditto.
2990         (resolve_code): Ditto.
2991         (resolve_block_construct): Ditto and add comment.
2992         (resolve_select_type): Set association list in generated BLOCK to NULL.
2993         (resolve_symbol): Resolve associate names.
2994         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2995         and free association list.
2996         (gfc_free_association_list): New method.
2997         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2998         * trans-stmt.c (gfc_trans_block_construct): Change reference to
2999         gfc_code's `ns' field.
3000
3001 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
3002
3003         * error.c (error_print): Pre-initialize loc by NULL.
3004         * openmp.c (resolve_omp_clauses): Add explicit
3005         braces to avoid ambigous else.
3006         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
3007
3008 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3009
3010         * gfc-internals.texi: Move to GFDL 1.3.
3011         * gfortran.texi: Ditto.
3012         * intrinsic.texi: Ditto.
3013         * invoke.texi: Ditto.
3014
3015 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3016
3017         PR fortran/44347
3018         * check.c (gfc_check_selected_real_kind): Verify that the
3019         actual arguments are scalar.
3020
3021 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3022
3023         PR fortran/44359
3024         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
3025
3026 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3027
3028         PR fortran/44430
3029         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
3030
3031 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3032
3033         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
3034
3035 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3036
3037         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
3038         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
3039         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
3040         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
3041         gfc_check_bitfcn.
3042         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
3043         less_than_bitsize2): New functions.
3044         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
3045         nonnegative_check and less_than_bitsize1.
3046         (gfc_check_ibclr, gfc_check_ibset): Removed.
3047         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
3048         less_than_bitsize1.
3049
3050 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3051
3052         PR fortran/44211
3053         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
3054         Resolve references.
3055
3056 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
3057
3058         * resolve.c (resolve_deallocate_expr): Avoid warning
3059         about possible use of iunitialized sym.
3060         (resolve_allocate_expr): Pre-initialize sym by NULL.
3061
3062 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3063
3064         PR fortran/43040
3065         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
3066
3067 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3068
3069         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
3070         allocation.
3071         (gfc_get_array_type_bounds): Likewise.
3072
3073         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
3074         (gfc_find_module): Likewise.
3075
3076         * f95-lang.c (pushlevel): Likewise.
3077
3078         * trans.h (struct lang_type): Add variable_size GTY option.
3079         (struct lang_decl): Likewise.
3080
3081 2010-06-08  Tobias Burnus  <burnus@net-b.de>
3082
3083         PR fortran/44446
3084         * symbol.c (check_conflict): Move protected--external/procedure check ...
3085         * resolve.c (resolve_select_type): ... to the resolution stage.
3086
3087 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3088
3089         * options.c (gfc_handle_option): Fix -fno-recursive.
3090
3091 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3092
3093         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
3094         * gfortran.texi (copyrights-gfortran): Ditto.
3095
3096 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
3097
3098         * lang.opt (fshort-enums): Define using Var and VarExists.
3099         * options.c (gfc_handle_option): Don't set flag_short_enums here.
3100
3101 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3102             Janus Weil  <janus@gcc.gnu.org>
3103
3104         PR fortran/43945
3105         * resolve.c (get_declared_from_expr): Move to before
3106         resolve_typebound_generic_call.  Make new_ref and class_ref
3107         ignorable if set to NULL.
3108         (resolve_typebound_generic_call): Once we have resolved the
3109         generic call, check that the specific instance is that which
3110         is bound to the declared type.
3111         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
3112         freeing 'class_ref->next' twice.
3113
3114 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3115
3116         PR fortran/43895
3117         * trans-array.c (structure_alloc_comps): Dereference scalar
3118         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
3119         TREE_TYPE (decl).
3120
3121 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3122
3123         * gfortranspec.c (append_arg, lang_specific_driver): Use
3124         GCC-specific formats in diagnostics.
3125
3126 2010-06-02  Tobias Burnus  <burnus@net-b.de>
3127
3128         PR fortran/44360
3129         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
3130         symbols.
3131
3132 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3133
3134         PR fortran/44371
3135         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
3136         condition block.
3137
3138 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
3139
3140         * fortran/gfortran.texi:  Fix typos in description of variable-format-
3141         expressions.
3142
3143 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
3144
3145         PR fortran/36928
3146         * dependency.c (gfc_check_section_vs_section):  Check
3147         for interleaving array assignments without conflicts.
3148
3149 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
3150
3151         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
3152         $data component of a class container.
3153         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
3154         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
3155         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
3156         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
3157         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
3158         * gcc/fortran/parse.c (parse_derived): Ditto.
3159         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
3160         gfc_expr_attr): Ditto.
3161         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
3162         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
3163         resolve_fl_var_and_proc, resolve_typebound_procedure,
3164         resolve_fl_derived): Ditto.
3165         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
3166         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
3167         CLASS_DATA.
3168         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
3169         gfc_trans_deferred_vars): Ditto.
3170         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
3171
3172 2010-05-28  Tobias Burnus  <burnus@net-b.de>
3173
3174         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
3175
3176 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3177
3178         * gfortranspec.c (append_arg, lang_specific_driver): Use
3179         fatal_error instead of fatal.  Use warning instead of fprintf for
3180         warnings.
3181
3182 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3183
3184         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
3185         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
3186         xstrerror instead of strerror.
3187
3188 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3189
3190         * cpp.c (cb_cpp_error): Save and restore
3191         global_dc->warn_system_headers, not variable warn_system_headers.
3192
3193 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3194
3195         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
3196
3197 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3198
3199         * trans-common.c: Do not include rtl.h, include output.h instead.
3200         * trans-decl.c: Likewise.
3201
3202 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
3203
3204         PR fortran/40011
3205         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
3206         namespace before trying to reorder the gsymbols.
3207
3208 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
3209
3210         PR fortran/30668
3211         PR fortran/31346
3212         PR fortran/34260
3213         * resolve.c (resolve_global_procedure): Add check for global
3214         procedures with implicit interfaces and assumed-shape or optional
3215         dummy arguments. Verify that function return type, kind and string
3216         lengths match.
3217
3218 2010-05-21  Tobias Burnus  <burnus@net-b.de>
3219
3220         * gfortran.h: Do not include system.h.
3221         * bbt.c: Include system.h.
3222         * data.c: Ditto.
3223         * dependency.c: Ditto.
3224         * dump-parse-tree.c: Ditto.
3225         * arith.h: Do not include gfortran.h.
3226         * constructor.h: Do not include gfortran.h and splay-tree.h.
3227         * match.h: Do not include gfortran.h.
3228         * parse.h: Ditto.
3229         * target-memory.h: Ditto.
3230         * openmp.c: Do not include toplev.h and target.h.
3231         * trans-stmt.c: Ditto not include toplev.h.
3232         * primary.c: Ditto.
3233         * trans-common.c: Tell why toplev.h is needed. And
3234         do not include target.h.
3235         * trans-expr.c: Tell why toplev.h is needed.
3236         * trans-array.c: Ditto.
3237         * trans-openmp.c: Ditto.
3238         * trans-const.c: Ditto.
3239         * trans.c: Ditto.
3240         * trans-types.c: Ditto.
3241         * trans-io.c: Ditto.
3242         * trans-decl.c: Ditto.
3243         * scanner.c: Ditto.
3244         * convert.c: Ditto.
3245         * trans-intrinsic.c: Ditto.
3246         * options.c: Ditto.
3247
3248 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3249
3250         PR fortran/43851
3251         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
3252         before returning MATCH_ERROR. Add check for scalar. Add check for
3253         default integer kind.
3254
3255 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3256
3257         PR fortran/44212
3258         * match.c (gfc_match_select_type): On error jump back out of the local
3259         namespace.
3260         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
3261         stage, more precisely to ...
3262         * resolve.c (resolve_fl_derived): ... this place.
3263
3264 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3265
3266         PR fortran/44213
3267         * resolve.c (ensure_not_abstract): Allow abstract types with
3268         non-abstract ancestors.
3269
3270 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3271
3272         * trans-const.c: Include realmpfr.h.
3273         * Make-lang.in: Update dependencies.
3274
3275 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3276
3277         * trans-const.c, trans-types.c, trans-intrinsic.c:
3278         Clean up redundant includes.
3279
3280 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
3281
3282         PR fortran/38407
3283         * lang.opt (Wunused-dummy-argument): New option.
3284         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
3285         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
3286         (set_Wall): Enable warn_unused_dummy_argument.
3287         (gfc_handle_option): Set warn_unused_dummy_argument according to
3288         command line.
3289         * trans-decl.c (generate_local_decl): Separate warnings about
3290         unused variables and unused dummy arguments.
3291         * invoke.texi: Documented new option.
3292
3293 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
3294
3295         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
3296         (gfc_conv_string_tmp): Do not assert type comparibilty.
3297         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
3298         (gfc_conv_expr_descriptor): Remove assert.
3299         * trans-common.c: Clarify why rtl.h and tm.h are included.
3300         * trans-openmp.c: Do not include ggc.h and real.h.
3301         Explain why gimple.h is included.
3302         * trans-const.c: Do not include ggc.h.
3303         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
3304         * trans.c: Do not include ggc.h and real.h.
3305         Explain why gimple.h is included.
3306         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
3307         and dwarf2out.h are included.
3308         * trans-io.c: Do not include gimple.h and real.h.
3309         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
3310         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
3311         is included.
3312
3313 2010-05-20  Tobias Burnus  <burnus@net-b.de>
3314
3315         * options.c (gfc_init_options,gfc_post_options): Enable
3316         flag_associative_math by default.
3317
3318 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3319
3320         PR fortran/43851
3321         * trans-stmt.c (gfc_trans_stop): Add generation of call to
3322         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
3323         blank STOP, handling a null expression. (gfc_trans_pause): Use
3324         pause_string for blank PAUSE.
3325         * trans.h: Add external function declaration for error_stop_numeric.
3326         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
3327         the declaration for the library call. Adjust whitespaces.
3328         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
3329         signal no stop code. Match the expression following the stop and pass
3330         that to the translators. Remove the old use of digit matching.  Add
3331         checks that the stop_code expression is INTEGER or CHARACTER, constant,
3332         and if CHARACTER, default character KIND.
3333
3334 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3335
3336         PR fortran/44055
3337         * lang.opt (Wconversion-extra): New option.
3338         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
3339         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
3340         (set_Wall): Enable -Wconversion.
3341         (gfc_handle_option): Set warn_conversion_extra.
3342         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
3343         introduced for -Wconversion if -Wconversion-extra is present.
3344         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
3345         -Wconversion; document -Wconversion-extra.
3346
3347 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3348
3349         PR fortran/42360
3350         * gfortran.h (gfc_has_default_initializer): New.
3351         * expr.c (gfc_has_default_initializer): New.
3352         * resolve.c (has_default_initializer): Removed, use
3353         gfc_has_default_initializer() instead. Updated all callers.
3354         * trans-array.c (has_default_initializer): Removed, use
3355         gfc_has_default_initializer() instead. Updated all callers.
3356         * trans-decl.c (generate_local_decl): Do not check the
3357         first component only to check for initializers, but use
3358         gfc_has_default_initializer() instead.
3359
3360 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3361
3362         PR fortran/38404
3363         * primary.c (match_string_constant): Move start_locus just inside 
3364         the string.
3365         * data.c (create_character_intializer): Clarified truncation warning.
3366
3367 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3368
3369         PR fortran/34505
3370         * intrinsic.h (gfc_check_float): New prototype.
3371         (gfc_check_sngl): New prototype.
3372         * check.c (gfc_check_float): New.
3373         (gfc_check_sngl): New.
3374         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
3375         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
3376         and SNGL.
3377         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
3378         added them to the list of specifics of REAL instead.
3379
3380 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3381
3382         PR fortran/43990
3383         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
3384         This is now handled via 'gfc_class_null_initializer'.
3385
3386 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3387
3388         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
3389         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
3390         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3391         add_procs_to_declared_vtab,add_generic_specifics, 
3392         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3393         find_typebound_proc_uop,gfc_find_typebound_proc,
3394         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
3395         gfc_get_tbp_symtree): Moved here from other places.
3396         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
3397         class.c.
3398         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
3399         gfc_find_typebound_proc,gfc_find_typebound_user_op,
3400         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
3401         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
3402         * Make-lang.in: Add class.o.
3403         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
3404         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3405         add_procs_to_declared_vtab,add_generic_specifics,
3406         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3407         find_typebound_proc_uop,gfc_find_typebound_proc,
3408         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3409         gfc_get_tbp_symtree): Move to class.c.
3410
3411 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3412
3413         * trans-types.c (gfc_init_types): Use build_function_type_list.
3414         (gfc_get_ppc_type): Likewise.
3415         * trans-decl.c (gfc_generate_constructors): Likewise.
3416         * f95-lang.c (build_builtin_fntypes): Likewise.
3417         (gfc_init_builtin_functions): Likewise.
3418         (DEF_FUNCTION_TYPE_0): Likewise.
3419         (DEF_FUNCTION_TYPE_1): Likewise.
3420         (DEF_FUNCTION_TYPE_2): Likewise.
3421         (DEF_FUNCTION_TYPE_3): Likewise.
3422         (DEF_FUNCTION_TYPE_4): Likewise.
3423         (DEF_FUNCTION_TYPE_5): Likewise.
3424         (DEF_FUNCTION_TYPE_6): Likewise.
3425         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
3426         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
3427  
3428 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3429
3430         * trans-array.c (gfc_trans_array_constructor_value): Use
3431         build_constructor instead of build_constructor_from_list.
3432         (gfc_build_constant_array_constructor): Likewise.
3433         * trans-decl.c (create_main_function): Likewise.
3434         * trans-stmt.c (gfc_trans_character_select): Likewise.
3435
3436 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3437
3438         PR fortran/44044
3439         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
3440         (resolve_fl_variable_derived): ... this place.
3441         (resolve_symbol): Make sure function symbols (and their result
3442         variables) are not resolved twice.
3443
3444 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
3445
3446         PR fortran/35779
3447         * array.c (match_array_list): Revert change from 2010-05-13.
3448
3449 2010-05-16  Richard Guenther  <rguenther@suse.de>
3450
3451         * trans-decl.c (module_htab_decls_hash): Revert last change.
3452
3453 2010-05-16  Richard Guenther  <rguenther@suse.de>
3454
3455         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
3456
3457 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3458
3459         * options.c (set_Wall): Remove special logic for Wuninitialized
3460         without -O.
3461
3462 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3463
3464         PR fortran/44154
3465         PR fortran/42647
3466         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
3467         if branches.
3468
3469 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3470
3471         PR fortran/43207
3472         PR fortran/43969
3473         * gfortran.h (gfc_class_null_initializer): New prototype.
3474         * expr.c (gfc_class_null_initializer): New function to build a NULL
3475         initializer for CLASS pointers.
3476         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
3477         containers. Remove default NULL initialization of $data component.
3478         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
3479         message.
3480         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
3481         Use new function 'gfc_class_null_initializer'.
3482         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
3483         class variables.
3484
3485 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3486
3487         PR fortran/44135
3488         * fortran/interface.c (get_sym_storage_size): Use signed instead of
3489         unsigned mpz_get_?i routines.
3490
3491 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3492
3493         * trans.c (trans_code): Set backend locus early.
3494         * trans-decl.c (gfc_get_fake_result_decl): Use source location
3495         of the function instead of current input_location.
3496
3497 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
3498
3499         PR fortran/35779
3500         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
3501         Updated all usages.
3502         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
3503         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
3504         iterators.
3505
3506 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3507
3508         PR fortran/44036
3509         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
3510         variable lists.
3511         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
3512         by reference dummy procedures or non-dummy procedure pointers.
3513         (gfc_omp_predetermined_sharing): Return
3514         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
3515
3516 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3517
3518         PR fortran/43711
3519         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
3520         after OMP statement.
3521         (gfc_match_omp_critical): Likewise.
3522         (gfc_match_omp_flush): Likewise.
3523         (gfc_match_omp_workshare): Likewise.
3524         (gfc_match_omp_master): Likewise.
3525         (gfc_match_omp_ordered): Likewise.
3526         (gfc_match_omp_atomic): Likewise.
3527         (gfc_match_omp_barrier): Likewise.
3528         (gfc_match_omp_end_nowait): Likewise.
3529
3530 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3531
3532         PR fortran/31820
3533         * resolve.c (validate_case_label_expr): Removed FIXME.
3534         (resolve_select): Raise default warning on case labels out of range
3535         of the case expression.
3536
3537 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
3538
3539         PR fortran/27866
3540         PR fortran/35003
3541         PR fortran/42809
3542         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
3543         about conversion warnings.
3544
3545 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
3546
3547         PR fortran/44044
3548         * match.c (gfc_match_select_type): Move error message to
3549         resolve_select_type.
3550         * resolve.c (resolve_select_type): Error message moved here from
3551         gfc_match_select_type. Correctly set type of temporary.
3552
3553 2010-05-10  Richard Guenther  <rguenther@suse.de>
3554
3555         * trans-decl.c (gfc_build_library_function_decl): Split out
3556         worker to ...
3557         (build_library_function_decl_1): ... this new function.
3558         Set a fnspec attribute if a specification was provided.
3559         (gfc_build_library_function_decl_with_spec): New function.
3560         (gfc_build_intrinsic_function_decls): Annotate internal_pack
3561         and internal_unpack.
3562
3563 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
3564
3565         PR fortran/40728
3566         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
3567         as external.
3568
3569 2010-05-07  Jason Merrill  <jason@redhat.com>
3570
3571         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
3572         to avoid -Wc++-compat warning.
3573
3574 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3575
3576         PR 40989
3577         * options.c (gfc_handle_option): Add argument kind.
3578         * gfortran.h (gfc_handle_option): Update declaration.
3579
3580 2010-05-06  Tobias Burnus  <burnus@net-b.de>
3581
3582         PR fortran/43985
3583         * trans-types.c (gfc_sym_type): Mark Cray pointees as
3584         GFC_POINTER_TYPE_P.
3585
3586 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3587
3588         PR fortran/32331
3589         * resolve.c (traverse_data_list): Rephrase error message for
3590         non-constant bounds in data-implied-do.
3591
3592 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3593
3594         PR fortran/24978
3595         * gfortran.h: Removed repeat count from constructor, removed
3596         all usages.
3597         * data.h (gfc_assign_data_value_range): Changed return value from
3598         void to gfc_try.
3599         * data.c (gfc_assign_data_value): Add location to constructor element.
3600         (gfc_assign_data_value_range): Call gfc_assign_data_value()
3601         for each element in range. Return early if an error was generated.
3602         * resolve.c (check_data_variable): Stop early if range assignment
3603         generated an error.
3604
3605 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
3606
3607         PR fortran/43696
3608         * resolve.c (resolve_fl_derived): Some fixes for class variables.
3609         * symbol.c (gfc_build_class_symbol): Add separate class container for
3610         class pointers.
3611
3612 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
3613
3614         PR fortran/43592
3615         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3616
3617 2010-05-02  Tobias Burnus  <burnus@net-b.de>
3618
3619         PR fortran/18918
3620         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3621         for lcobound, ucobound, image_index and this_image.
3622         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3623         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3624         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3625         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3626         functions.
3627         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3628
3629 2010-04-30  Tobias Burnus  <burnus@net-b.de>
3630
3631         PR fortran/18918
3632         PR fortran/43931
3633         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
3634         calculation for array descriptor types.
3635
3636 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3637
3638         PR fortran/43896
3639         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3640         initializers for PPC members of the vtabs.
3641
3642 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3643
3644         PR fortran/42274
3645         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3646         attribute for all PPC members of the vtypes.
3647         (copy_vtab_proc_comps): Copy the correct interface.
3648         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3649         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3650         a dummy argument and make sure all PPC members of the vtab are
3651         initialized correctly.
3652         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3653         in call to gfc_trans_assign_vtab_procs.
3654         * trans-stmt.c (gfc_trans_allocate): Ditto.
3655
3656 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3657
3658         PR fortran/43326
3659         * resolve.c (resolve_typebound_function): Renamed
3660         resolve_class_compcall.Do all the detection of class references
3661         here.
3662         (resolve_typebound_subroutine): resolve_class_typebound_call
3663         renamed. Otherwise same as resolve_typebound_function.
3664         (gfc_resolve_expr): Call resolve_typebound_function.
3665         (resolve_code): Call resolve_typebound_subroutine.
3666
3667 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3668
3669         PR fortran/43492
3670         * resolve.c (resolve_typebound_generic_call): For CLASS methods
3671         pass back the specific symtree name, rather than the target
3672         name.
3673
3674 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3675
3676         PR fortran/42353
3677         * resolve.c (resolve_structure_cons): Make the initializer of
3678         the vtab component 'extends' the same type as the component.
3679
3680 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3681
3682         PR fortran/42680
3683         * interface.c (check_interface1): Pass symbol name rather than NULL to
3684         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3685         trap MULL. (gfc_compare_derived_types): Revert previous change
3686         incorporated incorrectly during merge from trunk, r155778.
3687         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3688         than NULL to gfc_compare_interfaces.
3689         * symbol.c (add_generic_specifics): Likewise.
3690
3691 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
3692
3693         PR fortran/42353
3694         * interface.c (gfc_compare_derived_types): Add condition for vtype.
3695         * symbol.c (gfc_find_derived_vtab): Sey access to private.
3696         (gfc_find_derived_vtab): Likewise.
3697         * module.c (ab_attribute): Add enumerator AB_VTAB.
3698         (mio_symbol_attribute): Use new attribute, AB_VTAB.
3699         (check_for_ambiguous): Likewise.
3700
3701 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3702             Janus Weil  <janus@gcc.gnu.org>
3703
3704         PR fortran/41829
3705         * trans-expr.c (select_class_proc): Remove function.
3706         (conv_function_val): Delete reference to previous.
3707         (gfc_conv_derived_to_class): Add second argument to the call to
3708         gfc_find_derived_vtab.
3709         (gfc_conv_structure): Exclude proc_pointer components when
3710         accessing $data field of class objects.
3711         (gfc_trans_assign_vtab_procs): New function.
3712         (gfc_trans_class_assign): Add second argument to the call to
3713         gfc_find_derived_vtab.
3714         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3715         implement holding off searching for the vptr derived type.
3716         (add_proc_component): New function.
3717         (add_proc_comps): New function.
3718         (add_procs_to_declared_vtab1): New function.
3719         (copy_vtab_proc_comps): New function.
3720         (add_procs_to_declared_vtab): New function.
3721         (void add_generic_specifics): New function.
3722         (add_generics_to_declared_vtab): New function.
3723         (gfc_find_derived_vtab): Add second argument to the call to
3724         gfc_find_derived_vtab. Add the calls to
3725         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3726         * decl.c (build_sym, build_struct): Use new arg in calls to
3727         gfc_build_class_symbol.
3728         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3729         definition of struct gfc_class_esym_list. Modify prototypes
3730         of gfc_build_class_symbol and gfc_find_derived_vtab.
3731         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3732         call to gfc_find_derived_vtab.
3733         * module.c : Add the vtype attribute.
3734         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3735         * resolve.c (resolve_typebound_generic_call): Add second arg
3736         to pass along the generic name for class methods.
3737         (resolve_typebound_call): The same.
3738         (resolve_compcall): Use the second arg to carry the generic
3739         name from the above. Remove the reference to class_esym.
3740         (check_members, check_class_members, resolve_class_esym,
3741         hash_value_expr): Remove functions.
3742         (resolve_class_compcall, resolve_class_typebound_call): Modify
3743         to use vtable rather than member by member calls.
3744         (gfc_resolve_expr): Modify second arg in call to
3745         resolve_compcall.
3746         (resolve_select_type): Add second arg in call to
3747         gfc_find_derived_vtab.
3748         (resolve_code): Add second arg in call resolve_typebound_call.
3749         (resolve_fl_derived): Exclude vtypes from check for late
3750         procedure definitions. Likewise for checking of explicit
3751         interface and checking of pass arg.
3752         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3753         calls to gfc_find_derived_vtab.
3754         * match.c (select_type_set_tmp): Use new arg in call to
3755         gfc_build_class_symbol.
3756         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3757         necessary.
3758         * parse.c (endType): Finish incomplete classes.
3759
3760 2010-04-28  Tobias Burnus  <burnus@net-b.de>
3761
3762         PR fortran/18918
3763         PR fortran/43919
3764         * simplify.c (simplify_cobound): Handle scalar coarrays.
3765
3766 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3767
3768         * gfc-internals.texi: Update copyright year.
3769         * gfortran.texi: Ditto.
3770         * invoke.texi: Ditto.
3771
3772 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3773
3774         PR fortran/18918
3775         * resolve.c (resolve_allocate_expr): Allow array coarrays.
3776         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3777         * trans-types.c (gfc_get_array_type_bounds,
3778         gfc_get_array_descriptor_base): Add corank argument.
3779         * trans-array.c (gfc_array_init_size): Handle corank.
3780         (gfc_trans_create_temp_array, gfc_array_allocate,
3781         gfc_conv_expr_descriptor): Add corank argument to call.
3782         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3783
3784 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
3785
3786         PR fortran/30073
3787         PR fortran/43793
3788         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3789         of mucking with a tree directly.
3790
3791 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3792
3793         PR fortran/43832
3794         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3795         gfc_error with new error message.
3796
3797 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
3798
3799         PR fortran/43841
3800         PR fortran/43843
3801         * trans-expr.c (gfc_conv_expr): Supply an address expression for
3802         GFC_SS_REFERENCE.
3803         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3804         GFC_SS_REFERENCE.
3805         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3806         than the address of a GFC_SS_REFERENCE.
3807         * trans.h : Change comment on GFC_SS_REFERENCE. 
3808
3809 2010-04-22  Richard Guenther  <rguenther@suse.de>
3810
3811         PR fortran/43829
3812         * resolve.c (gfc_resolve_index): Wrap around ...
3813         (gfc_resolve_index_1): ... this.  Add parameter to allow
3814         any integer kind index type.
3815         (resolve_array_ref): Allow any integer kind for the start
3816         index of an array ref.
3817
3818 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3819
3820         PR fortran/43836
3821         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3822         the decl.
3823
3824 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
3825
3826         * intrinsic.c (sort_actual): Remove 'is' in error message.
3827
3828 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
3829
3830         PR fortran/43227
3831         * resolve.c (resolve_fl_derived): If a component character
3832         length has not been resolved, do so now.
3833         (resolve_symbol): The same as above for a symbol character
3834         length.
3835         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3836         not needed for a character valued, procedure pointer.
3837
3838         PR fortran/43266
3839         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3840         not found, return FAILURE rather than ICEing.
3841
3842 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3843
3844         PR fortran/43339
3845         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3846         sequential loops private in the innermost containing task region.
3847
3848 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3849
3850         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3851         to build_common_tree_nodes.
3852
3853 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
3854
3855         PR fortran/31538
3856         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3857         gfc_msg_bounds by using 'Array bound mismatch' directly.
3858         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
3859         error message to include the mismatch in the extent of array bound.
3860         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
3861         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
3862
3863 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3864
3865         * gfortran.texi: Update information on temporary file locations.
3866
3867 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3868
3869         * trans-decl.c (gfc_build_qualified_array): Ensure
3870         ubound.N and lbound.N artificial variable names don't appear
3871         in debug info.
3872
3873 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
3874
3875         PR fortran/30073
3876         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3877         block of code.  Set name to the variable associated with the descriptor.
3878
3879 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
3880
3881         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3882         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3883
3884 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3885
3886         * intrinsic.texi: Add the missing specific name of intrinsic
3887         procedure where the specific name is identical to the generic name.
3888         Fix inconsistent or mismatch in the argument names in intrinsic
3889         procedure descriptions.  Add the SCALAR allocatable description to
3890         ALLOCATED.
3891
3892 2010-04-14  Tobias Burnus  <burnus@net-b.de>
3893
3894         PR fortran/18918
3895         * array.c (gfc_find_array_ref): Handle codimensions.
3896         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3897         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3898         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3899         New functions.
3900         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3901         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3902         GFC_ISYM_UCOBOUND.
3903         * intrinsic.h (add_functions): Add this_image, image_index,
3904         lcobound and ucobound intrinsics.
3905         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3906         gfc_check_image_index, gfc_check_this_image,
3907         gfc_simplify_image_index, gfc_simplify_lcobound,
3908         gfc_simplify_this_image, gfc_simplify_ucobound):
3909         New function prototypes.
3910         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
3911         IMAGE_INDEX): Document new intrinsic functions.
3912         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
3913         error fatal.
3914         * simplify.c (simplify_bound_dim): Handle coarrays.
3915         (simplify_bound): Update simplify_bound_dim call.
3916         (gfc_simplify_num_images): Add -fcoarray=none check.
3917         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
3918         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
3919
3920 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3921
3922      &nb