OSDN Git Service

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