OSDN Git Service

* doc/invoke.texi (-dy): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2
3         * f95-lang.c (gfc_be_parse_file): Take no arguments.
4
5 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6             Tobias Burnus  <burnus@net-b.de>
7
8         PR fortran/32049
9         * gfortranspec.c (find_spec_file): New function.
10         (lang_specific_driver): Try to find .spec file and use it.
11         * trans-io.c (iocall): Define IOCALL_X_REAL128/COMPLEX128(,write).
12         (gfc_build_io_library_fndecls): Build decl for __float128 I/O.
13         (transfer_expr): Call __float128 I/O functions.
14         * trans-types.c (gfc_init_kinds): Allow kind-16 belonging
15         to __float128.
16
17 2010-11-15  Tobias Burnus  <burnus@net.b.de>
18
19         PR fortran/46484
20         * check.c (variable_check): Don't treat functions calls as variables;
21         optionally accept function themselves.
22         (gfc_check_all_any, gfc_check_loc, gfc_check_move_alloc,
23         gfc_check_null, gfc_check_present, gfc_check_cpu_time,
24         gfc_check_date_and_time, gfc_check_mvbits, gfc_check_random_number,
25         gfc_check_random_seed, gfc_check_system_clock,
26         gfc_check_dtime_etime, gfc_check_dtime_etime_sub,
27         gfc_check_itime_idate,gfc_check_ltime_gmtime): Update call.
28
29 2010-11-13  Tobias Burnus  <burnus@net-b.de>
30
31         PR fortran/45742
32         * trans-common.c (build_field): Add TREE_SIDE_EFFECTS for volatile.
33         * trans-decl.c (gfc_finish_var_decl): Ditto.
34         (create_function_arglist): Handle volatile dummy arguments.
35
36 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
37
38         * Make-lang.in (gfortranspec.o): Use $(OPTS_H).
39         * gfortran.h (gfc_handle_option): Take location_t parameter.
40         * options.c (gfc_handle_option): Take location_t parameter.
41
42 2010-11-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
43
44         PR fortran/45794
45         trans-expr.c (gfc_conv_procedure_call): Avoid NULL array spec.
46         
47 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
48
49         PR c/44782
50         * options.c (gfc_post_options): Initialize gfc_option.max_errors.
51         (gfc_handle_option) [OPT_fmax_errors_]: Remove.
52         * lang.opt (fmax-errors=): Remove.
53
54 2010-11-11  Steven G. Kargl <kargl@gcc.gnu.org>
55
56         * symbol.c (verify_bind_c_derived_type):  Accept BIND(C) on an empty
57         derived type.
58
59 2010-11-11  Jan Hubicka  <jh@suse.cz>
60
61         * options.c (gfc_post_options): Remove flag_whopr.
62
63 2010-11-11  Tobias Burnus  <burnus@net-b.de>
64
65         PR fortran/46413
66         * resolve.c (resolve_transfer): Reject I/O transfer of
67         polymorphic type.
68
69         PR fortran/46205
70         * resolve.c (resolve_code): Reject nonscalar FORALL masks.
71
72 2010-11-11  Janus Weil  <janus@gcc.gnu.org>
73
74         * resolve.c (resolve_procedure_interface): Copy 'is_bind_c' attribute.
75
76 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
77
78         * trans-array.c (gfc_trans_deferred_array): Use "front-end"
79         spelling in diagnostic.
80         * trans.c (gfc_allocate_array_with_status): Add missing space in
81         diagnostic.
82
83 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
84
85         * cpp.c (asm_file_name): Don't declare here.
86
87 2010-11-10  Tobias Burnus  <burnus@net-b.de>
88
89         PR fortran/46411
90         * intrinsic.c (gfc_intrinsic_sub_interface): Check for attr.pure
91         and not for attr.elemental.
92         * intrinsic.texi (move_alloc): Document as being pure.
93
94 2010-11-10  Tobias Burnus <burnus@net-b.de>
95
96         PR fortran/46244
97         * resolve.c (resolve_fl_derived): Don't allow CLASS in
98         sequence/BIND(C) types.
99
100 2010-11-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
101             Mikael Morin   <mikael@gcc.gnu.org>
102
103         PR fortran/46331
104         * intrinsic.c: Correctly set the pure attributes for intrinsic
105         functions.
106         * expr.c (check_specification_function): Remove this function and move
107         its code into gfc_is_constant_expr. (gfc_is_constant_expr): Change the
108         order of checks by checking for non-constant arguments first.  Then,
109         check for initialization functions, followed by intrinsics.
110
111 2010-11-09  Janus Weil  <janus@gcc.gnu.org>
112
113         PR fortran/46313
114         * gfortran.h (gfc_add_data_component,gfc_add_vptr_component,
115         gfc_add_hash_component,gfc_add_size_component,
116         gfc_add_def_init_component): New macros.
117         * class.c (gfc_add_component_ref): Renamed data component.
118         (get_unique_type_string): New function.
119         (gfc_build_class_symbol): Use 'get_unique_type_string' to construct
120         uniques names for the class containers. Rename components.
121         (gfc_find_derived_vtab): Use 'get_unique_type_string' to construct
122         uniques names for the vtab symbols. Rename components.
123         * decl.c (attr_decl1): Renamed class container components.
124         * iresolve.c (gfc_resolve_extends_type_of): Ditto.
125         * match.c (select_type_set_tmp): Renamed temporaries.
126         * module.c (read_module): Renamed vtab and vtype symbols.
127         * resolve.c (resolve_structure_cons,resolve_typebound_function,
128         resolve_typebound_subroutine,resolve_deallocate_expr,
129         resolve_select_type,resolve_fl_derived): Renamed class container and
130         vtab components.
131         * trans-array.c (structure_alloc_comps): Ditto.
132         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
133         * trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure,
134         gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto.
135         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof,
136         gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated,
137         gfc_conv_same_type_as): Ditto.
138         * trans-stmt.c (gfc_trans_allocate): Ditto.
139
140 2010-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
141
142         PR fortran/43899
143         * trans-decl.c (generate_local_decl): Do not generate unused warning
144         for variables in namelists.
145
146 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
147
148         PR fortran/46344
149         * decl.c (build_struct): Build vtab immediately if derived type
150         has already been declared.
151
152 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
153
154         PR fortran/46344
155         * trans-types.c (gfc_copy_dt_decls_ifequal): Handle CLASS components.
156
157 2010-11-06  Janus Weil  <janus@gcc.gnu.org>
158
159         PR fortran/46330
160         * trans-expr.c (gfc_trans_class_assign): Find 'vtab' symbol in correct
161         namespace.
162
163 2010-11-05  Janus Weil  <janus@gcc.gnu.org>
164
165         PR fortran/45451
166         PR fortran/46174
167         * class.c (gfc_find_derived_vtab): Improved search for existing vtab.
168         Add component '$copy' to vtype symbol for polymorphic deep copying.
169         * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated
170         during resolution stage.
171         * resolve.c (resolve_codes): Don't resolve code if namespace is already
172         resolved.
173         * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for
174         polymorphic ALLOCATE statements with SOURCE.
175
176 2010-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
177             Paul Thomas  <pault@gcc.gnu.org>
178
179         * dump-parse-tree.c (code_indent):  Take label into acount
180         when calculating indent.
181         (show_typespec):  Also display class.
182         (show_attr):  Add module name to argument.
183         Don't show UNKNOWN for flavor, access and save. Don't show
184         SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
185         association.  Show intent only for dummy arguments.
186         Set length of shown symbol names to minimum of 12.
187         Show attributes header.
188         (show_symbol):  Adjust show_level.
189         (show_symtree):  Clear up display for ambiguous.  Show if symbol
190         was imported from namespace.
191         (show_code_node):  Clear up indenting.  Traverse symtree and
192         show code directly instead of calling show_namespace.
193
194 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
195
196         * trans-decl.c (add_argument_checking): Use build_zero_cst instead of
197         fold_convert.
198         * trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
199         * trans-stmt.c (gfc_trans_do): Likewise.
200
201 2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
202             Tobias Burnus  <burnus@net-b.de>
203
204         PR fortran/45170
205         * array.c (gfc_match_array_constructor): Reject deferred type
206         parameter (DTP) in type-spec.
207         * decl.c (char_len_param_value, match_char_length,
208         gfc_match_char_spec, build_sym, variable_decl,
209         enumerator_decl): Support DTP.
210         * expr.c (check_inquiry): Fix check due to support for DTP.
211         * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
212         * misc.c (gfc_clear_ts): Set it to false.
213         * match.c (gfc_match_allocate): Support DTP.
214         * resolve.c (resolve_allocate_expr): Not-implemented error for DTP.
215         (resolve_fl_variable): Add DTP constraint check.
216         * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
217         error for DTP.
218
219 2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
220
221         PR fortran/46152
222         * fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
223         with a gfc_find_symbol to prevent namespace pollution.  Remove dead
224         code.
225         (match_type_spec): Remove parsing of '::'.  Collapse character
226         kind checking to one location.
227         (gfc_match_allocate): Use correct locus in error message.
228
229 2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
230
231         * gfortran.h (gfc_option_t):  Replace dump_parse_tree by
232         dump_fortran_original and add dump_fortran_optimized.
233         * lang.opt: Add fdump-fortran-original and
234         fdump-fortran-optimized.  Document that fdump-parse-tree is
235         deprecated.
236         * gfortran.texi: Add -fdump-fortran-original and
237         -fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
238         * frontend-passes.c (gfc_run_passes):  If optimizing and
239         if gfc_option.dump_fortran_optimized is set, dump the parse tree
240         after optimization.
241         * parse.c:  Rename gfc_option.dump_parse_tree to
242         gfc_option.dump_fortran_original.
243         * options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
244         to gfc_option.dump_fortran_original and handle
245         gfc_option.dump_fortran_optimize.
246         (gfc_post_options): Rename gfc_option.dump_parse_tree
247         to gfc_option.dump_fortran_original.
248         (gfc_handle_option):  Rename OPT_fdump_parse_tree to
249         OPT_fdump_fortran_original and gfc_option.dump_parse_tree
250         to gfc_option.dump_fortran_original.  Handle
251         OPT_fdump_fortran_optimized.
252
253 2010-10-30  Janus Weil  <janus@gcc.gnu.org>
254
255         PR fortran/44917
256         PR fortran/44926
257         PR fortran/46196
258         * interface.c (count_types_test): Symmetrize type check.
259         (generic_correspondence): Ditto.
260
261 2010-10-27  Janus Weil  <janus@gcc.gnu.org>
262
263         PR fortran/46161
264         * interface.c (compare_allocatable): Handle polymorphic allocatables.
265         (compare_parameter): Add two error messages for polymorphic dummies.
266
267 2010-10-26  Janus Weil  <janus@gcc.gnu.org>
268
269         PR fortran/42647
270         * trans.h (gfc_deallocate_scalar_with_status): New prototype.
271         * trans.c (gfc_deallocate_scalar_with_status): New function for
272         deallocation of allocatable scalars.
273         * trans-array.c (structure_alloc_comps): Call it here ...
274         * trans-decl.c (gfc_trans_deferred_vars): ... here ...
275         * trans-stmt.c (gfc_trans_deallocate): ... and here.
276
277 2010-10-26  Tobias Burnus  <burnus@net-b.de>
278
279         PR fortran/45451
280         * trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.
281
282         PR fortran/43018
283         * trans-array.c (duplicate_allocatable): Use size of type and not
284         the size of the pointer to the type.
285
286 2010-10-25  Steven G. Kargl  <kargl@gcc.gnu.org>
287
288         PR fortran/46140
289         * fortran/scanner.c (include_line): Check return value of load_file.
290
291 2010-10-23  Tobias Burnus  <burnus@net-b.de>
292
293         PR fortran/46122
294         * expr.c (gfc_check_vardef_context): Fix PROTECTED check.
295
296 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
297
298         PR fortran/46060
299         * match.h (gfc_matching_ptr_assignment): New global variable to indicate
300         we're currently matching a (non-proc-)pointer assignment.
301         * decl.c (match_pointer_init): Set it.
302         * match.c (gfc_match_pointer_assignment): Ditto.
303         * primary.c (matching_actual_arglist): New global variable to indicate
304         we're currently matching an actual argument list.
305         (gfc_match_actual_arglist): Set it.
306         (gfc_match_varspec): Reject procedure pointer component calls with
307         missing argument list.
308
309 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
310
311         PR fortran/46067
312         * interface.c (gfc_compare_interfaces): Switch arguments of type
313         comparison (important for polymorphic variables).
314
315 2010-10-21  Tobias Burnus  <burnus@net-b.de>
316
317         PR fortran/46100
318         * expr.c (gfc_check_vardef_context): Treat pointer functions
319         as variables.
320
321 2010-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
322
323         PR fortran/46079
324         * trans_stmt.c (gfc_trans_stop): Fix whitespace.  Build a call to new
325         F08 numeric stop function.
326         * trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
327         * trans-decl.c (gfc_build_builtin_function_decls): Build declaration
328         for stop_numeric_f08.
329
330 2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
331
332         * gfortran.h: Remove definition of bt enumerator.
333         * libgfortran.h: Add bt enumerator type alighned with defintion.
334         Remove the dtype enumerator, no longer used.
335         previously given in libgfortran/io.h
336         * trans-types.c: Use new bt enumerator.
337         * trans-io.c: Likewise.
338
339 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
340
341         * trans-io.c (gfc_build_io_library_fndecls):
342         Array descriptor arguments to transfer_array can be
343         dereferenced recursively.
344
345 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
346
347         PR fortran/20165
348         PR fortran/31593
349         PR fortran/43665
350         * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
351         IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
352         IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
353         IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
354         (gfc_build_io_library_fndecls):  Add corresponding function
355         decls.
356         (transfer_expr):  If the current transfer is a READ, use
357         the iocall with the original version, otherwise the version
358         with _WRITE.
359         (transfer_array_desc):  Likewise.
360
361 2010-10-15  Tobias Burnus  <burnus@net-b.de>
362
363         PR fortran/45186
364         * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
365         (gfc_trans_runtime_error_vararg): Remove prototype.
366         * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
367         (gfc_add_modify, gfc_evaluate_now): Use them.
368         (trans_runtime_error_vararg): Renamed from
369         gfc_trans_runtime_error_vararg, made static and use locus.
370         (gfc_trans_runtime_error): Use it.
371         (gfc_trans_runtime_check): Ditto and make use of locus.
372         * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
373         gfc_trans_do, gfc_trans_do_while): Improve line number
374         associated with generated expressions.
375
376 2010-10-12  Daniel Kraft  <d@domob.eu>
377
378         PR fortran/38936
379         * parse.c (parse_associate): Set typespec of associate-name if that of
380         the target is already available.
381
382 2010-10-10  Janus Weil  <janus@gcc.gnu.org>
383
384         PR fortran/45961
385         * resolve.c (resolve_typebound_function): Bugfix for type-bound
386         operators.
387
388 2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
389
390         * frontend-passes.c:  Include opts.h.
391         (optimize_comparison):  Renamed from optimize_equality.
392         Change second argument to operation to be compared.
393         Use flag_finite_math_only to avoid comparing REAL and
394         COMPLEX only when NANs are honored.  Simplify comparing
395         of string concatenations where left or right operands are
396         equal.  Simplify all comparison operations, based on the result
397         of gfc_dep_compare_expr.
398         * dependency.c:  Include arith.h.
399         (gfc_are_identical_variables):  Volatile variables should not
400         compare equal to themselves.
401         (gfc_dep_compare_expr):  Handle string constants and string
402         concatenations.
403
404 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
405
406         * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
407         * gfortran.h (gfc_init_options_struct): Declare.
408         * options.c (gfc_init_options_struct): New.  Split out from
409         gfc_init_options.
410
411 2010-10-07  Janus Weil  <janus@gcc.gnu.org>
412
413         PR fortran/45933
414         * resolve.c (resolve_typebound_function): Use correct declared type
415         for type-bound operators.
416
417 2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>
418
419         PR fortran/45916
420         Revert revision 165026:
421         2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
422
423         * decl.c (match_procedure_in_type): Assertify if conditions.
424
425 2010-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
426
427         PR fortran/45889
428         * resolve.c (resolve_transfer): Use expression inside parenthesis to
429         find acutal component to be transgferred.
430
431 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
432
433         * trans-stmt.c (gfc_trans_allocate): free lhs expr.
434
435 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
436
437         * trans-array.c (gfc_free_ss_chain): Made non-static.
438         * trans-array.h (gfc_free_ss_chain): New prototype.
439         * trans-stmt.c (gfc_trans_where_2): Free ss chains.
440
441 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
442
443         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
444         subcomponents.
445
446 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
447
448         * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
449
450 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
451
452         * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
453         before calling gfc_free_expr.
454
455 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
456
457         * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
458         gfc_advance_se_ss_chain.
459         * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
460         gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
461         calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
462         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
463         * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
464
465 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
466
467         * trans.c (gfc_restore_backend_locus): New function.
468         (gfc_get_backend_locus): Renamed to ...
469         (gfc_save_backend_locus): ... this.
470         * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
471         gfc_save_backend_locus): Same.
472         * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
473         gfc_trans_deferred_array): Rename gfc_get_backend_locus to
474         gfc_save_backend_locus.
475         (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
476         end.
477         (gfc_trans_g77_array, gfc_trans_deferred_array): Use
478         gfc_restore_backend_locus instead of gfc_set_backend_locus.
479         (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
480         return.
481         * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
482         gfc_trans_deferred_vars):
483         Rename gfc_get_backend_locus to gfc_save_backend_locus.
484         Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
485
486 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
487
488         * trans-array.c (gfc_build_constant_array_constructor): Free array
489         spec when done.
490
491 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
492
493         * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
494         before overwriting it.
495
496 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
497
498         * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
499         * symbol.c (gen_shape_param): Ditto.
500
501 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
502
503         * symbol.c (free_entry_list): New function.
504         (gfc_free_namespace): Free list of entries.
505
506 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
507
508         * symbol.c (free_components): Free list of formal args and formal
509         namespace.
510
511 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
512
513         * simplify.c (gfc_simplify_size): Clear temporary mpz int before
514         returning.
515
516 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
517
518         * resolve.c (add_dt_to_dt_list): Remove unneeded if.
519
520 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
521
522         * resolve.c (check_typebound_baseobject): Free local expr before
523         returning.
524
525 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
526
527         * primary.c (gfc_match_structure_constructor): Invert the assert logic.
528
529 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
530
531         * primary.c (gfc_free_structure_ctor_component): Also free the
532         component structure itself.
533
534 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
535
536         * module.c (gfc_use_module): Free atom_string when done with it.
537
538 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
539
540         * module.c (read_module): Remove useless string duplication.
541
542 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
543
544         * gfortranspec.c (append_arg): Remove commented code.
545
546 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
547
548         * decl.c (match_procedure_in_type): Assertify if conditions.
549
550 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
551
552         * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
553         preprocessing is disabled.
554
555 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
556
557         PR middle-end/45838
558         * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
559         ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
560         (gfc_define_builtin): Change last argument to int bitmask from bool,
561         control addition of TREE_NOTHROW and leaf attribute as well.
562         (DO_DEFINE_MATH_BUILTIN): Adjust callers.
563         (gfc_init_builtin_functions): Likewise.  Remove
564         ATTR_{,CONST_}NOTHROW_LIST enum.
565
566 2010-10-04  Andi Kleen <ak@linux.intel.com>
567
568         * Make-lang.in (gfortran, f951): Add + to build rule.
569
570 2010-10-04  Richard Guenther  <rguenther@suse.de>
571
572         * f95-lang.c (current_translation_unit): New global variable.
573         (gfc_create_decls): Build a translation-unit decl.
574         (pushdecl): In the global binding-level use the
575         translation-unit decl as DECL_CONTEXT.
576         * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
577         (build_function_decl): Likewise.  Delay setting the assembler
578         name, leave setting of DECL_CONTEXT to pushdecl.
579         (trans_function_start): Use DECL_FILE_SCOPE_P.
580         (gfc_create_module_variable): Likewise.  Remove questionable
581         asserts.
582         * trans.c (gfc_generate_module_code): Likewise.
583
584 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
585
586         * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
587         instead of duplicating code.
588         * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
589         BASEVER.
590
591 2010-10-02  Janus Weil  <janus@gcc.gnu.org>
592
593         PR fortran/45748
594         * resolve.c (resolve_formal_arglist): Avoid setting default type for
595         formal arguments of intrinsic procedures.
596
597 2010-09-30  Janus Weil  <janus@gcc.gnu.org>
598
599         PR fortran/45828
600         * resolve.c (resolve_allocate_expr): Do not use
601         'gfc_has_default_initializer'.
602
603 2010-09-30  Tobias Burnus  <burnus@net-b.de>
604
605         * gfortran.tex (Fortran 2008 status): Update list of
606         implemented features.
607
608 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
609
610         * lang.opt: Don't use VarExists.
611
612 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
613
614         * cpp.c (cpp_define_builtins): Update names of gfc_option_t
615         members.
616         (gfc_cpp_post_options): Update names of cpp_options members.
617         (cb_cpp_error): Update names of diagnostic_context members.
618         * f95-lang.c (gfc_init_builtin_functions): Update names of
619         gfc_option_t members.
620         * gfortran.h (gfc_option_t): Rename warn_conversion and
621         flag_openmp.
622         * intrinsic.c (gfc_convert_type_warn): Update names of
623         gfc_option_t members.
624         * options.c (gfc_init_options, gfc_post_options, set_Wall,
625         gfc_handle_option): Update names of gfc_option_t members.
626         * parse.c (next_free, next_fixed): Update names of gfc_option_t
627         members.
628         * scanner.c (pedantic): Remove extern declaration.
629         (skip_free_comments, skip_fixed_comments, include_line): Update
630         names of gfc_option_t members.
631         * trans-decl.c (gfc_generate_function_code): Update names of
632         gfc_option_t members.
633
634 2010-09-28  Tobias Burnus  <burnus@net-b.de>
635
636         PR fortran/40569
637         PR fortran/40568
638         * intrinsic.c (add_functions): Make compiler_version and
639         compiler_options CLASS_INQUIRY.
640         * gfortran.h (gfc_get_option_string): New prototype.
641         * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
642         Add documentation.
643         (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
644         (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
645         (ISO_C_BINDING): Refer to C_SIZEOF.
646         * options.c (gfc_get_option_string): New function.
647         * simplify.c (gfc_simplify_compiler_options): Use it.
648         (gfc_simplify_compiler_version): Include compiler name.
649
650 2010-09-28  Jan Hubicka  <jh@suse.cz>
651
652         * f95-lang.c (gfc_define_builtin): Make leaf.
653         (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
654         and ATTR_NOTHROW_LEAF_LIST.
655         (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
656         (DEF_GOMP_BUILTIN): Likewise.
657
658 2010-09-28  Tobias Burnus  <burnus@net-b.de>
659
660         PR fortran/45756
661         * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
662         module parameters.
663
664 2010-09-27  Tobias Burnus  <burnus@net-b.de>
665
666         PR fortran/40569
667         PR fortran/40568
668         * intrinsic.h (gfc_simplify_compiler_options,
669         gfc_simplify_compiler_version): New prototypes.
670         * intrinsic.c (gfc_intrinsic_function_by_id,
671         make_from_module): New functions.
672         (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
673         gfc_specific_intrinsic): Don't return module intrinsics.
674         (add_functions): Add compiler_options, compiler_version.
675         (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
676         * symbol.c (std_for_isocbinding_symbol): Add version check for
677         NAMED_FUNCTIONS.
678         * iso-fortran-env.def: Add compiler_options, compiler_version.
679         * iso-c-binding.def: Add c_sizeof.
680         * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
681         (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
682         (gfc_intrinsic_function_by_id): New prototype.
683         * module.c (create_intrinsic_function): New function.
684         (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
685         * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
686         * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
687         by ISYM ID.
688         * simplify.c (gfc_simplify_compiler_options,
689         gfc_simplify_compiler_version): New functions.
690
691 2010-09-26  Daniel Kraft  <d@domob.eu>
692
693         PR fortran/45783
694         PR fortran/45795
695         * resolve.c (resolve_select_type): Clarify code.
696         (resolve_assoc_var): Only set typespec if it is currently unknown.
697
698 2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
699
700         PR fortran/45793
701         * module.c (create_int_parameter_array): Set the array value shape.
702
703 2010-09-25  Tobias Burnus  <burnus@net-b.de>
704
705         * gfortran.texi: Re-add accidently removed \input line.
706
707 2010-09-25  Daniel Kraft  <d@domob.eu>
708
709         PR fortran/45776
710         * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
711         * io.c (resolve_tag): F2008 check for NEWUNIT and variable
712         definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
713         (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
714         `extra_comma' with changed semantics.
715         (gfc_resolve_dt): Check variable definitions.
716         (match_io_element): Remove INTENT and PURE checks here and
717         initialize code->ext.dt member.
718         (match_io): Set dt->dt_io_kind.
719         (gfc_resolve_inquire): Check variable definition for all tags
720         except UNIT, FILE and ID.
721         * resolve.c (resolve_transfer): Variable definition check.
722
723 2010-09-25  Tobias Burnus  <burnus@net-b.de>
724
725         * interface.c (gfc_match_end_interface): Constify char pointer
726         to fix warning.
727
728 2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
729
730         * interface.c (gfc_match_end_interface): Deal with user defined
731         operators that overload rational operators and C1202.
732
733 2010-09-24  Tobias Burnus  <burnus@net-b.de>
734
735         * gfortran.texi: Add second space after end-of-sentence period;
736         change / to /@/ to allow hyphenation of URLs.
737         (Standards): Remove duplicated OpenMP, update wording given that
738         Fortran 2008 now released.
739         (Fortran 2008 status): Update and add list of implemented features.
740
741 2010-09-24  Tobias Burnus  <burnus@net-b.de>
742
743         PR fortran/40571
744         * iso-fortran-env.def: Add NAMED_KINDARRAY with
745         character_kinds, integer_kinds, logical_kinds and
746         real_kinds.
747         * gfortran.h: Add them to iso_fortran_env_symbol.
748         * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
749         LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
750         libgfortran_stat_codes to libgfortran_error_codes.
751         * module.c (create_int_parameter_array): New function.
752         (use_iso_fortran_env_module): Use it for
753         NAMED_KINDARRAY of iso-fortran-env.def.
754         * trans-decl.c (gfc_get_symbol_decl): Parameter
755         arrays of intrinsics modules become local static variables.
756         * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
757         integer_kinds, logical_kinds and real_kinds.
758
759 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
760
761         PR fortran/45744
762         * frontend-passes.c (optimize_binop_array_assignment):
763         Only re-use lhs as intermediate storage if kind and type
764         parameters match.
765
766 2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
767
768         PR fortran/45745
769         PR fortran/45648
770         * trans-array.c (gfc_conv_expr_descriptor): Handle
771         ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
772
773 2010-09-23  Tobias Burnus  <burnus@net-b.de>
774
775         * intrinsic.texi (OpenMP modules): Add named constants of
776         OMP_LIB.
777
778 2010-09-23  Daniel Kraft  <d@domob.eu>
779
780         PR fortran/38936
781         PR fortran/44044
782         PR fortran/45474
783         * gfortran.h (gfc_check_vardef_context): New method.
784         (struct symbol_attribute): New flag `select_type_temporary'.
785         * primary.c (gfc_variable_attr): Clarify initialization of ref.
786         (match_variable): Remove PROTECTED check and assignment check
787         for PARAMETERs (this is now done later).
788         * match.c (gfc_match_iterator): Remove INTENT(IN) check.
789         (gfc_match_associate): Defer initialization of newAssoc->variable.
790         (gfc_match_nullify): Remove PURE definability check.
791         (select_type_set_tmp): Set new `select_type_temporary' flag.
792         * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
793         (gfc_check_pointer_assign): Ditto (and other checks removed).
794         (gfc_check_vardef_context): New method.
795         * interface.c (compare_parameter_protected): Removed.
796         (compare_actual_formal): Use `gfc_check_vardef_context' for checks
797         related to INTENT([IN]OUT) arguments.
798         * intrinsic.c (check_arglist): Check INTENT for intrinsics.
799         * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
800         (remove_last_array_ref): New method.
801         (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
802         (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
803         (resolve_assoc_var): Remove checks for definability here.
804         (resolve_select_type): Handle resolving of code->block here.
805         (resolve_ordinary_assign): Remove PURE check.
806         (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
807         Use `gfc_check_vardef_context' for assignments and pointer-assignments.
808
809 2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
810
811         * gfortran.texi (Argument list functions): Allow URL to wrap.
812         * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
813         (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
814         (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
815         code markups in the text.
816         * invoke.texi (Fortran Dialect Options)
817         (Error and Warning Options, Directory Options, Code Gen Options):
818         Likewise.  Remove @code inside @smallexample.
819
820 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
821
822         * gfortranspec.c (lang_specific_driver): Handle OPT__version and
823         OPT__help instead of OPT_fversion and OPT_fhelp.
824         * lang.opt (-all-warnings, -assert, -assert=, -comments,
825         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
826         -dump, -dump=, -include-barrier, -include-directory,
827         -include-directory=, -include-directory-after,
828         -include-directory-after=, -include-prefix, -include-prefix=,
829         -no-line-commands, -no-standard-includes, -output, -output=,
830         -preprocess, -print-missing-file-dependencies, -trace-includes,
831         -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
832         -write-dependencies, -write-user-dependencies): New.
833
834 2010-09-21  Jason Blevins  <jrblevin@sdf.org>
835
836         * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
837         execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
838         Correct spelling.
839
840 2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
841
842         PR fortran/45648
843         * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
844         info->dim.
845
846         PR fortran/45648
847         * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
848         accessing dimensions in reversed order. 
849
850         PR fortran/45648
851         * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
852         intrinsic function call. 
853
854         * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
855         Update asserts accordingly.
856
857         PR fortran/45648
858         * trans.h (gfc_se): New field force_tmp. 
859         * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
860         and set parmse.force_tmp if some alias is found. 
861         * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
862         if se->force_tmp is set. 
863
864 2010-09-20  Janus Weil  <janus@gcc.gnu.org>
865
866         PR fortran/45438
867         * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
868         TBPs, PPCs and pointer/allocatable components.
869
870 2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
871
872         PR fortran/45081
873         * simplify.c (is_constant_array_expr): Allow structure array
874         elements as well as constants.
875         (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
876         gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
877         type of source to the result.
878
879 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
880
881         * frontend-passes.c (gfc_expr_walker):  Also
882         handle EXPR_SUBSTRING.
883
884 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
885
886         * frontend-passes.c (gfc_expr_walker):  Handle
887         constructors and references.
888
889 2010-09-16  Tobias Burnus  <burnus@net-b.de>
890
891         PR fortran/43665
892         * trans-types.c (create_fn_spec): New function.
893         (gfc_get_function_type): Call it.
894
895 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
896
897         * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
898         (gfc_expr_walker, gfc_code_walker): New prototypes.
899         * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
900         (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
901         (optimize_namespace): Use gfc_code_walker.
902         (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
903         (optimize_expr_0, optimize_code_node,
904         optimize_actual_arglist): Removed.
905         (optimize_assignment): Don't call optimize_expr_0.
906
907 2010-09-16  Janus Weil  <janus@gcc.gnu.org>
908
909         PR fortran/45674
910         * interface.c (compare_parameter): Create vtab for actual argument,
911         instead of formal (if needed).
912
913 2010-09-15  Janus Weil  <janus@gcc.gnu.org>
914
915         PR fortran/45577
916         * resolve.c (resolve_allocate_expr): Do default initialization via
917         EXEC_INIT_ASSIGN.
918
919 2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
920
921         * mathbuiltins.def: Do not defined huge_val built-in.
922         * trans-const.c (gfc_build_inf_or_huge): New function.
923         * trans-const.h (gfc_build_inf_or_huge): New prototype.
924         * f95-lang.c (gfc_init_builtin_functions): Don't defined
925         huge_val built-ins.
926         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
927         have functions of type (*) (void) anymore.
928         (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
929         (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
930         of generating a call to huge_val().
931
932 2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>
933
934         * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
935         * dependency.c (gfc_check_dependency): Don't depend on
936         expr's inline_noncopying_intrinsic_attribute.
937         * dependency.c (gfc_check_argument_var_dependency,
938         gfc_check_argument_dependency): Ditto. Recursively check dependency
939         as NOT_ELEMENTAL in the non-copying (=transpose) case.
940         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
941         * resolve.c (find_noncopying_intrinsics): Remove.
942         (resolve_function, resolve_call): Remove call to
943         find_noncopying_intrinsics.
944
945         * trans-array.c (gfc_conv_array_transpose): Remove.
946         (gfc_walk_subexpr): Make non-static. Move prototype...
947         * trans-array.h (gfc_walk_subexpr): ... here.
948         * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
949         handling.
950         (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
951         gfc_inline_intrinsic_function_p): New.
952         (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
953         Remove transpose from the libcall list.
954         (gfc_walk_intrinsic_function): Special case inline intrinsic.
955         * trans.h (gfc_inline_intrinsic_function_p): New prototype.
956
957 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
958
959         * trans-expr.c (expr_is_variable): New function taking non-copying
960         intrinsic functions into account.
961         (gfc_trans_assignment_1): Use expr_is_variable.
962
963 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
964
965         * trans-array.c (gfc_conv_loop_setup): Access the shape along the
966         real array dimension instead of the scalarizer (loop) dimension.
967
968 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
969
970         * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
971         transposed references.
972
973 2010-09-10  Tobias Burnus  <burnus@net-b.de>
974
975         PR fortran/45186
976         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
977         build4_stat_loc): New inline functions.
978         (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
979         (build1_v, build2_v, build3_v, build4_v): Use input_location
980         as locus.
981         * trans-array.c (gfc_trans_scalarized_loop_end,
982         gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
983         * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
984         gfc_finish_wrapped_block): Ditto.
985         * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
986         * trans-expr.c (gfc_conv_missing_dummy,
987         gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
988         * trans-openmp.c (gfc_omp_clause_default_ctor,
989         gfc_trans_omp_critical, gfc_trans_omp_parallel,
990         gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
991         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
992         gfc_trans_omp_single, gfc_trans_omp_task,
993         gfc_trans_omp_workshare): Ditto.
994
995 2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
996
997         * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
998         for dummy argument that appears in a specification statement.
999
1000 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1001
1002         * trans-array.c (gfc_get_array_ref_dim): New function.
1003         (gfc_trans_create_temp_array): Reconstruct array
1004         bounds from loop bounds. Use array bounds instead of loop bounds.
1005
1006 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1007
1008         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1009         Get the array dimension from the dim array.
1010
1011 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1012
1013         * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
1014         dim array to get the stride in the innermost loop.
1015
1016 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1017
1018         * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
1019         (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
1020         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
1021
1022 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1023
1024         * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
1025         and info dimension are the same. Loop over loop dimension.
1026         * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
1027
1028 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1029
1030         * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
1031         name
1032
1033 2010-09-09  Tobias Burnus  <burnus@net-b.de>
1034
1035         PR fortran/43665
1036         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
1037         STAT): Show also syntax for the function version.
1038         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
1039          add_sym_3s_intent): Remove function.
1040         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
1041         as argument.
1042         (add_sym_2_intent): New function.
1043         (add_functions): Set intent for functions which modify
1044         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
1045         argument name of hostnm from "a" to "c"
1046         (add_subroutines): Change add_sym_*s_intent to
1047         add_sym_*s and add intent to the add_sym_*s calls.
1048
1049 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1050
1051         PR fortran/38282
1052         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
1053         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
1054         * gfortran.h: Define ISYM values for above intrinsics.
1055         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
1056         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
1057         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
1058         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
1059         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
1060         gfc_simplify_merge_bits, gfc_simplify_rshift,
1061         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
1062         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
1063         gfc_resolve_shift): New prototypes.
1064         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
1065         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
1066         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
1067         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
1068         functions.
1069         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
1070         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
1071         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
1072         functions.
1073         (gfc_conv_intrinsic_function): Call above static functions.
1074         * intrinsic.texi: Document new intrinsics.
1075         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
1076         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
1077         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
1078         gfc_simplify_merge_bits, gfc_simplify_rshift, 
1079         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
1080         New functions.
1081
1082 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
1083
1084         * frontend-passes.c (optimize_code_node): Walk block chain by default.
1085
1086         PR fortran/45597
1087         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
1088         instead of code->block.
1089
1090         PR fortran/45595
1091         * openmp.c (resolve_omp_do): Report not enough do loops for
1092         collapse even if block->next is NULL.
1093
1094 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1095
1096         PR fortran/45576
1097         * dependency.c (gfc_deb_compare_expr):  Take missing optional
1098         arguments into account.
1099
1100 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1101
1102         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1103         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1104         (gfc_build_intrinsic_function_decls): Don't build the
1105         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
1106         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
1107         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
1108         of calling clz128/ctz128 library functions.
1109
1110 2010-09-07  Jan Hubicka  <jh@suse.cz>
1111
1112         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
1113         initializers.
1114
1115 2010-09-07  Tobias Burnus <burnus@net-b.de>
1116         
1117         PR fortran/45583
1118         * intrinsic.texi (COS): Remove superfluous "n".
1119
1120 2010-09-07  Tobias Burnus <burnus@net-b.de>
1121
1122         PR fortran/45186
1123         * trans-array.c (gfc_conv_descriptor_data_get,
1124         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
1125         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
1126         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
1127         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
1128         gfc_conv_shift_descriptor_lbound,
1129         gfc_set_loop_bounds_from_array_spec,
1130         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
1131         gfc_conv_array_transpose, gfc_get_iteration_count,
1132         gfc_grow_array, gfc_trans_array_ctor_element,
1133         gfc_trans_array_constructor_subarray,
1134         gfc_trans_array_constructor_value,
1135         constant_array_constructor_loop_size, gfc_trans_array_constructor,
1136         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
1137         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
1138         gfc_conv_array_ref, gfc_trans_preloop_setup,
1139         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1140         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
1141         gfc_conv_descriptor_size, gfc_array_init_size,
1142         gfc_array_allocate, gfc_array_deallocate,
1143         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
1144         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
1145         get_array_charlen, gfc_conv_expr_descriptor,
1146         array_parameter_size, gfc_conv_array_parameter,
1147         gfc_trans_dealloc_allocated, get_full_array_size,
1148         duplicate_allocatable,
1149         structure_alloc_comps): Change fold_build[0-9] to
1150         fold_build[0-9]_loc.
1151         (duplicate_allocatable, structure_alloc_comps,
1152         gfc_duplicate_allocatable): Add space after function name.
1153
1154 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
1155
1156         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
1157         checking string length value.
1158         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
1159         gfc_charlen_type_node type.
1160
1161         PR fortran/45564
1162         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
1163         length to gfc_charlen_type_node.
1164
1165 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1166
1167         PR fortran/36931
1168         * frontend-passes.c (optimize_binop_array_assignment):  New
1169         function.
1170         (optimize_assignment):  Call it.
1171
1172 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1173
1174         PR fortran/34145
1175         * trans-expr.c (gfc_conv_substring):  If start and end
1176         of the string reference are equal, set the length to one.
1177
1178 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1179
1180         PR fortran/45560
1181         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
1182
1183 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1184
1185         PR fortran/45560
1186         * dump-parse-tree.c (gfc_debug_expr): New function.
1187
1188 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1189
1190         PR fortran/38282
1191         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
1192         (check_specific): Special case for those intrinsics.
1193         * gfortran.h (gfc_isym_id): Add new intrinsics
1194         * intrinsic.h (gfc_check_transf_bit_intrins,
1195         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1196         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
1197         New prototypes.
1198         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
1199         gfc_resolve_iparity, resolve_transformational): New functions.
1200         (gfc_resolve_product, gfc_resolve_sum,
1201         gfc_resolve_parity): Use resolve_transformational.
1202         * check.c (gfc_check_transf_bit_intrins): New function.
1203         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
1204         gfc_simplify_iparity, do_bit_any, do_bit_ior,
1205         do_bit_xor, simplify_transformation): New functions.
1206         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
1207         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
1208         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
1209         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
1210         Handle IALL, IANY and IPARITY intrinsics.       
1211         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
1212         order.
1213         (IALL, IANY, IPARITY): Document new intrinsics.
1214
1215 2010-09-05  Tobias Burnus <burnus@net-b.de>
1216
1217         PR fortran/45186
1218         * f95-lang.c (gfc_truthvalue_conversion): Use
1219         fold_build[0-9]_loc instead of fold_build[0-9].
1220         * convert.c (convert): Ditto.
1221         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1222         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
1223         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
1224         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
1225         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
1226         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1227         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1228         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
1229         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1230         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
1231         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
1232         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
1233         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
1234         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1235         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
1236         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1237         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
1238         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
1239         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
1240         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
1241         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
1242         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
1243         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
1244         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
1245         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
1246         gfc_conv_associated, gfc_conv_same_type_as,
1247         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
1248
1249 2010-09-04  Tobias Burnus  <burnus@net-b.de>
1250
1251         PR fortran/45530
1252         * resolve.c (resolve_fl_namelist): Change constraint checking
1253         order to prevent endless loop.
1254
1255 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
1256
1257         PR fortran/45507
1258         * resolve.c (resolve_allocate_expr): Generate default initializers
1259         already at this point, resolve them and put them into expr3, ...
1260         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
1261         translation stage.
1262
1263 2010-09-03  Tobias Burnus  <burnus@net-b.de>
1264
1265         PR fortran/45186
1266         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
1267         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
1268         of build_call_expr.
1269         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
1270         gfc_conv_string_length, gfc_conv_substring,
1271         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1272         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1273         gfc_conv_expr_op, gfc_build_compare_string,
1274         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
1275         gfc_conv_derived_to_class, conv_isocbinding_procedure,
1276         gfc_conv_procedure_call, fill_with_spaces,
1277         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
1278         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
1279         gfc_trans_scalar_assign, gfc_trans_zero_assign,
1280         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
1281         fold_build[0-9] to fold_build[0-9]_loc.
1282         * trans-io.c (set_parameter_const, set_parameter_value,
1283         set_parameter_ref, gfc_convert_array_to_string, set_string,
1284         set_internal_unit, io_result, set_error_locus,
1285         nml_get_addr_expr, build_dt): Ditto.
1286         * trans-openmp.c (gfc_omp_clause_default_ctor,
1287         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1288         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
1289         gfc_trans_omp_do): Ditto.
1290         * trans.c (gfc_add_modify, gfc_build_addr_expr,
1291         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
1292         gfc_trans_runtime_check, gfc_call_malloc,
1293         gfc_allocate_with_status, gfc_allocate_array_with_status,
1294         gfc_call_free, gfc_deallocate_with_status,
1295         gfc_call_realloc): Ditto.
1296
1297 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1298
1299         PR fortran/45159
1300         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
1301         arglists for pure user functions, or for those intrinsic
1302         functions which are also pure.
1303         * intrinsics.c (add_conv):  Mark conversion functions as pure.
1304         (add_char_conversions):  Likewise.
1305
1306 2010-09-03  Daniel Kraft  <d@domob.eu>
1307
1308         PR fortran/34162
1309         * resolve.c (resolve_actual_arglist): Allow internal procedure
1310         as actual argument with Fortran 2008.
1311
1312 2010-09-03  Daniel Kraft  <d@domob.eu>
1313
1314         PR fortran/44602
1315         * gfortran.h (struct gfc_code): Renamed `whichloop' to
1316         `which_construct' as this is no longer restricted to loops.
1317         * parse.h (struct gfc_state_data): New field `construct'.
1318         * match.c (match_exit_cycle): Handle EXIT from non-loops.
1319         * parse.c (push_state): Set `construct' field.
1320         * resolve.c (resolve_select_type): Extend comment.
1321         * trans-stmt.c (gfc_trans_if): Add exit label.
1322         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
1323         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
1324         (gfc_trans_do), (gfc_trans_do_while): Ditto.
1325         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
1326         (gfc_trans_cycle): Ditto.
1327         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
1328
1329 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1330
1331         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
1332         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
1333         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
1334         * intrinsic.texi (RSHIFT): Fix documentation.
1335
1336 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1337
1338         PR fortran/45186
1339         * trans-common.c (create_common): Change build[0-9] to
1340         build[0-9]_loc.
1341         * trans-const.c (gfc_conv_constant_to_tree,
1342         gfc_conv_constant_to_tree): Ditto.
1343         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
1344         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
1345         add_argument_checking, create_main_function,
1346         gfc_generate_return): Ditto.
1347         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
1348         * trans-stmt.c (allocate_temp_for_forall_nest_1,
1349         compute_inner_temp_size, compute_overall_iter_number,
1350         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
1351         gfc_conv_elemental_dependencies, gfc_do_allocate,
1352         gfc_evaluate_where_mask, gfc_trans_allocate,
1353         gfc_trans_arithmetic_if, gfc_trans_call,
1354         gfc_trans_character_select, gfc_trans_deallocate,
1355         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
1356         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
1357         gfc_trans_integer_select, gfc_trans_logical_select,
1358         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
1359         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
1360         gfc_trans_where_assign) Ditto.
1361
1362 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
1363
1364         PR fortran/44541
1365         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
1366         variable.
1367
1368 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1369
1370         PR fortran/45489
1371         * resolve.c (apply_default_init): Mark symbol as referenced,
1372         if it is initialized.
1373         (resolve_symbol): Change intialized check for BT_DERIVED such
1374         that also function results get initialized; remove now obsolete
1375         gfc_set_sym_referenced for BT_CLASS.
1376
1377 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
1378
1379         PR fortran/44541
1380         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
1381         * resolve.c (resolve_allocate_expr): Defer handling of default
1382         initialization to 'gfc_trans_allocate'.
1383         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
1384         (resolve_fl_derived): Suppress error messages for vtypes.
1385         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
1386         polymorphic MOLD expression.
1387         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
1388         dummy initialization.
1389
1390 2010-09-01  Tobias Burnus  <burnus@net-b.de>
1391
1392         * gfortran.texi (preprocessing): Update URL to COCO.
1393
1394 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1395
1396         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
1397         array quad_decls. Remove unnecessary assignment.
1398
1399 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1400
1401         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
1402         other than long double.
1403         * mathbuiltins.def: Add builtins from the POW and CPOW family.
1404         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
1405         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
1406         prefix to function name.
1407         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
1408         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
1409         function name.
1410         (gfc_conv_intrinsic_exponent): Likewise.
1411         (gfc_conv_intrinsic_abs): Likewise.
1412         (gfc_conv_intrinsic_mod): Likewise.
1413         (gfc_conv_intrinsic_sign): Likewise.
1414         (gfc_conv_intrinsic_arith): Likewise.
1415         (gfc_conv_intrinsic_fraction): Likewise.
1416         (gfc_conv_intrinsic_nearest): Likewise.
1417         (gfc_conv_intrinsic_spacing): Likewise.
1418         (gfc_conv_intrinsic_rrspacing): Likewise.
1419         (gfc_conv_intrinsic_scale): Likewise.
1420         (gfc_conv_intrinsic_set_exponent): Likewise.
1421
1422 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1423
1424         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
1425         * intrinsic.h (gfc_resolve_execute_command_line): New function.
1426         * iresolve.c (gfc_resolve_execute_command_line): New function.
1427         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
1428         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
1429
1430 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1431
1432         PR fortran/38282
1433         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
1434         and parity{,l,ll} builtins.
1435         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
1436         (gfc_conv_intrinsic_function): Call above new functions.
1437         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
1438         functions.
1439         * intrinsic.texi: Document POPCNT and POPPAR.
1440
1441 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
1442
1443         PR fortran/45456
1444         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
1445
1446 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1447
1448         * Make-lang.in: Add frontend-passes.o dependencies.
1449
1450 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1451
1452         PR fortran/42769
1453         * resolve.c (resolve_structure_cons): For derived types, make sure the
1454         type has been resolved.
1455         (resolve_typebound_procedures): Make sure the vtab has been generated.
1456
1457 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1458
1459         PR fortran/45439
1460         * match.c (gfc_match_select_type): Give the associate-name the
1461         FL_VARIABLE attribute.
1462
1463 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1464
1465         * simplify.c (gfc_simplify_bessel_n2): Fix indention
1466         and argument type.
1467
1468 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1469
1470         PR fortran/45436
1471         * trans-types.c (gfc_init_kinds): Disable TFmode.
1472
1473 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1474
1475         PR fortran/45432
1476         * match.c (gfc_match_allocate): Avoid double free on error.
1477
1478 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1479
1480         PR fortran/32049
1481         * gfortran.h (gfc_real_info): Add c_float128 field.
1482         * mathbuiltins.def: Indicate which builtins are const.
1483         * trans-types.h (float128_type_node, complex_float128_type_node,
1484         gfc_real16_is_float128): New variables.
1485         * trans-types.c (float128_type_node, complex_float128_type_node,
1486         gfc_real16_is_float128): New variables.
1487         (gfc_init_kinds): Allow TFmode.
1488         (gfc_build_real_type): Mark __float128 types as such.
1489         (gfc_init_types): Initialize float128_type_node and
1490         complex_float128_type_node
1491         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
1492         argument of OTHER_BUILTIN macro.
1493         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
1494         (builtin_decl_for_precision): Special case for __float128.
1495         (builtin_decl_for_float_kind): Likewise.
1496         (define_quad_builtin): New function.
1497         (gfc_build_intrinsic_lib_fndecls): Create all __float128
1498         library decls if necessary. Store them in the real16_decl and
1499         complex16_decl builtin map fields.
1500         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
1501         library function names.
1502
1503 2010-08-27  Tobias Burnus  <burnus@net-b.de>
1504
1505         PR fortran/33197
1506         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
1507         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
1508         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
1509         gfc_resolve_parity): New prototypes.
1510         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
1511         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
1512         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
1513         gfc_resolve_parity): New functions.
1514         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
1515         New functions.
1516         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
1517         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
1518         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
1519         * gcc/fortran/simplify.c (simplify_transformation_to_array):
1520         Add post-processing opterator.
1521         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1522         gfc_simplify_product, gfc_simplify_sum): Update call.
1523         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
1524         gfc_simplify_parity): New functions.
1525
1526 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1527
1528         PR fortran/45420
1529         * match.c (select_type_set_tmp): Add the possibility to reset the
1530         temporary to NULL.
1531         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
1532
1533 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1534
1535         PR fortran/45159
1536         * dependency.c (check_section_vs_section):  Single test for
1537         identical strides which takes into account that only one
1538         of the strides may be NULL.
1539
1540 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1541
1542         PR fortran/43217
1543         * primary.c (match_hollerith_constant): Calculate padding needed to
1544         fill default integer and allocate string for that size.  Set pad bytes
1545         to ' '.
1546         * gfortran.h: Add hollerith pad value to type spec union.
1547         * data.c (create_character_initializer): Fix spelling of function name.
1548         Use hollerith pad value to calculate length.
1549         * arith.c (hollerith2representation); Use hollerith pad value to
1550         calculate length.
1551
1552 2010-08-26  Daniel Kraft  <d@domob.eu>
1553
1554         PR fortran/38936
1555         PR fortran/44047
1556         PR fortran/45384
1557         * gfortran.h (struct gfc_association_list): New flag `dangling'.
1558         (gfc_build_block_ns): Declared here...
1559         * parse.h (gfc_build_block_ns): ...instead of here.
1560         * trans.h (gfc_process_block_locals): Expect additionally the
1561         gfc_association_list of BLOCK (if present).
1562         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
1563         * resolve.c (resolve_variable): Only check for invalid *array*
1564         references on associate-names.
1565         (resolve_assoc_var): New method with code previously in resolve_symbol.
1566         (resolve_select_type): Use association to give the selector and
1567         temporaries their values instead of ordinary assignment.
1568         (resolve_fl_var_and_proc): Allow CLASS associate-names.
1569         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
1570         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
1571         to `gfc_process_block_locals' to match new interface.
1572         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
1573         here automatically.
1574         (gfc_process_block_locals): Defer them rather here when linked to
1575         from the BLOCK's association list.
1576
1577 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1578
1579         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
1580         TREE_NOTHROW on fndecls that can't throw.  Set
1581         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
1582         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
1583         gfor_fndecl_associated.
1584
1585 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
1586
1587         PR fortran/45380
1588         * frontend-passes.c (optimize_equality): Don't optimize array equality
1589
1590 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
1591
1592         PR fortran/45366
1593         * resolve.c (resolve_procedure_interface): New function split off from
1594         'resolve_symbol'.
1595         (resolve_formal_arglist): Call it here ...
1596         (resolve_symbol): ... and here.
1597
1598 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1599
1600         * Make-lang.in (gfortranspec.o): Update dependencies.
1601         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
1602         opts.h.
1603         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
1604         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
1605         (g77_xargc): Make unsigned.
1606         (g77_xargv): Change to g77_x_decoded_options.
1607         (g77_newargc): Make unsigned.
1608         (g77_newargv): Change to g77_new_decoded_options.
1609         (strings_same, options_same): New.
1610         (append_arg): Use cl_decoded_option structures.
1611         (append_option): New.
1612         (add_arg_libgfortran): New.
1613         (lang_specific_driver): Use cl_decoded_option structures.
1614
1615 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
1616
1617         PR fortran/45271
1618         PR fortran/45290
1619         * class.c (add_proc_comp): Add static initializer for PPCs.
1620         (add_procs_to_declared_vtab): Modified comment.
1621         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
1622         initializer if the component is part of a vtype.
1623         (mio_component_list): Add argument 'vtype', pass it on to
1624         'mio_component'.
1625         (mio_symbol): Modified call to 'mio_component_list'.
1626         * trans.h (gfc_conv_initializer): Modified prototype.
1627         (gfc_trans_assign_vtab_procs): Removed.
1628         * trans-common.c (create_common): Modified call to
1629         'gfc_conv_initializer'.
1630         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
1631         gfc_emit_parameter_debug_info): Modified call to
1632         'gfc_conv_initializer'.
1633         (build_function_decl): Remove assertion.
1634         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1635         Removed call to 'gfc_trans_assign_vtab_procs'.
1636         (gfc_conv_initializer): Add argument 'procptr'.
1637         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
1638         (gfc_trans_assign_vtab_procs): Removed.
1639         * trans-stmt.c (gfc_trans_allocate): Removed call to
1640         'gfc_trans_assign_vtab_procs'.
1641
1642 2010-08-21  Tobias Burnus  <burnus@net-b.de>
1643
1644         PR fortran/36158
1645         PR fortran/33197
1646         * intrinsic.c (add_sym): Init value attribute.
1647         (set_attr_value): New function.
1648         (add_functions) Use it and add JN/YN resolvers.
1649         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
1650         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
1651         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
1652         * iresolve.c (gfc_resolve_bessel_n2): New function.
1653         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
1654         formal arg list.
1655         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
1656         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
1657         * simplify.c (): For YN set to -INF if previous values
1658         was -INF.
1659         * trans-expr.c (gfc_conv_procedure_call): Don't crash
1660         if sym->as is NULL.
1661         * iresolve.c (gfc_resolve_extends_type_of): Set the
1662         type of the dummy argument to the one of the actual.
1663
1664 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1665
1666         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
1667
1668 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1669
1670         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
1671         comment, not -lg2c.
1672
1673 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1674
1675         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
1676
1677 2010-08-19  Daniel Kraft  <d@domob.eu>
1678
1679         PR fortran/29785
1680         PR fortran/45016
1681         * trans.h (struct gfc_se): New flag `byref_noassign'.
1682         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
1683         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1684         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
1685         and check for compile-time errors with those.
1686         * trans-decl.c (trans_associate_var): Use new routine
1687         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
1688         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
1689         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1690         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
1691         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
1692         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
1693         rank remapping for assignment.
1694
1695 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1696
1697         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
1698         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
1699         into recurrence.
1700
1701 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1702
1703         PR fortran/36158
1704         PR fortran/33197
1705         * check.c (gfc_check_bessel_n2): New function.
1706         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1707         * intrinsic.c (add_functions): Add transformational version
1708         of the Bessel_jn/yn intrinsics.
1709         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1710         gfc_simplify_bessel_yn2): New prototypes.
1711         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1712         transformational variant.
1713         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1714         Check for negative order.
1715         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1716         gfc_simplify_bessel_yn2): New functions.
1717
1718 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1719
1720         PR fortran/41859
1721         * resolve.c (resolve_transfer): Traverse operands and set expression
1722         to be checked to a non EXPR_OP type.
1723
1724 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
1725
1726         PR fortran/45290
1727         * gfortran.h (gfc_add_save): Modified prototype.
1728         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1729         (match_pointer_init): New function to match F08 pointer initialization.
1730         (variable_decl,match_procedure_decl,match_ppc_decl): Use
1731         'match_pointer_init'.
1732         (match_attr_spec): Module variables are implicitly SAVE.
1733         (gfc_match_save): Modified call to 'gfc_add_save'.
1734         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1735         initialization.
1736         * primary.c (gfc_variable_attr): Handle SAVE attribute.
1737         * resolve.c (resolve_structure_cons): Add new argument and do pointer
1738         initialization checks.
1739         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1740         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1741         (resolve_fl_variable): Handle SAVE_IMPLICIT.
1742         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1743         SAVE_IMPLICIT.
1744         * trans-decl.c (gfc_create_module_variable): Module variables with
1745         TARGET can already exist.
1746         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1747         (gfc_conv_initializer): Implement non-NULL pointer
1748         initialization.
1749
1750 2010-08-18  Tobias Burnus  <burnus@net-b.de>
1751
1752         PR fortran/45295
1753         * intrinsic.texi (selected_char_kind): Document ISO_10646
1754         support.
1755
1756 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1757
1758         PR fortran/45304
1759         * trans-decl.c (build_library_function_decl_1): Chain on
1760         void_list_node instead of creating a new TREE_LIST.
1761         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1762         * trans-types.c (gfc_get_function_type): Likewise.  Set
1763         typelist to void_list_node for the main program.
1764
1765 2010-08-17  Daniel Kraft  <d@domob.eu>
1766
1767         PR fortran/38936
1768         * gfortran.h (struct gfc_association_list): New member `where'.
1769         (gfc_is_associate_pointer) New method.
1770         * match.c (gfc_match_associate): Remember locus for each associate
1771         name matched and do not try to set variable flag.
1772         * parse.c (parse_associate): Use remembered locus for symbols.
1773         * primary.c (match_variable): Instead of variable-flag check for
1774         associate names set it for all such names used.
1775         * symbol.c (gfc_is_associate_pointer): New method.
1776         * resolve.c (resolve_block_construct): Don't generate assignments
1777         to give associate-names their values.
1778         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1779         (resolve_symbol): Set some more attributes for associate variables,
1780         set variable flag here and check it and don't try to build an
1781         explicitely shaped array-spec for array associate variables.
1782         * trans-expr.c (gfc_conv_variable): Dereference in case of association
1783         to scalar variable.
1784         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1785         (gfc_sym_type): Return pointer type for association to scalar vars.
1786         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1787         (trans_associate_var): New method.
1788         (gfc_trans_deferred_vars): Handle association symbols.
1789
1790 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1791
1792         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
1793         RejectDriver.
1794         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
1795         RejectDriver.
1796         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1797         OPT_MDX and OPT_MMDX.
1798
1799 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1800
1801         * lang.opt (MDX, MMDX): Mark RejectDriver.
1802
1803 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
1804
1805         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1806         vtabs for generics any more).
1807
1808 2010-08-15  Daniel Kraft  <d@domob.eu>
1809
1810         PR fortran/38936
1811         * gfortran.h (gfc_find_proc_namespace): New method.
1812         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1813         around with namespace.
1814         * symbol.c (gfc_find_proc_namespace): New method.
1815         * trans-decl.c (gfc_build_qualified_array): Use it for correct
1816         value of nest.
1817         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1818         * parse.c (parse_associate): Removed assignment-generation here...
1819         * resolve.c (resolve_block_construct): ...and added it here.
1820         (resolve_variable): Handle names that are arrays but were not parsed
1821         as such because of association.
1822         (resolve_code): Fix BLOCK resolution.
1823         (resolve_symbol): Generate array-spec for associate-names.
1824
1825 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1826
1827         PR fortran/45211
1828         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1829         (verify_c_interop): Handle unresolved DT with bind(C).
1830
1831 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1832
1833         * trans-expr.c (gfc_conv_expr_present): Regard nullified
1834         pointer arrays as absent.
1835         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1836         dummys as absent argument.
1837         * interface.c (compare_actual_formal,compare_parameter):
1838         Ditto.
1839
1840 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1841
1842         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1843         dummies with intent(in).
1844
1845 2010-08-15  Daniel Kraft  <d@domob.eu>
1846
1847         PR fortran/45197
1848         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1849         routines not IMPURE also as PURE.
1850         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1851         `NO_CLASS' in `CLASS_IMPURE'.
1852         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1853         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1854         (add_functions): Ditto.
1855         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1856         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1857         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1858         are not ALLOCATABLE and have their INTENT specified.
1859
1860 2010-08-13  Daniel Kraft  <d@domob.eu>
1861
1862         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1863         * array.c (gfc_match_array_spec): Match implied-shape specification and
1864         handle AS_IMPLIED_SHAPE correctly otherwise.
1865         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1866         (variable_decl): Some checks for implied-shape declaration.
1867         * resolve.c (resolve_symbol): Assert that array-spec is no longer
1868         AS_IMPLIED_SHAPE in any case.
1869
1870 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
1871
1872         * lang.opt (MD, MMD): Change to MDX and MMDX.
1873         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1874
1875 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
1876
1877         PR fortran/44595
1878         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1879         'gfc_intrinsic_arg'.
1880         (check_arglist,check_specific): Add reference to 'name' field.
1881         (init_arglist): Remove reference to 'name' field.
1882         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1883         * check.c (variable_check): Reverse order of checks. Respect intent of
1884         formal arg.
1885         (int_or_proc_check): New function.
1886         (coarray_check): New function.
1887         (allocatable_check): New function.
1888         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1889         (gfc_check_complex): Use 'int_or_real_check'.
1890         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1891         gfc_check_ucobound): Use 'coarray_check'.
1892         (gfc_check_pack): Use 'real_or_complex_check'.
1893         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1894         'int_or_proc_check'.
1895         (scalar_check,type_check,numeric_check,int_or_real_check,
1896         real_or_complex_check,kind_check,double_check,logical_array_check,
1897         array_check,same_type_check,rank_check,nonoptional_check,
1898         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1899         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1900         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1901         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1902         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1903         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1904         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1905         to 'name' field.
1906
1907 2010-08-10  Daniel Kraft  <d@domob.eu>
1908
1909         * gfortran.texi (Interoperability with C): Fix ordering in menu
1910         and add new subsection about pointers.
1911         (Interoperable Subroutines and Functions): Split off the pointer part.
1912         (working with Pointers): New subsection with extended discussion
1913         of pointers (especially procedure pointers).
1914
1915 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1916
1917         PR fortran/44235
1918         * array.c (gfc_ref_dimen_size):  Add end argument.
1919         If end is non-NULL, calculate it.
1920         (ref_size):  Adjust call to gfc_ref_dimen_size.
1921         (gfc_array_dimen_size):  Likewise.
1922         (gfc_array_res_shape):  Likewise.
1923         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
1924         * resolve.c (resolve_array_ref):  For stride not equal to -1,
1925         fill in the lowest possible end.
1926
1927 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
1928
1929         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1930
1931 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
1932
1933         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1934         alloca.
1935         (check_some_aliasing): Likewise.
1936         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1937         (gfc_conv_intrinsic_int): Likewise.
1938         (gfc_conv_intrinsic_lib_function): Likewise.
1939         (gfc_conv_intrinsic_cmplx): Likewise.
1940         (gfc_conv_intrinsic_ctime): Likewise.
1941         (gfc_conv_intrinsic_fdate): Likewise.
1942         (gfc_conv_intrinsic_ttynam): Likewise.
1943         (gfc_conv_intrinsic_minmax): Likewise.
1944         (gfc_conv_intrinsic_minmax_char): Likewise.
1945         (gfc_conv_intrinsic_ishftc): Likewise.
1946         (gfc_conv_intrinsic_index_scan_verify): Likewise.
1947         (gfc_conv_intrinsic_merge): Likewise.
1948         (gfc_conv_intrinsic_trim): Likewise.
1949         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1950
1951 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1952
1953         PR fortran/45159
1954         * dependency.c (check_section_vs_section):  Handle cases where
1955         the start expression coincides with the lower or upper
1956         bound of the array.
1957
1958 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
1959
1960         PR fortran/42207
1961         PR fortran/44064
1962         PR fortran/44065
1963         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1964         container types. Do not artificially increase refs. Commit symbols one
1965         by one.
1966         * interface.c (compare_parameter): Make sure vtabs are present before
1967         generating module variables.
1968         * resolve.c (resolve_allocate_expr): Ditto.
1969
1970 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1971
1972         PR fortran/45183
1973         PR fortran/44857
1974         * resolve.c (resolve_structure_cons): Fix
1975         freeing of charlen.
1976
1977 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
1978
1979         PR fortran/42051
1980         PR fortran/44064
1981         * symbol.c (changed_syms): Made static again.
1982         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
1983         Changed conditional internal error into assert.
1984         Rename function to ...
1985         (gfc_enforce_clean_symbol_state): ... this.
1986         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
1987         Rename the former to the latter.
1988         * parse.c (decode_statement, decode_omp_directive,
1989         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1990         on GFC_DEBUG.
1991         (changed_syms): Remove declaration.
1992         (next_statement): Use gfc_enforce_clean_symbol_state.
1993
1994 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1995
1996         PR fortran/44857
1997         * resolve.c (resolve_structure_cons): Fix handling of
1998         initialization structure constructors with character
1999         elements of the wrong length.
2000         * array.c (gfc_check_iter_variable): Add NULL check.
2001         (gfc_resolve_character_array_constructor): Also truncate
2002         character length.
2003
2004 2010-08-04  Tobias Burnus  <burnus@net-b.de>
2005
2006         * trans-io.c (gfc_build_io_library_fndecls): Fix return
2007         value of some libgfortran functions.
2008
2009 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2010
2011         PR fortran/45159
2012         * dependency.c (gfc_deb_compare_expr):  Remove any integer
2013         conversion functions to larger types from both arguments.
2014         Remove handling these functions futher down.
2015
2016 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
2017
2018         PR fortran/44584
2019         PR fortran/45161
2020         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
2021         * resolve.c (resolve_tb_generic_targets): Check for errors.
2022
2023 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2024
2025         PR fortran/45159
2026         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
2027         can be reversed.
2028
2029 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2030
2031         PR fortran/36854
2032         * dependency.h:  Add prototype for gfc_are_identical_variables.
2033         * frontend-passes.c:  Include depencency.h.
2034         (optimimize_equality):  Use gfc_are_identical_variables.
2035         * dependency.c (identical_array_ref): New function.
2036         (gfc_are_identical_variables):  New function.
2037         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
2038         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
2039         prefix from statc function.
2040         (check_section_vs_section): Change arguments to gfc_array_ref,
2041         adjust function body accordingly.
2042
2043 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
2044             Janus Weil  <janus@gcc.gnu.org>
2045
2046         PR fortran/42051
2047         PR fortran/44064
2048         PR fortran/45151
2049         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
2050         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
2051         gfc_copy_formal_args, gfc_copy_formal_args_intr,
2052         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
2053         * parse.c (parse_derived_contains, parse_spec, parse_progunit):
2054         Call reject_statement in case of error.
2055         (match_deferred_characteritics): Call gfc_undo_symbols in case match
2056         fails.
2057
2058 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
2059
2060         PR fortran/44912
2061         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
2062         (gfc_find_derived_vtab): Make vtabs and vtypes public.
2063         * module.c (read_module): When reading module files, always import
2064         vtab and vtype symbols.
2065
2066 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
2067
2068         PR fortran/42051
2069         PR fortran/44064
2070         * symbol.c (changed_syms): Made non-static.
2071         * parse.c (changed_syms): Declare new external.
2072         (next_statement): Assert changed_syms is NULL at the beginning.
2073
2074 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
2075             Steven G. Kargl  <kargl@gcc.gnu.org>
2076
2077         PR fortran/44929
2078         * match.c (match_type_spec): Try to parse derived types before
2079         intrinsic types.
2080
2081 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
2082
2083         * gfortran.h (gfc_release_symbol): New prototype.
2084         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
2085         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
2086         Use gfc_release_symbol.
2087         * parse.c (gfc_fixup_sibling_symbols): Ditto.
2088         * resolve.c (resolve_symbol): Ditto.
2089
2090 2010-07-29  Tobias Burnus  <burnus@net-b.de>
2091
2092         PR fortran/45087
2093         PR fortran/45125
2094         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
2095         external procedure declarations in modules.
2096         (gfc_get_symbol_decl): Modify assert.
2097
2098 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2099
2100         PR fortran/44962
2101         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
2102
2103 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2104
2105         PR fortran/45004
2106         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
2107         (gfc_trans_class_assign): Modified prototype.
2108         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
2109         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
2110         (gfc_trans_class_assign): ... here. Modified actual arguments.
2111         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
2112         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
2113         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
2114
2115 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
2116
2117         PR fortran/42051
2118         PR fortran/44064
2119         * class.c (gfc_find_derived_vtab): Accept or discard newly created
2120         symbols before returning.
2121
2122 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
2123
2124         * lang.opt (cpp): Remove Joined and Separate markers.
2125         (cpp=): New internal option.
2126         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
2127         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
2128         OPT_cpp.
2129
2130 2010-07-29  Daniel Kraft  <d@domob.eu>
2131
2132         PR fortran/45117
2133         * array.c (resolve_array_bound): Fix error message to properly handle
2134         non-variable expressions.
2135
2136 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
2137
2138         * decl.c (free_value): Also free repeat field.
2139         * data.c (gfc_assign_data_value): Always free offset before returning.
2140
2141 2010-07-28  Daniel Kraft  <d@domob.eu>
2142
2143         * gfortran.h (gfc_build_intrinsic_call): New method.
2144         * expr.c (gfc_build_intrinsic_call): New method.
2145         * simplify.c (range_check): Ignore non-constant value.
2146         (simplify_bound_dim): Handle non-variable expressions and
2147         fix memory leak with non-free'ed expression.
2148         (simplify_bound): Handle non-variable expressions.
2149         (gfc_simplify_shape): Ditto.
2150         (gfc_simplify_size): Ditto, but only in certain cases possible.
2151
2152 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2153
2154         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
2155         Remove.
2156
2157 2010-07-28  Tobias Burnus  <burnus@net-b.de>
2158
2159         PR fortran/45077
2160         * trans-types.c (gfc_get_derived_type): Fix DT declaration
2161         from modules for whole-file mode.
2162
2163 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2164
2165         * gfortran.h (gfc_handle_option): Update prototype and return
2166         value type.
2167         * options.c (gfc_handle_option): Update prototype and return value
2168         type.
2169
2170 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2171
2172         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
2173         decoded options in allocating deferred_opt.
2174         * cpp.h (gfc_cpp_init_options): Update prototype.
2175         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
2176         * gfortran.h (gfc_option_lang_mask): New.
2177         (gfc_init_options): Update prototype.
2178         * options.c (gfc_option_lang_mask): New.
2179         (gfc_init_options): Update prototype.  Pass new arguments to
2180         gfc_cpp_init_options.
2181
2182 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2183
2184         PR fortran/40873
2185         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
2186         for functions which are later in the same file.
2187         (gfc_create_function_decl, build_function_decl,
2188         build_entry_thunks): Add global argument.
2189         * trans.c (gfc_generate_module_code): Update
2190         gfc_create_function_decl call.
2191         * trans.h (gfc_create_function_decl): Update prototype.
2192         * resolve.c (resolve_global_procedure): Also resolve for
2193         IFSRC_IFBODY.
2194
2195 2010-07-26  Richard Henderson  <rth@redhat.com>
2196
2197         PR target/44132
2198         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
2199         (gfc_write_global_declarations): New.
2200
2201 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2202
2203         PR fortran/45066
2204         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
2205         for call to transfer_namelist_element.
2206         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
2207         for -fwhole-file.
2208
2209 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2210
2211         PR fortran/40628
2212         * Make-lang.in:  Add fortran/frontend-passes.o.
2213         * gfortran.h:  Add prototype for gfc_run_passes.
2214         * resolve.c (gfc_resolve):  Call gfc_run_passes.
2215         * frontend-passes.c:  New file.
2216
2217 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2218
2219         PR fortran/42852
2220         * scanner.c (gfc_next_char_literal): Enable truncation warning for
2221         free-form '&'.
2222
2223 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
2224
2225         PR fortran/44660
2226         * gfortran.h (gfc_namespace): New field old_equiv.
2227         (gfc_free_equiv_until): New prototype.
2228         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
2229         a parameterized stop condition.
2230         (gfc_free_equiv): Use gfc_free_equiv_until.
2231         * parse.c (next_statement): Save equivalence list.
2232         (reject_statement): Restore equivalence list.
2233
2234 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2235
2236         PR fortran/42852
2237         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
2238         in the function so that it does not get missed by early exits.
2239         (load_line): Add checks for quoted strings and free form comments to
2240         disable warnings on comments. Add check for ampersand as first
2241         character after truncation and don't warn for this case, but warn if
2242         there are subsequent non-whitespace characters.
2243
2244 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2245
2246         PR fortran/40011
2247         * parse.c (gfc_parse_file): Do not override
2248         gfc_global_ns_list items.
2249
2250 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2251
2252         * options.c (gfc_init_options): Enable -fwhole-file by default.
2253         * interface.c (compare_parameter): Assume a Hollerith constant is
2254         compatible with all other argument types.
2255
2256 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2257
2258         PR fortran/44945
2259         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
2260         -fwhole-file also for derived types.
2261         * trans-types.c (copy_dt_decls_ifequal): Remove static and
2262         rename to gfc_copy_dt_decls_ifequal.
2263         (gfc_get_derived_type): Update call.
2264         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
2265
2266 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2267
2268         PR fortran/45030
2269         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
2270
2271 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
2272
2273         * trans-types.c (gfc_get_array_descriptor_base,
2274         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
2275         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
2276         instead of clearing DECL_NAME.
2277         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
2278
2279 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
2280
2281         PR fortran/24524
2282         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
2283         field.
2284         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
2285         reverse the scalarization loop.
2286         gfc_conv_resolve_dependencies: Pass the reverse field of the
2287         loopinfo to gfc_dep_resolver.
2288         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
2289         assignment by resetting loop.reverse.
2290         gfortran.h : Add the gfc_reverse enum.
2291         trans.h : Add the reverse field to gfc_loopinfo.
2292         dependency.c (gfc_check_dependency): Pass null to the new arg
2293         of gfc_dep_resolver.
2294         (gfc_check_section_vs_section): Check for reverse dependencies.
2295         (gfc_dep_resolver): Add reverse argument and deal with the loop
2296         reversal logic.
2297         dependency.h : Modify prototype for gfc_dep_resolver to include
2298         gfc_reverse *.
2299
2300 2010-07-23  Daniel Kraft  <d@domob.eu>
2301
2302         PR fortran/44709
2303         * gfortran.h (gfc_find_symtree_in_proc): New method.
2304         * symbol.c (gfc_find_symtree_in_proc): New method.
2305         * match.c (match_exit_cycle): Look for loop name also in parent
2306         namespaces within current procedure.
2307
2308 2010-07-22  Tobias Burnus  <burnus@net-b.de>
2309
2310         PR fortran/45019
2311         * dependency.c (gfc_check_dependency): Add argument alising check.
2312         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
2313
2314 2010-07-22  Daniel Kraft  <d@domob.eu>
2315
2316         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
2317         now in the correct place.
2318
2319 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
2320
2321         PR fortran/44929
2322         * Revert my commit r162325.
2323
2324 2010-07-21  Daniel Kraft  <d@domob.eu>
2325
2326         * trans.h (gfc_get_return_label): Removed.
2327         (gfc_generate_return): New method.
2328         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2329         returning a tree directly.
2330         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
2331         (gfc_trans_block_construct): Update for new interface to
2332         `gfc_trans_deferred_vars'.
2333         * trans-decl.c (current_function_return_label): Removed.
2334         (current_procedure_symbol): New variable.
2335         (gfc_get_return_label): Removed.
2336         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2337         returning a tree directly.
2338         (get_proc_result), (gfc_generate_return): New methods.
2339         (gfc_generate_function_code): Clean up and do init/cleanup here
2340         also with gfc_wrapped_block.  Remove return-label but rather
2341         return directly.
2342
2343 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2344
2345         PR fortran/44929
2346         * fortran/match.c (match_type_spec): Check for derived type before
2347         intrinsic types.
2348
2349 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2350
2351         PR fortran/42385
2352         * interface.c (matching_typebound_op): Add argument for the
2353         return of the generic name for the procedure.
2354         (build_compcall_for_operator): Add an argument for the generic
2355         name of an operator procedure and supply it to the expression.
2356         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
2357         calls to the above procedures.
2358         * resolve.c (resolve_typebound_function): Catch procedure
2359         component calls for CLASS objects, check that the vtable is
2360         complete and insert the $vptr and procedure components, to make
2361         the call.
2362         (resolve_typebound_function): The same.
2363         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
2364         an allocatable scalar if it is a result.
2365
2366 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2367
2368         PR fortran/44353
2369         * match.c (gfc_match_iterator): Reverted.
2370
2371 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
2372
2373         PR fortran/44353
2374         * match.c (gfc_match_iterator): Remove error that iterator
2375         cannot be INTENT(IN).
2376
2377 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
2378
2379         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
2380         Access subscript through the "dim" field index.
2381         (gfc_trans_create_temp_array): Access ss info through the "dim" field
2382         index.
2383         (gfc_conv_array_index_offset): Ditto.
2384         (gfc_conv_loop_setup): Ditto.
2385         (gfc_conv_expr_descriptor): Ditto.
2386         (gfc_conv_ss_startstride): Ditto.  Update call to
2387         gfc_conv_section_startstride.
2388         (gfc_conv_section_startstride): Set values along the array dimension.
2389         Get array dimension directly from the argument.
2390
2391 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2392
2393         * trans.h (gfc_string_to_single_character): New prototype.
2394         * trans-expr.c (string_to_single_character): Renamed to ...
2395         (gfc_string_to_single_character): ... this.  No longer static.
2396         (gfc_conv_scalar_char_value, gfc_build_compare_string,
2397         gfc_trans_string_copy): Adjust callers.
2398         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
2399         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
2400         (select_struct): Move to toplevel, add GTY(()).
2401         (gfc_trans_character_select): Optimize SELECT CASE
2402         with character length 1.
2403
2404 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2405
2406         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2407         * trans-common.c: Likewise.
2408         * trans-decl.c: Likewise.
2409         * trans-types.c: Likewise.
2410         * trans.c: Likewise.
2411
2412 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
2413
2414         PR fortran/44936
2415         * resolve.c (resolve_typebound_generic_call): Resolve generic
2416         non-polymorphic type-bound procedure calls to the correct specific
2417         procedure.
2418         (resolve_typebound_subroutine): Remove superfluous code.
2419
2420 2010-07-15  Daniel Kraft  <d@domob.eu>
2421
2422         PR fortran/44709
2423         * trans.h (struct gfc_wrapped_block): New struct.
2424         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2425         (gfc_finish_wrapped_block): New method.
2426         (gfc_init_default_dt): Add new init code to block rather than
2427         returning it.
2428         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
2429         (gfc_trans_dummy_array_bias): Ditto.
2430         (gfc_trans_g77_array): Ditto.
2431         (gfc_trans_deferred_array): Ditto.
2432         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
2433         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
2434         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2435         (gfc_finish_wrapped_block): New method.
2436         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
2437         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
2438         (gfc_trans_deferred_array): Ditto.
2439         * trans-decl.c (gfc_trans_dummy_character): Ditto.
2440         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
2441         (init_intent_out_dt): Ditto.
2442         (gfc_init_default_dt): Add new init code to block rather than
2443         returning it.
2444         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
2445         and cleanup code and put it all together.
2446
2447 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2448
2449         * trans.h (gfc_build_compare_string): Add CODE argument.
2450         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
2451         gfc_build_compare_string.
2452         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
2453         gfc_build_compare_string.
2454         (string_to_single_character): Rename len variable to length.
2455         (gfc_optimize_len_trim): New function.
2456         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
2457         or NE_EXPR and one of the strings is string literal with LEN_TRIM
2458         bigger than the length of the other string, they compare unequal.
2459
2460         PR fortran/40206
2461         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
2462         in CASE_LABEL_EXPR and use NULL for low for the default case.
2463
2464 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
2465
2466         * trans-array.c (gfc_conv_section_upper_bound): Remove
2467         (gfc_conv_section_startstride): Don't set the upper bound in the
2468         vector subscript case.
2469         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
2470
2471 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
2472
2473         PR fortran/44925
2474         * gfortran.h (gfc_is_data_pointer): Remove prototype.
2475         * dependency.c (gfc_is_data_pointer): Make it static.
2476         * intrinsic.texi: Update documentation on C_LOC.
2477         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
2478         and add a check for polymorphic variables.
2479
2480 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
2481
2482         * trans-expr.c (string_to_single_character): Also optimize
2483         string literals containing a single char followed only by spaces.
2484         (gfc_trans_string_copy): Remove redundant string_to_single_character
2485         calls.
2486
2487         * trans-decl.c (gfc_build_intrinsic_function_decls,
2488         gfc_build_builtin_function_decls): Mark functions as
2489         DECL_PURE_P or TREE_READONLY.
2490
2491 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2492
2493         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
2494         instead of build_function_call_expr.
2495         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
2496
2497 2010-07-13  Tobias Burnus  <burnus@net-b.de>
2498             Daniel Franke  <franke.daniel@gmail.com>
2499
2500         PR fortran/43665
2501         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
2502         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
2503         static.
2504         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
2505
2506 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
2507             Tobias Burnus  <burnus@net-b.de>
2508
2509         PR fortran/43665
2510         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
2511         noclobber/noescape annotations to function calls.
2512         (gfc_build_builtin_function_decls): Likewise.
2513
2514 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
2515
2516         PR fortran/44434
2517         PR fortran/44565
2518         PR fortran/43945
2519         PR fortran/44869
2520         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
2521         * class.c (gfc_build_class_symbol): Modified call to
2522         'gfc_find_derived_vtab'.
2523         (add_proc_component): Removed, moved code into 'add_proc_comp'.
2524         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
2525         generics.
2526         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
2527         Removed treatment of generics.
2528         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
2529         Call 'add_proc_comp' instead of duplicating code.
2530         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
2531         and 'declared'.
2532         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
2533         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
2534         Removed treatment of generics.
2535         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
2536         'gfc_find_derived_vtab'.
2537         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2538         Removed treatment of generics.
2539         (resolve_select_type,resolve_fl_derived): Modified call to
2540         'gfc_find_derived_vtab'.
2541         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2542         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
2543         Ditto.
2544         * trans-stmt.c (gfc_trans_allocate): Ditto.
2545
2546 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2547
2548         PR fortran/37077
2549         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
2550         internal unit.
2551
2552 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
2553
2554         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2555         * resolve.c (build_default_init_expr): Ditto.
2556
2557 2010-07-11  Tobias Burnus  <burnus@net-b.de>
2558
2559         PR fortran/44702
2560         * module.c (sort_iso_c_rename_list): Remove.
2561         (import_iso_c_binding_module,use_iso_fortran_env_module):
2562         Allow multiple imports of the same symbol.
2563
2564 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
2565
2566         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
2567
2568 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
2569
2570         PR fortran/44869
2571         * decl.c (build_sym,attr_decl1): Only build the class container if the
2572         symbol has sufficient attributes.
2573         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
2574         pointer attribute for classes.
2575         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
2576         * module.c (MOD_VERSION): Bump.
2577         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
2578         (mio_symbol_attribute): Handle class_pointer attribute.
2579         * parse.c (parse_derived): Use class_pointer instead of pointer
2580         attribute for classes.
2581         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
2582         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
2583         resolve_allocate_expr,resolve_fl_derived): Ditto.
2584         (resolve_fl_var_and_proc): Check for class_ok attribute.
2585
2586 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
2587
2588         * trans-io.c (gfc_build_st_parameter): Update calls to
2589         gfc_add_field_to_struct.
2590         * trans-stmt.c (ADD_FIELD): Ditto.
2591         * trans-types.c
2592         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
2593         C_ADDRESS field.
2594         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
2595         fieldlist, remove fieldlist from argument list.
2596         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
2597         and remove fieldlist from argument list.
2598         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
2599         gfc_get_mixed_entry_union): Move setting
2600         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
2601         * trans-types.h (gfc_add_field_to_struct): Update prototype.
2602
2603 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
2604
2605         PR fortran/44773
2606         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
2607         if the lhs has never been host associated, as well as not being
2608         use associated, a pointer or a target.
2609         * resolve.c (resolve_variable): Mark variables that are host
2610         associated.
2611         * gfortran.h: Add the host_assoc bit to the symbol_attribute
2612         structure.
2613
2614 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
2615
2616         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
2617         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
2618         SIZEOF and C_SIZEOF.
2619
2620 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
2621
2622         PR fortran/44649
2623         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
2624         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
2625         gfc_resolve_storage_size): New prototypes.
2626         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
2627         * intrinsic.c (add_functions): Add STORAGE_SIZE.
2628         * iresolve.c (gfc_resolve_storage_size): New function.
2629         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
2630         arguments.
2631         (gfc_conv_intrinsic_storage_size): New function.
2632         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
2633
2634 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
2635
2636         PR fortran/44847
2637         * match.c (match_exit_cycle): Error on EXIT also from collapsed
2638         !$omp do loops.  Error on CYCLE to non-innermost collapsed
2639         !$omp do loops.
2640
2641 2010-07-08  Tobias Burnus  <burnus@net-b.de>
2642
2643         PR fortran/18918
2644         * array.c (gfc_match_array_ref): Better error message for
2645         coarrays with too few ranks.
2646         (match_subscript): Move one diagnostic to caller.
2647         * gfortran.h (gfc_get_corank): Add prottype.
2648         * expr.c (gfc_get_corank): New function.
2649         * iresolve.c (resolve_bound): Fix rank for cobounds.
2650         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
2651         gfc_resolve_ucobound, gfc_resolve_this_image): Update
2652         resolve_bound call.
2653
2654 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2655
2656         PR fortran/44742
2657         * array.c (gfc_expand_constructor): Add optional diagnostic.
2658         * gfortran.h (gfc_expand_constructor): Update prototype.
2659         * expr.c (gfc_simplify_expr, check_init_expr,
2660         gfc_reduce_init_expr): Update gfc_expand_constructor call.
2661         * resolve.c (gfc_resolve_expr): Ditto.
2662
2663 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2664
2665         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
2666         * trans-intrinsic.c: Ditto.
2667         * trans-types.c: Ditto.
2668         * convert.c: Include diagnostic-core.h instead of toplev.h.
2669         * options.c: Ditto.
2670         * trans-array.c: Ditto.
2671         * trans-const.c: Ditto.
2672         * trans-expr.c: Ditto.
2673         * trans-io.c: Ditto.
2674         * trans-openmp.c: Ditto.
2675         * trans.c: Ditto.
2676
2677 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2678
2679         PR fortran/PR44693
2680         * check.c (dim_rank_check):  Also check intrinsic functions.
2681         Adjust permissible rank for functions which reduce the rank of
2682         their argument.  Spread is an exception, where DIM can
2683         be one larger than the rank of array.
2684
2685 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
2686
2687         PR fortran/44797
2688         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
2689
2690 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
2691
2692         PR fortran/44596
2693         * trans-types.c (gfc_get_derived_type): Derived type fields
2694         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
2695         but build_pointer_type_for_mode must be used for this.
2696
2697 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2698
2699         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
2700         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
2701         type of gfc_conv_procedure_call.
2702         (conv_generic_with_optional_char_arg): Likewise.
2703         * trans-stmt.c (gfc_trans_call): Likewise.
2704         * trans-expr.c (gfc_conv_function_expr): Likewise.
2705         (gfc_conv_procedure_call): Use build_call_vec instead of
2706         build_call_list.
2707
2708 2010-07-04  Daniel Kraft  <d@domob.eu>
2709
2710         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2711
2712 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
2713
2714         PR fortran/44596
2715         PR fortran/44745
2716         * trans-types.c (gfc_get_derived_type): Derived type fields
2717         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2718
2719 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
2720
2721         PR fortran/44662
2722         * decl.c (match_procedure_in_type): Clear structure before using.
2723         (gfc_match_generic): Ditto.
2724
2725 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
2726
2727         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2728         * trans-types.c (gfc_add_field_to_struct_1): New function, most
2729         of which comes from...
2730         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
2731         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2732         building fields.
2733         (gfc_get_array_descriptor_base): Likewise.
2734         (gfc_get_mixed_entry_union): Likewise.
2735         (gfc_get_derived_type): Add extra chain parameter for
2736         gfc_add_field_to_struct.
2737         * trans-stmt.c (gfc_trans_character_select): Likewise.
2738         * trans-io.c (gfc_build_st_parameter): Likewise.
2739
2740 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2741
2742         PR fortran/44718
2743         * resolve.c (is_external_proc): Prevent procedure pointers from being
2744         regarded as external procedures.
2745
2746 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2747
2748         PR fortran/44696
2749         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2750         passed as second argument of ASSOCIATED.
2751
2752 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
2753
2754         PR fortran/44582
2755         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2756         to determine if a function assignment can be made without a
2757         temporary.
2758         (gfc_trans_arrayfunc_assign): Move all the conditions that
2759         suppress the direct function call to the above new functon and
2760         call it.
2761
2762 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
2763
2764         PR fortran/40158
2765         * interface.c (argument_rank_mismatch): New function.
2766         (compare_parameter): Call new function instead of generating
2767         the error directly.
2768
2769 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2770
2771         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
2772         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2773         initializers.
2774
2775 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2776
2777         * Make-lang.in: Update dependencies.
2778
2779 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
2780
2781         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2782         and exit_label fields.
2783         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2784         individually.
2785         * trans-stmt.c (gfc_trans_simple_do): Likewise.
2786         (gfc_trans_do): Likewise.
2787         (gfc_trans_do_while): Likewise.
2788         (gfc_trans_cycle): Use cycle_label directly.
2789         (gfc_trans_exit): Use exit_label directly.
2790
2791 2010-06-27  Daniel Kraft  <d@domob.eu>
2792
2793         * dump-parse-tree.c (show_symbol): Dump target-expression for
2794         associate names.
2795         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2796         (show_namespace): Use show_level for correct indentation of
2797         "inner namespaces" (contained procedures or BLOCK).
2798
2799 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2800
2801         PR fortran/44678
2802         * dump-parse-tree.c (show_code_node):  Show namespace for
2803         EXEC_BLOCK.
2804
2805 2010-06-26  Tobias Burnus  <burnus@net-b.de>
2806
2807         * decl.c (gfc_match_decl_type_spec): Support
2808         TYPE(intrinsic-type-spec).
2809
2810 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2811
2812         * intrinsic.h (gfc_check_selected_real_kind,
2813         gfc_simplify_selected_real_kind): Update prototypes.
2814         * intrinsic.c (add_functions): Add radix support to
2815         selected_real_kind.
2816         * check.c (gfc_check_selected_real_kind): Ditto.
2817         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2818         * trans-decl.c (gfc_build_intrinsic_function_decls):
2819         Change call from selected_real_kind to selected_real_kind2008.
2820         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2821         (PRECISION, RANGE, RADIX): Add cross @refs.
2822
2823 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2824
2825         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2826         * gfortran.texi (_gfortran_set_options): Update for
2827         GFC_STD_F2008_OBS addition.
2828         * libgfortran.h: Add GFC_STD_F2008_OBS.
2829         * options.c (set_default_std_flags, gfc_handle_option): Handle
2830         GFC_STD_F2008_OBS.
2831         io.c (check_format): Fix allow_std check.
2832
2833 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2834
2835         * decl.c (gfc_match_entry): Allow END besides
2836         END SUBROUTINE/END FUNCTION for contained procedures.
2837
2838 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2839
2840         * parse.c (next_free, next_fixed): Allow ";" as first character.
2841
2842 2010-06-24  Tobias Burnus  <burnus@net-b.de>
2843
2844         PR fortran/44614
2845         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2846
2847 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
2848
2849         PR fortran/44616
2850         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2851         containers.
2852
2853 2010-06-21  Tobias Burnus  <burnus@net-b.de>
2854
2855         PR fortran/40632
2856         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2857         checks.
2858         * symbol.c (gfc_add_contiguous): New function.
2859         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2860         * decl.c (match_attr_spec): Ditto.
2861         (gfc_match_contiguous): New function.
2862         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2863         contiguous.
2864         * gfortran.h (symbol_attribute): Add contiguous.
2865         (gfc_is_simply_contiguous): Add prototype.
2866         (gfc_add_contiguous): Add prototype.
2867         * match.h (gfc_match_contiguous): Add prototype.
2868         * parse.c (decode_specification_statement,
2869         decode_statement): Handle contiguous attribute.
2870         * expr.c (gfc_is_simply_contiguous): New function.
2871         * dump-parse-tree.c (show_attr): Handle contiguous.
2872         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2873         Ditto.
2874         * trans-expr.c (gfc_add_interface_mapping): Copy
2875         attr.contiguous.
2876         * trans-array.c (gfc_conv_descriptor_stride_get,
2877         gfc_conv_array_parameter): Handle contiguous arrays.
2878         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2879         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2880         Ditto.
2881         * trans.h (gfc_array_kind): Ditto.
2882         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2883
2884 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2885
2886         * options.c (gfc_handle_option): Don't handle N_OPTS.
2887
2888 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
2889
2890         PR fortran/44584
2891         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2892         to avoid ICE.
2893
2894 2010-06-18  Tobias Burnus  <burnus@net-b.de>
2895
2896         PR fortran/44556
2897         * resolve.c (resolve_allocate_deallocate): Properly check
2898         part-refs in stat=/errmsg= for invalid use.
2899
2900 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
2901
2902         PR fortran/44558
2903         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2904         Return directly in case of an error.
2905
2906 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
2907
2908         PR fortran/44549
2909         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2910         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2911         structure to each procedure in a procedure list.
2912         * module.c (mio_typebound_proc): Add NULL argument to
2913         'gfc_get_typebound_proc'.
2914         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2915         to initialize the new structure.
2916
2917 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
2918
2919         PR fortran/43388
2920         * gfortran.h (gfc_expr): Add new member 'mold'.
2921         * match.c (gfc_match_allocate): Implement the MOLD tag.
2922         * resolve.c (resolve_allocate_expr): Ditto.
2923         * trans-stmt.c (gfc_trans_allocate): Ditto.
2924
2925 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2926
2927         PR fortran/44536
2928         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2929         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2930         GFC_DECL_SAVED_DESCRIPTOR set.
2931         (gfc_omp_report_decl): New function.
2932         * trans.h (gfc_omp_report_decl): New prototype.
2933         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2934
2935 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
2936
2937         PR fortran/31588
2938         PR fortran/43954
2939         * gfortranspec.c (lang_specific_driver): Removed deprecation
2940         warning for -M.
2941         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2942         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2943         * cpp.h (gfc_cpp_makedep): New.
2944         (gfc_cpp_add_dep): New.
2945         (gfc_cpp_add_target): New.
2946         * cpp.c (gfc_cpp_option): Add deps* members.
2947         (gfc_cpp_makedep): New.
2948         (gfc_cpp_add_dep): New.
2949         (gfc_cpp_add_target): New.
2950         (gfc_cpp_init_options): Initialize new options.
2951         (gfc_cpp_handle_option): Handle new options.
2952         (gfc_cpp_post_options): Map new options to libcpp-options.
2953         (gfc_cpp_init): Handle deferred -MQ and -MT options.
2954         (gfc_cpp_done): If requested, write dependencies to file.
2955         * module.c (gfc_dump_module): Add a module filename as target.
2956         * scanner.c (open_included_file): New parameter system; add the
2957         included file as dependency.
2958         (gfc_open_included_file): Add the included file as dependency.
2959         (gfc_open_intrinsic_module): Likewise.
2960         * invoke.texi: Removed deprecation warning for -M.
2961         * gfortran.texi: Removed Makefile-dependencies project.
2962
2963 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
2964
2965         * resolve.c (resolve_global_procedure): Improved checking if an
2966         explicit interface is required.
2967
2968 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2969
2970         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2971         return type.
2972         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2973         (gfc_conv_intrinsic_ttynam): Likewise.
2974         (gfc_conv_intrinsic_trim): Likewise.
2975
2976 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
2977
2978         PR fortran/40117
2979         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2980
2981 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2982
2983         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2984
2985 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2986
2987         * mathbuiltins.def: Add builtins that do not directly correspond
2988         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2989         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2990         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2991         code_{r,c}{4,8,10,16} fields. Add
2992         {,complex}{float,double,long_double}_built_in fields.
2993         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2994         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2995         definition of OTHER_BUILTIN.
2996         (real_compnt_info): Remove unused struct.
2997         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2998         functions.
2999         (build_round_expr): Call builtin_decl_for_precision instead of
3000         series of if-else.
3001         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
3002         instead of a switch.
3003         (gfc_build_intrinsic_lib_fndecls): Match
3004         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
3005         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
3006         kinds.
3007         (gfc_conv_intrinsic_lib_function): Go through all the extended
3008         gfc_intrinsic_map.
3009         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
3010         instead of a switch.
3011         (gfc_conv_intrinsic_abs): Likewise.
3012         (gfc_conv_intrinsic_mod): Likewise.
3013         (gfc_conv_intrinsic_sign): Likewise.
3014         (gfc_conv_intrinsic_fraction): Likewise.
3015         (gfc_conv_intrinsic_nearest): Likewise.
3016         (gfc_conv_intrinsic_spacing): Likewise.
3017         (gfc_conv_intrinsic_rrspacing): Likewise.
3018         (gfc_conv_intrinsic_scale): Likewise.
3019         (gfc_conv_intrinsic_set_exponent): Likewise.
3020
3021 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
3022
3023         PR fortran/42051
3024         PR fortran/43896
3025         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
3026         functions with CLASS formal arguments.
3027
3028 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
3029
3030         PR fortran/44207
3031         * resolve.c (conformable_arrays): Handle allocatable components.
3032
3033 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3034
3035         PR fortran/38273
3036         * gfortran.texi: Document that Cray pointers cannot be function
3037         results.
3038
3039 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3040
3041         PR fortran/36234
3042         * gfortran.texi: Document lack of support for syntax
3043         "complex FUNCTION name*16()", and existence of alternative
3044         legacy syntax "complex*16 FUNCTION name()".
3045
3046 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3047
3048         PR fortran/43032
3049         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
3050         POSIX's fsync(), and how to call the latter from Fortran code.
3051
3052 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
3053
3054         PR fortran/44457
3055         * interface.c (compare_actual_formal): Reject actual arguments with
3056         array subscript passed to ASYNCHRONOUS dummys.
3057
3058 2010-06-10  Daniel Kraft  <d@domob.eu>
3059
3060         PR fortran/38936
3061         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
3062         (struct gfc_symbol): New field `assoc'.
3063         (struct gfc_association_list): New struct.
3064         (struct gfc_code): New struct `block' in union, move `ns' there
3065         and add association list.
3066         (gfc_free_association_list): New method.
3067         (gfc_has_vector_subscript): Made public;
3068         * match.h (gfc_match_associate): New method.
3069         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
3070         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
3071         * interface.c (gfc_has_vector_subscript): Made public.
3072         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
3073         * match.c (gfc_match_associate): New method.
3074         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
3075         * primary.c (match_variable): Don't allow names associated to expr here.
3076         * parse.c (decode_statement): Try matching ASSOCIATE statement.
3077         (case_exec_markers, case_end): Add ASSOCIATE statement.
3078         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
3079         (parse_associate): New method.
3080         (parse_executable): Handle ST_ASSOCIATE.
3081         (parse_block_construct): Change reference to gfc_code's `ns' field.
3082         * resolve.c (resolve_select_type): Ditto.
3083         (resolve_code): Ditto.
3084         (resolve_block_construct): Ditto and add comment.
3085         (resolve_select_type): Set association list in generated BLOCK to NULL.
3086         (resolve_symbol): Resolve associate names.
3087         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
3088         and free association list.
3089         (gfc_free_association_list): New method.
3090         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
3091         * trans-stmt.c (gfc_trans_block_construct): Change reference to
3092         gfc_code's `ns' field.
3093
3094 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
3095
3096         * error.c (error_print): Pre-initialize loc by NULL.
3097         * openmp.c (resolve_omp_clauses): Add explicit
3098         braces to avoid ambigous else.
3099         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
3100
3101 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3102
3103         * gfc-internals.texi: Move to GFDL 1.3.
3104         * gfortran.texi: Ditto.
3105         * intrinsic.texi: Ditto.
3106         * invoke.texi: Ditto.
3107
3108 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3109
3110         PR fortran/44347
3111         * check.c (gfc_check_selected_real_kind): Verify that the
3112         actual arguments are scalar.
3113
3114 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3115
3116         PR fortran/44359
3117         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
3118
3119 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3120
3121         PR fortran/44430
3122         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
3123
3124 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3125
3126         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
3127
3128 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3129
3130         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
3131         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
3132         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
3133         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
3134         gfc_check_bitfcn.
3135         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
3136         less_than_bitsize2): New functions.
3137         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
3138         nonnegative_check and less_than_bitsize1.
3139         (gfc_check_ibclr, gfc_check_ibset): Removed.
3140         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
3141         less_than_bitsize1.
3142
3143 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3144
3145         PR fortran/44211
3146         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
3147         Resolve references.
3148
3149 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
3150
3151         * resolve.c (resolve_deallocate_expr): Avoid warning
3152         about possible use of iunitialized sym.
3153         (resolve_allocate_expr): Pre-initialize sym by NULL.
3154
3155 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3156
3157         PR fortran/43040
3158         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
3159
3160 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3161
3162         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
3163         allocation.
3164         (gfc_get_array_type_bounds): Likewise.
3165
3166         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
3167         (gfc_find_module): Likewise.
3168
3169         * f95-lang.c (pushlevel): Likewise.
3170
3171         * trans.h (struct lang_type): Add variable_size GTY option.
3172         (struct lang_decl): Likewise.
3173
3174 2010-06-08  Tobias Burnus  <burnus@net-b.de>
3175
3176         PR fortran/44446
3177         * symbol.c (check_conflict): Move protected--external/procedure check ...
3178         * resolve.c (resolve_select_type): ... to the resolution stage.
3179
3180 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3181
3182         * options.c (gfc_handle_option): Fix -fno-recursive.
3183
3184 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3185
3186         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
3187         * gfortran.texi (copyrights-gfortran): Ditto.
3188
3189 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
3190
3191         * lang.opt (fshort-enums): Define using Var and VarExists.
3192         * options.c (gfc_handle_option): Don't set flag_short_enums here.
3193
3194 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3195             Janus Weil  <janus@gcc.gnu.org>
3196
3197         PR fortran/43945
3198         * resolve.c (get_declared_from_expr): Move to before
3199         resolve_typebound_generic_call.  Make new_ref and class_ref
3200         ignorable if set to NULL.
3201         (resolve_typebound_generic_call): Once we have resolved the
3202         generic call, check that the specific instance is that which
3203         is bound to the declared type.
3204         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
3205         freeing 'class_ref->next' twice.
3206
3207 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3208
3209         PR fortran/43895
3210         * trans-array.c (structure_alloc_comps): Dereference scalar
3211         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
3212         TREE_TYPE (decl).
3213
3214 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3215
3216         * gfortranspec.c (append_arg, lang_specific_driver): Use
3217         GCC-specific formats in diagnostics.
3218
3219 2010-06-02  Tobias Burnus  <burnus@net-b.de>
3220
3221         PR fortran/44360
3222         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
3223         symbols.
3224
3225 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3226
3227         PR fortran/44371
3228         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
3229         condition block.
3230
3231 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
3232
3233         * fortran/gfortran.texi:  Fix typos in description of variable-format-
3234         expressions.
3235
3236 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
3237
3238         PR fortran/36928
3239         * dependency.c (gfc_check_section_vs_section):  Check
3240         for interleaving array assignments without conflicts.
3241
3242 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
3243
3244         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
3245         $data component of a class container.
3246         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
3247         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
3248         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
3249         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
3250         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
3251         * gcc/fortran/parse.c (parse_derived): Ditto.
3252         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
3253         gfc_expr_attr): Ditto.
3254         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
3255         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
3256         resolve_fl_var_and_proc, resolve_typebound_procedure,
3257         resolve_fl_derived): Ditto.
3258         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
3259         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
3260         CLASS_DATA.
3261         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
3262         gfc_trans_deferred_vars): Ditto.
3263         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
3264
3265 2010-05-28  Tobias Burnus  <burnus@net-b.de>
3266
3267         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
3268
3269 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3270
3271         * gfortranspec.c (append_arg, lang_specific_driver): Use
3272         fatal_error instead of fatal.  Use warning instead of fprintf for
3273         warnings.
3274
3275 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3276
3277         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
3278         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
3279         xstrerror instead of strerror.
3280
3281 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3282
3283         * cpp.c (cb_cpp_error): Save and restore
3284         global_dc->warn_system_headers, not variable warn_system_headers.
3285
3286 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3287
3288         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
3289
3290 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3291
3292         * trans-common.c: Do not include rtl.h, include output.h instead.
3293         * trans-decl.c: Likewise.
3294
3295 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
3296
3297         PR fortran/40011
3298         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
3299         namespace before trying to reorder the gsymbols.
3300
3301 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
3302
3303         PR fortran/30668
3304         PR fortran/31346
3305         PR fortran/34260
3306         * resolve.c (resolve_global_procedure): Add check for global
3307         procedures with implicit interfaces and assumed-shape or optional
3308         dummy arguments. Verify that function return type, kind and string
3309         lengths match.
3310
3311 2010-05-21  Tobias Burnus  <burnus@net-b.de>
3312
3313         * gfortran.h: Do not include system.h.
3314         * bbt.c: Include system.h.
3315         * data.c: Ditto.
3316         * dependency.c: Ditto.
3317         * dump-parse-tree.c: Ditto.
3318         * arith.h: Do not include gfortran.h.
3319         * constructor.h: Do not include gfortran.h and splay-tree.h.
3320         * match.h: Do not include gfortran.h.
3321         * parse.h: Ditto.
3322         * target-memory.h: Ditto.
3323         * openmp.c: Do not include toplev.h and target.h.
3324         * trans-stmt.c: Ditto not include toplev.h.
3325         * primary.c: Ditto.
3326         * trans-common.c: Tell why toplev.h is needed. And
3327         do not include target.h.
3328         * trans-expr.c: Tell why toplev.h is needed.
3329         * trans-array.c: Ditto.
3330         * trans-openmp.c: Ditto.
3331         * trans-const.c: Ditto.
3332         * trans.c: Ditto.
3333         * trans-types.c: Ditto.
3334         * trans-io.c: Ditto.
3335         * trans-decl.c: Ditto.
3336         * scanner.c: Ditto.
3337         * convert.c: Ditto.
3338         * trans-intrinsic.c: Ditto.
3339         * options.c: Ditto.
3340
3341 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3342
3343         PR fortran/43851
3344         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
3345         before returning MATCH_ERROR. Add check for scalar. Add check for
3346         default integer kind.
3347
3348 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3349
3350         PR fortran/44212
3351         * match.c (gfc_match_select_type): On error jump back out of the local
3352         namespace.
3353         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
3354         stage, more precisely to ...
3355         * resolve.c (resolve_fl_derived): ... this place.
3356
3357 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3358
3359         PR fortran/44213
3360         * resolve.c (ensure_not_abstract): Allow abstract types with
3361         non-abstract ancestors.
3362
3363 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3364
3365         * trans-const.c: Include realmpfr.h.
3366         * Make-lang.in: Update dependencies.
3367
3368 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3369
3370         * trans-const.c, trans-types.c, trans-intrinsic.c:
3371         Clean up redundant includes.
3372
3373 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
3374
3375         PR fortran/38407
3376         * lang.opt (Wunused-dummy-argument): New option.
3377         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
3378         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
3379         (set_Wall): Enable warn_unused_dummy_argument.
3380         (gfc_handle_option): Set warn_unused_dummy_argument according to
3381         command line.
3382         * trans-decl.c (generate_local_decl): Separate warnings about
3383         unused variables and unused dummy arguments.
3384         * invoke.texi: Documented new option.
3385
3386 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
3387
3388         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
3389         (gfc_conv_string_tmp): Do not assert type comparibilty.
3390         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
3391         (gfc_conv_expr_descriptor): Remove assert.
3392         * trans-common.c: Clarify why rtl.h and tm.h are included.
3393         * trans-openmp.c: Do not include ggc.h and real.h.
3394         Explain why gimple.h is included.
3395         * trans-const.c: Do not include ggc.h.
3396         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
3397         * trans.c: Do not include ggc.h and real.h.
3398         Explain why gimple.h is included.
3399         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
3400         and dwarf2out.h are included.
3401         * trans-io.c: Do not include gimple.h and real.h.
3402         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
3403         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
3404         is included.
3405
3406 2010-05-20  Tobias Burnus  <burnus@net-b.de>
3407
3408         * options.c (gfc_init_options,gfc_post_options): Enable
3409         flag_associative_math by default.
3410
3411 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3412
3413         PR fortran/43851
3414         * trans-stmt.c (gfc_trans_stop): Add generation of call to
3415         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
3416         blank STOP, handling a null expression. (gfc_trans_pause): Use
3417         pause_string for blank PAUSE.
3418         * trans.h: Add external function declaration for error_stop_numeric.
3419         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
3420         the declaration for the library call. Adjust whitespaces.
3421         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
3422         signal no stop code. Match the expression following the stop and pass
3423         that to the translators. Remove the old use of digit matching.  Add
3424         checks that the stop_code expression is INTEGER or CHARACTER, constant,
3425         and if CHARACTER, default character KIND.
3426
3427 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3428
3429         PR fortran/44055
3430         * lang.opt (Wconversion-extra): New option.
3431         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
3432         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
3433         (set_Wall): Enable -Wconversion.
3434         (gfc_handle_option): Set warn_conversion_extra.
3435         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
3436         introduced for -Wconversion if -Wconversion-extra is present.
3437         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
3438         -Wconversion; document -Wconversion-extra.
3439
3440 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3441
3442         PR fortran/42360
3443         * gfortran.h (gfc_has_default_initializer): New.
3444         * expr.c (gfc_has_default_initializer): New.
3445         * resolve.c (has_default_initializer): Removed, use
3446         gfc_has_default_initializer() instead. Updated all callers.
3447         * trans-array.c (has_default_initializer): Removed, use
3448         gfc_has_default_initializer() instead. Updated all callers.
3449         * trans-decl.c (generate_local_decl): Do not check the
3450         first component only to check for initializers, but use
3451         gfc_has_default_initializer() instead.
3452
3453 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3454
3455         PR fortran/38404
3456         * primary.c (match_string_constant): Move start_locus just inside 
3457         the string.
3458         * data.c (create_character_intializer): Clarified truncation warning.
3459
3460 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3461
3462         PR fortran/34505
3463         * intrinsic.h (gfc_check_float): New prototype.
3464         (gfc_check_sngl): New prototype.
3465         * check.c (gfc_check_float): New.
3466         (gfc_check_sngl): New.
3467         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
3468         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
3469         and SNGL.
3470         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
3471         added them to the list of specifics of REAL instead.
3472
3473 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3474
3475         PR fortran/43990
3476         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
3477         This is now handled via 'gfc_class_null_initializer'.
3478
3479 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3480
3481         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
3482         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
3483         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3484         add_procs_to_declared_vtab,add_generic_specifics, 
3485         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3486         find_typebound_proc_uop,gfc_find_typebound_proc,
3487         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
3488         gfc_get_tbp_symtree): Moved here from other places.
3489         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
3490         class.c.
3491         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
3492         gfc_find_typebound_proc,gfc_find_typebound_user_op,
3493         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
3494         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
3495         * Make-lang.in: Add class.o.
3496         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
3497         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3498         add_procs_to_declared_vtab,add_generic_specifics,
3499         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3500         find_typebound_proc_uop,gfc_find_typebound_proc,
3501         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3502         gfc_get_tbp_symtree): Move to class.c.
3503
3504 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3505
3506         * trans-types.c (gfc_init_types): Use build_function_type_list.
3507         (gfc_get_ppc_type): Likewise.
3508         * trans-decl.c (gfc_generate_constructors): Likewise.
3509         * f95-lang.c (build_builtin_fntypes): Likewise.
3510         (gfc_init_builtin_functions): Likewise.
3511         (DEF_FUNCTION_TYPE_0): Likewise.
3512         (DEF_FUNCTION_TYPE_1): Likewise.
3513         (DEF_FUNCTION_TYPE_2): Likewise.
3514         (DEF_FUNCTION_TYPE_3): Likewise.
3515         (DEF_FUNCTION_TYPE_4): Likewise.
3516         (DEF_FUNCTION_TYPE_5): Likewise.
3517         (DEF_FUNCTION_TYPE_6): Likewise.
3518         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
3519         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
3520  
3521 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3522
3523         * trans-array.c (gfc_trans_array_constructor_value): Use
3524         build_constructor instead of build_constructor_from_list.
3525         (gfc_build_constant_array_constructor): Likewise.
3526         * trans-decl.c (create_main_function): Likewise.
3527         * trans-stmt.c (gfc_trans_character_select): Likewise.
3528
3529 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3530
3531         PR fortran/44044
3532         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
3533         (resolve_fl_variable_derived): ... this place.
3534         (resolve_symbol): Make sure function symbols (and their result
3535         variables) are not resolved twice.
3536
3537 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
3538
3539         PR fortran/35779
3540         * array.c (match_array_list): Revert change from 2010-05-13.
3541
3542 2010-05-16  Richard Guenther  <rguenther@suse.de>
3543
3544         * trans-decl.c (module_htab_decls_hash): Revert last change.
3545
3546 2010-05-16  Richard Guenther  <rguenther@suse.de>
3547
3548         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
3549
3550 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3551
3552         * options.c (set_Wall): Remove special logic for Wuninitialized
3553         without -O.
3554
3555 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3556
3557         PR fortran/44154
3558         PR fortran/42647
3559         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
3560         if branches.
3561
3562 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3563
3564         PR fortran/43207
3565         PR fortran/43969
3566         * gfortran.h (gfc_class_null_initializer): New prototype.
3567         * expr.c (gfc_class_null_initializer): New function to build a NULL
3568         initializer for CLASS pointers.
3569         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
3570         containers. Remove default NULL initialization of $data component.
3571         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
3572         message.
3573         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
3574         Use new function 'gfc_class_null_initializer'.
3575         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
3576         class variables.
3577
3578 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3579
3580         PR fortran/44135
3581         * fortran/interface.c (get_sym_storage_size): Use signed instead of
3582         unsigned mpz_get_?i routines.
3583
3584 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3585
3586         * trans.c (trans_code): Set backend locus early.
3587         * trans-decl.c (gfc_get_fake_result_decl): Use source location
3588         of the function instead of current input_location.
3589
3590 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
3591
3592         PR fortran/35779
3593         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
3594         Updated all usages.
3595         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
3596         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
3597         iterators.
3598
3599 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3600
3601         PR fortran/44036
3602         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
3603         variable lists.
3604         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
3605         by reference dummy procedures or non-dummy procedure pointers.
3606         (gfc_omp_predetermined_sharing): Return
3607         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
3608
3609 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3610
3611         PR fortran/43711
3612         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
3613         after OMP statement.
3614         (gfc_match_omp_critical): Likewise.
3615         (gfc_match_omp_flush): Likewise.
3616         (gfc_match_omp_workshare): Likewise.
3617         (gfc_match_omp_master): Likewise.
3618         (gfc_match_omp_ordered): Likewise.
3619         (gfc_match_omp_atomic): Likewise.
3620         (gfc_match_omp_barrier): Likewise.
3621         (gfc_match_omp_end_nowait): Likewise.
3622
3623 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3624
3625         PR fortran/31820
3626         * resolve.c (validate_case_label_expr): Removed FIXME.
3627         (resolve_select): Raise default warning on case labels out of range
3628         of the case expression.
3629
3630 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
3631
3632         PR fortran/27866
3633         PR fortran/35003
3634         PR fortran/42809
3635         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
3636         about conversion warnings.
3637
3638 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
3639
3640         PR fortran/44044
3641         * match.c (gfc_match_select_type): Move error message to
3642         resolve_select_type.
3643         * resolve.c (resolve_select_type): Error message moved here from
3644         gfc_match_select_type. Correctly set type of temporary.
3645
3646 2010-05-10  Richard Guenther  <rguenther@suse.de>
3647
3648         * trans-decl.c (gfc_build_library_function_decl): Split out
3649         worker to ...
3650         (build_library_function_decl_1): ... this new function.
3651         Set a fnspec attribute if a specification was provided.
3652         (gfc_build_library_function_decl_with_spec): New function.
3653         (gfc_build_intrinsic_function_decls): Annotate internal_pack
3654         and internal_unpack.
3655
3656 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
3657
3658         PR fortran/40728
3659         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
3660         as external.
3661
3662 2010-05-07  Jason Merrill  <jason@redhat.com>
3663
3664         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
3665         to avoid -Wc++-compat warning.
3666
3667 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3668
3669         PR 40989
3670         * options.c (gfc_handle_option): Add argument kind.
3671         * gfortran.h (gfc_handle_option): Update declaration.
3672
3673 2010-05-06  Tobias Burnus  <burnus@net-b.de>
3674
3675         PR fortran/43985
3676         * trans-types.c (gfc_sym_type): Mark Cray pointees as
3677         GFC_POINTER_TYPE_P.
3678
3679 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3680
3681         PR fortran/32331
3682         * resolve.c (traverse_data_list): Rephrase error message for
3683         non-constant bounds in data-implied-do.
3684
3685 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3686
3687         PR fortran/24978
3688         * gfortran.h: Removed repeat count from constructor, removed
3689         all usages.
3690         * data.h (gfc_assign_data_value_range): Changed return value from
3691         void to gfc_try.
3692         * data.c (gfc_assign_data_value): Add location to constructor element.
3693         (gfc_assign_data_value_range): Call gfc_assign_data_value()
3694         for each element in range. Return early if an error was generated.
3695         * resolve.c (check_data_variable): Stop early if range assignment
3696         generated an error.
3697
3698 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
3699
3700         PR fortran/43696
3701         * resolve.c (resolve_fl_derived): Some fixes for class variables.
3702         * symbol.c (gfc_build_class_symbol): Add separate class container for
3703         class pointers.
3704
3705 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
3706
3707         PR fortran/43592
3708         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3709
3710 2010-05-02  Tobias Burnus  <burnus@net-b.de>
3711
3712         PR fortran/18918
3713         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3714         for lcobound, ucobound, image_index and this_image.
3715         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3716         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3717         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3718         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3719         functions.
3720         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3721
3722 2010-04-30  Tobias Burnus  <burnus@net-b.de>
3723
3724         PR fortran/18918
3725         PR fortran/43931
3726         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
3727         calculation for array descriptor types.
3728
3729 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3730
3731         PR fortran/43896
3732         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3733         initializers for PPC members of the vtabs.
3734
3735 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3736
3737         PR fortran/42274
3738         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3739         attribute for all PPC members of the vtypes.
3740         (copy_vtab_proc_comps): Copy the correct interface.
3741         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3742         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3743         a dummy argument and make sure all PPC members of the vtab are
3744         initialized correctly.
3745         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3746         in call to gfc_trans_assign_vtab_procs.
3747         * trans-stmt.c (gfc_trans_allocate): Ditto.
3748
3749 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3750
3751         PR fortran/43326
3752         * resolve.c (resolve_typebound_function): Renamed
3753         resolve_class_compcall.Do all the detection of class references
3754         here.
3755         (resolve_typebound_subroutine): resolve_class_typebound_call
3756         renamed. Otherwise same as resolve_typebound_function.
3757         (gfc_resolve_expr): Call resolve_typebound_function.
3758         (resolve_code): Call resolve_typebound_subroutine.
3759
3760 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3761
3762         PR fortran/43492
3763         * resolve.c (resolve_typebound_generic_call): For CLASS methods
3764         pass back the specific symtree name, rather than the target
3765         name.
3766
3767 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3768
3769         PR fortran/42353
3770         * resolve.c (resolve_structure_cons): Make the initializer of
3771         the vtab component 'extends' the same type as the component.
3772
3773 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3774
3775         PR fortran/42680
3776         * interface.c (check_interface1): Pass symbol name rather than NULL to
3777         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3778         trap MULL. (gfc_compare_derived_types): Revert previous change
3779         incorporated incorrectly during merge from trunk, r155778.
3780         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3781         than NULL to gfc_compare_interfaces.
3782         * symbol.c (add_generic_specifics): Likewise.
3783
3784 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
3785
3786         PR fortran/42353
3787         * interface.c (gfc_compare_derived_types): Add condition for vtype.
3788         * symbol.c (gfc_find_derived_vtab): Sey access to private.
3789         (gfc_find_derived_vtab): Likewise.
3790         * module.c (ab_attribute): Add enumerator AB_VTAB.
3791         (mio_symbol_attribute): Use new attribute, AB_VTAB.
3792         (check_for_ambiguous): Likewise.
3793
3794 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3795             Janus Weil  <janus@gcc.gnu.org>
3796
3797         PR fortran/41829
3798         * trans-expr.c (select_class_proc): Remove function.
3799         (conv_function_val): Delete reference to previous.
3800         (gfc_conv_derived_to_class): Add second argument to the call to
3801         gfc_find_derived_vtab.
3802         (gfc_conv_structure): Exclude proc_pointer components when
3803         accessing $data field of class objects.
3804         (gfc_trans_assign_vtab_procs): New function.
3805         (gfc_trans_class_assign): Add second argument to the call to
3806         gfc_find_derived_vtab.
3807         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3808         implement holding off searching for the vptr derived type.
3809         (add_proc_component): New function.
3810         (add_proc_comps): New function.
3811         (add_procs_to_declared_vtab1): New function.
3812         (copy_vtab_proc_comps): New function.
3813         (add_procs_to_declared_vtab): New function.
3814         (void add_generic_specifics): New function.
3815         (add_generics_to_declared_vtab): New function.
3816         (gfc_find_derived_vtab): Add second argument to the call to
3817         gfc_find_derived_vtab. Add the calls to
3818         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3819         * decl.c (build_sym, build_struct): Use new arg in calls to
3820         gfc_build_class_symbol.
3821         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3822         definition of struct gfc_class_esym_list. Modify prototypes
3823         of gfc_build_class_symbol and gfc_find_derived_vtab.
3824         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3825         call to gfc_find_derived_vtab.
3826         * module.c : Add the vtype attribute.
3827         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3828         * resolve.c (resolve_typebound_generic_call): Add second arg
3829         to pass along the generic name for class methods.
3830         (resolve_typebound_call): The same.
3831         (resolve_compcall): Use the second arg to carry the generic
3832         name from the above. Remove the reference to class_esym.
3833         (check_members, check_class_members, resolve_class_esym,
3834         hash_value_expr): Remove functions.
3835         (resolve_class_compcall, resolve_class_typebound_call): Modify
3836         to use vtable rather than member by member calls.
3837         (gfc_resolve_expr): Modify second arg in call to
3838         resolve_compcall.
3839         (resolve_select_type): Add second arg in call to
3840         gfc_find_derived_vtab.
3841         (resolve_code): Add second arg in call resolve_typebound_call.
3842         (resolve_fl_derived): Exclude vtypes from check for late
3843         procedure definitions. Likewise for checking of explicit
3844         interface and checking of pass arg.
3845         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3846         calls to gfc_find_derived_vtab.
3847         * match.c (select_type_set_tmp): Use new arg in call to
3848         gfc_build_class_symbol.
3849         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3850         necessary.
3851         * parse.c (endType): Finish incomplete classes.
3852
3853 2010-04-28  Tobias Burnus  <burnus@net-b.de>
3854
3855         PR fortran/18918
3856         PR fortran/43919
3857         * simplify.c (simplify_cobound): Handle scalar coarrays.
3858
3859 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3860
3861         * gfc-internals.texi: Update copyright year.
3862         * gfortran.texi: Ditto.
3863         * invoke.texi: Ditto.
3864
3865 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3866
3867         PR fortran/18918
3868         * resolve.c (resolve_allocate_expr): Allow array coarrays.
3869         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3870         * trans-types.c (gfc_get_array_type_bounds,
3871         gfc_get_array_descriptor_base): Add corank argument.
3872         * trans-array.c (gfc_array_init_size): Handle corank.
3873         (gfc_trans_create_temp_array, gfc_array_allocate,
3874         gfc_conv_expr_descriptor): Add corank argument to call.
3875         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3876
3877 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
3878
3879         PR fortran/30073
3880         PR fortran/43793
3881         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3882         of mucking with a tree directly.
3883
3884 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3885
3886         PR fortran/43832
3887         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3888         gfc_error with new error message.
3889
3890 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
3891
3892         PR fortran/43841
3893         PR fortran/43843
3894         * trans-expr.c (gfc_conv_expr): Supply an address expression for
3895         GFC_SS_REFERENCE.
3896         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3897         GFC_SS_REFERENCE.
3898         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3899         than the address of a GFC_SS_REFERENCE.
3900         * trans.h : Change comment on GFC_SS_REFERENCE. 
3901
3902 2010-04-22  Richard Guenther  <rguenther@suse.de>
3903
3904         PR fortran/43829
3905         * resolve.c (gfc_resolve_index): Wrap around ...
3906         (gfc_resolve_index_1): ... this.  Add parameter to allow
3907         any integer kind index type.
3908         (resolve_array_ref): Allow any integer kind for the start
3909         index of an array ref.
3910
3911 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3912
3913         PR fortran/43836
3914         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3915         the decl.
3916
3917 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
3918
3919         * intrinsic.c (sort_actual): Remove 'is' in error message.
3920
3921 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
3922
3923         PR fortran/43227
3924         * resolve.c (resolve_fl_derived): If a component character
3925         length has not been resolved, do so now.
3926         (resolve_symbol): The same as above for a symbol character
3927         length.
3928         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3929         not needed for a character valued, procedure pointer.
3930
3931         PR fortran/43266
3932         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3933         not found, return FAILURE rather than ICEing.
3934
3935 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3936
3937         PR fortran/43339
3938         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3939         sequential loops private in the innermost containing task region.
3940
3941 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3942
3943         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3944         to build_common_tree_nodes.
3945
3946 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
3947
3948         PR fortran/31538
3949         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3950         gfc_msg_bounds by using 'Array bound mismatch' directly.
3951         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
3952         error message to include the mismatch in the extent of array bound.
3953         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
3954         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
3955
3956 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3957
3958         * gfortran.texi: Update information on temporary file locations.
3959
3960 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3961
3962         * trans-decl.c (gfc_build_qualified_array): Ensure
3963         ubound.N and lbound.N artificial variable names don't appear
3964         in debug info.
3965
3966 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
3967
3968         PR fortran/30073
3969         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3970         block of code.  Set name to the variable associated with the descriptor.
3971
3972 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
3973
3974         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3975         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3976
3977 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3978
3979         * intrinsic.texi: Add the missing specific name of intrinsic
3980         procedure where the specific name is identical to the generic name.
3981         Fix inconsistent or mismatch in the argument names in intrinsic
3982         procedure descriptions.  Add the SCALAR allocatable description to
3983         ALLOCATED.
3984
3985 2010-04-14  Tobias Burnus  <burnus@net-b.de>
3986
3987         PR fortran/18918
3988         * array.c (gfc_find_array_ref): Handle codimensions.
3989         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3990         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3991         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3992         New functions.
3993         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3994         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3995         GFC_ISYM_UCOBOUND.
3996         * intrinsic.h (add_functions): Add this_image, image_index,
3997         lcobound and ucobound intrinsics.
3998         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3999         gfc_check_image_index, gfc_check_this_image,
4000         gfc_simplify_image_index, gfc_simplify_lcobound,
4001         gfc_simplify_this_image, gfc_simplify_ucobound):
4002         New function prototypes.
4003         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
4004         IMAGE_INDEX): Document new intrinsic functions.
4005         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
4006         error fatal.
4007         * simplify.c (simplify_bound_dim): Handle coarrays.
4008         (simplify_bound): Update simplify_bound_dim call.
4009         (gfc_simplify_num_images): Add -fcoarray=none check.
4010         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
4011         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
4012
4013 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4014
4015         PR fortran/43747
4016         * constructor.c: Fix typo in comment.
4017         * expr.c (find_array_section): Add check for max array limit.
4018
4019 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
4020
4021         PR bootstrap/31400
4022         * gfortranspec.c (lookup_option): Check for -static and return
4023         OPTION_static.
4024         (lang_specific_driver): Break when OPTION_static is discovered.
4025
4026 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4027
4028         * array.c (extract_element): Restore function from trunk.
4029         (gfc_get_array_element): Restore function from trunk.
4030         (gfc_expand_constructor): Restore check against
4031         flag_max_array_constructor.
4032         * constructor.c (node_copy_and_append): Delete unused.
4033         * gfortran.h: Delete comment and extra include.
4034         * constructor.h: Bump copyright and clean up TODO comments.
4035         * resolve.c: Whitespace.
4036
4037 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4038
4039         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
4040         with direct access access to elements. Adjusted prototype, fixed all
4041         callers.
4042         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
4043         array.
4044         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
4045         (gfc_simplify_spread): Removed workaround, directly insert elements
4046         at a given array position.
4047         (gfc_simplify_transpose): Likewise.
4048         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
4049         function calls.
4050         (gfc_simplify_unpack): Likewise.
4051
4052 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4053
4054         * simplify.c (only_convert_cmplx_boz): Renamed to ...
4055         (convert_boz): ... this and moved to start of file.
4056         (gfc_simplify_abs): Whitespace fix.
4057         (gfc_simplify_acos): Whitespace fix.
4058         (gfc_simplify_acosh): Whitespace fix.
4059         (gfc_simplify_aint): Whitespace fix.
4060         (gfc_simplify_dint): Whitespace fix.
4061         (gfc_simplify_anint): Whitespace fix.
4062         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
4063         (gfc_simplify_dnint): Whitespace fix.
4064         (gfc_simplify_asin): Whitespace fix.
4065         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
4066         (gfc_simplify_atan): Likewise.
4067         (gfc_simplify_atanh): Whitespace fix.
4068         (gfc_simplify_atan2): Whitespace fix.
4069         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
4070         (gfc_simplify_bessel_j1): Likewise.
4071         (gfc_simplify_bessel_jn): Likewise.
4072         (gfc_simplify_bessel_y0): Likewise.
4073         (gfc_simplify_bessel_y1): Likewise.
4074         (gfc_simplify_bessel_yn): Likewise.
4075         (gfc_simplify_ceiling): Reorderd statements.
4076         (simplify_cmplx): Use convert_boz(), check for constant arguments.
4077         Whitespace fix.
4078         (gfc_simplify_cmplx): Use correct default kind. Removed check for
4079         constant arguments.
4080         (gfc_simplify_complex): Replaced if-gate. Removed check for
4081         constant arguments.
4082         (gfc_simplify_conjg): Whitespace fix.
4083         (gfc_simplify_cos): Whitespace fix.
4084         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
4085         (gfc_simplify_dcmplx): Removed check for constant arguments.
4086         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
4087         (gfc_simplify_digits): Whitespace fix.
4088         (gfc_simplify_dim): Whitespace fix.
4089         (gfc_simplify_dprod): Reordered statements.
4090         (gfc_simplify_erf): Whitespace fix.
4091         (gfc_simplify_erfc): Whitespace fix.
4092         (gfc_simplify_epsilon): Whitespace fix.
4093         (gfc_simplify_exp): Whitespace fix.
4094         (gfc_simplify_exponent): Use convert_boz().
4095         (gfc_simplify_floor): Reorderd statements.
4096         (gfc_simplify_gamma): Whitespace fix.
4097         (gfc_simplify_huge): Whitespace fix.
4098         (gfc_simplify_iand): Whitespace fix.
4099         (gfc_simplify_ieor): Whitespace fix.
4100         (simplify_intconv): Use gfc_convert_constant().
4101         (gfc_simplify_int): Use simplify_intconv().
4102         (gfc_simplify_int2): Reorderd statements.
4103         (gfc_simplify_idint): Reorderd statements.
4104         (gfc_simplify_ior): Whitespace fix.
4105         (gfc_simplify_ishftc): Removed duplicate type check.
4106         (gfc_simplify_len): Use range_check() instead of manual range check.
4107         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
4108         (gfc_simplify_log): Whitespace fix.
4109         (gfc_simplify_log10): Whitespace fix.
4110         (gfc_simplify_minval): Whitespace fix.
4111         (gfc_simplify_maxval): Whitespace fix.
4112         (gfc_simplify_mod): Whitespace fix.
4113         (gfc_simplify_modulo): Whitespace fix.
4114         (simplify_nint): Reorderd statements.
4115         (gfc_simplify_not): Whitespace fix.
4116         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
4117         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
4118         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
4119         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
4120         (gfc_simplify_realpart): Whitespace fix.
4121         (gfc_simplify_selected_char_kind): Removed unused result-variable.
4122         (gfc_simplify_selected_int_kind): Removed unused result-variable.
4123         (gfc_simplify_selected_real_kind): Removed unused result-variable.
4124         (gfc_simplify_sign): Whitespace fix.
4125         (gfc_simplify_sin): Whitespace fix.
4126         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
4127         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
4128         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
4129         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
4130         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
4131
4132 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4133
4134         * gfortran.h (gfc_start_constructor): Removed.
4135         (gfc_get_array_element): Removed.
4136         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
4137         instead. Fixed all callers.
4138         (extract_element): Removed.
4139         (gfc_expand_constructor): Temporarily removed check for
4140         max-array-constructor. Will be re-introduced later if still required.
4141         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
4142         instead. Fixed all callers.
4143         * expr.c (find_array_section): Replaced manual lookup of elements
4144         by gfc_constructor_lookup.
4145
4146 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4147
4148         * gfortran.h (gfc_get_null_expr): New prototype.
4149         (gfc_get_operator_expr): New prototype.
4150         (gfc_get_character_expr): New prototype.
4151         (gfc_get_iokind_expr): New prototype.
4152         * expr.c (gfc_get_null_expr): New.
4153         (gfc_get_character_expr): New.
4154         (gfc_get_iokind_expr): New.
4155         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
4156         * matchexp.c (build_node): Renamed and moved to
4157         expr.c (gfc_get_operator_expr). Reordered arguments to match 
4158         other functions. Fixed all callers.
4159         (gfc_get_parentheses): Use specific function to build expr.
4160         * array.c (gfc_match_array_constructor): Likewise.
4161         * arith.c (eval_intrinsic): Likewise.
4162         (gfc_hollerith2int): Likewise.
4163         (gfc_hollerith2real): Likewise.
4164         (gfc_hollerith2complex): Likewise.
4165         (gfc_hollerith2logical): Likewise.
4166         * data.c (create_character_intializer): Likewise.
4167         * decl.c (gfc_match_null): Likewise.
4168         (enum_initializer): Likewise.
4169         * io.c (gfc_match_format): Likewise.
4170         (match_io): Likewise.
4171         * match.c (gfc_match_nullify): Likewise.
4172         * primary.c (match_string_constant): Likewise.
4173         (match_logical_constant): Likewise.
4174         (build_actual_constructor): Likewise.
4175         * resolve.c (build_default_init_expr): Likewise.
4176         * symbol.c (generate_isocbinding_symbol): Likewise.
4177         (gfc_build_class_symbol): Likewise.
4178         (gfc_find_derived_vtab): Likewise.
4179         * simplify.c (simplify_achar_char): Likewise.
4180         (gfc_simplify_adjustl): Likewise.
4181         (gfc_simplify_adjustr): Likewise.
4182         (gfc_simplify_and): Likewise.
4183         (gfc_simplify_bit_size): Likewise.
4184         (gfc_simplify_is_iostat_end): Likewise.
4185         (gfc_simplify_is_iostat_eor): Likewise.
4186         (gfc_simplify_isnan): Likewise.
4187         (simplify_bound): Likewise.
4188         (gfc_simplify_leadz): Likewise.
4189         (gfc_simplify_len_trim): Likewise.
4190         (gfc_simplify_logical): Likewise.
4191         (gfc_simplify_maxexponent): Likewise.
4192         (gfc_simplify_minexponent): Likewise.
4193         (gfc_simplify_new_line): Likewise.
4194         (gfc_simplify_null): Likewise.
4195         (gfc_simplify_or): Likewise.
4196         (gfc_simplify_precision): Likewise.
4197         (gfc_simplify_repeat): Likewise.
4198         (gfc_simplify_scan): Likewise.
4199         (gfc_simplify_size): Likewise.
4200         (gfc_simplify_trailz): Likewise.
4201         (gfc_simplify_trim): Likewise.
4202         (gfc_simplify_verify): Likewise.
4203         (gfc_simplify_xor): Likewise.
4204         * trans-io.c (build_dt): Likewise.
4205         (gfc_new_nml_name_expr): Removed.
4206
4207 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4208
4209         * arith.h (gfc_constant_result): Removed prototype.
4210         * constructor.h (gfc_build_array_expr): Removed prototype.
4211         (gfc_build_structure_constructor_expr): Removed prototype.
4212         * gfortran.h (gfc_int_expr): Removed prototype.
4213         (gfc_logical_expr): Removed prototype.
4214         (gfc_get_array_expr): New prototype.
4215         (gfc_get_structure_constructor_expr): New prototype.
4216         (gfc_get_constant_expr): New prototype.
4217         (gfc_get_int_expr): New prototype.
4218         (gfc_get_logical_expr): New prototype.
4219         * arith.c (gfc_constant_result): Moved and renamed to
4220         expr.c (gfc_get_constant_expr). Fixed all callers.
4221         * constructor.c (gfc_build_array_expr): Moved and renamed to
4222         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
4223         and kind. Fixed all callers.
4224         (gfc_build_structure_constructor_expr): Moved and renamed to
4225         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
4226         to type and kind. Fixed all callers.
4227         * expr.c (gfc_logical_expr): Renamed to ...
4228         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
4229         (gfc_int_expr): Renamed to ...
4230         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
4231         callers.
4232         (gfc_get_constant_expr): New.
4233         (gfc_get_array_expr): New.
4234         (gfc_get_structure_constructor_expr): New.
4235         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
4236         instead.
4237
4238 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4239
4240         * constructor.h: New.
4241         * constructor.c: New.
4242         * Make-lang.in: Add new files to F95_PARSER_OBJS.
4243         * arith.c (reducy_unary): Use constructor API.
4244         (reduce_binary_ac): Likewise.
4245         (reduce_binary_ca): Likewise.
4246         (reduce_binary_aa): Likewise.
4247         * check.c (gfc_check_pack): Likewise.
4248         (gfc_check_reshape): Likewise.
4249         (gfc_check_unpack): Likewise.
4250         * decl.c (add_init_expr_to_sym): Likewise.
4251         (build_struct): Likewise.
4252         * dependency.c (gfc_check_dependency): Likewise.
4253         (contains_forall_index_p): Likewise.
4254         * dump-parse-tree.c (show_constructor): Likewise.
4255         * expr.c (free_expr0): Likewise.
4256         (gfc_copy_expr): Likewise.
4257         (gfc_is_constant_expr): Likewise.
4258         (simplify_constructor): Likewise.
4259         (find_array_element): Likewise.
4260         (find_component_ref): Likewise.
4261         (find_array_section): Likewise.
4262         (find_substring_ref): Likewise.
4263         (simplify_const_ref): Likewise.
4264         (scalarize_intrinsic_call): Likewise.
4265         (check_alloc_comp_init): Likewise.
4266         (gfc_default_initializer): Likewise.
4267         (gfc_traverse_expr): Likewise.
4268         * iresolve.c (check_charlen_present): Likewise.
4269         (gfc_resolve_reshape): Likewise.
4270         (gfc_resolve_transfer): Likewise.
4271         * module.c (mio_constructor): Likewise.
4272         * primary.c (build_actual_constructor): Likewise.
4273         (gfc_match_structure_constructor): Likewise.
4274         * resolve.c (resolve_structure_cons): Likewise.
4275         * simplify.c (is_constant_array_expr): Likewise.
4276         (init_result_expr): Likewise.
4277         (transformational_result): Likewise.
4278         (simplify_transformation_to_scalar): Likewise.
4279         (simplify_transformation_to_array): Likewise.
4280         (gfc_simplify_dot_product): Likewise.
4281         (simplify_bound): Likewise.
4282         (simplify_matmul): Likewise.
4283         (simplify_minval_maxval): Likewise.
4284         (gfc_simplify_pack): Likewise.
4285         (gfc_simplify_reshape): Likewise.
4286         (gfc_simplify_shape): Likewise.
4287         (gfc_simplify_spread): Likewise.
4288         (gfc_simplify_transpose): Likewise.
4289         (gfc_simplify_unpack): Likewise.q
4290         (gfc_convert_constant): Likewise.
4291         (gfc_convert_char_constant): Likewise.
4292         * target-memory.c (size_array): Likewise.
4293         (encode_array): Likewise.
4294         (encode_derived): Likewise.
4295         (interpret_array): Likewise.
4296         (gfc_interpret_derived): Likewise.
4297         (expr_to_char): Likewise.
4298         (gfc_merge_initializers): Likewise.
4299         * trans-array.c (gfc_get_array_constructor_size): Likewise.
4300         (gfc_trans_array_constructor_value): Likewise.
4301         (get_array_ctor_strlen): Likewise.
4302         (gfc_constant_array_constructor_p): Likewise.
4303         (gfc_build_constant_array_constructor): Likewise.
4304         (gfc_trans_array_constructor): Likewise.
4305         (gfc_conv_array_initializer): Likewise.
4306         * trans-decl.c (check_constant_initializer): Likewise.
4307         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
4308         (gfc_apply_interface_mapping_to_cons): Likewise.
4309         (gfc_trans_structure_assign): Likewise.
4310         (gfc_conv_structure): Likewise.
4311         * array.c (check_duplicate_iterator): Likewise.
4312         (match_array_list): Likewise.
4313         (match_array_cons_element): Likewise.
4314         (gfc_match_array_constructor): Likewise.
4315         (check_constructor_type): Likewise.
4316         (check_constructor): Likewise.
4317         (expand): Likewise.
4318         (expand_constructor): Likewise.
4319         (extract_element): Likewise.
4320         (gfc_expanded_ac): Likewise.
4321         (resolve_array_list): Likewise.
4322         (gfc_resolve_character_array_constructor): Likewise.
4323         (copy_iterator): Renamed to ...
4324         (gfc_copy_iterator): ... this.
4325         (gfc_append_constructor): Removed.
4326         (gfc_insert_constructor): Removed unused function.
4327         (gfc_get_constructor): Removed.
4328         (gfc_free_constructor): Removed.
4329         (qgfc_copy_constructor): Removed.
4330         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
4331         Removed all references. Replaced constructor list by splay-tree.
4332         (struct gfc_constructor): Removed member 'next', moved 'offset' from
4333         the inner struct, added member 'base'.
4334         (gfc_append_constructor): Removed prototype.
4335         (gfc_insert_constructor): Removed prototype.
4336         (gfc_get_constructor): Removed prototype.
4337         (gfc_free_constructor): Removed prototype.
4338         (qgfc_copy_constructor): Removed prototype.
4339         (gfc_copy_iterator): New prototype.
4340         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
4341
4342 2010-04-10  Tobias Burnus  <burnus@net-b.de>
4343
4344         PR fortran/43591
4345         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
4346         proc-pointers and type-bound procedures.
4347         (gfc_specification_expr): Check proc-pointers for pureness.
4348
4349 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
4350
4351         PR bootstrap/43684
4352         * gfortranspec.c (lang_specific_driver): Do not expose vars 
4353         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
4354         for such.
4355
4356 2010-04-09  Tobias Burnus  <burnus@net-b.de>
4357
4358         PR fortran/18918
4359         * decl.c (variable_decl, match_attr_spec): Fix setting the array
4360         spec.
4361         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
4362         * data.c (gfc_assign_data_value): Ditto.
4363         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
4364         (gfc_traverse_expr): Traverse also through codimension expressions.
4365         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4366         gfc_has_ultimate_pointer): New functions.
4367         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
4368         (gfc_array_ref): Add codimen.
4369         (gfc_array_ref): Add in_allocate.
4370         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4371         gfc_has_ultimate_pointer): Add prototypes.
4372         * interface.c (compare_parameter, compare_actual_formal,
4373         check_intents): Add coarray constraints.
4374         * match.c (gfc_match_iterator): Add coarray constraint.
4375         * match.h (gfc_match_array_ref): Update interface.
4376         * primary.c (gfc_match_varspec): Handle codimensions.
4377         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
4378         (check_class_members): Return gfc_try instead for error recovery.
4379         (resolve_typebound_function,resolve_typebound_subroutine,
4380         check_members): Handle return value of check_class_members.
4381         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
4382         check_dimension, compare_spec_to_ref, resolve_array_ref,
4383         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
4384         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
4385         support.
4386         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
4387         Skip over coarray refs.
4388         (gfc_array_allocate) Add support for references containing coindexes.
4389         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
4390         (gfc_map_intrinsic_function): Ignore codimensions.
4391
4392 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
4393
4394         PR fortran/28039
4395         * io.c (check_format_string):  Added check for additional non 
4396         blank characters after the format string was successfully 
4397         parsed.
4398         * io.c (check_format): Changed the error messages for positive
4399         int required and period required to drop through the error logic
4400         and report with gfc_error instead of gfc_error_now.  Corrected
4401         format postion for hollerith strings.
4402
4403 2010-04-08  Tobias Burnus  <burnus@net-b.de>
4404
4405         * module.c (use_iso_fortran_env_module): Fix standard check.
4406
4407 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
4408
4409         * parse.c (parse_derived, parse_enum): Avoid set but not used
4410         warning.
4411
4412 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
4413
4414         PR fortran/40539
4415         * gfortran.texi: Add section about representation of
4416         LOGICAL variables.
4417
4418 2010-04-07  Simon Baldwin  <simonb@google.com>
4419
4420         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
4421         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
4422
4423 2010-04-07  Richard Guenther  <rguenther@suse.de>
4424
4425         * options.c (gfc_init_options): Do not set.
4426
4427 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4428
4429         PR fortran/18918
4430         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
4431         * match.c (gfc_match_critical, sync_statement): Ditto.
4432         * gfortran.h (gfc_fcoarray): New enum.
4433         (gfc_option_t): Use it.
4434         * lang.opt (fcoarray): Add new flag.
4435         * invoke.texi (fcoarray): Document it.
4436         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
4437         (gfc_handle_coarray_option): New function.
4438
4439 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4440
4441         PR fortran/18918
4442         * gfortran.h (gfc_array_spec): Add cotype.
4443         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
4444         and defer error diagnostic.
4445         * resolve.c (resolve_fl_derived): Add missing check.
4446         (resolve_symbol): Add cotype/type check.
4447         * parse.c (parse_derived): Fix setting of coarray_comp.
4448
4449 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4450
4451         PR fortran/18918
4452         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
4453         match_array_element_spec,gfc_copy_array_spec,
4454         gfc_compare_array_spec): Include corank.
4455         (match_array_element_spec,gfc_set_array_spec): Support codimension.
4456         * decl.c (build_sym,build_struct,variable_decl,
4457         match_attr_spec,attr_decl1,cray_pointer_decl,
4458         gfc_match_volatile): Add codimension.
4459         (gfc_match_codimension): New function.
4460         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
4461         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
4462         (gfc_add_codimension): New function prototype.
4463         * match.h (gfc_match_codimension): New function prototype.
4464         (gfc_match_array_spec): Update prototype
4465         * match.c (gfc_match_common): Update gfc_match_array_spec call.
4466         * module.c (MOD_VERSION): Bump.
4467         (mio_symbol_attribute): Support coarray attributes.
4468         (mio_array_spec): Add corank support.
4469         * parse.c (decode_specification_statement,decode_statement,
4470         parse_derived): Add coarray support.
4471         * resolve.c (resolve_formal_arglist, was_declared,
4472         is_non_constant_shape_array, resolve_fl_variable,
4473         resolve_fl_derived, resolve_symbol): Add coarray support.
4474         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
4475         gfc_build_class_symbol): Add coarray support.
4476         (gfc_add_codimension): New function.
4477
4478 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4479
4480         PR fortran/18918
4481         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
4482         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
4483         stat_locked_other_image, stat_stopped_image and stat_unlocked of
4484         Fortran 2008.
4485         * intrinsic.texi (iso_fortran_env): Ditto.
4486         * libgfortran.h (libgfortran_stat_codes): New enum.
4487         * module.c (use_iso_fortran_env_module): Honour -std= when loading
4488         constants from the intrinsic module.
4489
4490 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4491
4492         PR fortran/39997
4493         * intrinsic.c (add_functions): Add num_images.
4494         * decl.c (gfc_match_end): Handle END CRITICAL.
4495         * intrinsic.h (gfc_simplify_num_images): Add prototype.
4496         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
4497         and SYNC.
4498         * gfortran.h (gfc_statement): Add enum items for those.
4499         (gfc_exec_op) Ditto.
4500         (gfc_isym_id): Add num_images.
4501         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
4502         (gfc_trans_sync,gfc_trans_critical): New functions.
4503         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
4504         gfc_trans_critical): Add/update prototypes.
4505         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
4506         and SYNC statements.
4507         * trans.h (gfor_fndecl_error_stop_string) Add variable.
4508         * resolve.c (resolve_sync): Add function.
4509         (gfc_resolve_blocks): Handle CRITICAL.
4510         (resolve_code): Handle CRITICAL, ERROR STOP,
4511         (resolve_branch): Add CRITICAL constraint check.
4512         and SYNC statements.
4513         * st.c (gfc_free_statement): Add new statements.
4514         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
4515         (gfc_build_builtin_function_decls): Initialize it.
4516         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
4517         (gfc_match_critical, gfc_match_error_stop, sync_statement,
4518         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
4519         New functions.
4520         (match_exit_cycle): Handle CRITICAL constraint.
4521         (gfc_match_stopcode): Handle ERROR STOP.
4522         * match.h (gfc_match_critical, gfc_match_error_stop,
4523         gfc_match_sync_all, gfc_match_sync_images,
4524         gfc_match_sync_memory): Add prototype.
4525         * parse.c (decode_statement, gfc_ascii_statement,
4526         parse_executable): Handle new statements.
4527         (parse_critical_block): New function.
4528         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
4529         * intrinsic.texi (num_images): Document new function.
4530         * simplify.c (gfc_simplify_num_images): Add function.
4531
4532 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4533
4534         PR fortran/43178
4535         * trans-array.c (gfc_conv_expr_descriptor): Update
4536         gfc_trans_scalar_assign call.
4537         (has_default_initializer): New function.
4538         (gfc_trans_deferred_array): Nullify less often.
4539         * trans-expr.c (gfc_conv_subref_array_arg,
4540         gfc_trans_subcomponent_assign): Update call to
4541         gfc_trans_scalar_assign.
4542         (gfc_trans_scalar_assign): Add parameter and pass it on.
4543         (gfc_trans_assignment_1): Optionally, do not dealloc before
4544         assignment.
4545         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
4546         call to gfc_trans_scalar_assign.
4547         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
4548         initializer to static variables.
4549         (gfc_init_default_dt): Add dealloc parameter and pass it on.
4550         * trans-stmt.c (forall_make_variable_temp,
4551         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
4552         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
4553         gfc_trans_allocate): Update gfc_trans_assignment call.
4554         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
4555         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
4556         parameter to prototype.
4557
4558 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
4559
4560         * ioparm.def : Update copyright.
4561         * lang.opt : ditto
4562         * trans-array.c : ditto
4563         * trans-array.h : ditto
4564         * expr.c: ditto
4565         * trans-types.c: ditto
4566         * dependency.c : ditto
4567         * gfortran.h : ditto
4568         * options.c : ditto
4569         * trans-io.c : ditto
4570         * trans-intrinsic.c : ditto
4571         * libgfortran.h : ditto
4572         * invoke.texi : ditto
4573         * intrinsic.texi : ditto
4574         * trans.c : ditto
4575         * trans.h : ditto
4576         * intrinsic.c : ditto
4577         * interface.c : ditto
4578         * iresolve.c : ditto
4579         * trans-stmt.c : ditto
4580         * trans-stmt.h : ditto
4581         * parse,c : ditto
4582         * match.h : ditto
4583         * error.c : ditto
4584
4585 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
4586
4587         PR fortran/43450
4588         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
4589         do not assert the context of derived types.
4590
4591 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4592
4593         PR fortran/43409
4594         * ioparm.def: Change inquire size variable to type pointer to
4595         GFC_IO_INT type.
4596
4597 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
4598
4599         PR fortran/43039
4600         * trans-expr.c (conv_parent_component_references): Ensure that
4601         'dt' has a backend_decl.
4602
4603         PR fortran/43043
4604         * trans-expr.c (gfc_conv_structure): Ensure that the derived
4605         type has a backend_decl.
4606
4607         PR fortran/43044
4608         * resolve.c (resolve_global_procedure): Check that the 'cl'
4609         structure is not NULL.
4610
4611 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4612
4613         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
4614         redundant tab.
4615
4616 2010-03-17  Tobias Burnus  <burnus@net-b.de>
4617
4618         PR fortran/43331
4619         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
4620         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
4621         check.
4622         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
4623         pointees as having explizit size.
4624         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
4625         check.
4626         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
4627         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
4628         * resolve.c (resolve_symbol): Handle cp_was_assumed.
4629         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
4630         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
4631         pointers.
4632
4633 2010-03-14  Tobias Burnus  <burnus@net-b.de>
4634
4635         PR fortran/43362
4636         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
4637         (resolve_ordinary_assign): Add check to avoid segfault.
4638
4639 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
4640
4641         PR fortran/43291
4642         PR fortran/43326
4643         * resolve.c (resolve_compcall): Add new boolean dummy argument
4644         'class_members'. Only resolve expression at end if false.
4645         Remove redundant, static variable 'class_object'.
4646         (check_class_members): Add extra argument to call of
4647         resolve_compcall.
4648         (resolve_typebound_function): Renamed resolve_class_compcall.
4649         Do all the detection of class references here. Correct calls to
4650         resolve_compcall for extra argument.
4651         (resolve_typebound_subroutine): resolve_class_typebound_call
4652         renamed. Otherwise same as resolve_typebound_function.
4653         (gfc_resolve_expr): Call resolve_typebound_function.
4654         (resolve_code): Call resolve_typebound_subroutine.
4655
4656 2010-03-10  Tobias Burnus  <burnus@net-b.de
4657
4658         PR fortran/43303
4659         * symbol.c (get_iso_c_sym): Set sym->result.
4660
4661 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
4662
4663         PR fortran/43256
4664         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
4665         for TBPs, otherwise they will not be resolved properly.
4666         (resolve_function): Use 'value.function.esym' instead of
4667         'value.function.name' to check if we're dealing with a TBP.
4668         (check_class_members): Set correct type of passed object for all TBPs,
4669         not only generic ones, except if the type is abstract.
4670
4671 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
4672
4673         PR fortran/43244
4674         * decl.c (gfc_match_final_decl): Make sure variable names starting with
4675         'final...' are not misinterpreted as FINAL statements.
4676
4677 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
4678
4679         PR fortran/43243
4680         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4681         allocatable ultimate components do not need temporaries, whilst
4682         ultimate pointer components do.
4683
4684 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
4685
4686         PR fortran/43169
4687         * resolve.c (resolve_code): Correctly set gfc_current_ns for
4688         EXEC_SELECT_TYPE.
4689         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
4690         (gfc_pure): Ditto.
4691
4692 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
4693
4694         PR fortran/43180
4695         * trans-array.c (gfc_conv_array_parameter): A full array of
4696         derived type need not be restricted to a symbol without an
4697         array spec to use the call to gfc_conv_expr_descriptor.
4698
4699         PR fortran/43173
4700         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4701         allocatable arrays do not need temporaries.
4702
4703 2010-03-01  Tobias Burnus  <burnus@net-b.de>
4704
4705         PR fortran/43199
4706         * resolve.c (find_array_spec): Handle REF_COMPONENT with
4707         CLASS components.
4708
4709 2010-02-28  Tobias Burnus  <burnus@net-b.de>
4710
4711         PR fortran/43205
4712         * trans-expr.c (is_zero_initializer_p): Move up in the file.
4713         (gfc_conv_initializer): Handle zero initializer as special case.
4714
4715 2010-02-27  Tobias Burnus  <burnus@net-b.de>
4716
4717         PR fortran/43185
4718         * resolve.c (resolve_fl_variable_derived): Imply SAVE
4719         for module variables for Fortran 2008.
4720
4721 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
4722
4723         PR debug/43166
4724         * trans-common.c (build_common_decl): Also update DECL_MODE,
4725         and DECL_SIZE when encountering a larger common block and call
4726         layout_decl.
4727
4728 2010-02-24  Tobias Burnus  <burnus@net-b.de>
4729
4730         PR fortran/43042
4731         * trans-expr.c (gfc_conv_initializer): Call directly
4732         gfc_conv_constant for C_NULL_(FUN)PTR.
4733
4734 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
4735
4736         PR fortran/43072
4737         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
4738         checking the rest of the dimensions for elements.
4739
4740 2010-02-21  Tobias Burnus  <burnus@net-b.de>
4741
4742         PR fortran/35259
4743         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
4744         * lang.opt: Ditto.
4745         * option.c (gfc_init_options,gfc_handle_option): Ditto.
4746         * trans-expr.c (gfc_conv_expr_op): Use the flag.
4747         * invoke.texi: Document new -fno-protect-parens flag.
4748
4749 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
4750
4751         PR fortran/36932
4752         PR fortran/36933
4753         PR fortran/43072
4754         PR fortran/43111
4755         * dependency.c (gfc_check_argument_var_dependency): Use enum
4756         value instead of arithmetic vaue for 'elemental'.
4757         (check_data_pointer_types): New function.
4758         (gfc_check_dependency): Call check_data_pointer_types.
4759         * trans-array.h : Change fourth argument of
4760         gfc_conv_array_parameter to boolean.
4761         * trans-array.c (gfc_conv_array_parameter): A contiguous array
4762         can be a dummy but it must not be assumed shape or deferred.
4763         Change fourth argument to boolean. Array constructor exprs will
4764         always be contiguous and do not need packing and unpacking.
4765         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
4766         space and change fourth argument of gfc_conv_array_parameter
4767         to boolean.
4768         (gfc_trans_arrayfunc_assign): Change fourth argument of
4769         gfc_conv_array_parameter to boolean.
4770         * trans-io.c (gfc_convert_array_to_string): The same.
4771         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
4772
4773 2010-02-20  Tobias Burnus  <burnus@net-b.de>
4774
4775         PR fortran/42958
4776         * libgfortran.h: Add GFC_RTCHECK_MEM.
4777         * invoke.texi (-fcheck=): Document -fcheck=mem.
4778         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
4779         and enable malloc-success check only with -fcheck=mem.
4780         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
4781
4782 2010-02-16  Tobias Burnus  <burnus@net-b.de>
4783
4784         PR fortran/43040
4785         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
4786         * intrinsic.c (add_functions): Ditto.
4787         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
4788         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
4789
4790 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4791
4792         PR fortran/32382
4793         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
4794         gfc_trans_do prototype.
4795         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
4796         a loop exit condition.  If exit condition is given, build the loop exit
4797         code, checking IO results of implied do loops in READ and WRITE.
4798         (gfc_trans_do): Likewise.
4799         * trans.c (trans_code): New static work function, previously
4800         gfc_trans_code. Passes exit condition to gfc_trans_do.
4801         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
4802         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
4803         * trans-io.c (build_dt): Build an exit condition to allow checking IO
4804         result status bits in the dtparm structure. Use this condition in call
4805         to gfc_trans_code_cond.
4806
4807 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
4808
4809         PR fortran/41113
4810         PR fortran/41117
4811         * trans-array.c (gfc_conv_array_parameter): Use
4812         gfc_full_array_ref_p to detect full and contiguous variable
4813         arrays. Full array components and contiguous arrays do not need
4814         internal_pack and internal_unpack.
4815
4816 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
4817
4818         PR fortran/43030
4819         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
4820
4821         PR fortran/43029
4822         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
4823         here.
4824         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
4825         MATCH_ERROR.
4826
4827 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
4828             Tobias Burnus <burnus@net-b.de>
4829
4830         PR fortran/40823
4831         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
4832
4833 2010-02-10  Tobias Burnus  <burnus@net-b.de>
4834
4835         PR fortran/43015
4836         * trans-decl.c (gfc_generate_function_code): Only check
4837         actual-vs.-dummy character bounds if not bind(C).
4838
4839 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
4840
4841         PR fortran/42309
4842         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
4843         info->dimen after info has been freed.
4844
4845 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4846
4847         PR fortran/42999
4848         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
4849         with iterators.
4850
4851 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
4852
4853         * module.c (fix_mio_expr): Declare sym.
4854
4855 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
4856
4857         PR fortran/41869
4858         * module.c (fix_mio_expr): Fix for private generic procedures.
4859
4860 2010-02-09  Daniel Kraft  <d@domob.eu>
4861
4862         PR fortran/39171
4863         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
4864         length to be correct and issue only with -Wsurprising.
4865         * invoke.texi (Wsurprising): Mention this new warning that is
4866         turned on by -Wsurprising.
4867
4868 2010-02-09  Daniel Kraft  <d@domob.eu>
4869
4870         PR fortran/41507
4871         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
4872         can be CHARACTER type.
4873         (MINVAL), (MAXLOC), (MINLOC): Ditto.
4874
4875 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
4876
4877         PR fortran/42309
4878         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
4879         'formal_ptr'. If this is true, give returned descriptor unity
4880         lbounds, in all dimensions, and the appropriate offset.
4881         (gfc_conv_procedure_call); If formal is a pointer, set the last
4882         argument of gfc_conv_subref_array_arg to true.
4883         * trans.h : Add last argument for gfc_conv_subref_array_arg.
4884         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
4885         new arg of gfc_conv_subref_array_arg to false.
4886         * trans-stmt.c (forall_make_variable_temp): The same.
4887
4888 2010-02-03  Tobias Burnus  <burnus@net-b.de>
4889
4890         PR fortran/42936
4891         * interface.c (compare_parameter): Disable rank-checking
4892         for NULL().
4893
4894 2010-02-02  Tobias Burnus  <burnus@net-b.de>
4895
4896         PR fortran/42650
4897         * parse.c (decode_specification_statement): Use sym->result not sym.
4898
4899 2010-02-01  Tobias Burnus  <burnus@net-b.de>
4900
4901         PR fortran/42922
4902         * decl.c (variable_decl): Allow default initializer in
4903         TYPE declarations in PURE functions.
4904
4905 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
4906
4907         PR fortran/42888
4908         * resolve.c (resolve_allocate_expr): Move default initialization code
4909         here from gfc_trans_allocate.
4910         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
4911         EXEC_INIT_ASSIGN.
4912         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
4913         of CLASS variables via memcpy.
4914         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
4915         to resolve_allocate_expr.
4916
4917 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
4918
4919         PR fortran/38324
4920         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
4921         * gfortran.h : Add prototype for above.
4922         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
4923         (gfc_trans_subcomponent_assign): Call new function to replace
4924         the code to deal with allocatable components.
4925         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
4926         gfc_get_full_arrayspec_from_expr to replace existing code.
4927
4928 2010-01-25  Tobias Burnus  <burnus@net-b.de>
4929
4930         PR fortran/42858
4931         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
4932         check.
4933
4934 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
4935
4936         PR fortran/41044
4937         PR fortran/41167
4938         * expr.c (remove_subobject_ref): If the constructor is NULL use
4939         the expression as the source.
4940         (simplify_const_ref): Change the type of expression if
4941         there are component references.  Allow for substring to be at
4942         the end of an arbitrarily long chain of references.  If an
4943         element is found that is not in an EXPR_ARRAY, assume that this
4944         is scalar initialization of array. Call remove_subobject_ref in
4945         this case with NULL second argument.
4946
4947 2010-01-24  Tobias Burnus  <burnus@net-b.de>
4948
4949         PR fortran/39304
4950         * array.c (gfc_array_dimen_size): Use correct specific
4951         function in the check.
4952
4953 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
4954
4955         PR fortran/42736
4956         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
4957         is required, turn any trailing array elements after a range
4958         into ranges so that offsets can be calculated.
4959
4960 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
4961
4962         * module.c (mio_f2k_derived): Use enumerator as initializer of
4963         enum variable.
4964
4965         PR bootstrap/42812
4966         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
4967         bitfield of width 2.
4968
4969 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
4970
4971         PR fortran/42804
4972         * resolve.c (extract_compcall_passed_object): Set locus for
4973         passed-object argument.
4974         (extract_ppc_passed_object): Set locus and correctly remove PPC
4975         reference.
4976
4977 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
4978
4979         PR fortran/42783
4980         * trans-decl.c (add_argument_checking): Do not use the backend
4981         decl directly to test for the presence of an optional dummy
4982         argument.  Use gfc_conv_expr_present, remembering to set the
4983         symbol referenced.
4984
4985         PR fortran/42772
4986         * trans-decl.c (gfc_generate_function_code): Small white space
4987         changes. If 'recurcheckvar' is NULL do not try to reset it.
4988
4989 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
4990
4991         PR fortran/42545
4992         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
4993         component for extended types.
4994         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
4995         and take care of parent component accessibility.
4996
4997 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
4998
4999         PR fortran/42677
5000         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
5001         * interface.c (check_interface1): Move a warning message here from
5002         resolve_fl_procedure.
5003         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
5004         * module.c (read_module): Remove call to gfc_check_interfaces, since
5005         this comes too early here.
5006         * resolve.c (resolve_fl_procedure): Move warning message to
5007         check_interface1.
5008
5009 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
5010
5011         PR fortran/42684
5012         * interface.c (check_interface1): Pass symbol name rather than NULL to
5013         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
5014         trap MULL.
5015         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
5016         than NULL to gfc_compare_interfaces.
5017
5018 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
5019
5020         PR fortran/41478
5021         * trans-array.c (duplicate_allocatable):  Static version of
5022         gfc_duplicate_allocatable with provision to handle scalar
5023         components. New boolean argument to switch off call to malloc
5024         if true.
5025         (gfc_duplicate_allocatable): New function to call above with
5026         new argument false.
5027         (gfc_copy_allocatable_data): New function to call above with
5028         new argument true.
5029         (structure_alloc_comps): Do not apply indirect reference to
5030         scalar pointers. Add new section to copy allocatable components
5031         of arrays. Extend copying of allocatable components to include
5032         scalars.
5033         (gfc_copy_only_alloc_comp): New function to copy allocatable
5034         component derived types, without allocating the base structure.
5035         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
5036         Add primitive for gfc_copy_only_alloc_comp.
5037         * trans-expr.c (gfc_conv_procedure_call): After calls to
5038         transformational functions with results that are derived types
5039         with allocatable components, copy the components in the result.
5040         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
5041         of lhs derived types before allocation.
5042         
5043 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
5044
5045         PR fortran/42481
5046         * module.c (load_generic_interfaces): If a procedure that is
5047         use associated but not generic is given an interface that
5048         includes itself, then make it generic.
5049
5050 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
5051             Shujing Zhao  <pearly.zhao@oracle.com>
5052
5053         PR translation/42469
5054         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
5055         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
5056         character between option name and help text.
5057
5058 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
5059
5060         PR fortran/20923
5061         PR fortran/32489
5062         * trans-array.c (gfc_conv_array_initializer): Change call to
5063         gfc_error_now to call to gfc_fatal_error.
5064         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
5065         (is_constant_element): Changed name from constant_element.
5066         (gfc_constant_ac): Only use expand_construuctor for expression
5067         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
5068         call gfc_is_constant_expr.
5069         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
5070         message.
5071         * resolve.c (gfc_is_expandable_expr): New function that determiners if
5072         array expressions should have their constructors expanded.
5073         (gfc_resolve_expr): Use new function to determine whether or not to call
5074         gfc_expand_constructor.
5075
5076 2010-01-09  Tobias Burnus  <burnus@net-b.de>
5077
5078         PR fortran/41298
5079         * trans-expr.c (gfc_trans_structure_assign): Handle
5080         c_null_(fun)ptr.
5081         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
5082         to the constructor for c_null_(fun)ptr.
5083         * resolve.c (resolve_structure_cons): Add special case
5084         for c_null_(fun)ptr.
5085
5086 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
5087
5088         * gfortranspec.c (lang_specific_driver): Update copyright notice
5089         dates.
5090
5091 2010-01-08  Tobias Burnus  <burnus@net-b.de>
5092
5093         PR/fortran 25829
5094         * symbol.c (check_conflict, gfc_copy_attr): Add
5095         ASYNCHRONOUS support.
5096         (gfc_add_asynchronous): New function.
5097         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
5098         (gfc_match_asynchronous): New function.
5099         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
5100         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
5101         (gfc_add_asynchronous): New Prototype.
5102         * module.c (ab_attribute, mio_symbol_attribute): Add
5103         ASYNCHRONOUS support.
5104         * resolve.c (was_declared): Ditto.
5105         * match.h (gfc_match_asynchronous): New prototype.
5106         * parse.c (decode_specification_statement,decode_statement):
5107         Add ASYNCHRONOUS support.
5108
5109 2010-01-07  Tobias Burnus  <burnus@net-b.de>
5110
5111         PR fortran/42597
5112         * trans-decl.c (get_proc_pointer_decl): Fix call to
5113         gfc_conv_initializer for array-valued proc-pointer funcs.
5114
5115 2010-01-07  Tobias Burnus  <burnus@net-b.de>
5116
5117         PR fortran/41872
5118         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
5119         allocatable scalars with SAVE attribute.
5120
5121 2010-01-05  Tobias Burnus  <burnus@net-b.de>
5122
5123         PR fortran/42517
5124         * options.c (gfc_post_options): Set -frecursion
5125         when -fopenmp is used.
5126
5127 2010-01-05  Tobias Burnus  <burnus@net-b.de>
5128
5129         PR fortran/41872
5130         * trans-expr.c (gfc_conv_procedure_call): Nullify
5131         return value for allocatable-scalar character functions.
5132
5133 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5134
5135         PR fortran/36161
5136         * error.c (error_printf, gfc_warning, gfc_notify_std,
5137         gfc_warning_now, gfc_error, gfc_error_now,
5138         gfc_fatal_error): Change argument name from nocmsgid to
5139         gmsgid to enable (x)gettext's % checking.
5140
5141 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5142         
5143         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
5144
5145 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5146
5147         PR fortran/41872
5148         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
5149         for functions returning allocatable scalars.
5150         * trans-stmt.c (gfc_trans_allocate): Emmit error when
5151         reallocating an allocatable scalar.
5152         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
5153         in comment.
5154         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
5155         allocatable scalars.
5156         (gfc_generate_function_code): Nullify result variable for
5157         allocatable scalars.
5158         
5159         PR fortran/40849
5160         * module.c (gfc_use_module): Fix warning string to allow
5161         for translation.
5162
5163         PR fortran/42517
5164         * invoke.texi (-fcheck=recursion): Mention that the checking
5165         is also disabled for -frecursive.
5166         * trans-decl.c (gfc_generate_function_code): Disable
5167         -fcheck=recursion when -frecursive is used.
5168
5169         * intrinsic.texi (iso_c_binding): Improve wording.
5170
5171 \f
5172 Copyright (C) 2010 Free Software Foundation, Inc.
5173
5174 Copying and distribution of this file, with or without modification,
5175 are permitted in any medium without royalty provided the copyright
5176 notice and this notice are preserved.