OSDN Git Service

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