OSDN Git Service

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