OSDN Git Service

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