OSDN Git Service

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