OSDN Git Service

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