OSDN Git Service

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