OSDN Git Service

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