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