OSDN Git Service

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