OSDN Git Service

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