OSDN Git Service

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