OSDN Git Service

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