OSDN Git Service

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