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