OSDN Git Service

267cdd561497078bd5f25558bd34c7a4b9eba7bf
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-05-28  Tobias Burnus  <burnus@net-b.de>
2
3         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
4
5 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
6
7         * gfortranspec.c (append_arg, lang_specific_driver): Use
8         fatal_error instead of fatal.  Use warning instead of fprintf for
9         warnings.
10
11 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
12
13         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
14         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
15         xstrerror instead of strerror.
16
17 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
18
19         * cpp.c (cb_cpp_error): Save and restore
20         global_dc->warn_system_headers, not variable warn_system_headers.
21
22 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
23
24         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
25
26 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
27
28         * trans-common.c: Do not include rtl.h, include output.h instead.
29         * trans-decl.c: Likewise.
30
31 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
32
33         PR fortran/40011
34         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
35         namespace before trying to reorder the gsymbols.
36
37 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
38
39         PR fortran/30668
40         PR fortran/31346
41         PR fortran/34260
42         * resolve.c (resolve_global_procedure): Add check for global
43         procedures with implicit interfaces and assumed-shape or optional
44         dummy arguments. Verify that function return type, kind and string
45         lengths match.
46
47 2010-05-21  Tobias Burnus  <burnus@net-b.de>
48
49         * gfortran.h: Do not include system.h.
50         * bbt.c: Include system.h.
51         * data.c: Ditto.
52         * dependency.c: Ditto.
53         * dump-parse-tree.c: Ditto.
54         * arith.h: Do not include gfortran.h.
55         * constructor.h: Do not include gfortran.h and splay-tree.h.
56         * match.h: Do not include gfortran.h.
57         * parse.h: Ditto.
58         * target-memory.h: Ditto.
59         * openmp.c: Do not include toplev.h and target.h.
60         * trans-stmt.c: Ditto not include toplev.h.
61         * primary.c: Ditto.
62         * trans-common.c: Tell why toplev.h is needed. And
63         do not include target.h.
64         * trans-expr.c: Tell why toplev.h is needed.
65         * trans-array.c: Ditto.
66         * trans-openmp.c: Ditto.
67         * trans-const.c: Ditto.
68         * trans.c: Ditto.
69         * trans-types.c: Ditto.
70         * trans-io.c: Ditto.
71         * trans-decl.c: Ditto.
72         * scanner.c: Ditto.
73         * convert.c: Ditto.
74         * trans-intrinsic.c: Ditto.
75         * options.c: Ditto.
76
77 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
78
79         PR fortran/43851
80         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
81         before returning MATCH_ERROR. Add check for scalar. Add check for
82         default integer kind.
83
84 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
85
86         PR fortran/44212
87         * match.c (gfc_match_select_type): On error jump back out of the local
88         namespace.
89         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
90         stage, more precisely to ...
91         * resolve.c (resolve_fl_derived): ... this place.
92
93 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
94
95         PR fortran/44213
96         * resolve.c (ensure_not_abstract): Allow abstract types with
97         non-abstract ancestors.
98
99 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
100
101         * trans-const.c: Include realmpfr.h.
102         * Make-lang.in: Update dependencies.
103
104 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
105
106         * trans-const.c, trans-types.c, trans-intrinsic.c:
107         Clean up redundant includes.
108
109 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
110
111         PR fortran/38407
112         * lang.opt (Wunused-dummy-argument): New option.
113         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
114         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
115         (set_Wall): Enable warn_unused_dummy_argument.
116         (gfc_handle_option): Set warn_unused_dummy_argument according to
117         command line.
118         * trans-decl.c (generate_local_decl): Separate warnings about
119         unused variables and unused dummy arguments.
120         * invoke.texi: Documented new option.
121
122 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
123
124         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
125         (gfc_conv_string_tmp): Do not assert type comparibilty.
126         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
127         (gfc_conv_expr_descriptor): Remove assert.
128         * trans-common.c: Clarify why rtl.h and tm.h are included.
129         * trans-openmp.c: Do not include ggc.h and real.h.
130         Explain why gimple.h is included.
131         * trans-const.c: Do not include ggc.h.
132         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
133         * trans.c: Do not include ggc.h and real.h.
134         Explain why gimple.h is included.
135         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
136         and dwarf2out.h are included.
137         * trans-io.c: Do not include gimple.h and real.h.
138         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
139         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
140         is included.
141
142 2010-05-20  Tobias Burnus  <burnus@net-b.de>
143
144         * options.c (gfc_init_options,gfc_post_options): Enable
145         flag_associative_math by default.
146
147 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
148
149         PR fortran/43851
150         * trans-stmt.c (gfc_trans_stop): Add generation of call to
151         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
152         blank STOP, handling a null expression. (gfc_trans_pause): Use
153         pause_string for blank PAUSE.
154         * trans.h: Add external function declaration for error_stop_numeric.
155         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
156         the declaration for the library call. Adjust whitespaces.
157         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
158         signal no stop code. Match the expression following the stop and pass
159         that to the translators. Remove the old use of digit matching.  Add
160         checks that the stop_code expression is INTEGER or CHARACTER, constant,
161         and if CHARACTER, default character KIND.
162
163 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
164
165         PR fortran/44055
166         * lang.opt (Wconversion-extra): New option.
167         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
168         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
169         (set_Wall): Enable -Wconversion.
170         (gfc_handle_option): Set warn_conversion_extra.
171         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
172         introduced for -Wconversion if -Wconversion-extra is present.
173         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
174         -Wconversion; document -Wconversion-extra.
175
176 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
177
178         PR fortran/42360
179         * gfortran.h (gfc_has_default_initializer): New.
180         * expr.c (gfc_has_default_initializer): New.
181         * resolve.c (has_default_initializer): Removed, use
182         gfc_has_default_initializer() instead. Updated all callers.
183         * trans-array.c (has_default_initializer): Removed, use
184         gfc_has_default_initializer() instead. Updated all callers.
185         * trans-decl.c (generate_local_decl): Do not check the
186         first component only to check for initializers, but use
187         gfc_has_default_initializer() instead.
188
189 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
190
191         PR fortran/38404
192         * primary.c (match_string_constant): Move start_locus just inside 
193         the string.
194         * data.c (create_character_intializer): Clarified truncation warning.
195
196 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
197
198         PR fortran/34505
199         * intrinsic.h (gfc_check_float): New prototype.
200         (gfc_check_sngl): New prototype.
201         * check.c (gfc_check_float): New.
202         (gfc_check_sngl): New.
203         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
204         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
205         and SNGL.
206         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
207         added them to the list of specifics of REAL instead.
208
209 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
210
211         PR fortran/43990
212         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
213         This is now handled via 'gfc_class_null_initializer'.
214
215 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
216
217         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
218         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
219         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
220         add_procs_to_declared_vtab,add_generic_specifics, 
221         add_generics_to_declared_vtab,gfc_find_derived_vtab,
222         find_typebound_proc_uop,gfc_find_typebound_proc,
223         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
224         gfc_get_tbp_symtree): Moved here from other places.
225         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
226         class.c.
227         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
228         gfc_find_typebound_proc,gfc_find_typebound_user_op,
229         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
230         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
231         * Make-lang.in: Add class.o.
232         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
233         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
234         add_procs_to_declared_vtab,add_generic_specifics,
235         add_generics_to_declared_vtab,gfc_find_derived_vtab,
236         find_typebound_proc_uop,gfc_find_typebound_proc,
237         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
238         gfc_get_tbp_symtree): Move to class.c.
239
240 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
241
242         * trans-types.c (gfc_init_types): Use build_function_type_list.
243         (gfc_get_ppc_type): Likewise.
244         * trans-decl.c (gfc_generate_constructors): Likewise.
245         * f95-lang.c (build_builtin_fntypes): Likewise.
246         (gfc_init_builtin_functions): Likewise.
247         (DEF_FUNCTION_TYPE_0): Likewise.
248         (DEF_FUNCTION_TYPE_1): Likewise.
249         (DEF_FUNCTION_TYPE_2): Likewise.
250         (DEF_FUNCTION_TYPE_3): Likewise.
251         (DEF_FUNCTION_TYPE_4): Likewise.
252         (DEF_FUNCTION_TYPE_5): Likewise.
253         (DEF_FUNCTION_TYPE_6): Likewise.
254         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
255         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
256  
257 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
258
259         * trans-array.c (gfc_trans_array_constructor_value): Use
260         build_constructor instead of build_constructor_from_list.
261         (gfc_build_constant_array_constructor): Likewise.
262         * trans-decl.c (create_main_function): Likewise.
263         * trans-stmt.c (gfc_trans_character_select): Likewise.
264
265 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
266
267         PR fortran/44044
268         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
269         (resolve_fl_variable_derived): ... this place.
270         (resolve_symbol): Make sure function symbols (and their result
271         variables) are not resolved twice.
272
273 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
274
275         PR fortran/35779
276         * array.c (match_array_list): Revert change from 2010-05-13.
277
278 2010-05-16  Richard Guenther  <rguenther@suse.de>
279
280         * trans-decl.c (module_htab_decls_hash): Revert last change.
281
282 2010-05-16  Richard Guenther  <rguenther@suse.de>
283
284         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
285
286 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
287
288         * options.c (set_Wall): Remove special logic for Wuninitialized
289         without -O.
290
291 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
292
293         PR fortran/44154
294         PR fortran/42647
295         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
296         if branches.
297
298 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
299
300         PR fortran/43207
301         PR fortran/43969
302         * gfortran.h (gfc_class_null_initializer): New prototype.
303         * expr.c (gfc_class_null_initializer): New function to build a NULL
304         initializer for CLASS pointers.
305         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
306         containers. Remove default NULL initialization of $data component.
307         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
308         message.
309         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
310         Use new function 'gfc_class_null_initializer'.
311         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
312         class variables.
313
314 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
315
316         PR fortran/44135
317         * fortran/interface.c (get_sym_storage_size): Use signed instead of
318         unsigned mpz_get_?i routines.
319
320 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
321
322         * trans.c (trans_code): Set backend locus early.
323         * trans-decl.c (gfc_get_fake_result_decl): Use source location
324         of the function instead of current input_location.
325
326 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
327
328         PR fortran/35779
329         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
330         Updated all usages.
331         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
332         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
333         iterators.
334
335 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
336
337         PR fortran/44036
338         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
339         variable lists.
340         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
341         by reference dummy procedures or non-dummy procedure pointers.
342         (gfc_omp_predetermined_sharing): Return
343         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
344
345 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
346
347         PR fortran/43711
348         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
349         after OMP statement.
350         (gfc_match_omp_critical): Likewise.
351         (gfc_match_omp_flush): Likewise.
352         (gfc_match_omp_workshare): Likewise.
353         (gfc_match_omp_master): Likewise.
354         (gfc_match_omp_ordered): Likewise.
355         (gfc_match_omp_atomic): Likewise.
356         (gfc_match_omp_barrier): Likewise.
357         (gfc_match_omp_end_nowait): Likewise.
358
359 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
360
361         PR fortran/31820
362         * resolve.c (validate_case_label_expr): Removed FIXME.
363         (resolve_select): Raise default warning on case labels out of range
364         of the case expression.
365
366 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
367
368         PR fortran/27866
369         PR fortran/35003
370         PR fortran/42809
371         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
372         about conversion warnings.
373
374 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
375
376         PR fortran/44044
377         * match.c (gfc_match_select_type): Move error message to
378         resolve_select_type.
379         * resolve.c (resolve_select_type): Error message moved here from
380         gfc_match_select_type. Correctly set type of temporary.
381
382 2010-05-10  Richard Guenther  <rguenther@suse.de>
383
384         * trans-decl.c (gfc_build_library_function_decl): Split out
385         worker to ...
386         (build_library_function_decl_1): ... this new function.
387         Set a fnspec attribute if a specification was provided.
388         (gfc_build_library_function_decl_with_spec): New function.
389         (gfc_build_intrinsic_function_decls): Annotate internal_pack
390         and internal_unpack.
391
392 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
393
394         PR fortran/40728
395         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
396         as external.
397
398 2010-05-07  Jason Merrill  <jason@redhat.com>
399
400         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
401         to avoid -Wc++-compat warning.
402
403 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
404
405         PR 40989
406         * options.c (gfc_handle_option): Add argument kind.
407         * gfortran.h (gfc_handle_option): Update declaration.
408
409 2010-05-06  Tobias Burnus  <burnus@net-b.de>
410
411         PR fortran/43985
412         * trans-types.c (gfc_sym_type): Mark Cray pointees as
413         GFC_POINTER_TYPE_P.
414
415 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
416
417         PR fortran/32331
418         * resolve.c (traverse_data_list): Rephrase error message for
419         non-constant bounds in data-implied-do.
420
421 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
422
423         PR fortran/24978
424         * gfortran.h: Removed repeat count from constructor, removed
425         all usages.
426         * data.h (gfc_assign_data_value_range): Changed return value from
427         void to gfc_try.
428         * data.c (gfc_assign_data_value): Add location to constructor element.
429         (gfc_assign_data_value_range): Call gfc_assign_data_value()
430         for each element in range. Return early if an error was generated.
431         * resolve.c (check_data_variable): Stop early if range assignment
432         generated an error.
433
434 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
435
436         PR fortran/43696
437         * resolve.c (resolve_fl_derived): Some fixes for class variables.
438         * symbol.c (gfc_build_class_symbol): Add separate class container for
439         class pointers.
440
441 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
442
443         PR fortran/43592
444         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
445
446 2010-05-02  Tobias Burnus  <burnus@net-b.de>
447
448         PR fortran/18918
449         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
450         for lcobound, ucobound, image_index and this_image.
451         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
452         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
453         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
454         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
455         functions.
456         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
457
458 2010-04-30  Tobias Burnus  <burnus@net-b.de>
459
460         PR fortran/18918
461         PR fortran/43931
462         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
463         calculation for array descriptor types.
464
465 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
466
467         PR fortran/43896
468         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
469         initializers for PPC members of the vtabs.
470
471 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
472
473         PR fortran/42274
474         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
475         attribute for all PPC members of the vtypes.
476         (copy_vtab_proc_comps): Copy the correct interface.
477         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
478         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
479         a dummy argument and make sure all PPC members of the vtab are
480         initialized correctly.
481         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
482         in call to gfc_trans_assign_vtab_procs.
483         * trans-stmt.c (gfc_trans_allocate): Ditto.
484
485 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
486
487         PR fortran/43326
488         * resolve.c (resolve_typebound_function): Renamed
489         resolve_class_compcall.Do all the detection of class references
490         here.
491         (resolve_typebound_subroutine): resolve_class_typebound_call
492         renamed. Otherwise same as resolve_typebound_function.
493         (gfc_resolve_expr): Call resolve_typebound_function.
494         (resolve_code): Call resolve_typebound_subroutine.
495
496 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
497
498         PR fortran/43492
499         * resolve.c (resolve_typebound_generic_call): For CLASS methods
500         pass back the specific symtree name, rather than the target
501         name.
502
503 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
504
505         PR fortran/42353
506         * resolve.c (resolve_structure_cons): Make the initializer of
507         the vtab component 'extends' the same type as the component.
508
509 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
510
511         PR fortran/42680
512         * interface.c (check_interface1): Pass symbol name rather than NULL to
513         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
514         trap MULL. (gfc_compare_derived_types): Revert previous change
515         incorporated incorrectly during merge from trunk, r155778.
516         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
517         than NULL to gfc_compare_interfaces.
518         * symbol.c (add_generic_specifics): Likewise.
519
520 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
521
522         PR fortran/42353
523         * interface.c (gfc_compare_derived_types): Add condition for vtype.
524         * symbol.c (gfc_find_derived_vtab): Sey access to private.
525         (gfc_find_derived_vtab): Likewise.
526         * module.c (ab_attribute): Add enumerator AB_VTAB.
527         (mio_symbol_attribute): Use new attribute, AB_VTAB.
528         (check_for_ambiguous): Likewise.
529
530 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
531             Janus Weil  <janus@gcc.gnu.org>
532
533         PR fortran/41829
534         * trans-expr.c (select_class_proc): Remove function.
535         (conv_function_val): Delete reference to previous.
536         (gfc_conv_derived_to_class): Add second argument to the call to
537         gfc_find_derived_vtab.
538         (gfc_conv_structure): Exclude proc_pointer components when
539         accessing $data field of class objects.
540         (gfc_trans_assign_vtab_procs): New function.
541         (gfc_trans_class_assign): Add second argument to the call to
542         gfc_find_derived_vtab.
543         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
544         implement holding off searching for the vptr derived type.
545         (add_proc_component): New function.
546         (add_proc_comps): New function.
547         (add_procs_to_declared_vtab1): New function.
548         (copy_vtab_proc_comps): New function.
549         (add_procs_to_declared_vtab): New function.
550         (void add_generic_specifics): New function.
551         (add_generics_to_declared_vtab): New function.
552         (gfc_find_derived_vtab): Add second argument to the call to
553         gfc_find_derived_vtab. Add the calls to
554         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
555         * decl.c (build_sym, build_struct): Use new arg in calls to
556         gfc_build_class_symbol.
557         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
558         definition of struct gfc_class_esym_list. Modify prototypes
559         of gfc_build_class_symbol and gfc_find_derived_vtab.
560         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
561         call to gfc_find_derived_vtab.
562         * module.c : Add the vtype attribute.
563         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
564         * resolve.c (resolve_typebound_generic_call): Add second arg
565         to pass along the generic name for class methods.
566         (resolve_typebound_call): The same.
567         (resolve_compcall): Use the second arg to carry the generic
568         name from the above. Remove the reference to class_esym.
569         (check_members, check_class_members, resolve_class_esym,
570         hash_value_expr): Remove functions.
571         (resolve_class_compcall, resolve_class_typebound_call): Modify
572         to use vtable rather than member by member calls.
573         (gfc_resolve_expr): Modify second arg in call to
574         resolve_compcall.
575         (resolve_select_type): Add second arg in call to
576         gfc_find_derived_vtab.
577         (resolve_code): Add second arg in call resolve_typebound_call.
578         (resolve_fl_derived): Exclude vtypes from check for late
579         procedure definitions. Likewise for checking of explicit
580         interface and checking of pass arg.
581         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
582         calls to gfc_find_derived_vtab.
583         * match.c (select_type_set_tmp): Use new arg in call to
584         gfc_build_class_symbol.
585         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
586         necessary.
587         * parse.c (endType): Finish incomplete classes.
588
589 2010-04-28  Tobias Burnus  <burnus@net-b.de>
590
591         PR fortran/18918
592         PR fortran/43919
593         * simplify.c (simplify_cobound): Handle scalar coarrays.
594
595 2010-04-27  Tobias Burnus  <burnus@net-b.de>
596
597         * gfc-internals.texi: Update copyright year.
598         * gfortran.texi: Ditto.
599         * invoke.texi: Ditto.
600
601 2010-04-27  Tobias Burnus  <burnus@net-b.de>
602
603         PR fortran/18918
604         * resolve.c (resolve_allocate_expr): Allow array coarrays.
605         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
606         * trans-types.c (gfc_get_array_type_bounds,
607         gfc_get_array_descriptor_base): Add corank argument.
608         * trans-array.c (gfc_array_init_size): Handle corank.
609         (gfc_trans_create_temp_array, gfc_array_allocate,
610         gfc_conv_expr_descriptor): Add corank argument to call.
611         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
612
613 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
614
615         PR fortran/30073
616         PR fortran/43793
617         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
618         of mucking with a tree directly.
619
620 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
621
622         PR fortran/43832
623         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
624         gfc_error with new error message.
625
626 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
627
628         PR fortran/43841
629         PR fortran/43843
630         * trans-expr.c (gfc_conv_expr): Supply an address expression for
631         GFC_SS_REFERENCE.
632         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
633         GFC_SS_REFERENCE.
634         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
635         than the address of a GFC_SS_REFERENCE.
636         * trans.h : Change comment on GFC_SS_REFERENCE. 
637
638 2010-04-22  Richard Guenther  <rguenther@suse.de>
639
640         PR fortran/43829
641         * resolve.c (gfc_resolve_index): Wrap around ...
642         (gfc_resolve_index_1): ... this.  Add parameter to allow
643         any integer kind index type.
644         (resolve_array_ref): Allow any integer kind for the start
645         index of an array ref.
646
647 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
648
649         PR fortran/43836
650         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
651         the decl.
652
653 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
654
655         * intrinsic.c (sort_actual): Remove 'is' in error message.
656
657 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
658
659         PR fortran/43227
660         * resolve.c (resolve_fl_derived): If a component character
661         length has not been resolved, do so now.
662         (resolve_symbol): The same as above for a symbol character
663         length.
664         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
665         not needed for a character valued, procedure pointer.
666
667         PR fortran/43266
668         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
669         not found, return FAILURE rather than ICEing.
670
671 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
672
673         PR fortran/43339
674         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
675         sequential loops private in the innermost containing task region.
676
677 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
678
679         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
680         to build_common_tree_nodes.
681
682 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
683
684         PR fortran/31538
685         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
686         gfc_msg_bounds by using 'Array bound mismatch' directly.
687         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
688         error message to include the mismatch in the extent of array bound.
689         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
690         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
691
692 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
693
694         * gfortran.texi: Update information on temporary file locations.
695
696 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
697
698         * trans-decl.c (gfc_build_qualified_array): Ensure
699         ubound.N and lbound.N artificial variable names don't appear
700         in debug info.
701
702 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
703
704         PR fortran/30073
705         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
706         block of code.  Set name to the variable associated with the descriptor.
707
708 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
709
710         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
711         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
712
713 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
714
715         * intrinsic.texi: Add the missing specific name of intrinsic
716         procedure where the specific name is identical to the generic name.
717         Fix inconsistent or mismatch in the argument names in intrinsic
718         procedure descriptions.  Add the SCALAR allocatable description to
719         ALLOCATED.
720
721 2010-04-14  Tobias Burnus  <burnus@net-b.de>
722
723         PR fortran/18918
724         * array.c (gfc_find_array_ref): Handle codimensions.
725         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
726         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
727         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
728         New functions.
729         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
730         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
731         GFC_ISYM_UCOBOUND.
732         * intrinsic.h (add_functions): Add this_image, image_index,
733         lcobound and ucobound intrinsics.
734         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
735         gfc_check_image_index, gfc_check_this_image,
736         gfc_simplify_image_index, gfc_simplify_lcobound,
737         gfc_simplify_this_image, gfc_simplify_ucobound):
738         New function prototypes.
739         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
740         IMAGE_INDEX): Document new intrinsic functions.
741         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
742         error fatal.
743         * simplify.c (simplify_bound_dim): Handle coarrays.
744         (simplify_bound): Update simplify_bound_dim call.
745         (gfc_simplify_num_images): Add -fcoarray=none check.
746         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
747         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
748
749 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
750
751         PR fortran/43747
752         * constructor.c: Fix typo in comment.
753         * expr.c (find_array_section): Add check for max array limit.
754
755 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
756
757         PR bootstrap/31400
758         * gfortranspec.c (lookup_option): Check for -static and return
759         OPTION_static.
760         (lang_specific_driver): Break when OPTION_static is discovered.
761
762 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
763
764         * array.c (extract_element): Restore function from trunk.
765         (gfc_get_array_element): Restore function from trunk.
766         (gfc_expand_constructor): Restore check against
767         flag_max_array_constructor.
768         * constructor.c (node_copy_and_append): Delete unused.
769         * gfortran.h: Delete comment and extra include.
770         * constructor.h: Bump copyright and clean up TODO comments.
771         * resolve.c: Whitespace.
772
773 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
774
775         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
776         with direct access access to elements. Adjusted prototype, fixed all
777         callers.
778         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
779         array.
780         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
781         (gfc_simplify_spread): Removed workaround, directly insert elements
782         at a given array position.
783         (gfc_simplify_transpose): Likewise.
784         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
785         function calls.
786         (gfc_simplify_unpack): Likewise.
787
788 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
789
790         * simplify.c (only_convert_cmplx_boz): Renamed to ...
791         (convert_boz): ... this and moved to start of file.
792         (gfc_simplify_abs): Whitespace fix.
793         (gfc_simplify_acos): Whitespace fix.
794         (gfc_simplify_acosh): Whitespace fix.
795         (gfc_simplify_aint): Whitespace fix.
796         (gfc_simplify_dint): Whitespace fix.
797         (gfc_simplify_anint): Whitespace fix.
798         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
799         (gfc_simplify_dnint): Whitespace fix.
800         (gfc_simplify_asin): Whitespace fix.
801         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
802         (gfc_simplify_atan): Likewise.
803         (gfc_simplify_atanh): Whitespace fix.
804         (gfc_simplify_atan2): Whitespace fix.
805         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
806         (gfc_simplify_bessel_j1): Likewise.
807         (gfc_simplify_bessel_jn): Likewise.
808         (gfc_simplify_bessel_y0): Likewise.
809         (gfc_simplify_bessel_y1): Likewise.
810         (gfc_simplify_bessel_yn): Likewise.
811         (gfc_simplify_ceiling): Reorderd statements.
812         (simplify_cmplx): Use convert_boz(), check for constant arguments.
813         Whitespace fix.
814         (gfc_simplify_cmplx): Use correct default kind. Removed check for
815         constant arguments.
816         (gfc_simplify_complex): Replaced if-gate. Removed check for
817         constant arguments.
818         (gfc_simplify_conjg): Whitespace fix.
819         (gfc_simplify_cos): Whitespace fix.
820         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
821         (gfc_simplify_dcmplx): Removed check for constant arguments.
822         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
823         (gfc_simplify_digits): Whitespace fix.
824         (gfc_simplify_dim): Whitespace fix.
825         (gfc_simplify_dprod): Reordered statements.
826         (gfc_simplify_erf): Whitespace fix.
827         (gfc_simplify_erfc): Whitespace fix.
828         (gfc_simplify_epsilon): Whitespace fix.
829         (gfc_simplify_exp): Whitespace fix.
830         (gfc_simplify_exponent): Use convert_boz().
831         (gfc_simplify_floor): Reorderd statements.
832         (gfc_simplify_gamma): Whitespace fix.
833         (gfc_simplify_huge): Whitespace fix.
834         (gfc_simplify_iand): Whitespace fix.
835         (gfc_simplify_ieor): Whitespace fix.
836         (simplify_intconv): Use gfc_convert_constant().
837         (gfc_simplify_int): Use simplify_intconv().
838         (gfc_simplify_int2): Reorderd statements.
839         (gfc_simplify_idint): Reorderd statements.
840         (gfc_simplify_ior): Whitespace fix.
841         (gfc_simplify_ishftc): Removed duplicate type check.
842         (gfc_simplify_len): Use range_check() instead of manual range check.
843         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
844         (gfc_simplify_log): Whitespace fix.
845         (gfc_simplify_log10): Whitespace fix.
846         (gfc_simplify_minval): Whitespace fix.
847         (gfc_simplify_maxval): Whitespace fix.
848         (gfc_simplify_mod): Whitespace fix.
849         (gfc_simplify_modulo): Whitespace fix.
850         (simplify_nint): Reorderd statements.
851         (gfc_simplify_not): Whitespace fix.
852         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
853         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
854         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
855         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
856         (gfc_simplify_realpart): Whitespace fix.
857         (gfc_simplify_selected_char_kind): Removed unused result-variable.
858         (gfc_simplify_selected_int_kind): Removed unused result-variable.
859         (gfc_simplify_selected_real_kind): Removed unused result-variable.
860         (gfc_simplify_sign): Whitespace fix.
861         (gfc_simplify_sin): Whitespace fix.
862         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
863         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
864         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
865         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
866         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
867
868 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
869
870         * gfortran.h (gfc_start_constructor): Removed.
871         (gfc_get_array_element): Removed.
872         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
873         instead. Fixed all callers.
874         (extract_element): Removed.
875         (gfc_expand_constructor): Temporarily removed check for
876         max-array-constructor. Will be re-introduced later if still required.
877         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
878         instead. Fixed all callers.
879         * expr.c (find_array_section): Replaced manual lookup of elements
880         by gfc_constructor_lookup.
881
882 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
883
884         * gfortran.h (gfc_get_null_expr): New prototype.
885         (gfc_get_operator_expr): New prototype.
886         (gfc_get_character_expr): New prototype.
887         (gfc_get_iokind_expr): New prototype.
888         * expr.c (gfc_get_null_expr): New.
889         (gfc_get_character_expr): New.
890         (gfc_get_iokind_expr): New.
891         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
892         * matchexp.c (build_node): Renamed and moved to
893         expr.c (gfc_get_operator_expr). Reordered arguments to match 
894         other functions. Fixed all callers.
895         (gfc_get_parentheses): Use specific function to build expr.
896         * array.c (gfc_match_array_constructor): Likewise.
897         * arith.c (eval_intrinsic): Likewise.
898         (gfc_hollerith2int): Likewise.
899         (gfc_hollerith2real): Likewise.
900         (gfc_hollerith2complex): Likewise.
901         (gfc_hollerith2logical): Likewise.
902         * data.c (create_character_intializer): Likewise.
903         * decl.c (gfc_match_null): Likewise.
904         (enum_initializer): Likewise.
905         * io.c (gfc_match_format): Likewise.
906         (match_io): Likewise.
907         * match.c (gfc_match_nullify): Likewise.
908         * primary.c (match_string_constant): Likewise.
909         (match_logical_constant): Likewise.
910         (build_actual_constructor): Likewise.
911         * resolve.c (build_default_init_expr): Likewise.
912         * symbol.c (generate_isocbinding_symbol): Likewise.
913         (gfc_build_class_symbol): Likewise.
914         (gfc_find_derived_vtab): Likewise.
915         * simplify.c (simplify_achar_char): Likewise.
916         (gfc_simplify_adjustl): Likewise.
917         (gfc_simplify_adjustr): Likewise.
918         (gfc_simplify_and): Likewise.
919         (gfc_simplify_bit_size): Likewise.
920         (gfc_simplify_is_iostat_end): Likewise.
921         (gfc_simplify_is_iostat_eor): Likewise.
922         (gfc_simplify_isnan): Likewise.
923         (simplify_bound): Likewise.
924         (gfc_simplify_leadz): Likewise.
925         (gfc_simplify_len_trim): Likewise.
926         (gfc_simplify_logical): Likewise.
927         (gfc_simplify_maxexponent): Likewise.
928         (gfc_simplify_minexponent): Likewise.
929         (gfc_simplify_new_line): Likewise.
930         (gfc_simplify_null): Likewise.
931         (gfc_simplify_or): Likewise.
932         (gfc_simplify_precision): Likewise.
933         (gfc_simplify_repeat): Likewise.
934         (gfc_simplify_scan): Likewise.
935         (gfc_simplify_size): Likewise.
936         (gfc_simplify_trailz): Likewise.
937         (gfc_simplify_trim): Likewise.
938         (gfc_simplify_verify): Likewise.
939         (gfc_simplify_xor): Likewise.
940         * trans-io.c (build_dt): Likewise.
941         (gfc_new_nml_name_expr): Removed.
942
943 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
944
945         * arith.h (gfc_constant_result): Removed prototype.
946         * constructor.h (gfc_build_array_expr): Removed prototype.
947         (gfc_build_structure_constructor_expr): Removed prototype.
948         * gfortran.h (gfc_int_expr): Removed prototype.
949         (gfc_logical_expr): Removed prototype.
950         (gfc_get_array_expr): New prototype.
951         (gfc_get_structure_constructor_expr): New prototype.
952         (gfc_get_constant_expr): New prototype.
953         (gfc_get_int_expr): New prototype.
954         (gfc_get_logical_expr): New prototype.
955         * arith.c (gfc_constant_result): Moved and renamed to
956         expr.c (gfc_get_constant_expr). Fixed all callers.
957         * constructor.c (gfc_build_array_expr): Moved and renamed to
958         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
959         and kind. Fixed all callers.
960         (gfc_build_structure_constructor_expr): Moved and renamed to
961         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
962         to type and kind. Fixed all callers.
963         * expr.c (gfc_logical_expr): Renamed to ...
964         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
965         (gfc_int_expr): Renamed to ...
966         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
967         callers.
968         (gfc_get_constant_expr): New.
969         (gfc_get_array_expr): New.
970         (gfc_get_structure_constructor_expr): New.
971         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
972         instead.
973
974 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
975
976         * constructor.h: New.
977         * constructor.c: New.
978         * Make-lang.in: Add new files to F95_PARSER_OBJS.
979         * arith.c (reducy_unary): Use constructor API.
980         (reduce_binary_ac): Likewise.
981         (reduce_binary_ca): Likewise.
982         (reduce_binary_aa): Likewise.
983         * check.c (gfc_check_pack): Likewise.
984         (gfc_check_reshape): Likewise.
985         (gfc_check_unpack): Likewise.
986         * decl.c (add_init_expr_to_sym): Likewise.
987         (build_struct): Likewise.
988         * dependency.c (gfc_check_dependency): Likewise.
989         (contains_forall_index_p): Likewise.
990         * dump-parse-tree.c (show_constructor): Likewise.
991         * expr.c (free_expr0): Likewise.
992         (gfc_copy_expr): Likewise.
993         (gfc_is_constant_expr): Likewise.
994         (simplify_constructor): Likewise.
995         (find_array_element): Likewise.
996         (find_component_ref): Likewise.
997         (find_array_section): Likewise.
998         (find_substring_ref): Likewise.
999         (simplify_const_ref): Likewise.
1000         (scalarize_intrinsic_call): Likewise.
1001         (check_alloc_comp_init): Likewise.
1002         (gfc_default_initializer): Likewise.
1003         (gfc_traverse_expr): Likewise.
1004         * iresolve.c (check_charlen_present): Likewise.
1005         (gfc_resolve_reshape): Likewise.
1006         (gfc_resolve_transfer): Likewise.
1007         * module.c (mio_constructor): Likewise.
1008         * primary.c (build_actual_constructor): Likewise.
1009         (gfc_match_structure_constructor): Likewise.
1010         * resolve.c (resolve_structure_cons): Likewise.
1011         * simplify.c (is_constant_array_expr): Likewise.
1012         (init_result_expr): Likewise.
1013         (transformational_result): Likewise.
1014         (simplify_transformation_to_scalar): Likewise.
1015         (simplify_transformation_to_array): Likewise.
1016         (gfc_simplify_dot_product): Likewise.
1017         (simplify_bound): Likewise.
1018         (simplify_matmul): Likewise.
1019         (simplify_minval_maxval): Likewise.
1020         (gfc_simplify_pack): Likewise.
1021         (gfc_simplify_reshape): Likewise.
1022         (gfc_simplify_shape): Likewise.
1023         (gfc_simplify_spread): Likewise.
1024         (gfc_simplify_transpose): Likewise.
1025         (gfc_simplify_unpack): Likewise.q
1026         (gfc_convert_constant): Likewise.
1027         (gfc_convert_char_constant): Likewise.
1028         * target-memory.c (size_array): Likewise.
1029         (encode_array): Likewise.
1030         (encode_derived): Likewise.
1031         (interpret_array): Likewise.
1032         (gfc_interpret_derived): Likewise.
1033         (expr_to_char): Likewise.
1034         (gfc_merge_initializers): Likewise.
1035         * trans-array.c (gfc_get_array_constructor_size): Likewise.
1036         (gfc_trans_array_constructor_value): Likewise.
1037         (get_array_ctor_strlen): Likewise.
1038         (gfc_constant_array_constructor_p): Likewise.
1039         (gfc_build_constant_array_constructor): Likewise.
1040         (gfc_trans_array_constructor): Likewise.
1041         (gfc_conv_array_initializer): Likewise.
1042         * trans-decl.c (check_constant_initializer): Likewise.
1043         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
1044         (gfc_apply_interface_mapping_to_cons): Likewise.
1045         (gfc_trans_structure_assign): Likewise.
1046         (gfc_conv_structure): Likewise.
1047         * array.c (check_duplicate_iterator): Likewise.
1048         (match_array_list): Likewise.
1049         (match_array_cons_element): Likewise.
1050         (gfc_match_array_constructor): Likewise.
1051         (check_constructor_type): Likewise.
1052         (check_constructor): Likewise.
1053         (expand): Likewise.
1054         (expand_constructor): Likewise.
1055         (extract_element): Likewise.
1056         (gfc_expanded_ac): Likewise.
1057         (resolve_array_list): Likewise.
1058         (gfc_resolve_character_array_constructor): Likewise.
1059         (copy_iterator): Renamed to ...
1060         (gfc_copy_iterator): ... this.
1061         (gfc_append_constructor): Removed.
1062         (gfc_insert_constructor): Removed unused function.
1063         (gfc_get_constructor): Removed.
1064         (gfc_free_constructor): Removed.
1065         (qgfc_copy_constructor): Removed.
1066         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
1067         Removed all references. Replaced constructor list by splay-tree.
1068         (struct gfc_constructor): Removed member 'next', moved 'offset' from
1069         the inner struct, added member 'base'.
1070         (gfc_append_constructor): Removed prototype.
1071         (gfc_insert_constructor): Removed prototype.
1072         (gfc_get_constructor): Removed prototype.
1073         (gfc_free_constructor): Removed prototype.
1074         (qgfc_copy_constructor): Removed prototype.
1075         (gfc_copy_iterator): New prototype.
1076         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
1077
1078 2010-04-10  Tobias Burnus  <burnus@net-b.de>
1079
1080         PR fortran/43591
1081         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
1082         proc-pointers and type-bound procedures.
1083         (gfc_specification_expr): Check proc-pointers for pureness.
1084
1085 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
1086
1087         PR bootstrap/43684
1088         * gfortranspec.c (lang_specific_driver): Do not expose vars 
1089         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
1090         for such.
1091
1092 2010-04-09  Tobias Burnus  <burnus@net-b.de>
1093
1094         PR fortran/18918
1095         * decl.c (variable_decl, match_attr_spec): Fix setting the array
1096         spec.
1097         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
1098         * data.c (gfc_assign_data_value): Ditto.
1099         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
1100         (gfc_traverse_expr): Traverse also through codimension expressions.
1101         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
1102         gfc_has_ultimate_pointer): New functions.
1103         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
1104         (gfc_array_ref): Add codimen.
1105         (gfc_array_ref): Add in_allocate.
1106         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
1107         gfc_has_ultimate_pointer): Add prototypes.
1108         * interface.c (compare_parameter, compare_actual_formal,
1109         check_intents): Add coarray constraints.
1110         * match.c (gfc_match_iterator): Add coarray constraint.
1111         * match.h (gfc_match_array_ref): Update interface.
1112         * primary.c (gfc_match_varspec): Handle codimensions.
1113         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
1114         (check_class_members): Return gfc_try instead for error recovery.
1115         (resolve_typebound_function,resolve_typebound_subroutine,
1116         check_members): Handle return value of check_class_members.
1117         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
1118         check_dimension, compare_spec_to_ref, resolve_array_ref,
1119         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
1120         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
1121         support.
1122         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
1123         Skip over coarray refs.
1124         (gfc_array_allocate) Add support for references containing coindexes.
1125         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
1126         (gfc_map_intrinsic_function): Ignore codimensions.
1127
1128 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
1129
1130         PR fortran/28039
1131         * io.c (check_format_string):  Added check for additional non 
1132         blank characters after the format string was successfully 
1133         parsed.
1134         * io.c (check_format): Changed the error messages for positive
1135         int required and period required to drop through the error logic
1136         and report with gfc_error instead of gfc_error_now.  Corrected
1137         format postion for hollerith strings.
1138
1139 2010-04-08  Tobias Burnus  <burnus@net-b.de>
1140
1141         * module.c (use_iso_fortran_env_module): Fix standard check.
1142
1143 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
1144
1145         * parse.c (parse_derived, parse_enum): Avoid set but not used
1146         warning.
1147
1148 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
1149
1150         PR fortran/40539
1151         * gfortran.texi: Add section about representation of
1152         LOGICAL variables.
1153
1154 2010-04-07  Simon Baldwin  <simonb@google.com>
1155
1156         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
1157         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
1158
1159 2010-04-07  Richard Guenther  <rguenther@suse.de>
1160
1161         * options.c (gfc_init_options): Do not set.
1162
1163 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1164
1165         PR fortran/18918
1166         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
1167         * match.c (gfc_match_critical, sync_statement): Ditto.
1168         * gfortran.h (gfc_fcoarray): New enum.
1169         (gfc_option_t): Use it.
1170         * lang.opt (fcoarray): Add new flag.
1171         * invoke.texi (fcoarray): Document it.
1172         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
1173         (gfc_handle_coarray_option): New function.
1174
1175 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1176
1177         PR fortran/18918
1178         * gfortran.h (gfc_array_spec): Add cotype.
1179         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
1180         and defer error diagnostic.
1181         * resolve.c (resolve_fl_derived): Add missing check.
1182         (resolve_symbol): Add cotype/type check.
1183         * parse.c (parse_derived): Fix setting of coarray_comp.
1184
1185 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1186
1187         PR fortran/18918
1188         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
1189         match_array_element_spec,gfc_copy_array_spec,
1190         gfc_compare_array_spec): Include corank.
1191         (match_array_element_spec,gfc_set_array_spec): Support codimension.
1192         * decl.c (build_sym,build_struct,variable_decl,
1193         match_attr_spec,attr_decl1,cray_pointer_decl,
1194         gfc_match_volatile): Add codimension.
1195         (gfc_match_codimension): New function.
1196         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
1197         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
1198         (gfc_add_codimension): New function prototype.
1199         * match.h (gfc_match_codimension): New function prototype.
1200         (gfc_match_array_spec): Update prototype
1201         * match.c (gfc_match_common): Update gfc_match_array_spec call.
1202         * module.c (MOD_VERSION): Bump.
1203         (mio_symbol_attribute): Support coarray attributes.
1204         (mio_array_spec): Add corank support.
1205         * parse.c (decode_specification_statement,decode_statement,
1206         parse_derived): Add coarray support.
1207         * resolve.c (resolve_formal_arglist, was_declared,
1208         is_non_constant_shape_array, resolve_fl_variable,
1209         resolve_fl_derived, resolve_symbol): Add coarray support.
1210         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
1211         gfc_build_class_symbol): Add coarray support.
1212         (gfc_add_codimension): New function.
1213
1214 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1215
1216         PR fortran/18918
1217         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
1218         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
1219         stat_locked_other_image, stat_stopped_image and stat_unlocked of
1220         Fortran 2008.
1221         * intrinsic.texi (iso_fortran_env): Ditto.
1222         * libgfortran.h (libgfortran_stat_codes): New enum.
1223         * module.c (use_iso_fortran_env_module): Honour -std= when loading
1224         constants from the intrinsic module.
1225
1226 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1227
1228         PR fortran/39997
1229         * intrinsic.c (add_functions): Add num_images.
1230         * decl.c (gfc_match_end): Handle END CRITICAL.
1231         * intrinsic.h (gfc_simplify_num_images): Add prototype.
1232         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
1233         and SYNC.
1234         * gfortran.h (gfc_statement): Add enum items for those.
1235         (gfc_exec_op) Ditto.
1236         (gfc_isym_id): Add num_images.
1237         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
1238         (gfc_trans_sync,gfc_trans_critical): New functions.
1239         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
1240         gfc_trans_critical): Add/update prototypes.
1241         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
1242         and SYNC statements.
1243         * trans.h (gfor_fndecl_error_stop_string) Add variable.
1244         * resolve.c (resolve_sync): Add function.
1245         (gfc_resolve_blocks): Handle CRITICAL.
1246         (resolve_code): Handle CRITICAL, ERROR STOP,
1247         (resolve_branch): Add CRITICAL constraint check.
1248         and SYNC statements.
1249         * st.c (gfc_free_statement): Add new statements.
1250         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
1251         (gfc_build_builtin_function_decls): Initialize it.
1252         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
1253         (gfc_match_critical, gfc_match_error_stop, sync_statement,
1254         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
1255         New functions.
1256         (match_exit_cycle): Handle CRITICAL constraint.
1257         (gfc_match_stopcode): Handle ERROR STOP.
1258         * match.h (gfc_match_critical, gfc_match_error_stop,
1259         gfc_match_sync_all, gfc_match_sync_images,
1260         gfc_match_sync_memory): Add prototype.
1261         * parse.c (decode_statement, gfc_ascii_statement,
1262         parse_executable): Handle new statements.
1263         (parse_critical_block): New function.
1264         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
1265         * intrinsic.texi (num_images): Document new function.
1266         * simplify.c (gfc_simplify_num_images): Add function.
1267
1268 2010-04-06  Tobias Burnus  <burnus@net-b.de>
1269
1270         PR fortran/43178
1271         * trans-array.c (gfc_conv_expr_descriptor): Update
1272         gfc_trans_scalar_assign call.
1273         (has_default_initializer): New function.
1274         (gfc_trans_deferred_array): Nullify less often.
1275         * trans-expr.c (gfc_conv_subref_array_arg,
1276         gfc_trans_subcomponent_assign): Update call to
1277         gfc_trans_scalar_assign.
1278         (gfc_trans_scalar_assign): Add parameter and pass it on.
1279         (gfc_trans_assignment_1): Optionally, do not dealloc before
1280         assignment.
1281         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
1282         call to gfc_trans_scalar_assign.
1283         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
1284         initializer to static variables.
1285         (gfc_init_default_dt): Add dealloc parameter and pass it on.
1286         * trans-stmt.c (forall_make_variable_temp,
1287         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1288         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
1289         gfc_trans_allocate): Update gfc_trans_assignment call.
1290         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
1291         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
1292         parameter to prototype.
1293
1294 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
1295
1296         * ioparm.def : Update copyright.
1297         * lang.opt : ditto
1298         * trans-array.c : ditto
1299         * trans-array.h : ditto
1300         * expr.c: ditto
1301         * trans-types.c: ditto
1302         * dependency.c : ditto
1303         * gfortran.h : ditto
1304         * options.c : ditto
1305         * trans-io.c : ditto
1306         * trans-intrinsic.c : ditto
1307         * libgfortran.h : ditto
1308         * invoke.texi : ditto
1309         * intrinsic.texi : ditto
1310         * trans.c : ditto
1311         * trans.h : ditto
1312         * intrinsic.c : ditto
1313         * interface.c : ditto
1314         * iresolve.c : ditto
1315         * trans-stmt.c : ditto
1316         * trans-stmt.h : ditto
1317         * parse,c : ditto
1318         * match.h : ditto
1319         * error.c : ditto
1320
1321 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
1322
1323         PR fortran/43450
1324         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
1325         do not assert the context of derived types.
1326
1327 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1328
1329         PR fortran/43409
1330         * ioparm.def: Change inquire size variable to type pointer to
1331         GFC_IO_INT type.
1332
1333 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
1334
1335         PR fortran/43039
1336         * trans-expr.c (conv_parent_component_references): Ensure that
1337         'dt' has a backend_decl.
1338
1339         PR fortran/43043
1340         * trans-expr.c (gfc_conv_structure): Ensure that the derived
1341         type has a backend_decl.
1342
1343         PR fortran/43044
1344         * resolve.c (resolve_global_procedure): Check that the 'cl'
1345         structure is not NULL.
1346
1347 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
1348
1349         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
1350         redundant tab.
1351
1352 2010-03-17  Tobias Burnus  <burnus@net-b.de>
1353
1354         PR fortran/43331
1355         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
1356         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
1357         check.
1358         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
1359         pointees as having explizit size.
1360         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
1361         check.
1362         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
1363         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
1364         * resolve.c (resolve_symbol): Handle cp_was_assumed.
1365         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
1366         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
1367         pointers.
1368
1369 2010-03-14  Tobias Burnus  <burnus@net-b.de>
1370
1371         PR fortran/43362
1372         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
1373         (resolve_ordinary_assign): Add check to avoid segfault.
1374
1375 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
1376
1377         PR fortran/43291
1378         PR fortran/43326
1379         * resolve.c (resolve_compcall): Add new boolean dummy argument
1380         'class_members'. Only resolve expression at end if false.
1381         Remove redundant, static variable 'class_object'.
1382         (check_class_members): Add extra argument to call of
1383         resolve_compcall.
1384         (resolve_typebound_function): Renamed resolve_class_compcall.
1385         Do all the detection of class references here. Correct calls to
1386         resolve_compcall for extra argument.
1387         (resolve_typebound_subroutine): resolve_class_typebound_call
1388         renamed. Otherwise same as resolve_typebound_function.
1389         (gfc_resolve_expr): Call resolve_typebound_function.
1390         (resolve_code): Call resolve_typebound_subroutine.
1391
1392 2010-03-10  Tobias Burnus  <burnus@net-b.de
1393
1394         PR fortran/43303
1395         * symbol.c (get_iso_c_sym): Set sym->result.
1396
1397 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
1398
1399         PR fortran/43256
1400         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
1401         for TBPs, otherwise they will not be resolved properly.
1402         (resolve_function): Use 'value.function.esym' instead of
1403         'value.function.name' to check if we're dealing with a TBP.
1404         (check_class_members): Set correct type of passed object for all TBPs,
1405         not only generic ones, except if the type is abstract.
1406
1407 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
1408
1409         PR fortran/43244
1410         * decl.c (gfc_match_final_decl): Make sure variable names starting with
1411         'final...' are not misinterpreted as FINAL statements.
1412
1413 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
1414
1415         PR fortran/43243
1416         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
1417         allocatable ultimate components do not need temporaries, whilst
1418         ultimate pointer components do.
1419
1420 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
1421
1422         PR fortran/43169
1423         * resolve.c (resolve_code): Correctly set gfc_current_ns for
1424         EXEC_SELECT_TYPE.
1425         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
1426         (gfc_pure): Ditto.
1427
1428 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
1429
1430         PR fortran/43180
1431         * trans-array.c (gfc_conv_array_parameter): A full array of
1432         derived type need not be restricted to a symbol without an
1433         array spec to use the call to gfc_conv_expr_descriptor.
1434
1435         PR fortran/43173
1436         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
1437         allocatable arrays do not need temporaries.
1438
1439 2010-03-01  Tobias Burnus  <burnus@net-b.de>
1440
1441         PR fortran/43199
1442         * resolve.c (find_array_spec): Handle REF_COMPONENT with
1443         CLASS components.
1444
1445 2010-02-28  Tobias Burnus  <burnus@net-b.de>
1446
1447         PR fortran/43205
1448         * trans-expr.c (is_zero_initializer_p): Move up in the file.
1449         (gfc_conv_initializer): Handle zero initializer as special case.
1450
1451 2010-02-27  Tobias Burnus  <burnus@net-b.de>
1452
1453         PR fortran/43185
1454         * resolve.c (resolve_fl_variable_derived): Imply SAVE
1455         for module variables for Fortran 2008.
1456
1457 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
1458
1459         PR debug/43166
1460         * trans-common.c (build_common_decl): Also update DECL_MODE,
1461         and DECL_SIZE when encountering a larger common block and call
1462         layout_decl.
1463
1464 2010-02-24  Tobias Burnus  <burnus@net-b.de>
1465
1466         PR fortran/43042
1467         * trans-expr.c (gfc_conv_initializer): Call directly
1468         gfc_conv_constant for C_NULL_(FUN)PTR.
1469
1470 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
1471
1472         PR fortran/43072
1473         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
1474         checking the rest of the dimensions for elements.
1475
1476 2010-02-21  Tobias Burnus  <burnus@net-b.de>
1477
1478         PR fortran/35259
1479         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
1480         * lang.opt: Ditto.
1481         * option.c (gfc_init_options,gfc_handle_option): Ditto.
1482         * trans-expr.c (gfc_conv_expr_op): Use the flag.
1483         * invoke.texi: Document new -fno-protect-parens flag.
1484
1485 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
1486
1487         PR fortran/36932
1488         PR fortran/36933
1489         PR fortran/43072
1490         PR fortran/43111
1491         * dependency.c (gfc_check_argument_var_dependency): Use enum
1492         value instead of arithmetic vaue for 'elemental'.
1493         (check_data_pointer_types): New function.
1494         (gfc_check_dependency): Call check_data_pointer_types.
1495         * trans-array.h : Change fourth argument of
1496         gfc_conv_array_parameter to boolean.
1497         * trans-array.c (gfc_conv_array_parameter): A contiguous array
1498         can be a dummy but it must not be assumed shape or deferred.
1499         Change fourth argument to boolean. Array constructor exprs will
1500         always be contiguous and do not need packing and unpacking.
1501         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
1502         space and change fourth argument of gfc_conv_array_parameter
1503         to boolean.
1504         (gfc_trans_arrayfunc_assign): Change fourth argument of
1505         gfc_conv_array_parameter to boolean.
1506         * trans-io.c (gfc_convert_array_to_string): The same.
1507         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
1508
1509 2010-02-20  Tobias Burnus  <burnus@net-b.de>
1510
1511         PR fortran/42958
1512         * libgfortran.h: Add GFC_RTCHECK_MEM.
1513         * invoke.texi (-fcheck=): Document -fcheck=mem.
1514         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
1515         and enable malloc-success check only with -fcheck=mem.
1516         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
1517
1518 2010-02-16  Tobias Burnus  <burnus@net-b.de>
1519
1520         PR fortran/43040
1521         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
1522         * intrinsic.c (add_functions): Ditto.
1523         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
1524         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
1525
1526 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1527
1528         PR fortran/32382
1529         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
1530         gfc_trans_do prototype.
1531         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
1532         a loop exit condition.  If exit condition is given, build the loop exit
1533         code, checking IO results of implied do loops in READ and WRITE.
1534         (gfc_trans_do): Likewise.
1535         * trans.c (trans_code): New static work function, previously
1536         gfc_trans_code. Passes exit condition to gfc_trans_do.
1537         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
1538         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
1539         * trans-io.c (build_dt): Build an exit condition to allow checking IO
1540         result status bits in the dtparm structure. Use this condition in call
1541         to gfc_trans_code_cond.
1542
1543 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
1544
1545         PR fortran/41113
1546         PR fortran/41117
1547         * trans-array.c (gfc_conv_array_parameter): Use
1548         gfc_full_array_ref_p to detect full and contiguous variable
1549         arrays. Full array components and contiguous arrays do not need
1550         internal_pack and internal_unpack.
1551
1552 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR fortran/43030
1555         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
1556
1557         PR fortran/43029
1558         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
1559         here.
1560         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
1561         MATCH_ERROR.
1562
1563 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
1564             Tobias Burnus <burnus@net-b.de>
1565
1566         PR fortran/40823
1567         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
1568
1569 2010-02-10  Tobias Burnus  <burnus@net-b.de>
1570
1571         PR fortran/43015
1572         * trans-decl.c (gfc_generate_function_code): Only check
1573         actual-vs.-dummy character bounds if not bind(C).
1574
1575 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
1576
1577         PR fortran/42309
1578         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
1579         info->dimen after info has been freed.
1580
1581 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1582
1583         PR fortran/42999
1584         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
1585         with iterators.
1586
1587 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
1588
1589         * module.c (fix_mio_expr): Declare sym.
1590
1591 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
1592
1593         PR fortran/41869
1594         * module.c (fix_mio_expr): Fix for private generic procedures.
1595
1596 2010-02-09  Daniel Kraft  <d@domob.eu>
1597
1598         PR fortran/39171
1599         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
1600         length to be correct and issue only with -Wsurprising.
1601         * invoke.texi (Wsurprising): Mention this new warning that is
1602         turned on by -Wsurprising.
1603
1604 2010-02-09  Daniel Kraft  <d@domob.eu>
1605
1606         PR fortran/41507
1607         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
1608         can be CHARACTER type.
1609         (MINVAL), (MAXLOC), (MINLOC): Ditto.
1610
1611 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
1612
1613         PR fortran/42309
1614         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
1615         'formal_ptr'. If this is true, give returned descriptor unity
1616         lbounds, in all dimensions, and the appropriate offset.
1617         (gfc_conv_procedure_call); If formal is a pointer, set the last
1618         argument of gfc_conv_subref_array_arg to true.
1619         * trans.h : Add last argument for gfc_conv_subref_array_arg.
1620         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
1621         new arg of gfc_conv_subref_array_arg to false.
1622         * trans-stmt.c (forall_make_variable_temp): The same.
1623
1624 2010-02-03  Tobias Burnus  <burnus@net-b.de>
1625
1626         PR fortran/42936
1627         * interface.c (compare_parameter): Disable rank-checking
1628         for NULL().
1629
1630 2010-02-02  Tobias Burnus  <burnus@net-b.de>
1631
1632         PR fortran/42650
1633         * parse.c (decode_specification_statement): Use sym->result not sym.
1634
1635 2010-02-01  Tobias Burnus  <burnus@net-b.de>
1636
1637         PR fortran/42922
1638         * decl.c (variable_decl): Allow default initializer in
1639         TYPE declarations in PURE functions.
1640
1641 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
1642
1643         PR fortran/42888
1644         * resolve.c (resolve_allocate_expr): Move default initialization code
1645         here from gfc_trans_allocate.
1646         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
1647         EXEC_INIT_ASSIGN.
1648         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
1649         of CLASS variables via memcpy.
1650         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
1651         to resolve_allocate_expr.
1652
1653 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
1654
1655         PR fortran/38324
1656         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
1657         * gfortran.h : Add prototype for above.
1658         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
1659         (gfc_trans_subcomponent_assign): Call new function to replace
1660         the code to deal with allocatable components.
1661         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
1662         gfc_get_full_arrayspec_from_expr to replace existing code.
1663
1664 2010-01-25  Tobias Burnus  <burnus@net-b.de>
1665
1666         PR fortran/42858
1667         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
1668         check.
1669
1670 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
1671
1672         PR fortran/41044
1673         PR fortran/41167
1674         * expr.c (remove_subobject_ref): If the constructor is NULL use
1675         the expression as the source.
1676         (simplify_const_ref): Change the type of expression if
1677         there are component references.  Allow for substring to be at
1678         the end of an arbitrarily long chain of references.  If an
1679         element is found that is not in an EXPR_ARRAY, assume that this
1680         is scalar initialization of array. Call remove_subobject_ref in
1681         this case with NULL second argument.
1682
1683 2010-01-24  Tobias Burnus  <burnus@net-b.de>
1684
1685         PR fortran/39304
1686         * array.c (gfc_array_dimen_size): Use correct specific
1687         function in the check.
1688
1689 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
1690
1691         PR fortran/42736
1692         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
1693         is required, turn any trailing array elements after a range
1694         into ranges so that offsets can be calculated.
1695
1696 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
1697
1698         * module.c (mio_f2k_derived): Use enumerator as initializer of
1699         enum variable.
1700
1701         PR bootstrap/42812
1702         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
1703         bitfield of width 2.
1704
1705 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
1706
1707         PR fortran/42804
1708         * resolve.c (extract_compcall_passed_object): Set locus for
1709         passed-object argument.
1710         (extract_ppc_passed_object): Set locus and correctly remove PPC
1711         reference.
1712
1713 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
1714
1715         PR fortran/42783
1716         * trans-decl.c (add_argument_checking): Do not use the backend
1717         decl directly to test for the presence of an optional dummy
1718         argument.  Use gfc_conv_expr_present, remembering to set the
1719         symbol referenced.
1720
1721         PR fortran/42772
1722         * trans-decl.c (gfc_generate_function_code): Small white space
1723         changes. If 'recurcheckvar' is NULL do not try to reset it.
1724
1725 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
1726
1727         PR fortran/42545
1728         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
1729         component for extended types.
1730         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
1731         and take care of parent component accessibility.
1732
1733 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
1734
1735         PR fortran/42677
1736         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
1737         * interface.c (check_interface1): Move a warning message here from
1738         resolve_fl_procedure.
1739         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
1740         * module.c (read_module): Remove call to gfc_check_interfaces, since
1741         this comes too early here.
1742         * resolve.c (resolve_fl_procedure): Move warning message to
1743         check_interface1.
1744
1745 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1746
1747         PR fortran/42684
1748         * interface.c (check_interface1): Pass symbol name rather than NULL to
1749         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
1750         trap MULL.
1751         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
1752         than NULL to gfc_compare_interfaces.
1753
1754 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
1755
1756         PR fortran/41478
1757         * trans-array.c (duplicate_allocatable):  Static version of
1758         gfc_duplicate_allocatable with provision to handle scalar
1759         components. New boolean argument to switch off call to malloc
1760         if true.
1761         (gfc_duplicate_allocatable): New function to call above with
1762         new argument false.
1763         (gfc_copy_allocatable_data): New function to call above with
1764         new argument true.
1765         (structure_alloc_comps): Do not apply indirect reference to
1766         scalar pointers. Add new section to copy allocatable components
1767         of arrays. Extend copying of allocatable components to include
1768         scalars.
1769         (gfc_copy_only_alloc_comp): New function to copy allocatable
1770         component derived types, without allocating the base structure.
1771         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
1772         Add primitive for gfc_copy_only_alloc_comp.
1773         * trans-expr.c (gfc_conv_procedure_call): After calls to
1774         transformational functions with results that are derived types
1775         with allocatable components, copy the components in the result.
1776         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
1777         of lhs derived types before allocation.
1778         
1779 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
1780
1781         PR fortran/42481
1782         * module.c (load_generic_interfaces): If a procedure that is
1783         use associated but not generic is given an interface that
1784         includes itself, then make it generic.
1785
1786 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
1787             Shujing Zhao  <pearly.zhao@oracle.com>
1788
1789         PR translation/42469
1790         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
1791         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
1792         character between option name and help text.
1793
1794 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1795
1796         PR fortran/20923
1797         PR fortran/32489
1798         * trans-array.c (gfc_conv_array_initializer): Change call to
1799         gfc_error_now to call to gfc_fatal_error.
1800         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
1801         (is_constant_element): Changed name from constant_element.
1802         (gfc_constant_ac): Only use expand_construuctor for expression
1803         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
1804         call gfc_is_constant_expr.
1805         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
1806         message.
1807         * resolve.c (gfc_is_expandable_expr): New function that determiners if
1808         array expressions should have their constructors expanded.
1809         (gfc_resolve_expr): Use new function to determine whether or not to call
1810         gfc_expand_constructor.
1811
1812 2010-01-09  Tobias Burnus  <burnus@net-b.de>
1813
1814         PR fortran/41298
1815         * trans-expr.c (gfc_trans_structure_assign): Handle
1816         c_null_(fun)ptr.
1817         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
1818         to the constructor for c_null_(fun)ptr.
1819         * resolve.c (resolve_structure_cons): Add special case
1820         for c_null_(fun)ptr.
1821
1822 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
1823
1824         * gfortranspec.c (lang_specific_driver): Update copyright notice
1825         dates.
1826
1827 2010-01-08  Tobias Burnus  <burnus@net-b.de>
1828
1829         PR/fortran 25829
1830         * symbol.c (check_conflict, gfc_copy_attr): Add
1831         ASYNCHRONOUS support.
1832         (gfc_add_asynchronous): New function.
1833         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
1834         (gfc_match_asynchronous): New function.
1835         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
1836         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
1837         (gfc_add_asynchronous): New Prototype.
1838         * module.c (ab_attribute, mio_symbol_attribute): Add
1839         ASYNCHRONOUS support.
1840         * resolve.c (was_declared): Ditto.
1841         * match.h (gfc_match_asynchronous): New prototype.
1842         * parse.c (decode_specification_statement,decode_statement):
1843         Add ASYNCHRONOUS support.
1844
1845 2010-01-07  Tobias Burnus  <burnus@net-b.de>
1846
1847         PR fortran/42597
1848         * trans-decl.c (get_proc_pointer_decl): Fix call to
1849         gfc_conv_initializer for array-valued proc-pointer funcs.
1850
1851 2010-01-07  Tobias Burnus  <burnus@net-b.de>
1852
1853         PR fortran/41872
1854         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
1855         allocatable scalars with SAVE attribute.
1856
1857 2010-01-05  Tobias Burnus  <burnus@net-b.de>
1858
1859         PR fortran/42517
1860         * options.c (gfc_post_options): Set -frecursion
1861         when -fopenmp is used.
1862
1863 2010-01-05  Tobias Burnus  <burnus@net-b.de>
1864
1865         PR fortran/41872
1866         * trans-expr.c (gfc_conv_procedure_call): Nullify
1867         return value for allocatable-scalar character functions.
1868
1869 2010-01-04  Tobias Burnus  <burnus@net-b.de>
1870
1871         PR fortran/36161
1872         * error.c (error_printf, gfc_warning, gfc_notify_std,
1873         gfc_warning_now, gfc_error, gfc_error_now,
1874         gfc_fatal_error): Change argument name from nocmsgid to
1875         gmsgid to enable (x)gettext's % checking.
1876
1877 2010-01-04  Tobias Burnus  <burnus@net-b.de>
1878         
1879         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
1880
1881 2010-01-04  Tobias Burnus  <burnus@net-b.de>
1882
1883         PR fortran/41872
1884         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
1885         for functions returning allocatable scalars.
1886         * trans-stmt.c (gfc_trans_allocate): Emmit error when
1887         reallocating an allocatable scalar.
1888         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
1889         in comment.
1890         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
1891         allocatable scalars.
1892         (gfc_generate_function_code): Nullify result variable for
1893         allocatable scalars.
1894         
1895         PR fortran/40849
1896         * module.c (gfc_use_module): Fix warning string to allow
1897         for translation.
1898
1899         PR fortran/42517
1900         * invoke.texi (-fcheck=recursion): Mention that the checking
1901         is also disabled for -frecursive.
1902         * trans-decl.c (gfc_generate_function_code): Disable
1903         -fcheck=recursion when -frecursive is used.
1904
1905         * intrinsic.texi (iso_c_binding): Improve wording.
1906
1907 \f
1908 Copyright (C) 2010 Free Software Foundation, Inc.
1909
1910 Copying and distribution of this file, with or without modification,
1911 are permitted in any medium without royalty provided the copyright
1912 notice and this notice are preserved.