OSDN Git Service

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