OSDN Git Service

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