OSDN Git Service

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