OSDN Git Service

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