OSDN Git Service

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