OSDN Git Service

2010-09-09 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-09-09  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/43665
4         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
5         STAT): Show also syntax for the function version.
6         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
7          add_sym_3s_intent): Remove function.
8         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
9         as argument.
10         (add_sym_2_intent): New function.
11         (add_functions): Set intent for functions which modify
12         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
13         argument name of hostnm from "a" to "c"
14         (add_subroutines): Change add_sym_*s_intent to
15         add_sym_*s and add intent to the add_sym_*s calls.
16
17 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18
19         PR fortran/38282
20         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
21         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
22         * gfortran.h: Define ISYM values for above intrinsics.
23         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
24         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
25         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
26         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
27         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
28         gfc_simplify_merge_bits, gfc_simplify_rshift,
29         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
30         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
31         gfc_resolve_shift): New prototypes.
32         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
33         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
34         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
35         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
36         functions.
37         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
38         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
39         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
40         functions.
41         (gfc_conv_intrinsic_function): Call above static functions.
42         * intrinsic.texi: Document new intrinsics.
43         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
44         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
45         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
46         gfc_simplify_merge_bits, gfc_simplify_rshift, 
47         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
48         New functions.
49
50 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
51
52         * frontend-passes.c (optimize_code_node): Walk block chain by default.
53
54         PR fortran/45597
55         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
56         instead of code->block.
57
58         PR fortran/45595
59         * openmp.c (resolve_omp_do): Report not enough do loops for
60         collapse even if block->next is NULL.
61
62 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
63
64         PR fortran/45576
65         * dependency.c (gfc_deb_compare_expr):  Take missing optional
66         arguments into account.
67
68 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
69
70         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
71         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
72         (gfc_build_intrinsic_function_decls): Don't build the
73         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
74         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
75         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
76         of calling clz128/ctz128 library functions.
77
78 2010-09-07  Jan Hubicka  <jh@suse.cz>
79
80         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
81         initializers.
82
83 2010-09-07  Tobias Burnus <burnus@net-b.de>
84         
85         PR fortran/45583
86         * intrinsic.texi (COS): Remove superfluous "n".
87
88 2010-09-07  Tobias Burnus <burnus@net-b.de>
89
90         PR fortran/45186
91         * trans-array.c (gfc_conv_descriptor_data_get,
92         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
93         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
94         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
95         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
96         gfc_conv_shift_descriptor_lbound,
97         gfc_set_loop_bounds_from_array_spec,
98         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
99         gfc_conv_array_transpose, gfc_get_iteration_count,
100         gfc_grow_array, gfc_trans_array_ctor_element,
101         gfc_trans_array_constructor_subarray,
102         gfc_trans_array_constructor_value,
103         constant_array_constructor_loop_size, gfc_trans_array_constructor,
104         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
105         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
106         gfc_conv_array_ref, gfc_trans_preloop_setup,
107         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
108         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
109         gfc_conv_descriptor_size, gfc_array_init_size,
110         gfc_array_allocate, gfc_array_deallocate,
111         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
112         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
113         get_array_charlen, gfc_conv_expr_descriptor,
114         array_parameter_size, gfc_conv_array_parameter,
115         gfc_trans_dealloc_allocated, get_full_array_size,
116         duplicate_allocatable,
117         structure_alloc_comps): Change fold_build[0-9] to
118         fold_build[0-9]_loc.
119         (duplicate_allocatable, structure_alloc_comps,
120         gfc_duplicate_allocatable): Add space after function name.
121
122 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
123
124         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
125         checking string length value.
126         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
127         gfc_charlen_type_node type.
128
129         PR fortran/45564
130         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
131         length to gfc_charlen_type_node.
132
133 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
134
135         PR fortran/36931
136         * frontend-passes.c (optimize_binop_array_assignment):  New
137         function.
138         (optimize_assignment):  Call it.
139
140 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
141
142         PR fortran/34145
143         * trans-expr.c (gfc_conv_substring):  If start and end
144         of the string reference are equal, set the length to one.
145
146 2010-09-06  Tobias Burnus  <burnus@net-b.de>
147
148         PR fortran/45560
149         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
150
151 2010-09-06  Tobias Burnus  <burnus@net-b.de>
152
153         PR fortran/45560
154         * dump-parse-tree.c (gfc_debug_expr): New function.
155
156 2010-09-06  Tobias Burnus  <burnus@net-b.de>
157
158         PR fortran/38282
159         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
160         (check_specific): Special case for those intrinsics.
161         * gfortran.h (gfc_isym_id): Add new intrinsics
162         * intrinsic.h (gfc_check_transf_bit_intrins,
163         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
164         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
165         New prototypes.
166         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
167         gfc_resolve_iparity, resolve_transformational): New functions.
168         (gfc_resolve_product, gfc_resolve_sum,
169         gfc_resolve_parity): Use resolve_transformational.
170         * check.c (gfc_check_transf_bit_intrins): New function.
171         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
172         gfc_simplify_iparity, do_bit_any, do_bit_ior,
173         do_bit_xor, simplify_transformation): New functions.
174         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
175         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
176         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
177         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
178         Handle IALL, IANY and IPARITY intrinsics.       
179         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
180         order.
181         (IALL, IANY, IPARITY): Document new intrinsics.
182
183 2010-09-05  Tobias Burnus <burnus@net-b.de>
184
185         PR fortran/45186
186         * f95-lang.c (gfc_truthvalue_conversion): Use
187         fold_build[0-9]_loc instead of fold_build[0-9].
188         * convert.c (convert): Ditto.
189         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
190         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
191         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
192         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
193         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
194         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
195         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
196         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
197         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
198         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
199         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
200         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
201         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
202         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
203         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
204         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
205         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
206         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
207         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
208         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
209         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
210         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
211         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
212         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
213         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
214         gfc_conv_associated, gfc_conv_same_type_as,
215         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
216
217 2010-09-04  Tobias Burnus  <burnus@net-b.de>
218
219         PR fortran/45530
220         * resolve.c (resolve_fl_namelist): Change constraint checking
221         order to prevent endless loop.
222
223 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
224
225         PR fortran/45507
226         * resolve.c (resolve_allocate_expr): Generate default initializers
227         already at this point, resolve them and put them into expr3, ...
228         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
229         translation stage.
230
231 2010-09-03  Tobias Burnus  <burnus@net-b.de>
232
233         PR fortran/45186
234         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
235         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
236         of build_call_expr.
237         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
238         gfc_conv_string_length, gfc_conv_substring,
239         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
240         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
241         gfc_conv_expr_op, gfc_build_compare_string,
242         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
243         gfc_conv_derived_to_class, conv_isocbinding_procedure,
244         gfc_conv_procedure_call, fill_with_spaces,
245         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
246         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
247         gfc_trans_scalar_assign, gfc_trans_zero_assign,
248         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
249         fold_build[0-9] to fold_build[0-9]_loc.
250         * trans-io.c (set_parameter_const, set_parameter_value,
251         set_parameter_ref, gfc_convert_array_to_string, set_string,
252         set_internal_unit, io_result, set_error_locus,
253         nml_get_addr_expr, build_dt): Ditto.
254         * trans-openmp.c (gfc_omp_clause_default_ctor,
255         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
256         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
257         gfc_trans_omp_do): Ditto.
258         * trans.c (gfc_add_modify, gfc_build_addr_expr,
259         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
260         gfc_trans_runtime_check, gfc_call_malloc,
261         gfc_allocate_with_status, gfc_allocate_array_with_status,
262         gfc_call_free, gfc_deallocate_with_status,
263         gfc_call_realloc): Ditto.
264
265 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
266
267         PR fortran/45159
268         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
269         arglists for pure user functions, or for those intrinsic
270         functions which are also pure.
271         * intrinsics.c (add_conv):  Mark conversion functions as pure.
272         (add_char_conversions):  Likewise.
273
274 2010-09-03  Daniel Kraft  <d@domob.eu>
275
276         PR fortran/34162
277         * resolve.c (resolve_actual_arglist): Allow internal procedure
278         as actual argument with Fortran 2008.
279
280 2010-09-03  Daniel Kraft  <d@domob.eu>
281
282         PR fortran/44602
283         * gfortran.h (struct gfc_code): Renamed `whichloop' to
284         `which_construct' as this is no longer restricted to loops.
285         * parse.h (struct gfc_state_data): New field `construct'.
286         * match.c (match_exit_cycle): Handle EXIT from non-loops.
287         * parse.c (push_state): Set `construct' field.
288         * resolve.c (resolve_select_type): Extend comment.
289         * trans-stmt.c (gfc_trans_if): Add exit label.
290         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
291         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
292         (gfc_trans_do), (gfc_trans_do_while): Ditto.
293         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
294         (gfc_trans_cycle): Ditto.
295         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
296
297 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
298
299         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
300         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
301         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
302         * intrinsic.texi (RSHIFT): Fix documentation.
303
304 2010-09-02  Tobias Burnus  <burnus@net-b.de>
305
306         PR fortran/45186
307         * trans-common.c (create_common): Change build[0-9] to
308         build[0-9]_loc.
309         * trans-const.c (gfc_conv_constant_to_tree,
310         gfc_conv_constant_to_tree): Ditto.
311         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
312         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
313         add_argument_checking, create_main_function,
314         gfc_generate_return): Ditto.
315         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
316         * trans-stmt.c (allocate_temp_for_forall_nest_1,
317         compute_inner_temp_size, compute_overall_iter_number,
318         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
319         gfc_conv_elemental_dependencies, gfc_do_allocate,
320         gfc_evaluate_where_mask, gfc_trans_allocate,
321         gfc_trans_arithmetic_if, gfc_trans_call,
322         gfc_trans_character_select, gfc_trans_deallocate,
323         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
324         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
325         gfc_trans_integer_select, gfc_trans_logical_select,
326         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
327         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
328         gfc_trans_where_assign) Ditto.
329
330 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
331
332         PR fortran/44541
333         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
334         variable.
335
336 2010-09-02  Tobias Burnus  <burnus@net-b.de>
337
338         PR fortran/45489
339         * resolve.c (apply_default_init): Mark symbol as referenced,
340         if it is initialized.
341         (resolve_symbol): Change intialized check for BT_DERIVED such
342         that also function results get initialized; remove now obsolete
343         gfc_set_sym_referenced for BT_CLASS.
344
345 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
346
347         PR fortran/44541
348         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
349         * resolve.c (resolve_allocate_expr): Defer handling of default
350         initialization to 'gfc_trans_allocate'.
351         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
352         (resolve_fl_derived): Suppress error messages for vtypes.
353         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
354         polymorphic MOLD expression.
355         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
356         dummy initialization.
357
358 2010-09-01  Tobias Burnus  <burnus@net-b.de>
359
360         * gfortran.texi (preprocessing): Update URL to COCO.
361
362 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
363
364         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
365         array quad_decls. Remove unnecessary assignment.
366
367 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
368
369         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
370         other than long double.
371         * mathbuiltins.def: Add builtins from the POW and CPOW family.
372         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
373         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
374         prefix to function name.
375         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
376         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
377         function name.
378         (gfc_conv_intrinsic_exponent): Likewise.
379         (gfc_conv_intrinsic_abs): Likewise.
380         (gfc_conv_intrinsic_mod): Likewise.
381         (gfc_conv_intrinsic_sign): Likewise.
382         (gfc_conv_intrinsic_arith): Likewise.
383         (gfc_conv_intrinsic_fraction): Likewise.
384         (gfc_conv_intrinsic_nearest): Likewise.
385         (gfc_conv_intrinsic_spacing): Likewise.
386         (gfc_conv_intrinsic_rrspacing): Likewise.
387         (gfc_conv_intrinsic_scale): Likewise.
388         (gfc_conv_intrinsic_set_exponent): Likewise.
389
390 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
391
392         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
393         * intrinsic.h (gfc_resolve_execute_command_line): New function.
394         * iresolve.c (gfc_resolve_execute_command_line): New function.
395         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
396         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
397
398 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
399
400         PR fortran/38282
401         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
402         and parity{,l,ll} builtins.
403         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
404         (gfc_conv_intrinsic_function): Call above new functions.
405         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
406         functions.
407         * intrinsic.texi: Document POPCNT and POPPAR.
408
409 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
410
411         PR fortran/45456
412         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
413
414 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
415
416         * Make-lang.in: Add frontend-passes.o dependencies.
417
418 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
419
420         PR fortran/42769
421         * resolve.c (resolve_structure_cons): For derived types, make sure the
422         type has been resolved.
423         (resolve_typebound_procedures): Make sure the vtab has been generated.
424
425 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
426
427         PR fortran/45439
428         * match.c (gfc_match_select_type): Give the associate-name the
429         FL_VARIABLE attribute.
430
431 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
432
433         * simplify.c (gfc_simplify_bessel_n2): Fix indention
434         and argument type.
435
436 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
437
438         PR fortran/45436
439         * trans-types.c (gfc_init_kinds): Disable TFmode.
440
441 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
442
443         PR fortran/45432
444         * match.c (gfc_match_allocate): Avoid double free on error.
445
446 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
447
448         PR fortran/32049
449         * gfortran.h (gfc_real_info): Add c_float128 field.
450         * mathbuiltins.def: Indicate which builtins are const.
451         * trans-types.h (float128_type_node, complex_float128_type_node,
452         gfc_real16_is_float128): New variables.
453         * trans-types.c (float128_type_node, complex_float128_type_node,
454         gfc_real16_is_float128): New variables.
455         (gfc_init_kinds): Allow TFmode.
456         (gfc_build_real_type): Mark __float128 types as such.
457         (gfc_init_types): Initialize float128_type_node and
458         complex_float128_type_node
459         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
460         argument of OTHER_BUILTIN macro.
461         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
462         (builtin_decl_for_precision): Special case for __float128.
463         (builtin_decl_for_float_kind): Likewise.
464         (define_quad_builtin): New function.
465         (gfc_build_intrinsic_lib_fndecls): Create all __float128
466         library decls if necessary. Store them in the real16_decl and
467         complex16_decl builtin map fields.
468         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
469         library function names.
470
471 2010-08-27  Tobias Burnus  <burnus@net-b.de>
472
473         PR fortran/33197
474         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
475         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
476         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
477         gfc_resolve_parity): New prototypes.
478         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
479         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
480         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
481         gfc_resolve_parity): New functions.
482         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
483         New functions.
484         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
485         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
486         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
487         * gcc/fortran/simplify.c (simplify_transformation_to_array):
488         Add post-processing opterator.
489         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
490         gfc_simplify_product, gfc_simplify_sum): Update call.
491         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
492         gfc_simplify_parity): New functions.
493
494 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
495
496         PR fortran/45420
497         * match.c (select_type_set_tmp): Add the possibility to reset the
498         temporary to NULL.
499         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
500
501 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
502
503         PR fortran/45159
504         * dependency.c (check_section_vs_section):  Single test for
505         identical strides which takes into account that only one
506         of the strides may be NULL.
507
508 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
509
510         PR fortran/43217
511         * primary.c (match_hollerith_constant): Calculate padding needed to
512         fill default integer and allocate string for that size.  Set pad bytes
513         to ' '.
514         * gfortran.h: Add hollerith pad value to type spec union.
515         * data.c (create_character_initializer): Fix spelling of function name.
516         Use hollerith pad value to calculate length.
517         * arith.c (hollerith2representation); Use hollerith pad value to
518         calculate length.
519
520 2010-08-26  Daniel Kraft  <d@domob.eu>
521
522         PR fortran/38936
523         PR fortran/44047
524         PR fortran/45384
525         * gfortran.h (struct gfc_association_list): New flag `dangling'.
526         (gfc_build_block_ns): Declared here...
527         * parse.h (gfc_build_block_ns): ...instead of here.
528         * trans.h (gfc_process_block_locals): Expect additionally the
529         gfc_association_list of BLOCK (if present).
530         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
531         * resolve.c (resolve_variable): Only check for invalid *array*
532         references on associate-names.
533         (resolve_assoc_var): New method with code previously in resolve_symbol.
534         (resolve_select_type): Use association to give the selector and
535         temporaries their values instead of ordinary assignment.
536         (resolve_fl_var_and_proc): Allow CLASS associate-names.
537         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
538         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
539         to `gfc_process_block_locals' to match new interface.
540         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
541         here automatically.
542         (gfc_process_block_locals): Defer them rather here when linked to
543         from the BLOCK's association list.
544
545 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
546
547         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
548         TREE_NOTHROW on fndecls that can't throw.  Set
549         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
550         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
551         gfor_fndecl_associated.
552
553 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
554
555         PR fortran/45380
556         * frontend-passes.c (optimize_equality): Don't optimize array equality
557
558 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
559
560         PR fortran/45366
561         * resolve.c (resolve_procedure_interface): New function split off from
562         'resolve_symbol'.
563         (resolve_formal_arglist): Call it here ...
564         (resolve_symbol): ... and here.
565
566 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
567
568         * Make-lang.in (gfortranspec.o): Update dependencies.
569         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
570         opts.h.
571         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
572         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
573         (g77_xargc): Make unsigned.
574         (g77_xargv): Change to g77_x_decoded_options.
575         (g77_newargc): Make unsigned.
576         (g77_newargv): Change to g77_new_decoded_options.
577         (strings_same, options_same): New.
578         (append_arg): Use cl_decoded_option structures.
579         (append_option): New.
580         (add_arg_libgfortran): New.
581         (lang_specific_driver): Use cl_decoded_option structures.
582
583 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
584
585         PR fortran/45271
586         PR fortran/45290
587         * class.c (add_proc_comp): Add static initializer for PPCs.
588         (add_procs_to_declared_vtab): Modified comment.
589         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
590         initializer if the component is part of a vtype.
591         (mio_component_list): Add argument 'vtype', pass it on to
592         'mio_component'.
593         (mio_symbol): Modified call to 'mio_component_list'.
594         * trans.h (gfc_conv_initializer): Modified prototype.
595         (gfc_trans_assign_vtab_procs): Removed.
596         * trans-common.c (create_common): Modified call to
597         'gfc_conv_initializer'.
598         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
599         gfc_emit_parameter_debug_info): Modified call to
600         'gfc_conv_initializer'.
601         (build_function_decl): Remove assertion.
602         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
603         Removed call to 'gfc_trans_assign_vtab_procs'.
604         (gfc_conv_initializer): Add argument 'procptr'.
605         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
606         (gfc_trans_assign_vtab_procs): Removed.
607         * trans-stmt.c (gfc_trans_allocate): Removed call to
608         'gfc_trans_assign_vtab_procs'.
609
610 2010-08-21  Tobias Burnus  <burnus@net-b.de>
611
612         PR fortran/36158
613         PR fortran/33197
614         * intrinsic.c (add_sym): Init value attribute.
615         (set_attr_value): New function.
616         (add_functions) Use it and add JN/YN resolvers.
617         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
618         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
619         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
620         * iresolve.c (gfc_resolve_bessel_n2): New function.
621         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
622         formal arg list.
623         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
624         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
625         * simplify.c (): For YN set to -INF if previous values
626         was -INF.
627         * trans-expr.c (gfc_conv_procedure_call): Don't crash
628         if sym->as is NULL.
629         * iresolve.c (gfc_resolve_extends_type_of): Set the
630         type of the dummy argument to the one of the actual.
631
632 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
633
634         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
635
636 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
637
638         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
639         comment, not -lg2c.
640
641 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
642
643         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
644
645 2010-08-19  Daniel Kraft  <d@domob.eu>
646
647         PR fortran/29785
648         PR fortran/45016
649         * trans.h (struct gfc_se): New flag `byref_noassign'.
650         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
651         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
652         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
653         and check for compile-time errors with those.
654         * trans-decl.c (trans_associate_var): Use new routine
655         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
656         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
657         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
658         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
659         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
660         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
661         rank remapping for assignment.
662
663 2010-08-19  Tobias Burnus  <burnus@net-b.de>
664
665         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
666         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
667         into recurrence.
668
669 2010-08-19  Tobias Burnus  <burnus@net-b.de>
670
671         PR fortran/36158
672         PR fortran/33197
673         * check.c (gfc_check_bessel_n2): New function.
674         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
675         * intrinsic.c (add_functions): Add transformational version
676         of the Bessel_jn/yn intrinsics.
677         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
678         gfc_simplify_bessel_yn2): New prototypes.
679         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
680         transformational variant.
681         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
682         Check for negative order.
683         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
684         gfc_simplify_bessel_yn2): New functions.
685
686 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
687
688         PR fortran/41859
689         * resolve.c (resolve_transfer): Traverse operands and set expression
690         to be checked to a non EXPR_OP type.
691
692 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
693
694         PR fortran/45290
695         * gfortran.h (gfc_add_save): Modified prototype.
696         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
697         (match_pointer_init): New function to match F08 pointer initialization.
698         (variable_decl,match_procedure_decl,match_ppc_decl): Use
699         'match_pointer_init'.
700         (match_attr_spec): Module variables are implicitly SAVE.
701         (gfc_match_save): Modified call to 'gfc_add_save'.
702         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
703         initialization.
704         * primary.c (gfc_variable_attr): Handle SAVE attribute.
705         * resolve.c (resolve_structure_cons): Add new argument and do pointer
706         initialization checks.
707         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
708         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
709         (resolve_fl_variable): Handle SAVE_IMPLICIT.
710         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
711         SAVE_IMPLICIT.
712         * trans-decl.c (gfc_create_module_variable): Module variables with
713         TARGET can already exist.
714         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
715         (gfc_conv_initializer): Implement non-NULL pointer
716         initialization.
717
718 2010-08-18  Tobias Burnus  <burnus@net-b.de>
719
720         PR fortran/45295
721         * intrinsic.texi (selected_char_kind): Document ISO_10646
722         support.
723
724 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
725
726         PR fortran/45304
727         * trans-decl.c (build_library_function_decl_1): Chain on
728         void_list_node instead of creating a new TREE_LIST.
729         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
730         * trans-types.c (gfc_get_function_type): Likewise.  Set
731         typelist to void_list_node for the main program.
732
733 2010-08-17  Daniel Kraft  <d@domob.eu>
734
735         PR fortran/38936
736         * gfortran.h (struct gfc_association_list): New member `where'.
737         (gfc_is_associate_pointer) New method.
738         * match.c (gfc_match_associate): Remember locus for each associate
739         name matched and do not try to set variable flag.
740         * parse.c (parse_associate): Use remembered locus for symbols.
741         * primary.c (match_variable): Instead of variable-flag check for
742         associate names set it for all such names used.
743         * symbol.c (gfc_is_associate_pointer): New method.
744         * resolve.c (resolve_block_construct): Don't generate assignments
745         to give associate-names their values.
746         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
747         (resolve_symbol): Set some more attributes for associate variables,
748         set variable flag here and check it and don't try to build an
749         explicitely shaped array-spec for array associate variables.
750         * trans-expr.c (gfc_conv_variable): Dereference in case of association
751         to scalar variable.
752         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
753         (gfc_sym_type): Return pointer type for association to scalar vars.
754         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
755         (trans_associate_var): New method.
756         (gfc_trans_deferred_vars): Handle association symbols.
757
758 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
759
760         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
761         RejectDriver.
762         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
763         RejectDriver.
764         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
765         OPT_MDX and OPT_MMDX.
766
767 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
768
769         * lang.opt (MDX, MMDX): Mark RejectDriver.
770
771 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
772
773         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
774         vtabs for generics any more).
775
776 2010-08-15  Daniel Kraft  <d@domob.eu>
777
778         PR fortran/38936
779         * gfortran.h (gfc_find_proc_namespace): New method.
780         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
781         around with namespace.
782         * symbol.c (gfc_find_proc_namespace): New method.
783         * trans-decl.c (gfc_build_qualified_array): Use it for correct
784         value of nest.
785         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
786         * parse.c (parse_associate): Removed assignment-generation here...
787         * resolve.c (resolve_block_construct): ...and added it here.
788         (resolve_variable): Handle names that are arrays but were not parsed
789         as such because of association.
790         (resolve_code): Fix BLOCK resolution.
791         (resolve_symbol): Generate array-spec for associate-names.
792
793 2010-08-15  Tobias Burnus  <burnus@net-b.de>
794
795         PR fortran/45211
796         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
797         (verify_c_interop): Handle unresolved DT with bind(C).
798
799 2010-08-15  Tobias Burnus  <burnus@net-b.de>
800
801         * trans-expr.c (gfc_conv_expr_present): Regard nullified
802         pointer arrays as absent.
803         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
804         dummys as absent argument.
805         * interface.c (compare_actual_formal,compare_parameter):
806         Ditto.
807
808 2010-08-15  Tobias Burnus  <burnus@net-b.de>
809
810         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
811         dummies with intent(in).
812
813 2010-08-15  Daniel Kraft  <d@domob.eu>
814
815         PR fortran/45197
816         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
817         routines not IMPURE also as PURE.
818         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
819         `NO_CLASS' in `CLASS_IMPURE'.
820         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
821         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
822         (add_functions): Ditto.
823         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
824         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
825         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
826         are not ALLOCATABLE and have their INTENT specified.
827
828 2010-08-13  Daniel Kraft  <d@domob.eu>
829
830         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
831         * array.c (gfc_match_array_spec): Match implied-shape specification and
832         handle AS_IMPLIED_SHAPE correctly otherwise.
833         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
834         (variable_decl): Some checks for implied-shape declaration.
835         * resolve.c (resolve_symbol): Assert that array-spec is no longer
836         AS_IMPLIED_SHAPE in any case.
837
838 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
839
840         * lang.opt (MD, MMD): Change to MDX and MMDX.
841         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
842
843 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
844
845         PR fortran/44595
846         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
847         'gfc_intrinsic_arg'.
848         (check_arglist,check_specific): Add reference to 'name' field.
849         (init_arglist): Remove reference to 'name' field.
850         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
851         * check.c (variable_check): Reverse order of checks. Respect intent of
852         formal arg.
853         (int_or_proc_check): New function.
854         (coarray_check): New function.
855         (allocatable_check): New function.
856         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
857         (gfc_check_complex): Use 'int_or_real_check'.
858         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
859         gfc_check_ucobound): Use 'coarray_check'.
860         (gfc_check_pack): Use 'real_or_complex_check'.
861         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
862         'int_or_proc_check'.
863         (scalar_check,type_check,numeric_check,int_or_real_check,
864         real_or_complex_check,kind_check,double_check,logical_array_check,
865         array_check,same_type_check,rank_check,nonoptional_check,
866         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
867         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
868         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
869         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
870         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
871         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
872         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
873         to 'name' field.
874
875 2010-08-10  Daniel Kraft  <d@domob.eu>
876
877         * gfortran.texi (Interoperability with C): Fix ordering in menu
878         and add new subsection about pointers.
879         (Interoperable Subroutines and Functions): Split off the pointer part.
880         (working with Pointers): New subsection with extended discussion
881         of pointers (especially procedure pointers).
882
883 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
884
885         PR fortran/44235
886         * array.c (gfc_ref_dimen_size):  Add end argument.
887         If end is non-NULL, calculate it.
888         (ref_size):  Adjust call to gfc_ref_dimen_size.
889         (gfc_array_dimen_size):  Likewise.
890         (gfc_array_res_shape):  Likewise.
891         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
892         * resolve.c (resolve_array_ref):  For stride not equal to -1,
893         fill in the lowest possible end.
894
895 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
896
897         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
898
899 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
900
901         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
902         alloca.
903         (check_some_aliasing): Likewise.
904         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
905         (gfc_conv_intrinsic_int): Likewise.
906         (gfc_conv_intrinsic_lib_function): Likewise.
907         (gfc_conv_intrinsic_cmplx): Likewise.
908         (gfc_conv_intrinsic_ctime): Likewise.
909         (gfc_conv_intrinsic_fdate): Likewise.
910         (gfc_conv_intrinsic_ttynam): Likewise.
911         (gfc_conv_intrinsic_minmax): Likewise.
912         (gfc_conv_intrinsic_minmax_char): Likewise.
913         (gfc_conv_intrinsic_ishftc): Likewise.
914         (gfc_conv_intrinsic_index_scan_verify): Likewise.
915         (gfc_conv_intrinsic_merge): Likewise.
916         (gfc_conv_intrinsic_trim): Likewise.
917         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
918
919 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
920
921         PR fortran/45159
922         * dependency.c (check_section_vs_section):  Handle cases where
923         the start expression coincides with the lower or upper
924         bound of the array.
925
926 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
927
928         PR fortran/42207
929         PR fortran/44064
930         PR fortran/44065
931         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
932         container types. Do not artificially increase refs. Commit symbols one
933         by one.
934         * interface.c (compare_parameter): Make sure vtabs are present before
935         generating module variables.
936         * resolve.c (resolve_allocate_expr): Ditto.
937
938 2010-08-04  Tobias Burnus  <burnus@net-b.de>
939
940         PR fortran/45183
941         PR fortran/44857
942         * resolve.c (resolve_structure_cons): Fix
943         freeing of charlen.
944
945 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
946
947         PR fortran/42051
948         PR fortran/44064
949         * symbol.c (changed_syms): Made static again.
950         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
951         Changed conditional internal error into assert.
952         Rename function to ...
953         (gfc_enforce_clean_symbol_state): ... this.
954         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
955         Rename the former to the latter.
956         * parse.c (decode_statement, decode_omp_directive,
957         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
958         on GFC_DEBUG.
959         (changed_syms): Remove declaration.
960         (next_statement): Use gfc_enforce_clean_symbol_state.
961
962 2010-08-04  Tobias Burnus  <burnus@net-b.de>
963
964         PR fortran/44857
965         * resolve.c (resolve_structure_cons): Fix handling of
966         initialization structure constructors with character
967         elements of the wrong length.
968         * array.c (gfc_check_iter_variable): Add NULL check.
969         (gfc_resolve_character_array_constructor): Also truncate
970         character length.
971
972 2010-08-04  Tobias Burnus  <burnus@net-b.de>
973
974         * trans-io.c (gfc_build_io_library_fndecls): Fix return
975         value of some libgfortran functions.
976
977 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
978
979         PR fortran/45159
980         * dependency.c (gfc_deb_compare_expr):  Remove any integer
981         conversion functions to larger types from both arguments.
982         Remove handling these functions futher down.
983
984 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
985
986         PR fortran/44584
987         PR fortran/45161
988         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
989         * resolve.c (resolve_tb_generic_targets): Check for errors.
990
991 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
992
993         PR fortran/45159
994         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
995         can be reversed.
996
997 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
998
999         PR fortran/36854
1000         * dependency.h:  Add prototype for gfc_are_identical_variables.
1001         * frontend-passes.c:  Include depencency.h.
1002         (optimimize_equality):  Use gfc_are_identical_variables.
1003         * dependency.c (identical_array_ref): New function.
1004         (gfc_are_identical_variables):  New function.
1005         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
1006         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
1007         prefix from statc function.
1008         (check_section_vs_section): Change arguments to gfc_array_ref,
1009         adjust function body accordingly.
1010
1011 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1012             Janus Weil  <janus@gcc.gnu.org>
1013
1014         PR fortran/42051
1015         PR fortran/44064
1016         PR fortran/45151
1017         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
1018         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1019         gfc_copy_formal_args, gfc_copy_formal_args_intr,
1020         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
1021         * parse.c (parse_derived_contains, parse_spec, parse_progunit): 
1022         Call reject_statement in case of error. 
1023         (match_deferred_characteritics): Call gfc_undo_symbols in case match
1024         fails.
1025
1026 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
1027
1028         PR fortran/44912
1029         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1030         (gfc_find_derived_vtab): Make vtabs and vtypes public.
1031         * module.c (read_module): When reading module files, always import
1032         vtab and vtype symbols.
1033
1034 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
1035
1036         PR fortran/42051
1037         PR fortran/44064
1038         * symbol.c (changed_syms): Made non-static.
1039         * parse.c (changed_syms): Declare new external. 
1040         (next_statement): Assert changed_syms is NULL at the beginning.
1041
1042 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
1043             Steven G. Kargl  <kargl@gcc.gnu.org>
1044
1045         PR fortran/44929
1046         * match.c (match_type_spec): Try to parse derived types before
1047         intrinsic types.
1048
1049 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
1050
1051         * gfortran.h (gfc_release_symbol): New prototype.
1052         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1053         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1054         Use gfc_release_symbol.
1055         * parse.c (gfc_fixup_sibling_symbols): Ditto.
1056         * resolve.c (resolve_symbol): Ditto.
1057
1058 2010-07-29  Tobias Burnus  <burnus@net-b.de>
1059
1060         PR fortran/45087
1061         PR fortran/45125
1062         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
1063         external procedure declarations in modules.
1064         (gfc_get_symbol_decl): Modify assert.
1065
1066 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1067
1068         PR fortran/44962
1069         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
1070
1071 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1072
1073         PR fortran/45004
1074         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
1075         (gfc_trans_class_assign): Modified prototype.
1076         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
1077         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
1078         (gfc_trans_class_assign): ... here. Modified actual arguments.
1079         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
1080         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
1081         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
1082
1083 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
1084
1085         PR fortran/42051
1086         PR fortran/44064
1087         * class.c (gfc_find_derived_vtab): Accept or discard newly created
1088         symbols before returning.
1089
1090 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
1091
1092         * lang.opt (cpp): Remove Joined and Separate markers.
1093         (cpp=): New internal option.
1094         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
1095         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
1096         OPT_cpp.
1097
1098 2010-07-29  Daniel Kraft  <d@domob.eu>
1099
1100         PR fortran/45117
1101         * array.c (resolve_array_bound): Fix error message to properly handle
1102         non-variable expressions.
1103
1104 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
1105
1106         * decl.c (free_value): Also free repeat field.
1107         * data.c (gfc_assign_data_value): Always free offset before returning.
1108
1109 2010-07-28  Daniel Kraft  <d@domob.eu>
1110
1111         * gfortran.h (gfc_build_intrinsic_call): New method.
1112         * expr.c (gfc_build_intrinsic_call): New method.
1113         * simplify.c (range_check): Ignore non-constant value.
1114         (simplify_bound_dim): Handle non-variable expressions and
1115         fix memory leak with non-free'ed expression.
1116         (simplify_bound): Handle non-variable expressions.
1117         (gfc_simplify_shape): Ditto.
1118         (gfc_simplify_size): Ditto, but only in certain cases possible.
1119
1120 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
1121
1122         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
1123         Remove.
1124
1125 2010-07-28  Tobias Burnus  <burnus@net-b.de>
1126
1127         PR fortran/45077
1128         * trans-types.c (gfc_get_derived_type): Fix DT declaration
1129         from modules for whole-file mode.
1130
1131 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1132
1133         * gfortran.h (gfc_handle_option): Update prototype and return
1134         value type.
1135         * options.c (gfc_handle_option): Update prototype and return value
1136         type.
1137
1138 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1139
1140         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
1141         decoded options in allocating deferred_opt.
1142         * cpp.h (gfc_cpp_init_options): Update prototype.
1143         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
1144         * gfortran.h (gfc_option_lang_mask): New.
1145         (gfc_init_options): Update prototype.
1146         * options.c (gfc_option_lang_mask): New.
1147         (gfc_init_options): Update prototype.  Pass new arguments to
1148         gfc_cpp_init_options.
1149
1150 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1151
1152         PR fortran/40873
1153         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
1154         for functions which are later in the same file.
1155         (gfc_create_function_decl, build_function_decl,
1156         build_entry_thunks): Add global argument.
1157         * trans.c (gfc_generate_module_code): Update
1158         gfc_create_function_decl call.
1159         * trans.h (gfc_create_function_decl): Update prototype.
1160         * resolve.c (resolve_global_procedure): Also resolve for
1161         IFSRC_IFBODY.
1162
1163 2010-07-26  Richard Henderson  <rth@redhat.com>
1164
1165         PR target/44132
1166         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
1167         (gfc_write_global_declarations): New.
1168
1169 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1170
1171         PR fortran/45066
1172         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
1173         for call to transfer_namelist_element.
1174         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
1175         for -fwhole-file.
1176
1177 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1178
1179         PR fortran/40628
1180         * Make-lang.in:  Add fortran/frontend-passes.o.
1181         * gfortran.h:  Add prototype for gfc_run_passes.
1182         * resolve.c (gfc_resolve):  Call gfc_run_passes.
1183         * frontend-passes.c:  New file.
1184
1185 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1186
1187         PR fortran/42852
1188         * scanner.c (gfc_next_char_literal): Enable truncation warning for
1189         free-form '&'.
1190
1191 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
1192
1193         PR fortran/44660
1194         * gfortran.h (gfc_namespace): New field old_equiv.
1195         (gfc_free_equiv_until): New prototype.
1196         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
1197         a parameterized stop condition.
1198         (gfc_free_equiv): Use gfc_free_equiv_until.
1199         * parse.c (next_statement): Save equivalence list.
1200         (reject_statement): Restore equivalence list. 
1201
1202 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1203
1204         PR fortran/42852
1205         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
1206         in the function so that it does not get missed by early exits.
1207         (load_line): Add checks for quoted strings and free form comments to
1208         disable warnings on comments. Add check for ampersand as first
1209         character after truncation and don't warn for this case, but warn if
1210         there are subsequent non-whitespace characters.
1211
1212 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1213
1214         PR fortran/40011
1215         * parse.c (gfc_parse_file): Do not override
1216         gfc_global_ns_list items.
1217
1218 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1219
1220         * options.c (gfc_init_options): Enable -fwhole-file by default.
1221         * interface.c (compare_parameter): Assume a Hollerith constant is
1222         compatible with all other argument types.
1223
1224 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1225
1226         PR fortran/44945
1227         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
1228         -fwhole-file also for derived types.
1229         * trans-types.c (copy_dt_decls_ifequal): Remove static and
1230         rename to gfc_copy_dt_decls_ifequal.
1231         (gfc_get_derived_type): Update call.
1232         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
1233
1234 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1235
1236         PR fortran/45030
1237         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
1238
1239 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
1240
1241         * trans-types.c (gfc_get_array_descriptor_base,
1242         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
1243         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
1244         instead of clearing DECL_NAME.
1245         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
1246
1247 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
1248
1249         PR fortran/24524
1250         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
1251         field.
1252         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
1253         reverse the scalarization loop.
1254         gfc_conv_resolve_dependencies: Pass the reverse field of the
1255         loopinfo to gfc_dep_resolver.
1256         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
1257         assignment by resetting loop.reverse.
1258         gfortran.h : Add the gfc_reverse enum.
1259         trans.h : Add the reverse field to gfc_loopinfo.
1260         dependency.c (gfc_check_dependency): Pass null to the new arg
1261         of gfc_dep_resolver.
1262         (gfc_check_section_vs_section): Check for reverse dependencies.
1263         (gfc_dep_resolver): Add reverse argument and deal with the loop
1264         reversal logic.
1265         dependency.h : Modify prototype for gfc_dep_resolver to include
1266         gfc_reverse *.
1267
1268 2010-07-23  Daniel Kraft  <d@domob.eu>
1269
1270         PR fortran/44709
1271         * gfortran.h (gfc_find_symtree_in_proc): New method.
1272         * symbol.c (gfc_find_symtree_in_proc): New method.
1273         * match.c (match_exit_cycle): Look for loop name also in parent
1274         namespaces within current procedure.
1275
1276 2010-07-22  Tobias Burnus  <burnus@net-b.de>
1277
1278         PR fortran/45019
1279         * dependency.c (gfc_check_dependency): Add argument alising check.
1280         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
1281
1282 2010-07-22  Daniel Kraft  <d@domob.eu>
1283
1284         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
1285         now in the correct place.
1286
1287 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
1288
1289         PR fortran/44929
1290         * Revert my commit r162325.
1291
1292 2010-07-21  Daniel Kraft  <d@domob.eu>
1293
1294         * trans.h (gfc_get_return_label): Removed.
1295         (gfc_generate_return): New method.
1296         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1297         returning a tree directly.
1298         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
1299         (gfc_trans_block_construct): Update for new interface to
1300         `gfc_trans_deferred_vars'.
1301         * trans-decl.c (current_function_return_label): Removed.
1302         (current_procedure_symbol): New variable.
1303         (gfc_get_return_label): Removed.
1304         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1305         returning a tree directly.
1306         (get_proc_result), (gfc_generate_return): New methods.
1307         (gfc_generate_function_code): Clean up and do init/cleanup here
1308         also with gfc_wrapped_block.  Remove return-label but rather
1309         return directly.
1310
1311 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1312
1313         PR fortran/44929
1314         * fortran/match.c (match_type_spec): Check for derived type before
1315         intrinsic types.
1316
1317 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1318
1319         PR fortran/42385
1320         * interface.c (matching_typebound_op): Add argument for the
1321         return of the generic name for the procedure.
1322         (build_compcall_for_operator): Add an argument for the generic
1323         name of an operator procedure and supply it to the expression.
1324         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
1325         calls to the above procedures.
1326         * resolve.c (resolve_typebound_function): Catch procedure
1327         component calls for CLASS objects, check that the vtable is
1328         complete and insert the $vptr and procedure components, to make
1329         the call.
1330         (resolve_typebound_function): The same.
1331         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
1332         an allocatable scalar if it is a result.
1333
1334 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1335
1336         PR fortran/44353
1337         * match.c (gfc_match_iterator): Reverted.
1338
1339 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
1340
1341         PR fortran/44353
1342         * match.c (gfc_match_iterator): Remove error that iterator
1343         cannot be INTENT(IN).
1344
1345 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
1346
1347         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
1348         Access subscript through the "dim" field index.
1349         (gfc_trans_create_temp_array): Access ss info through the "dim" field
1350         index.
1351         (gfc_conv_array_index_offset): Ditto.
1352         (gfc_conv_loop_setup): Ditto.
1353         (gfc_conv_expr_descriptor): Ditto.
1354         (gfc_conv_ss_startstride): Ditto.  Update call to
1355         gfc_conv_section_startstride.
1356         (gfc_conv_section_startstride): Set values along the array dimension.
1357         Get array dimension directly from the argument.
1358
1359 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1360
1361         * trans.h (gfc_string_to_single_character): New prototype.
1362         * trans-expr.c (string_to_single_character): Renamed to ...
1363         (gfc_string_to_single_character): ... this.  No longer static.
1364         (gfc_conv_scalar_char_value, gfc_build_compare_string,
1365         gfc_trans_string_copy): Adjust callers.
1366         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
1367         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
1368         (select_struct): Move to toplevel, add GTY(()).
1369         (gfc_trans_character_select): Optimize SELECT CASE
1370         with character length 1.
1371
1372 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1373
1374         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1375         * trans-common.c: Likewise.
1376         * trans-decl.c: Likewise.
1377         * trans-types.c: Likewise.
1378         * trans.c: Likewise.
1379
1380 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
1381
1382         PR fortran/44936
1383         * resolve.c (resolve_typebound_generic_call): Resolve generic
1384         non-polymorphic type-bound procedure calls to the correct specific
1385         procedure.
1386         (resolve_typebound_subroutine): Remove superfluous code.
1387
1388 2010-07-15  Daniel Kraft  <d@domob.eu>
1389
1390         PR fortran/44709
1391         * trans.h (struct gfc_wrapped_block): New struct.
1392         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1393         (gfc_finish_wrapped_block): New method.
1394         (gfc_init_default_dt): Add new init code to block rather than
1395         returning it.
1396         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
1397         (gfc_trans_dummy_array_bias): Ditto.
1398         (gfc_trans_g77_array): Ditto.
1399         (gfc_trans_deferred_array): Ditto.
1400         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
1401         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
1402         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1403         (gfc_finish_wrapped_block): New method.
1404         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
1405         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
1406         (gfc_trans_deferred_array): Ditto.
1407         * trans-decl.c (gfc_trans_dummy_character): Ditto.
1408         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
1409         (init_intent_out_dt): Ditto.
1410         (gfc_init_default_dt): Add new init code to block rather than
1411         returning it.
1412         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
1413         and cleanup code and put it all together.
1414
1415 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1416
1417         * trans.h (gfc_build_compare_string): Add CODE argument.
1418         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
1419         gfc_build_compare_string.
1420         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
1421         gfc_build_compare_string.
1422         (string_to_single_character): Rename len variable to length.
1423         (gfc_optimize_len_trim): New function.
1424         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
1425         or NE_EXPR and one of the strings is string literal with LEN_TRIM
1426         bigger than the length of the other string, they compare unequal.
1427
1428         PR fortran/40206
1429         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
1430         in CASE_LABEL_EXPR and use NULL for low for the default case.
1431
1432 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
1433
1434         * trans-array.c (gfc_conv_section_upper_bound): Remove
1435         (gfc_conv_section_startstride): Don't set the upper bound in the 
1436         vector subscript case.
1437         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
1438
1439 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
1440
1441         PR fortran/44925
1442         * gfortran.h (gfc_is_data_pointer): Remove prototype.
1443         * dependency.c (gfc_is_data_pointer): Make it static.
1444         * intrinsic.texi: Update documentation on C_LOC.
1445         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
1446         and add a check for polymorphic variables.
1447
1448 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
1449
1450         * trans-expr.c (string_to_single_character): Also optimize
1451         string literals containing a single char followed only by spaces.
1452         (gfc_trans_string_copy): Remove redundant string_to_single_character
1453         calls.
1454
1455         * trans-decl.c (gfc_build_intrinsic_function_decls,
1456         gfc_build_builtin_function_decls): Mark functions as
1457         DECL_PURE_P or TREE_READONLY.
1458
1459 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
1460
1461         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
1462         instead of build_function_call_expr.
1463         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
1464
1465 2010-07-13  Tobias Burnus  <burnus@net-b.de>
1466             Daniel Franke  <franke.daniel@gmail.com>
1467
1468         PR fortran/43665
1469         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
1470         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
1471         static.
1472         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
1473
1474 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
1475             Tobias Burnus  <burnus@net-b.de>
1476
1477         PR fortran/43665
1478         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
1479         noclobber/noescape annotations to function calls.
1480         (gfc_build_builtin_function_decls): Likewise.
1481
1482 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
1483
1484         PR fortran/44434
1485         PR fortran/44565
1486         PR fortran/43945
1487         PR fortran/44869
1488         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
1489         * class.c (gfc_build_class_symbol): Modified call to
1490         'gfc_find_derived_vtab'.
1491         (add_proc_component): Removed, moved code into 'add_proc_comp'.
1492         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
1493         generics.
1494         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
1495         Removed treatment of generics.
1496         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
1497         Call 'add_proc_comp' instead of duplicating code.
1498         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
1499         and 'declared'.
1500         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
1501         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
1502         Removed treatment of generics.
1503         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
1504         'gfc_find_derived_vtab'.
1505         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1506         Removed treatment of generics.
1507         (resolve_select_type,resolve_fl_derived): Modified call to
1508         'gfc_find_derived_vtab'.
1509         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1510         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1511         Ditto.
1512         * trans-stmt.c (gfc_trans_allocate): Ditto.
1513
1514 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1515
1516         PR fortran/37077
1517         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
1518         internal unit.
1519
1520 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
1521
1522         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
1523         * resolve.c (build_default_init_expr): Ditto.
1524
1525 2010-07-11  Tobias Burnus  <burnus@net-b.de>
1526
1527         PR fortran/44702
1528         * module.c (sort_iso_c_rename_list): Remove.
1529         (import_iso_c_binding_module,use_iso_fortran_env_module):
1530         Allow multiple imports of the same symbol.
1531
1532 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
1533
1534         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
1535
1536 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
1537
1538         PR fortran/44869
1539         * decl.c (build_sym,attr_decl1): Only build the class container if the
1540         symbol has sufficient attributes.
1541         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
1542         pointer attribute for classes.
1543         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
1544         * module.c (MOD_VERSION): Bump.
1545         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
1546         (mio_symbol_attribute): Handle class_pointer attribute.
1547         * parse.c (parse_derived): Use class_pointer instead of pointer
1548         attribute for classes.
1549         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
1550         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
1551         resolve_allocate_expr,resolve_fl_derived): Ditto.
1552         (resolve_fl_var_and_proc): Check for class_ok attribute.
1553
1554 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
1555
1556         * trans-io.c (gfc_build_st_parameter): Update calls to
1557         gfc_add_field_to_struct.
1558         * trans-stmt.c (ADD_FIELD): Ditto.
1559         * trans-types.c
1560         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
1561         C_ADDRESS field.
1562         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
1563         fieldlist, remove fieldlist from argument list.
1564         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
1565         and remove fieldlist from argument list.
1566         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
1567         gfc_get_mixed_entry_union): Move setting
1568         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
1569         * trans-types.h (gfc_add_field_to_struct): Update prototype.
1570
1571 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
1572
1573         PR fortran/44773
1574         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
1575         if the lhs has never been host associated, as well as not being
1576         use associated, a pointer or a target.
1577         * resolve.c (resolve_variable): Mark variables that are host
1578         associated.
1579         * gfortran.h: Add the host_assoc bit to the symbol_attribute
1580         structure.
1581
1582 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
1583
1584         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
1585         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
1586         SIZEOF and C_SIZEOF.
1587
1588 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
1589
1590         PR fortran/44649
1591         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
1592         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
1593         gfc_resolve_storage_size): New prototypes.
1594         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
1595         * intrinsic.c (add_functions): Add STORAGE_SIZE.
1596         * iresolve.c (gfc_resolve_storage_size): New function.
1597         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
1598         arguments.
1599         (gfc_conv_intrinsic_storage_size): New function.
1600         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
1601
1602 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1603
1604         PR fortran/44847
1605         * match.c (match_exit_cycle): Error on EXIT also from collapsed
1606         !$omp do loops.  Error on CYCLE to non-innermost collapsed
1607         !$omp do loops.
1608
1609 2010-07-08  Tobias Burnus  <burnus@net-b.de>
1610
1611         PR fortran/18918
1612         * array.c (gfc_match_array_ref): Better error message for
1613         coarrays with too few ranks.
1614         (match_subscript): Move one diagnostic to caller.
1615         * gfortran.h (gfc_get_corank): Add prottype.
1616         * expr.c (gfc_get_corank): New function.
1617         * iresolve.c (resolve_bound): Fix rank for cobounds.
1618         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
1619         gfc_resolve_ucobound, gfc_resolve_this_image): Update
1620         resolve_bound call.
1621
1622 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1623
1624         PR fortran/44742
1625         * array.c (gfc_expand_constructor): Add optional diagnostic.
1626         * gfortran.h (gfc_expand_constructor): Update prototype.
1627         * expr.c (gfc_simplify_expr, check_init_expr,
1628         gfc_reduce_init_expr): Update gfc_expand_constructor call.
1629         * resolve.c (gfc_resolve_expr): Ditto.
1630
1631 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1632
1633         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
1634         * trans-intrinsic.c: Ditto.
1635         * trans-types.c: Ditto.
1636         * convert.c: Include diagnostic-core.h instead of toplev.h.
1637         * options.c: Ditto.
1638         * trans-array.c: Ditto.
1639         * trans-const.c: Ditto.
1640         * trans-expr.c: Ditto.
1641         * trans-io.c: Ditto.
1642         * trans-openmp.c: Ditto.
1643         * trans.c: Ditto.
1644
1645 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1646
1647         PR fortran/PR44693
1648         * check.c (dim_rank_check):  Also check intrinsic functions.
1649         Adjust permissible rank for functions which reduce the rank of
1650         their argument.  Spread is an exception, where DIM can
1651         be one larger than the rank of array.
1652
1653 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1654
1655         PR fortran/44797
1656         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
1657
1658 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
1659
1660         PR fortran/44596
1661         * trans-types.c (gfc_get_derived_type): Derived type fields
1662         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
1663         but build_pointer_type_for_mode must be used for this.
1664
1665 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1666
1667         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
1668         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
1669         type of gfc_conv_procedure_call.
1670         (conv_generic_with_optional_char_arg): Likewise.
1671         * trans-stmt.c (gfc_trans_call): Likewise.
1672         * trans-expr.c (gfc_conv_function_expr): Likewise.
1673         (gfc_conv_procedure_call): Use build_call_vec instead of
1674         build_call_list.
1675
1676 2010-07-04  Daniel Kraft  <d@domob.eu>
1677
1678         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
1679
1680 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
1681
1682         PR fortran/44596
1683         PR fortran/44745
1684         * trans-types.c (gfc_get_derived_type): Derived type fields
1685         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
1686
1687 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
1688
1689         PR fortran/44662
1690         * decl.c (match_procedure_in_type): Clear structure before using.
1691         (gfc_match_generic): Ditto.
1692
1693 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
1694
1695         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
1696         * trans-types.c (gfc_add_field_to_struct_1): New function, most
1697         of which comes from...
1698         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
1699         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
1700         building fields.
1701         (gfc_get_array_descriptor_base): Likewise.
1702         (gfc_get_mixed_entry_union): Likewise.
1703         (gfc_get_derived_type): Add extra chain parameter for
1704         gfc_add_field_to_struct.
1705         * trans-stmt.c (gfc_trans_character_select): Likewise.
1706         * trans-io.c (gfc_build_st_parameter): Likewise.
1707
1708 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1709
1710         PR fortran/44718
1711         * resolve.c (is_external_proc): Prevent procedure pointers from being
1712         regarded as external procedures.
1713
1714 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
1715
1716         PR fortran/44696
1717         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
1718         passed as second argument of ASSOCIATED.
1719
1720 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
1721
1722         PR fortran/44582
1723         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
1724         to determine if a function assignment can be made without a
1725         temporary.
1726         (gfc_trans_arrayfunc_assign): Move all the conditions that
1727         suppress the direct function call to the above new functon and
1728         call it.
1729
1730 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
1731
1732         PR fortran/40158
1733         * interface.c (argument_rank_mismatch): New function.
1734         (compare_parameter): Call new function instead of generating
1735         the error directly.
1736
1737 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
1738
1739         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
1740         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
1741         initializers.
1742
1743 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
1744
1745         * Make-lang.in: Update dependencies.
1746
1747 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
1748
1749         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
1750         and exit_label fields.
1751         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
1752         individually.
1753         * trans-stmt.c (gfc_trans_simple_do): Likewise.
1754         (gfc_trans_do): Likewise.
1755         (gfc_trans_do_while): Likewise.
1756         (gfc_trans_cycle): Use cycle_label directly.
1757         (gfc_trans_exit): Use exit_label directly.
1758
1759 2010-06-27  Daniel Kraft  <d@domob.eu>
1760
1761         * dump-parse-tree.c (show_symbol): Dump target-expression for
1762         associate names.
1763         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
1764         (show_namespace): Use show_level for correct indentation of
1765         "inner namespaces" (contained procedures or BLOCK).
1766
1767 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1768
1769         PR fortran/44678
1770         * dump-parse-tree.c (show_code_node):  Show namespace for
1771         EXEC_BLOCK.
1772
1773 2010-06-26  Tobias Burnus  <burnus@net-b.de>
1774
1775         * decl.c (gfc_match_decl_type_spec): Support
1776         TYPE(intrinsic-type-spec).
1777
1778 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1779
1780         * intrinsic.h (gfc_check_selected_real_kind,
1781         gfc_simplify_selected_real_kind): Update prototypes.
1782         * intrinsic.c (add_functions): Add radix support to
1783         selected_real_kind.
1784         * check.c (gfc_check_selected_real_kind): Ditto.
1785         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
1786         * trans-decl.c (gfc_build_intrinsic_function_decls):
1787         Change call from selected_real_kind to selected_real_kind2008.
1788         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
1789         (PRECISION, RANGE, RADIX): Add cross @refs.
1790
1791 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1792
1793         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
1794         * gfortran.texi (_gfortran_set_options): Update for
1795         GFC_STD_F2008_OBS addition.
1796         * libgfortran.h: Add GFC_STD_F2008_OBS.
1797         * options.c (set_default_std_flags, gfc_handle_option): Handle
1798         GFC_STD_F2008_OBS.
1799         io.c (check_format): Fix allow_std check.
1800
1801 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1802
1803         * decl.c (gfc_match_entry): Allow END besides
1804         END SUBROUTINE/END FUNCTION for contained procedures.
1805
1806 2010-06-25  Tobias Burnus  <burnus@net-b.de>
1807
1808         * parse.c (next_free, next_fixed): Allow ";" as first character.
1809
1810 2010-06-24  Tobias Burnus  <burnus@net-b.de>
1811
1812         PR fortran/44614
1813         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
1814
1815 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
1816
1817         PR fortran/44616
1818         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
1819         containers.
1820
1821 2010-06-21  Tobias Burnus  <burnus@net-b.de>
1822
1823         PR fortran/40632
1824         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
1825         checks.
1826         * symbol.c (gfc_add_contiguous): New function.
1827         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
1828         * decl.c (match_attr_spec): Ditto.
1829         (gfc_match_contiguous): New function.
1830         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
1831         contiguous.
1832         * gfortran.h (symbol_attribute): Add contiguous.
1833         (gfc_is_simply_contiguous): Add prototype.
1834         (gfc_add_contiguous): Add prototype.
1835         * match.h (gfc_match_contiguous): Add prototype.
1836         * parse.c (decode_specification_statement,
1837         decode_statement): Handle contiguous attribute.
1838         * expr.c (gfc_is_simply_contiguous): New function.
1839         * dump-parse-tree.c (show_attr): Handle contiguous.
1840         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
1841         Ditto.
1842         * trans-expr.c (gfc_add_interface_mapping): Copy
1843         attr.contiguous.
1844         * trans-array.c (gfc_conv_descriptor_stride_get,
1845         gfc_conv_array_parameter): Handle contiguous arrays.
1846         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
1847         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
1848         Ditto.
1849         * trans.h (gfc_array_kind): Ditto.
1850         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1851
1852 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
1853
1854         * options.c (gfc_handle_option): Don't handle N_OPTS.
1855
1856 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
1857
1858         PR fortran/44584
1859         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
1860         to avoid ICE.
1861
1862 2010-06-18  Tobias Burnus  <burnus@net-b.de>
1863
1864         PR fortran/44556
1865         * resolve.c (resolve_allocate_deallocate): Properly check
1866         part-refs in stat=/errmsg= for invalid use.
1867
1868 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
1869
1870         PR fortran/44558
1871         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1872         Return directly in case of an error.
1873
1874 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
1875
1876         PR fortran/44549
1877         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
1878         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
1879         structure to each procedure in a procedure list.
1880         * module.c (mio_typebound_proc): Add NULL argument to
1881         'gfc_get_typebound_proc'.
1882         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
1883         to initialize the new structure.
1884
1885 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
1886
1887         PR fortran/43388
1888         * gfortran.h (gfc_expr): Add new member 'mold'.
1889         * match.c (gfc_match_allocate): Implement the MOLD tag.
1890         * resolve.c (resolve_allocate_expr): Ditto.
1891         * trans-stmt.c (gfc_trans_allocate): Ditto.
1892
1893 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1894
1895         PR fortran/44536
1896         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
1897         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
1898         GFC_DECL_SAVED_DESCRIPTOR set.
1899         (gfc_omp_report_decl): New function.
1900         * trans.h (gfc_omp_report_decl): New prototype.
1901         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
1902
1903 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
1904
1905         PR fortran/31588
1906         PR fortran/43954
1907         * gfortranspec.c (lang_specific_driver): Removed deprecation
1908         warning for -M.
1909         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
1910         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
1911         * cpp.h (gfc_cpp_makedep): New.
1912         (gfc_cpp_add_dep): New.
1913         (gfc_cpp_add_target): New.
1914         * cpp.c (gfc_cpp_option): Add deps* members.
1915         (gfc_cpp_makedep): New.
1916         (gfc_cpp_add_dep): New.
1917         (gfc_cpp_add_target): New.
1918         (gfc_cpp_init_options): Initialize new options.
1919         (gfc_cpp_handle_option): Handle new options.
1920         (gfc_cpp_post_options): Map new options to libcpp-options.
1921         (gfc_cpp_init): Handle deferred -MQ and -MT options.
1922         (gfc_cpp_done): If requested, write dependencies to file.
1923         * module.c (gfc_dump_module): Add a module filename as target.
1924         * scanner.c (open_included_file): New parameter system; add the
1925         included file as dependency.
1926         (gfc_open_included_file): Add the included file as dependency.
1927         (gfc_open_intrinsic_module): Likewise.
1928         * invoke.texi: Removed deprecation warning for -M.
1929         * gfortran.texi: Removed Makefile-dependencies project.
1930
1931 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
1932
1933         * resolve.c (resolve_global_procedure): Improved checking if an
1934         explicit interface is required.
1935
1936 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1937
1938         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
1939         return type.
1940         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
1941         (gfc_conv_intrinsic_ttynam): Likewise.
1942         (gfc_conv_intrinsic_trim): Likewise.
1943
1944 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
1945
1946         PR fortran/40117
1947         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
1948
1949 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1950
1951         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
1952
1953 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1954
1955         * mathbuiltins.def: Add builtins that do not directly correspond
1956         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
1957         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
1958         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
1959         code_{r,c}{4,8,10,16} fields. Add
1960         {,complex}{float,double,long_double}_built_in fields.
1961         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
1962         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
1963         definition of OTHER_BUILTIN.
1964         (real_compnt_info): Remove unused struct.
1965         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
1966         functions.
1967         (build_round_expr): Call builtin_decl_for_precision instead of
1968         series of if-else.
1969         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
1970         instead of a switch.
1971         (gfc_build_intrinsic_lib_fndecls): Match
1972         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
1973         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
1974         kinds.
1975         (gfc_conv_intrinsic_lib_function): Go through all the extended
1976         gfc_intrinsic_map.
1977         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
1978         instead of a switch.
1979         (gfc_conv_intrinsic_abs): Likewise.
1980         (gfc_conv_intrinsic_mod): Likewise.
1981         (gfc_conv_intrinsic_sign): Likewise.
1982         (gfc_conv_intrinsic_fraction): Likewise.
1983         (gfc_conv_intrinsic_nearest): Likewise.
1984         (gfc_conv_intrinsic_spacing): Likewise.
1985         (gfc_conv_intrinsic_rrspacing): Likewise.
1986         (gfc_conv_intrinsic_scale): Likewise.
1987         (gfc_conv_intrinsic_set_exponent): Likewise.
1988
1989 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
1990
1991         PR fortran/42051
1992         PR fortran/43896
1993         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
1994         functions with CLASS formal arguments.
1995
1996 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
1997
1998         PR fortran/44207
1999         * resolve.c (conformable_arrays): Handle allocatable components.
2000
2001 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2002
2003         PR fortran/38273
2004         * gfortran.texi: Document that Cray pointers cannot be function
2005         results.
2006
2007 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2008
2009         PR fortran/36234
2010         * gfortran.texi: Document lack of support for syntax
2011         "complex FUNCTION name*16()", and existence of alternative
2012         legacy syntax "complex*16 FUNCTION name()".
2013
2014 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2015
2016         PR fortran/43032
2017         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2018         POSIX's fsync(), and how to call the latter from Fortran code.
2019
2020 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
2021
2022         PR fortran/44457
2023         * interface.c (compare_actual_formal): Reject actual arguments with
2024         array subscript passed to ASYNCHRONOUS dummys.
2025
2026 2010-06-10  Daniel Kraft  <d@domob.eu>
2027
2028         PR fortran/38936
2029         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2030         (struct gfc_symbol): New field `assoc'.
2031         (struct gfc_association_list): New struct.
2032         (struct gfc_code): New struct `block' in union, move `ns' there
2033         and add association list.
2034         (gfc_free_association_list): New method.
2035         (gfc_has_vector_subscript): Made public;
2036         * match.h (gfc_match_associate): New method.
2037         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2038         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2039         * interface.c (gfc_has_vector_subscript): Made public.
2040         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2041         * match.c (gfc_match_associate): New method.
2042         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2043         * primary.c (match_variable): Don't allow names associated to expr here.
2044         * parse.c (decode_statement): Try matching ASSOCIATE statement.
2045         (case_exec_markers, case_end): Add ASSOCIATE statement.
2046         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2047         (parse_associate): New method.
2048         (parse_executable): Handle ST_ASSOCIATE.
2049         (parse_block_construct): Change reference to gfc_code's `ns' field.
2050         * resolve.c (resolve_select_type): Ditto.
2051         (resolve_code): Ditto.
2052         (resolve_block_construct): Ditto and add comment.
2053         (resolve_select_type): Set association list in generated BLOCK to NULL.
2054         (resolve_symbol): Resolve associate names.
2055         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2056         and free association list.
2057         (gfc_free_association_list): New method.
2058         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2059         * trans-stmt.c (gfc_trans_block_construct): Change reference to
2060         gfc_code's `ns' field.
2061
2062 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
2063
2064         * error.c (error_print): Pre-initialize loc by NULL.
2065         * openmp.c (resolve_omp_clauses): Add explicit
2066         braces to avoid ambigous else.
2067         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
2068
2069 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2070
2071         * gfc-internals.texi: Move to GFDL 1.3.
2072         * gfortran.texi: Ditto.
2073         * intrinsic.texi: Ditto.
2074         * invoke.texi: Ditto.
2075
2076 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2077
2078         PR fortran/44347
2079         * check.c (gfc_check_selected_real_kind): Verify that the
2080         actual arguments are scalar.
2081
2082 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2083
2084         PR fortran/44359
2085         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
2086
2087 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2088
2089         PR fortran/44430
2090         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
2091
2092 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2093
2094         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
2095
2096 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2097
2098         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
2099         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
2100         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
2101         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
2102         gfc_check_bitfcn.
2103         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
2104         less_than_bitsize2): New functions.
2105         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
2106         nonnegative_check and less_than_bitsize1.
2107         (gfc_check_ibclr, gfc_check_ibset): Removed.
2108         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
2109         less_than_bitsize1.
2110
2111 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2112
2113         PR fortran/44211
2114         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2115         Resolve references.
2116
2117 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2118
2119         * resolve.c (resolve_deallocate_expr): Avoid warning
2120         about possible use of iunitialized sym.
2121         (resolve_allocate_expr): Pre-initialize sym by NULL.
2122
2123 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2124
2125         PR fortran/43040
2126         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
2127
2128 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2129
2130         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
2131         allocation.
2132         (gfc_get_array_type_bounds): Likewise.
2133
2134         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
2135         (gfc_find_module): Likewise.
2136
2137         * f95-lang.c (pushlevel): Likewise.
2138
2139         * trans.h (struct lang_type): Add variable_size GTY option.
2140         (struct lang_decl): Likewise.
2141
2142 2010-06-08  Tobias Burnus  <burnus@net-b.de>
2143
2144         PR fortran/44446
2145         * symbol.c (check_conflict): Move protected--external/procedure check ...
2146         * resolve.c (resolve_select_type): ... to the resolution stage.
2147
2148 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2149
2150         * options.c (gfc_handle_option): Fix -fno-recursive.
2151
2152 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2153
2154         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
2155         * gfortran.texi (copyrights-gfortran): Ditto.
2156
2157 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2158
2159         * lang.opt (fshort-enums): Define using Var and VarExists.
2160         * options.c (gfc_handle_option): Don't set flag_short_enums here.
2161
2162 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2163             Janus Weil  <janus@gcc.gnu.org>
2164
2165         PR fortran/43945
2166         * resolve.c (get_declared_from_expr): Move to before
2167         resolve_typebound_generic_call.  Make new_ref and class_ref
2168         ignorable if set to NULL.
2169         (resolve_typebound_generic_call): Once we have resolved the
2170         generic call, check that the specific instance is that which
2171         is bound to the declared type.
2172         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
2173         freeing 'class_ref->next' twice.
2174
2175 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2176
2177         PR fortran/43895
2178         * trans-array.c (structure_alloc_comps): Dereference scalar
2179         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
2180         TREE_TYPE (decl).
2181
2182 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
2183
2184         * gfortranspec.c (append_arg, lang_specific_driver): Use
2185         GCC-specific formats in diagnostics.
2186
2187 2010-06-02  Tobias Burnus  <burnus@net-b.de>
2188
2189         PR fortran/44360
2190         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
2191         symbols.
2192
2193 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2194
2195         PR fortran/44371
2196         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
2197         condition block.
2198
2199 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
2200
2201         * fortran/gfortran.texi:  Fix typos in description of variable-format-
2202         expressions.
2203
2204 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2205
2206         PR fortran/36928
2207         * dependency.c (gfc_check_section_vs_section):  Check
2208         for interleaving array assignments without conflicts.
2209
2210 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
2211
2212         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
2213         $data component of a class container.
2214         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
2215         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
2216         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
2217         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
2218         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
2219         * gcc/fortran/parse.c (parse_derived): Ditto.
2220         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
2221         gfc_expr_attr): Ditto.
2222         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
2223         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
2224         resolve_fl_var_and_proc, resolve_typebound_procedure,
2225         resolve_fl_derived): Ditto.
2226         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
2227         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
2228         CLASS_DATA.
2229         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
2230         gfc_trans_deferred_vars): Ditto.
2231         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
2232
2233 2010-05-28  Tobias Burnus  <burnus@net-b.de>
2234
2235         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
2236
2237 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2238
2239         * gfortranspec.c (append_arg, lang_specific_driver): Use
2240         fatal_error instead of fatal.  Use warning instead of fprintf for
2241         warnings.
2242
2243 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2244
2245         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
2246         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
2247         xstrerror instead of strerror.
2248
2249 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2250
2251         * cpp.c (cb_cpp_error): Save and restore
2252         global_dc->warn_system_headers, not variable warn_system_headers.
2253
2254 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2255
2256         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
2257
2258 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2259
2260         * trans-common.c: Do not include rtl.h, include output.h instead.
2261         * trans-decl.c: Likewise.
2262
2263 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
2264
2265         PR fortran/40011
2266         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
2267         namespace before trying to reorder the gsymbols.
2268
2269 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
2270
2271         PR fortran/30668
2272         PR fortran/31346
2273         PR fortran/34260
2274         * resolve.c (resolve_global_procedure): Add check for global
2275         procedures with implicit interfaces and assumed-shape or optional
2276         dummy arguments. Verify that function return type, kind and string
2277         lengths match.
2278
2279 2010-05-21  Tobias Burnus  <burnus@net-b.de>
2280
2281         * gfortran.h: Do not include system.h.
2282         * bbt.c: Include system.h.
2283         * data.c: Ditto.
2284         * dependency.c: Ditto.
2285         * dump-parse-tree.c: Ditto.
2286         * arith.h: Do not include gfortran.h.
2287         * constructor.h: Do not include gfortran.h and splay-tree.h.
2288         * match.h: Do not include gfortran.h.
2289         * parse.h: Ditto.
2290         * target-memory.h: Ditto.
2291         * openmp.c: Do not include toplev.h and target.h.
2292         * trans-stmt.c: Ditto not include toplev.h.
2293         * primary.c: Ditto.
2294         * trans-common.c: Tell why toplev.h is needed. And
2295         do not include target.h.
2296         * trans-expr.c: Tell why toplev.h is needed.
2297         * trans-array.c: Ditto.
2298         * trans-openmp.c: Ditto.
2299         * trans-const.c: Ditto.
2300         * trans.c: Ditto.
2301         * trans-types.c: Ditto.
2302         * trans-io.c: Ditto.
2303         * trans-decl.c: Ditto.
2304         * scanner.c: Ditto.
2305         * convert.c: Ditto.
2306         * trans-intrinsic.c: Ditto.
2307         * options.c: Ditto.
2308
2309 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2310
2311         PR fortran/43851
2312         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
2313         before returning MATCH_ERROR. Add check for scalar. Add check for
2314         default integer kind.
2315
2316 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2317
2318         PR fortran/44212
2319         * match.c (gfc_match_select_type): On error jump back out of the local
2320         namespace.
2321         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
2322         stage, more precisely to ...
2323         * resolve.c (resolve_fl_derived): ... this place.
2324
2325 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2326
2327         PR fortran/44213
2328         * resolve.c (ensure_not_abstract): Allow abstract types with
2329         non-abstract ancestors.
2330
2331 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2332
2333         * trans-const.c: Include realmpfr.h.
2334         * Make-lang.in: Update dependencies.
2335
2336 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2337
2338         * trans-const.c, trans-types.c, trans-intrinsic.c:
2339         Clean up redundant includes.
2340
2341 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
2342
2343         PR fortran/38407
2344         * lang.opt (Wunused-dummy-argument): New option.
2345         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
2346         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
2347         (set_Wall): Enable warn_unused_dummy_argument.
2348         (gfc_handle_option): Set warn_unused_dummy_argument according to
2349         command line.
2350         * trans-decl.c (generate_local_decl): Separate warnings about
2351         unused variables and unused dummy arguments.
2352         * invoke.texi: Documented new option.
2353
2354 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
2355
2356         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
2357         (gfc_conv_string_tmp): Do not assert type comparibilty.
2358         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
2359         (gfc_conv_expr_descriptor): Remove assert.
2360         * trans-common.c: Clarify why rtl.h and tm.h are included.
2361         * trans-openmp.c: Do not include ggc.h and real.h.
2362         Explain why gimple.h is included.
2363         * trans-const.c: Do not include ggc.h.
2364         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
2365         * trans.c: Do not include ggc.h and real.h.
2366         Explain why gimple.h is included.
2367         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
2368         and dwarf2out.h are included.
2369         * trans-io.c: Do not include gimple.h and real.h.
2370         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
2371         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
2372         is included.
2373
2374 2010-05-20  Tobias Burnus  <burnus@net-b.de>
2375
2376         * options.c (gfc_init_options,gfc_post_options): Enable
2377         flag_associative_math by default.
2378
2379 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2380
2381         PR fortran/43851
2382         * trans-stmt.c (gfc_trans_stop): Add generation of call to
2383         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
2384         blank STOP, handling a null expression. (gfc_trans_pause): Use
2385         pause_string for blank PAUSE.
2386         * trans.h: Add external function declaration for error_stop_numeric.
2387         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
2388         the declaration for the library call. Adjust whitespaces.
2389         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
2390         signal no stop code. Match the expression following the stop and pass
2391         that to the translators. Remove the old use of digit matching.  Add
2392         checks that the stop_code expression is INTEGER or CHARACTER, constant,
2393         and if CHARACTER, default character KIND.
2394
2395 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2396
2397         PR fortran/44055
2398         * lang.opt (Wconversion-extra): New option.
2399         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
2400         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
2401         (set_Wall): Enable -Wconversion.
2402         (gfc_handle_option): Set warn_conversion_extra.
2403         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
2404         introduced for -Wconversion if -Wconversion-extra is present.
2405         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
2406         -Wconversion; document -Wconversion-extra.
2407
2408 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2409
2410         PR fortran/42360
2411         * gfortran.h (gfc_has_default_initializer): New.
2412         * expr.c (gfc_has_default_initializer): New.
2413         * resolve.c (has_default_initializer): Removed, use
2414         gfc_has_default_initializer() instead. Updated all callers.
2415         * trans-array.c (has_default_initializer): Removed, use
2416         gfc_has_default_initializer() instead. Updated all callers.
2417         * trans-decl.c (generate_local_decl): Do not check the
2418         first component only to check for initializers, but use
2419         gfc_has_default_initializer() instead.
2420
2421 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2422
2423         PR fortran/38404
2424         * primary.c (match_string_constant): Move start_locus just inside 
2425         the string.
2426         * data.c (create_character_intializer): Clarified truncation warning.
2427
2428 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2429
2430         PR fortran/34505
2431         * intrinsic.h (gfc_check_float): New prototype.
2432         (gfc_check_sngl): New prototype.
2433         * check.c (gfc_check_float): New.
2434         (gfc_check_sngl): New.
2435         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
2436         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
2437         and SNGL.
2438         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
2439         added them to the list of specifics of REAL instead.
2440
2441 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2442
2443         PR fortran/43990
2444         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
2445         This is now handled via 'gfc_class_null_initializer'.
2446
2447 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2448
2449         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
2450         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
2451         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2452         add_procs_to_declared_vtab,add_generic_specifics, 
2453         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2454         find_typebound_proc_uop,gfc_find_typebound_proc,
2455         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
2456         gfc_get_tbp_symtree): Moved here from other places.
2457         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
2458         class.c.
2459         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
2460         gfc_find_typebound_proc,gfc_find_typebound_user_op,
2461         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
2462         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
2463         * Make-lang.in: Add class.o.
2464         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
2465         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2466         add_procs_to_declared_vtab,add_generic_specifics,
2467         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2468         find_typebound_proc_uop,gfc_find_typebound_proc,
2469         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
2470         gfc_get_tbp_symtree): Move to class.c.
2471
2472 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2473
2474         * trans-types.c (gfc_init_types): Use build_function_type_list.
2475         (gfc_get_ppc_type): Likewise.
2476         * trans-decl.c (gfc_generate_constructors): Likewise.
2477         * f95-lang.c (build_builtin_fntypes): Likewise.
2478         (gfc_init_builtin_functions): Likewise.
2479         (DEF_FUNCTION_TYPE_0): Likewise.
2480         (DEF_FUNCTION_TYPE_1): Likewise.
2481         (DEF_FUNCTION_TYPE_2): Likewise.
2482         (DEF_FUNCTION_TYPE_3): Likewise.
2483         (DEF_FUNCTION_TYPE_4): Likewise.
2484         (DEF_FUNCTION_TYPE_5): Likewise.
2485         (DEF_FUNCTION_TYPE_6): Likewise.
2486         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
2487         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
2488  
2489 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2490
2491         * trans-array.c (gfc_trans_array_constructor_value): Use
2492         build_constructor instead of build_constructor_from_list.
2493         (gfc_build_constant_array_constructor): Likewise.
2494         * trans-decl.c (create_main_function): Likewise.
2495         * trans-stmt.c (gfc_trans_character_select): Likewise.
2496
2497 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2498
2499         PR fortran/44044
2500         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
2501         (resolve_fl_variable_derived): ... this place.
2502         (resolve_symbol): Make sure function symbols (and their result
2503         variables) are not resolved twice.
2504
2505 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
2506
2507         PR fortran/35779
2508         * array.c (match_array_list): Revert change from 2010-05-13.
2509
2510 2010-05-16  Richard Guenther  <rguenther@suse.de>
2511
2512         * trans-decl.c (module_htab_decls_hash): Revert last change.
2513
2514 2010-05-16  Richard Guenther  <rguenther@suse.de>
2515
2516         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
2517
2518 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2519
2520         * options.c (set_Wall): Remove special logic for Wuninitialized
2521         without -O.
2522
2523 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2524
2525         PR fortran/44154
2526         PR fortran/42647
2527         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
2528         if branches.
2529
2530 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2531
2532         PR fortran/43207
2533         PR fortran/43969
2534         * gfortran.h (gfc_class_null_initializer): New prototype.
2535         * expr.c (gfc_class_null_initializer): New function to build a NULL
2536         initializer for CLASS pointers.
2537         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
2538         containers. Remove default NULL initialization of $data component.
2539         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
2540         message.
2541         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
2542         Use new function 'gfc_class_null_initializer'.
2543         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
2544         class variables.
2545
2546 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2547
2548         PR fortran/44135
2549         * fortran/interface.c (get_sym_storage_size): Use signed instead of
2550         unsigned mpz_get_?i routines.
2551
2552 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2553
2554         * trans.c (trans_code): Set backend locus early.
2555         * trans-decl.c (gfc_get_fake_result_decl): Use source location
2556         of the function instead of current input_location.
2557
2558 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
2559
2560         PR fortran/35779
2561         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
2562         Updated all usages.
2563         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
2564         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
2565         iterators.
2566
2567 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2568
2569         PR fortran/44036
2570         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
2571         variable lists.
2572         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
2573         by reference dummy procedures or non-dummy procedure pointers.
2574         (gfc_omp_predetermined_sharing): Return
2575         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
2576
2577 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2578
2579         PR fortran/43711
2580         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
2581         after OMP statement.
2582         (gfc_match_omp_critical): Likewise.
2583         (gfc_match_omp_flush): Likewise.
2584         (gfc_match_omp_workshare): Likewise.
2585         (gfc_match_omp_master): Likewise.
2586         (gfc_match_omp_ordered): Likewise.
2587         (gfc_match_omp_atomic): Likewise.
2588         (gfc_match_omp_barrier): Likewise.
2589         (gfc_match_omp_end_nowait): Likewise.
2590
2591 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2592
2593         PR fortran/31820
2594         * resolve.c (validate_case_label_expr): Removed FIXME.
2595         (resolve_select): Raise default warning on case labels out of range
2596         of the case expression.
2597
2598 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
2599
2600         PR fortran/27866
2601         PR fortran/35003
2602         PR fortran/42809
2603         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
2604         about conversion warnings.
2605
2606 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
2607
2608         PR fortran/44044
2609         * match.c (gfc_match_select_type): Move error message to
2610         resolve_select_type.
2611         * resolve.c (resolve_select_type): Error message moved here from
2612         gfc_match_select_type. Correctly set type of temporary.
2613
2614 2010-05-10  Richard Guenther  <rguenther@suse.de>
2615
2616         * trans-decl.c (gfc_build_library_function_decl): Split out
2617         worker to ...
2618         (build_library_function_decl_1): ... this new function.
2619         Set a fnspec attribute if a specification was provided.
2620         (gfc_build_library_function_decl_with_spec): New function.
2621         (gfc_build_intrinsic_function_decls): Annotate internal_pack
2622         and internal_unpack.
2623
2624 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
2625
2626         PR fortran/40728
2627         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
2628         as external.
2629
2630 2010-05-07  Jason Merrill  <jason@redhat.com>
2631
2632         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2633         to avoid -Wc++-compat warning.
2634
2635 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2636
2637         PR 40989
2638         * options.c (gfc_handle_option): Add argument kind.
2639         * gfortran.h (gfc_handle_option): Update declaration.
2640
2641 2010-05-06  Tobias Burnus  <burnus@net-b.de>
2642
2643         PR fortran/43985
2644         * trans-types.c (gfc_sym_type): Mark Cray pointees as
2645         GFC_POINTER_TYPE_P.
2646
2647 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2648
2649         PR fortran/32331
2650         * resolve.c (traverse_data_list): Rephrase error message for
2651         non-constant bounds in data-implied-do.
2652
2653 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2654
2655         PR fortran/24978
2656         * gfortran.h: Removed repeat count from constructor, removed
2657         all usages.
2658         * data.h (gfc_assign_data_value_range): Changed return value from
2659         void to gfc_try.
2660         * data.c (gfc_assign_data_value): Add location to constructor element.
2661         (gfc_assign_data_value_range): Call gfc_assign_data_value()
2662         for each element in range. Return early if an error was generated.
2663         * resolve.c (check_data_variable): Stop early if range assignment
2664         generated an error.
2665
2666 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
2667
2668         PR fortran/43696
2669         * resolve.c (resolve_fl_derived): Some fixes for class variables.
2670         * symbol.c (gfc_build_class_symbol): Add separate class container for
2671         class pointers.
2672
2673 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2674
2675         PR fortran/43592
2676         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
2677
2678 2010-05-02  Tobias Burnus  <burnus@net-b.de>
2679
2680         PR fortran/18918
2681         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
2682         for lcobound, ucobound, image_index and this_image.
2683         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
2684         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
2685         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
2686         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
2687         functions.
2688         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
2689
2690 2010-04-30  Tobias Burnus  <burnus@net-b.de>
2691
2692         PR fortran/18918
2693         PR fortran/43931
2694         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
2695         calculation for array descriptor types.
2696
2697 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2698
2699         PR fortran/43896
2700         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
2701         initializers for PPC members of the vtabs.
2702
2703 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2704
2705         PR fortran/42274
2706         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
2707         attribute for all PPC members of the vtypes.
2708         (copy_vtab_proc_comps): Copy the correct interface.
2709         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
2710         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
2711         a dummy argument and make sure all PPC members of the vtab are
2712         initialized correctly.
2713         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
2714         in call to gfc_trans_assign_vtab_procs.
2715         * trans-stmt.c (gfc_trans_allocate): Ditto.
2716
2717 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2718
2719         PR fortran/43326
2720         * resolve.c (resolve_typebound_function): Renamed
2721         resolve_class_compcall.Do all the detection of class references
2722         here.
2723         (resolve_typebound_subroutine): resolve_class_typebound_call
2724         renamed. Otherwise same as resolve_typebound_function.
2725         (gfc_resolve_expr): Call resolve_typebound_function.
2726         (resolve_code): Call resolve_typebound_subroutine.
2727
2728 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
2729
2730         PR fortran/43492
2731         * resolve.c (resolve_typebound_generic_call): For CLASS methods
2732         pass back the specific symtree name, rather than the target
2733         name.
2734
2735 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2736
2737         PR fortran/42353
2738         * resolve.c (resolve_structure_cons): Make the initializer of
2739         the vtab component 'extends' the same type as the component.
2740
2741 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2742
2743         PR fortran/42680
2744         * interface.c (check_interface1): Pass symbol name rather than NULL to
2745         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
2746         trap MULL. (gfc_compare_derived_types): Revert previous change
2747         incorporated incorrectly during merge from trunk, r155778.
2748         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
2749         than NULL to gfc_compare_interfaces.
2750         * symbol.c (add_generic_specifics): Likewise.
2751
2752 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
2753
2754         PR fortran/42353
2755         * interface.c (gfc_compare_derived_types): Add condition for vtype.
2756         * symbol.c (gfc_find_derived_vtab): Sey access to private.
2757         (gfc_find_derived_vtab): Likewise.
2758         * module.c (ab_attribute): Add enumerator AB_VTAB.
2759         (mio_symbol_attribute): Use new attribute, AB_VTAB.
2760         (check_for_ambiguous): Likewise.
2761
2762 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
2763             Janus Weil  <janus@gcc.gnu.org>
2764
2765         PR fortran/41829
2766         * trans-expr.c (select_class_proc): Remove function.
2767         (conv_function_val): Delete reference to previous.
2768         (gfc_conv_derived_to_class): Add second argument to the call to
2769         gfc_find_derived_vtab.
2770         (gfc_conv_structure): Exclude proc_pointer components when
2771         accessing $data field of class objects.
2772         (gfc_trans_assign_vtab_procs): New function.
2773         (gfc_trans_class_assign): Add second argument to the call to
2774         gfc_find_derived_vtab.
2775         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
2776         implement holding off searching for the vptr derived type.
2777         (add_proc_component): New function.
2778         (add_proc_comps): New function.
2779         (add_procs_to_declared_vtab1): New function.
2780         (copy_vtab_proc_comps): New function.
2781         (add_procs_to_declared_vtab): New function.
2782         (void add_generic_specifics): New function.
2783         (add_generics_to_declared_vtab): New function.
2784         (gfc_find_derived_vtab): Add second argument to the call to
2785         gfc_find_derived_vtab. Add the calls to
2786         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
2787         * decl.c (build_sym, build_struct): Use new arg in calls to
2788         gfc_build_class_symbol.
2789         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
2790         definition of struct gfc_class_esym_list. Modify prototypes
2791         of gfc_build_class_symbol and gfc_find_derived_vtab.
2792         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
2793         call to gfc_find_derived_vtab.
2794         * module.c : Add the vtype attribute.
2795         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
2796         * resolve.c (resolve_typebound_generic_call): Add second arg
2797         to pass along the generic name for class methods.
2798         (resolve_typebound_call): The same.
2799         (resolve_compcall): Use the second arg to carry the generic
2800         name from the above. Remove the reference to class_esym.
2801         (check_members, check_class_members, resolve_class_esym,
2802         hash_value_expr): Remove functions.
2803         (resolve_class_compcall, resolve_class_typebound_call): Modify
2804         to use vtable rather than member by member calls.
2805         (gfc_resolve_expr): Modify second arg in call to
2806         resolve_compcall.
2807         (resolve_select_type): Add second arg in call to
2808         gfc_find_derived_vtab.
2809         (resolve_code): Add second arg in call resolve_typebound_call.
2810         (resolve_fl_derived): Exclude vtypes from check for late
2811         procedure definitions. Likewise for checking of explicit
2812         interface and checking of pass arg.
2813         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
2814         calls to gfc_find_derived_vtab.
2815         * match.c (select_type_set_tmp): Use new arg in call to
2816         gfc_build_class_symbol.
2817         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
2818         necessary.
2819         * parse.c (endType): Finish incomplete classes.
2820
2821 2010-04-28  Tobias Burnus  <burnus@net-b.de>
2822
2823         PR fortran/18918
2824         PR fortran/43919
2825         * simplify.c (simplify_cobound): Handle scalar coarrays.
2826
2827 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2828
2829         * gfc-internals.texi: Update copyright year.
2830         * gfortran.texi: Ditto.
2831         * invoke.texi: Ditto.
2832
2833 2010-04-27  Tobias Burnus  <burnus@net-b.de>
2834
2835         PR fortran/18918
2836         * resolve.c (resolve_allocate_expr): Allow array coarrays.
2837         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
2838         * trans-types.c (gfc_get_array_type_bounds,
2839         gfc_get_array_descriptor_base): Add corank argument.
2840         * trans-array.c (gfc_array_init_size): Handle corank.
2841         (gfc_trans_create_temp_array, gfc_array_allocate,
2842         gfc_conv_expr_descriptor): Add corank argument to call.
2843         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
2844
2845 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
2846
2847         PR fortran/30073
2848         PR fortran/43793
2849         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
2850         of mucking with a tree directly.
2851
2852 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2853
2854         PR fortran/43832
2855         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
2856         gfc_error with new error message.
2857
2858 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
2859
2860         PR fortran/43841
2861         PR fortran/43843
2862         * trans-expr.c (gfc_conv_expr): Supply an address expression for
2863         GFC_SS_REFERENCE.
2864         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
2865         GFC_SS_REFERENCE.
2866         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
2867         than the address of a GFC_SS_REFERENCE.
2868         * trans.h : Change comment on GFC_SS_REFERENCE. 
2869
2870 2010-04-22  Richard Guenther  <rguenther@suse.de>
2871
2872         PR fortran/43829
2873         * resolve.c (gfc_resolve_index): Wrap around ...
2874         (gfc_resolve_index_1): ... this.  Add parameter to allow
2875         any integer kind index type.
2876         (resolve_array_ref): Allow any integer kind for the start
2877         index of an array ref.
2878
2879 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2880
2881         PR fortran/43836
2882         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
2883         the decl.
2884
2885 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
2886
2887         * intrinsic.c (sort_actual): Remove 'is' in error message.
2888
2889 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
2890
2891         PR fortran/43227
2892         * resolve.c (resolve_fl_derived): If a component character
2893         length has not been resolved, do so now.
2894         (resolve_symbol): The same as above for a symbol character
2895         length.
2896         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
2897         not needed for a character valued, procedure pointer.
2898
2899         PR fortran/43266
2900         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
2901         not found, return FAILURE rather than ICEing.
2902
2903 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2904
2905         PR fortran/43339
2906         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
2907         sequential loops private in the innermost containing task region.
2908
2909 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2910
2911         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
2912         to build_common_tree_nodes.
2913
2914 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
2915
2916         PR fortran/31538
2917         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
2918         gfc_msg_bounds by using 'Array bound mismatch' directly.
2919         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
2920         error message to include the mismatch in the extent of array bound.
2921         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
2922         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
2923
2924 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2925
2926         * gfortran.texi: Update information on temporary file locations.
2927
2928 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2929
2930         * trans-decl.c (gfc_build_qualified_array): Ensure
2931         ubound.N and lbound.N artificial variable names don't appear
2932         in debug info.
2933
2934 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
2935
2936         PR fortran/30073
2937         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
2938         block of code.  Set name to the variable associated with the descriptor.
2939
2940 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
2941
2942         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
2943         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
2944
2945 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2946
2947         * intrinsic.texi: Add the missing specific name of intrinsic
2948         procedure where the specific name is identical to the generic name.
2949         Fix inconsistent or mismatch in the argument names in intrinsic
2950         procedure descriptions.  Add the SCALAR allocatable description to
2951         ALLOCATED.
2952
2953 2010-04-14  Tobias Burnus  <burnus@net-b.de>
2954
2955         PR fortran/18918
2956         * array.c (gfc_find_array_ref): Handle codimensions.
2957         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
2958         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
2959         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
2960         New functions.
2961         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
2962         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
2963         GFC_ISYM_UCOBOUND.
2964         * intrinsic.h (add_functions): Add this_image, image_index,
2965         lcobound and ucobound intrinsics.
2966         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
2967         gfc_check_image_index, gfc_check_this_image,
2968         gfc_simplify_image_index, gfc_simplify_lcobound,
2969         gfc_simplify_this_image, gfc_simplify_ucobound):
2970         New function prototypes.
2971         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
2972         IMAGE_INDEX): Document new intrinsic functions.
2973         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
2974         error fatal.
2975         * simplify.c (simplify_bound_dim): Handle coarrays.
2976         (simplify_bound): Update simplify_bound_dim call.
2977         (gfc_simplify_num_images): Add -fcoarray=none check.
2978         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
2979         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
2980
2981 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2982
2983         PR fortran/43747
2984         * constructor.c: Fix typo in comment.
2985         * expr.c (find_array_section): Add check for max array limit.
2986
2987 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
2988
2989         PR bootstrap/31400
2990         * gfortranspec.c (lookup_option): Check for -static and return
2991         OPTION_static.
2992         (lang_specific_driver): Break when OPTION_static is discovered.
2993
2994 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2995
2996         * array.c (extract_element): Restore function from trunk.
2997         (gfc_get_array_element): Restore function from trunk.
2998         (gfc_expand_constructor): Restore check against
2999         flag_max_array_constructor.
3000         * constructor.c (node_copy_and_append): Delete unused.
3001         * gfortran.h: Delete comment and extra include.
3002         * constructor.h: Bump copyright and clean up TODO comments.
3003         * resolve.c: Whitespace.
3004
3005 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3006
3007         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
3008         with direct access access to elements. Adjusted prototype, fixed all
3009         callers.
3010         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
3011         array.
3012         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
3013         (gfc_simplify_spread): Removed workaround, directly insert elements
3014         at a given array position.
3015         (gfc_simplify_transpose): Likewise.
3016         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
3017         function calls.
3018         (gfc_simplify_unpack): Likewise.
3019
3020 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3021
3022         * simplify.c (only_convert_cmplx_boz): Renamed to ...
3023         (convert_boz): ... this and moved to start of file.
3024         (gfc_simplify_abs): Whitespace fix.
3025         (gfc_simplify_acos): Whitespace fix.
3026         (gfc_simplify_acosh): Whitespace fix.
3027         (gfc_simplify_aint): Whitespace fix.
3028         (gfc_simplify_dint): Whitespace fix.
3029         (gfc_simplify_anint): Whitespace fix.
3030         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
3031         (gfc_simplify_dnint): Whitespace fix.
3032         (gfc_simplify_asin): Whitespace fix.
3033         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
3034         (gfc_simplify_atan): Likewise.
3035         (gfc_simplify_atanh): Whitespace fix.
3036         (gfc_simplify_atan2): Whitespace fix.
3037         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
3038         (gfc_simplify_bessel_j1): Likewise.
3039         (gfc_simplify_bessel_jn): Likewise.
3040         (gfc_simplify_bessel_y0): Likewise.
3041         (gfc_simplify_bessel_y1): Likewise.
3042         (gfc_simplify_bessel_yn): Likewise.
3043         (gfc_simplify_ceiling): Reorderd statements.
3044         (simplify_cmplx): Use convert_boz(), check for constant arguments.
3045         Whitespace fix.
3046         (gfc_simplify_cmplx): Use correct default kind. Removed check for
3047         constant arguments.
3048         (gfc_simplify_complex): Replaced if-gate. Removed check for
3049         constant arguments.
3050         (gfc_simplify_conjg): Whitespace fix.
3051         (gfc_simplify_cos): Whitespace fix.
3052         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
3053         (gfc_simplify_dcmplx): Removed check for constant arguments.
3054         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
3055         (gfc_simplify_digits): Whitespace fix.
3056         (gfc_simplify_dim): Whitespace fix.
3057         (gfc_simplify_dprod): Reordered statements.
3058         (gfc_simplify_erf): Whitespace fix.
3059         (gfc_simplify_erfc): Whitespace fix.
3060         (gfc_simplify_epsilon): Whitespace fix.
3061         (gfc_simplify_exp): Whitespace fix.
3062         (gfc_simplify_exponent): Use convert_boz().
3063         (gfc_simplify_floor): Reorderd statements.
3064         (gfc_simplify_gamma): Whitespace fix.
3065         (gfc_simplify_huge): Whitespace fix.
3066         (gfc_simplify_iand): Whitespace fix.
3067         (gfc_simplify_ieor): Whitespace fix.
3068         (simplify_intconv): Use gfc_convert_constant().
3069         (gfc_simplify_int): Use simplify_intconv().
3070         (gfc_simplify_int2): Reorderd statements.
3071         (gfc_simplify_idint): Reorderd statements.
3072         (gfc_simplify_ior): Whitespace fix.
3073         (gfc_simplify_ishftc): Removed duplicate type check.
3074         (gfc_simplify_len): Use range_check() instead of manual range check.
3075         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
3076         (gfc_simplify_log): Whitespace fix.
3077         (gfc_simplify_log10): Whitespace fix.
3078         (gfc_simplify_minval): Whitespace fix.
3079         (gfc_simplify_maxval): Whitespace fix.
3080         (gfc_simplify_mod): Whitespace fix.
3081         (gfc_simplify_modulo): Whitespace fix.
3082         (simplify_nint): Reorderd statements.
3083         (gfc_simplify_not): Whitespace fix.
3084         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
3085         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
3086         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
3087         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
3088         (gfc_simplify_realpart): Whitespace fix.
3089         (gfc_simplify_selected_char_kind): Removed unused result-variable.
3090         (gfc_simplify_selected_int_kind): Removed unused result-variable.
3091         (gfc_simplify_selected_real_kind): Removed unused result-variable.
3092         (gfc_simplify_sign): Whitespace fix.
3093         (gfc_simplify_sin): Whitespace fix.
3094         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
3095         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
3096         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
3097         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
3098         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
3099
3100 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3101
3102         * gfortran.h (gfc_start_constructor): Removed.
3103         (gfc_get_array_element): Removed.
3104         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
3105         instead. Fixed all callers.
3106         (extract_element): Removed.
3107         (gfc_expand_constructor): Temporarily removed check for
3108         max-array-constructor. Will be re-introduced later if still required.
3109         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
3110         instead. Fixed all callers.
3111         * expr.c (find_array_section): Replaced manual lookup of elements
3112         by gfc_constructor_lookup.
3113
3114 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3115
3116         * gfortran.h (gfc_get_null_expr): New prototype.
3117         (gfc_get_operator_expr): New prototype.
3118         (gfc_get_character_expr): New prototype.
3119         (gfc_get_iokind_expr): New prototype.
3120         * expr.c (gfc_get_null_expr): New.
3121         (gfc_get_character_expr): New.
3122         (gfc_get_iokind_expr): New.
3123         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
3124         * matchexp.c (build_node): Renamed and moved to
3125         expr.c (gfc_get_operator_expr). Reordered arguments to match 
3126         other functions. Fixed all callers.
3127         (gfc_get_parentheses): Use specific function to build expr.
3128         * array.c (gfc_match_array_constructor): Likewise.
3129         * arith.c (eval_intrinsic): Likewise.
3130         (gfc_hollerith2int): Likewise.
3131         (gfc_hollerith2real): Likewise.
3132         (gfc_hollerith2complex): Likewise.
3133         (gfc_hollerith2logical): Likewise.
3134         * data.c (create_character_intializer): Likewise.
3135         * decl.c (gfc_match_null): Likewise.
3136         (enum_initializer): Likewise.
3137         * io.c (gfc_match_format): Likewise.
3138         (match_io): Likewise.
3139         * match.c (gfc_match_nullify): Likewise.
3140         * primary.c (match_string_constant): Likewise.
3141         (match_logical_constant): Likewise.
3142         (build_actual_constructor): Likewise.
3143         * resolve.c (build_default_init_expr): Likewise.
3144         * symbol.c (generate_isocbinding_symbol): Likewise.
3145         (gfc_build_class_symbol): Likewise.
3146         (gfc_find_derived_vtab): Likewise.
3147         * simplify.c (simplify_achar_char): Likewise.
3148         (gfc_simplify_adjustl): Likewise.
3149         (gfc_simplify_adjustr): Likewise.
3150         (gfc_simplify_and): Likewise.
3151         (gfc_simplify_bit_size): Likewise.
3152         (gfc_simplify_is_iostat_end): Likewise.
3153         (gfc_simplify_is_iostat_eor): Likewise.
3154         (gfc_simplify_isnan): Likewise.
3155         (simplify_bound): Likewise.
3156         (gfc_simplify_leadz): Likewise.
3157         (gfc_simplify_len_trim): Likewise.
3158         (gfc_simplify_logical): Likewise.
3159         (gfc_simplify_maxexponent): Likewise.
3160         (gfc_simplify_minexponent): Likewise.
3161         (gfc_simplify_new_line): Likewise.
3162         (gfc_simplify_null): Likewise.
3163         (gfc_simplify_or): Likewise.
3164         (gfc_simplify_precision): Likewise.
3165         (gfc_simplify_repeat): Likewise.
3166         (gfc_simplify_scan): Likewise.
3167         (gfc_simplify_size): Likewise.
3168         (gfc_simplify_trailz): Likewise.
3169         (gfc_simplify_trim): Likewise.
3170         (gfc_simplify_verify): Likewise.
3171         (gfc_simplify_xor): Likewise.
3172         * trans-io.c (build_dt): Likewise.
3173         (gfc_new_nml_name_expr): Removed.
3174
3175 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3176
3177         * arith.h (gfc_constant_result): Removed prototype.
3178         * constructor.h (gfc_build_array_expr): Removed prototype.
3179         (gfc_build_structure_constructor_expr): Removed prototype.
3180         * gfortran.h (gfc_int_expr): Removed prototype.
3181         (gfc_logical_expr): Removed prototype.
3182         (gfc_get_array_expr): New prototype.
3183         (gfc_get_structure_constructor_expr): New prototype.
3184         (gfc_get_constant_expr): New prototype.
3185         (gfc_get_int_expr): New prototype.
3186         (gfc_get_logical_expr): New prototype.
3187         * arith.c (gfc_constant_result): Moved and renamed to
3188         expr.c (gfc_get_constant_expr). Fixed all callers.
3189         * constructor.c (gfc_build_array_expr): Moved and renamed to
3190         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
3191         and kind. Fixed all callers.
3192         (gfc_build_structure_constructor_expr): Moved and renamed to
3193         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
3194         to type and kind. Fixed all callers.
3195         * expr.c (gfc_logical_expr): Renamed to ...
3196         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
3197         (gfc_int_expr): Renamed to ...
3198         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
3199         callers.
3200         (gfc_get_constant_expr): New.
3201         (gfc_get_array_expr): New.
3202         (gfc_get_structure_constructor_expr): New.
3203         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
3204         instead.
3205
3206 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3207
3208         * constructor.h: New.
3209         * constructor.c: New.
3210         * Make-lang.in: Add new files to F95_PARSER_OBJS.
3211         * arith.c (reducy_unary): Use constructor API.
3212         (reduce_binary_ac): Likewise.
3213         (reduce_binary_ca): Likewise.
3214         (reduce_binary_aa): Likewise.
3215         * check.c (gfc_check_pack): Likewise.
3216         (gfc_check_reshape): Likewise.
3217         (gfc_check_unpack): Likewise.
3218         * decl.c (add_init_expr_to_sym): Likewise.
3219         (build_struct): Likewise.
3220         * dependency.c (gfc_check_dependency): Likewise.
3221         (contains_forall_index_p): Likewise.
3222         * dump-parse-tree.c (show_constructor): Likewise.
3223         * expr.c (free_expr0): Likewise.
3224         (gfc_copy_expr): Likewise.
3225         (gfc_is_constant_expr): Likewise.
3226         (simplify_constructor): Likewise.
3227         (find_array_element): Likewise.
3228         (find_component_ref): Likewise.
3229         (find_array_section): Likewise.
3230         (find_substring_ref): Likewise.
3231         (simplify_const_ref): Likewise.
3232         (scalarize_intrinsic_call): Likewise.
3233         (check_alloc_comp_init): Likewise.
3234         (gfc_default_initializer): Likewise.
3235         (gfc_traverse_expr): Likewise.
3236         * iresolve.c (check_charlen_present): Likewise.
3237         (gfc_resolve_reshape): Likewise.
3238         (gfc_resolve_transfer): Likewise.
3239         * module.c (mio_constructor): Likewise.
3240         * primary.c (build_actual_constructor): Likewise.
3241         (gfc_match_structure_constructor): Likewise.
3242         * resolve.c (resolve_structure_cons): Likewise.
3243         * simplify.c (is_constant_array_expr): Likewise.
3244         (init_result_expr): Likewise.
3245         (transformational_result): Likewise.
3246         (simplify_transformation_to_scalar): Likewise.
3247         (simplify_transformation_to_array): Likewise.
3248         (gfc_simplify_dot_product): Likewise.
3249         (simplify_bound): Likewise.
3250         (simplify_matmul): Likewise.
3251         (simplify_minval_maxval): Likewise.
3252         (gfc_simplify_pack): Likewise.
3253         (gfc_simplify_reshape): Likewise.
3254         (gfc_simplify_shape): Likewise.
3255         (gfc_simplify_spread): Likewise.
3256         (gfc_simplify_transpose): Likewise.
3257         (gfc_simplify_unpack): Likewise.q
3258         (gfc_convert_constant): Likewise.
3259         (gfc_convert_char_constant): Likewise.
3260         * target-memory.c (size_array): Likewise.
3261         (encode_array): Likewise.
3262         (encode_derived): Likewise.
3263         (interpret_array): Likewise.
3264         (gfc_interpret_derived): Likewise.
3265         (expr_to_char): Likewise.
3266         (gfc_merge_initializers): Likewise.
3267         * trans-array.c (gfc_get_array_constructor_size): Likewise.
3268         (gfc_trans_array_constructor_value): Likewise.
3269         (get_array_ctor_strlen): Likewise.
3270         (gfc_constant_array_constructor_p): Likewise.
3271         (gfc_build_constant_array_constructor): Likewise.
3272         (gfc_trans_array_constructor): Likewise.
3273         (gfc_conv_array_initializer): Likewise.
3274         * trans-decl.c (check_constant_initializer): Likewise.
3275         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
3276         (gfc_apply_interface_mapping_to_cons): Likewise.
3277         (gfc_trans_structure_assign): Likewise.
3278         (gfc_conv_structure): Likewise.
3279         * array.c (check_duplicate_iterator): Likewise.
3280         (match_array_list): Likewise.
3281         (match_array_cons_element): Likewise.
3282         (gfc_match_array_constructor): Likewise.
3283         (check_constructor_type): Likewise.
3284         (check_constructor): Likewise.
3285         (expand): Likewise.
3286         (expand_constructor): Likewise.
3287         (extract_element): Likewise.
3288         (gfc_expanded_ac): Likewise.
3289         (resolve_array_list): Likewise.
3290         (gfc_resolve_character_array_constructor): Likewise.
3291         (copy_iterator): Renamed to ...
3292         (gfc_copy_iterator): ... this.
3293         (gfc_append_constructor): Removed.
3294         (gfc_insert_constructor): Removed unused function.
3295         (gfc_get_constructor): Removed.
3296         (gfc_free_constructor): Removed.
3297         (qgfc_copy_constructor): Removed.
3298         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
3299         Removed all references. Replaced constructor list by splay-tree.
3300         (struct gfc_constructor): Removed member 'next', moved 'offset' from
3301         the inner struct, added member 'base'.
3302         (gfc_append_constructor): Removed prototype.
3303         (gfc_insert_constructor): Removed prototype.
3304         (gfc_get_constructor): Removed prototype.
3305         (gfc_free_constructor): Removed prototype.
3306         (qgfc_copy_constructor): Removed prototype.
3307         (gfc_copy_iterator): New prototype.
3308         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
3309
3310 2010-04-10  Tobias Burnus  <burnus@net-b.de>
3311
3312         PR fortran/43591
3313         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
3314         proc-pointers and type-bound procedures.
3315         (gfc_specification_expr): Check proc-pointers for pureness.
3316
3317 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3318
3319         PR bootstrap/43684
3320         * gfortranspec.c (lang_specific_driver): Do not expose vars 
3321         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
3322         for such.
3323
3324 2010-04-09  Tobias Burnus  <burnus@net-b.de>
3325
3326         PR fortran/18918
3327         * decl.c (variable_decl, match_attr_spec): Fix setting the array
3328         spec.
3329         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
3330         * data.c (gfc_assign_data_value): Ditto.
3331         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
3332         (gfc_traverse_expr): Traverse also through codimension expressions.
3333         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3334         gfc_has_ultimate_pointer): New functions.
3335         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
3336         (gfc_array_ref): Add codimen.
3337         (gfc_array_ref): Add in_allocate.
3338         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3339         gfc_has_ultimate_pointer): Add prototypes.
3340         * interface.c (compare_parameter, compare_actual_formal,
3341         check_intents): Add coarray constraints.
3342         * match.c (gfc_match_iterator): Add coarray constraint.
3343         * match.h (gfc_match_array_ref): Update interface.
3344         * primary.c (gfc_match_varspec): Handle codimensions.
3345         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
3346         (check_class_members): Return gfc_try instead for error recovery.
3347         (resolve_typebound_function,resolve_typebound_subroutine,
3348         check_members): Handle return value of check_class_members.
3349         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
3350         check_dimension, compare_spec_to_ref, resolve_array_ref,
3351         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
3352         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
3353         support.
3354         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
3355         Skip over coarray refs.
3356         (gfc_array_allocate) Add support for references containing coindexes.
3357         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
3358         (gfc_map_intrinsic_function): Ignore codimensions.
3359
3360 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
3361
3362         PR fortran/28039
3363         * io.c (check_format_string):  Added check for additional non 
3364         blank characters after the format string was successfully 
3365         parsed.
3366         * io.c (check_format): Changed the error messages for positive
3367         int required and period required to drop through the error logic
3368         and report with gfc_error instead of gfc_error_now.  Corrected
3369         format postion for hollerith strings.
3370
3371 2010-04-08  Tobias Burnus  <burnus@net-b.de>
3372
3373         * module.c (use_iso_fortran_env_module): Fix standard check.
3374
3375 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3376
3377         * parse.c (parse_derived, parse_enum): Avoid set but not used
3378         warning.
3379
3380 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
3381
3382         PR fortran/40539
3383         * gfortran.texi: Add section about representation of
3384         LOGICAL variables.
3385
3386 2010-04-07  Simon Baldwin  <simonb@google.com>
3387
3388         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
3389         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
3390
3391 2010-04-07  Richard Guenther  <rguenther@suse.de>
3392
3393         * options.c (gfc_init_options): Do not set.
3394
3395 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3396
3397         PR fortran/18918
3398         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
3399         * match.c (gfc_match_critical, sync_statement): Ditto.
3400         * gfortran.h (gfc_fcoarray): New enum.
3401         (gfc_option_t): Use it.
3402         * lang.opt (fcoarray): Add new flag.
3403         * invoke.texi (fcoarray): Document it.
3404         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
3405         (gfc_handle_coarray_option): New function.
3406
3407 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3408
3409         PR fortran/18918
3410         * gfortran.h (gfc_array_spec): Add cotype.
3411         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
3412         and defer error diagnostic.
3413         * resolve.c (resolve_fl_derived): Add missing check.
3414         (resolve_symbol): Add cotype/type check.
3415         * parse.c (parse_derived): Fix setting of coarray_comp.
3416
3417 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3418
3419         PR fortran/18918
3420         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
3421         match_array_element_spec,gfc_copy_array_spec,
3422         gfc_compare_array_spec): Include corank.
3423         (match_array_element_spec,gfc_set_array_spec): Support codimension.
3424         * decl.c (build_sym,build_struct,variable_decl,
3425         match_attr_spec,attr_decl1,cray_pointer_decl,
3426         gfc_match_volatile): Add codimension.
3427         (gfc_match_codimension): New function.
3428         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
3429         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
3430         (gfc_add_codimension): New function prototype.
3431         * match.h (gfc_match_codimension): New function prototype.
3432         (gfc_match_array_spec): Update prototype
3433         * match.c (gfc_match_common): Update gfc_match_array_spec call.
3434         * module.c (MOD_VERSION): Bump.
3435         (mio_symbol_attribute): Support coarray attributes.
3436         (mio_array_spec): Add corank support.
3437         * parse.c (decode_specification_statement,decode_statement,
3438         parse_derived): Add coarray support.
3439         * resolve.c (resolve_formal_arglist, was_declared,
3440         is_non_constant_shape_array, resolve_fl_variable,
3441         resolve_fl_derived, resolve_symbol): Add coarray support.
3442         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
3443         gfc_build_class_symbol): Add coarray support.
3444         (gfc_add_codimension): New function.
3445
3446 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3447
3448         PR fortran/18918
3449         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
3450         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
3451         stat_locked_other_image, stat_stopped_image and stat_unlocked of
3452         Fortran 2008.
3453         * intrinsic.texi (iso_fortran_env): Ditto.
3454         * libgfortran.h (libgfortran_stat_codes): New enum.
3455         * module.c (use_iso_fortran_env_module): Honour -std= when loading
3456         constants from the intrinsic module.
3457
3458 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3459
3460         PR fortran/39997
3461         * intrinsic.c (add_functions): Add num_images.
3462         * decl.c (gfc_match_end): Handle END CRITICAL.
3463         * intrinsic.h (gfc_simplify_num_images): Add prototype.
3464         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
3465         and SYNC.
3466         * gfortran.h (gfc_statement): Add enum items for those.
3467         (gfc_exec_op) Ditto.
3468         (gfc_isym_id): Add num_images.
3469         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
3470         (gfc_trans_sync,gfc_trans_critical): New functions.
3471         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
3472         gfc_trans_critical): Add/update prototypes.
3473         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
3474         and SYNC statements.
3475         * trans.h (gfor_fndecl_error_stop_string) Add variable.
3476         * resolve.c (resolve_sync): Add function.
3477         (gfc_resolve_blocks): Handle CRITICAL.
3478         (resolve_code): Handle CRITICAL, ERROR STOP,
3479         (resolve_branch): Add CRITICAL constraint check.
3480         and SYNC statements.
3481         * st.c (gfc_free_statement): Add new statements.
3482         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
3483         (gfc_build_builtin_function_decls): Initialize it.
3484         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
3485         (gfc_match_critical, gfc_match_error_stop, sync_statement,
3486         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
3487         New functions.
3488         (match_exit_cycle): Handle CRITICAL constraint.
3489         (gfc_match_stopcode): Handle ERROR STOP.
3490         * match.h (gfc_match_critical, gfc_match_error_stop,
3491         gfc_match_sync_all, gfc_match_sync_images,
3492         gfc_match_sync_memory): Add prototype.
3493         * parse.c (decode_statement, gfc_ascii_statement,
3494         parse_executable): Handle new statements.
3495         (parse_critical_block): New function.
3496         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
3497         * intrinsic.texi (num_images): Document new function.
3498         * simplify.c (gfc_simplify_num_images): Add function.
3499
3500 2010-04-06  Tobias Burnus  <burnus@net-b.de>
3501
3502         PR fortran/43178
3503         * trans-array.c (gfc_conv_expr_descriptor): Update
3504         gfc_trans_scalar_assign call.
3505         (has_default_initializer): New function.
3506         (gfc_trans_deferred_array): Nullify less often.
3507         * trans-expr.c (gfc_conv_subref_array_arg,
3508         gfc_trans_subcomponent_assign): Update call to
3509         gfc_trans_scalar_assign.
3510         (gfc_trans_scalar_assign): Add parameter and pass it on.
3511         (gfc_trans_assignment_1): Optionally, do not dealloc before
3512         assignment.
3513         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
3514         call to gfc_trans_scalar_assign.
3515         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
3516         initializer to static variables.
3517         (gfc_init_default_dt): Add dealloc parameter and pass it on.
3518         * trans-stmt.c (forall_make_variable_temp,
3519         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
3520         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
3521         gfc_trans_allocate): Update gfc_trans_assignment call.
3522         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
3523         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
3524         parameter to prototype.
3525
3526 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
3527
3528         * ioparm.def : Update copyright.
3529         * lang.opt : ditto
3530         * trans-array.c : ditto
3531         * trans-array.h : ditto
3532         * expr.c: ditto
3533         * trans-types.c: ditto
3534         * dependency.c : ditto
3535         * gfortran.h : ditto
3536         * options.c : ditto
3537         * trans-io.c : ditto
3538         * trans-intrinsic.c : ditto
3539         * libgfortran.h : ditto
3540         * invoke.texi : ditto
3541         * intrinsic.texi : ditto
3542         * trans.c : ditto
3543         * trans.h : ditto
3544         * intrinsic.c : ditto
3545         * interface.c : ditto
3546         * iresolve.c : ditto
3547         * trans-stmt.c : ditto
3548         * trans-stmt.h : ditto
3549         * parse,c : ditto
3550         * match.h : ditto
3551         * error.c : ditto
3552
3553 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
3554
3555         PR fortran/43450
3556         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
3557         do not assert the context of derived types.
3558
3559 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3560
3561         PR fortran/43409
3562         * ioparm.def: Change inquire size variable to type pointer to
3563         GFC_IO_INT type.
3564
3565 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
3566
3567         PR fortran/43039
3568         * trans-expr.c (conv_parent_component_references): Ensure that
3569         'dt' has a backend_decl.
3570
3571         PR fortran/43043
3572         * trans-expr.c (gfc_conv_structure): Ensure that the derived
3573         type has a backend_decl.
3574
3575         PR fortran/43044
3576         * resolve.c (resolve_global_procedure): Check that the 'cl'
3577         structure is not NULL.
3578
3579 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3580
3581         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
3582         redundant tab.
3583
3584 2010-03-17  Tobias Burnus  <burnus@net-b.de>
3585
3586         PR fortran/43331
3587         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
3588         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
3589         check.
3590         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
3591         pointees as having explizit size.
3592         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
3593         check.
3594         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
3595         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
3596         * resolve.c (resolve_symbol): Handle cp_was_assumed.
3597         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
3598         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
3599         pointers.
3600
3601 2010-03-14  Tobias Burnus  <burnus@net-b.de>
3602
3603         PR fortran/43362
3604         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
3605         (resolve_ordinary_assign): Add check to avoid segfault.
3606
3607 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
3608
3609         PR fortran/43291
3610         PR fortran/43326
3611         * resolve.c (resolve_compcall): Add new boolean dummy argument
3612         'class_members'. Only resolve expression at end if false.
3613         Remove redundant, static variable 'class_object'.
3614         (check_class_members): Add extra argument to call of
3615         resolve_compcall.
3616         (resolve_typebound_function): Renamed resolve_class_compcall.
3617         Do all the detection of class references here. Correct calls to
3618         resolve_compcall for extra argument.
3619         (resolve_typebound_subroutine): resolve_class_typebound_call
3620         renamed. Otherwise same as resolve_typebound_function.
3621         (gfc_resolve_expr): Call resolve_typebound_function.
3622         (resolve_code): Call resolve_typebound_subroutine.
3623
3624 2010-03-10  Tobias Burnus  <burnus@net-b.de
3625
3626         PR fortran/43303
3627         * symbol.c (get_iso_c_sym): Set sym->result.
3628
3629 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
3630
3631         PR fortran/43256
3632         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
3633         for TBPs, otherwise they will not be resolved properly.
3634         (resolve_function): Use 'value.function.esym' instead of
3635         'value.function.name' to check if we're dealing with a TBP.
3636         (check_class_members): Set correct type of passed object for all TBPs,
3637         not only generic ones, except if the type is abstract.
3638
3639 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
3640
3641         PR fortran/43244
3642         * decl.c (gfc_match_final_decl): Make sure variable names starting with
3643         'final...' are not misinterpreted as FINAL statements.
3644
3645 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
3646
3647         PR fortran/43243
3648         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3649         allocatable ultimate components do not need temporaries, whilst
3650         ultimate pointer components do.
3651
3652 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
3653
3654         PR fortran/43169
3655         * resolve.c (resolve_code): Correctly set gfc_current_ns for
3656         EXEC_SELECT_TYPE.
3657         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
3658         (gfc_pure): Ditto.
3659
3660 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
3661
3662         PR fortran/43180
3663         * trans-array.c (gfc_conv_array_parameter): A full array of
3664         derived type need not be restricted to a symbol without an
3665         array spec to use the call to gfc_conv_expr_descriptor.
3666
3667         PR fortran/43173
3668         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
3669         allocatable arrays do not need temporaries.
3670
3671 2010-03-01  Tobias Burnus  <burnus@net-b.de>
3672
3673         PR fortran/43199
3674         * resolve.c (find_array_spec): Handle REF_COMPONENT with
3675         CLASS components.
3676
3677 2010-02-28  Tobias Burnus  <burnus@net-b.de>
3678
3679         PR fortran/43205
3680         * trans-expr.c (is_zero_initializer_p): Move up in the file.
3681         (gfc_conv_initializer): Handle zero initializer as special case.
3682
3683 2010-02-27  Tobias Burnus  <burnus@net-b.de>
3684
3685         PR fortran/43185
3686         * resolve.c (resolve_fl_variable_derived): Imply SAVE
3687         for module variables for Fortran 2008.
3688
3689 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
3690
3691         PR debug/43166
3692         * trans-common.c (build_common_decl): Also update DECL_MODE,
3693         and DECL_SIZE when encountering a larger common block and call
3694         layout_decl.
3695
3696 2010-02-24  Tobias Burnus  <burnus@net-b.de>
3697
3698         PR fortran/43042
3699         * trans-expr.c (gfc_conv_initializer): Call directly
3700         gfc_conv_constant for C_NULL_(FUN)PTR.
3701
3702 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
3703
3704         PR fortran/43072
3705         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
3706         checking the rest of the dimensions for elements.
3707
3708 2010-02-21  Tobias Burnus  <burnus@net-b.de>
3709
3710         PR fortran/35259
3711         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
3712         * lang.opt: Ditto.
3713         * option.c (gfc_init_options,gfc_handle_option): Ditto.
3714         * trans-expr.c (gfc_conv_expr_op): Use the flag.
3715         * invoke.texi: Document new -fno-protect-parens flag.
3716
3717 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
3718
3719         PR fortran/36932
3720         PR fortran/36933
3721         PR fortran/43072
3722         PR fortran/43111
3723         * dependency.c (gfc_check_argument_var_dependency): Use enum
3724         value instead of arithmetic vaue for 'elemental'.
3725         (check_data_pointer_types): New function.
3726         (gfc_check_dependency): Call check_data_pointer_types.
3727         * trans-array.h : Change fourth argument of
3728         gfc_conv_array_parameter to boolean.
3729         * trans-array.c (gfc_conv_array_parameter): A contiguous array
3730         can be a dummy but it must not be assumed shape or deferred.
3731         Change fourth argument to boolean. Array constructor exprs will
3732         always be contiguous and do not need packing and unpacking.
3733         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
3734         space and change fourth argument of gfc_conv_array_parameter
3735         to boolean.
3736         (gfc_trans_arrayfunc_assign): Change fourth argument of
3737         gfc_conv_array_parameter to boolean.
3738         * trans-io.c (gfc_convert_array_to_string): The same.
3739         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
3740
3741 2010-02-20  Tobias Burnus  <burnus@net-b.de>
3742
3743         PR fortran/42958
3744         * libgfortran.h: Add GFC_RTCHECK_MEM.
3745         * invoke.texi (-fcheck=): Document -fcheck=mem.
3746         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
3747         and enable malloc-success check only with -fcheck=mem.
3748         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
3749
3750 2010-02-16  Tobias Burnus  <burnus@net-b.de>
3751
3752         PR fortran/43040
3753         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
3754         * intrinsic.c (add_functions): Ditto.
3755         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
3756         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
3757
3758 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3759
3760         PR fortran/32382
3761         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
3762         gfc_trans_do prototype.
3763         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
3764         a loop exit condition.  If exit condition is given, build the loop exit
3765         code, checking IO results of implied do loops in READ and WRITE.
3766         (gfc_trans_do): Likewise.
3767         * trans.c (trans_code): New static work function, previously
3768         gfc_trans_code. Passes exit condition to gfc_trans_do.
3769         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
3770         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
3771         * trans-io.c (build_dt): Build an exit condition to allow checking IO
3772         result status bits in the dtparm structure. Use this condition in call
3773         to gfc_trans_code_cond.
3774
3775 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
3776
3777         PR fortran/41113
3778         PR fortran/41117
3779         * trans-array.c (gfc_conv_array_parameter): Use
3780         gfc_full_array_ref_p to detect full and contiguous variable
3781         arrays. Full array components and contiguous arrays do not need
3782         internal_pack and internal_unpack.
3783
3784 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
3785
3786         PR fortran/43030
3787         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
3788
3789         PR fortran/43029
3790         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
3791         here.
3792         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
3793         MATCH_ERROR.
3794
3795 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
3796             Tobias Burnus <burnus@net-b.de>
3797
3798         PR fortran/40823
3799         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
3800
3801 2010-02-10  Tobias Burnus  <burnus@net-b.de>
3802
3803         PR fortran/43015
3804         * trans-decl.c (gfc_generate_function_code): Only check
3805         actual-vs.-dummy character bounds if not bind(C).
3806
3807 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
3808
3809         PR fortran/42309
3810         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
3811         info->dimen after info has been freed.
3812
3813 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3814
3815         PR fortran/42999
3816         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
3817         with iterators.
3818
3819 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
3820
3821         * module.c (fix_mio_expr): Declare sym.
3822
3823 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
3824
3825         PR fortran/41869
3826         * module.c (fix_mio_expr): Fix for private generic procedures.
3827
3828 2010-02-09  Daniel Kraft  <d@domob.eu>
3829
3830         PR fortran/39171
3831         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
3832         length to be correct and issue only with -Wsurprising.
3833         * invoke.texi (Wsurprising): Mention this new warning that is
3834         turned on by -Wsurprising.
3835
3836 2010-02-09  Daniel Kraft  <d@domob.eu>
3837
3838         PR fortran/41507
3839         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
3840         can be CHARACTER type.
3841         (MINVAL), (MAXLOC), (MINLOC): Ditto.
3842
3843 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
3844
3845         PR fortran/42309
3846         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
3847         'formal_ptr'. If this is true, give returned descriptor unity
3848         lbounds, in all dimensions, and the appropriate offset.
3849         (gfc_conv_procedure_call); If formal is a pointer, set the last
3850         argument of gfc_conv_subref_array_arg to true.
3851         * trans.h : Add last argument for gfc_conv_subref_array_arg.
3852         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
3853         new arg of gfc_conv_subref_array_arg to false.
3854         * trans-stmt.c (forall_make_variable_temp): The same.
3855
3856 2010-02-03  Tobias Burnus  <burnus@net-b.de>
3857
3858         PR fortran/42936
3859         * interface.c (compare_parameter): Disable rank-checking
3860         for NULL().
3861
3862 2010-02-02  Tobias Burnus  <burnus@net-b.de>
3863
3864         PR fortran/42650
3865         * parse.c (decode_specification_statement): Use sym->result not sym.
3866
3867 2010-02-01  Tobias Burnus  <burnus@net-b.de>
3868
3869         PR fortran/42922
3870         * decl.c (variable_decl): Allow default initializer in
3871         TYPE declarations in PURE functions.
3872
3873 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
3874
3875         PR fortran/42888
3876         * resolve.c (resolve_allocate_expr): Move default initialization code
3877         here from gfc_trans_allocate.
3878         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
3879         EXEC_INIT_ASSIGN.
3880         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
3881         of CLASS variables via memcpy.
3882         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
3883         to resolve_allocate_expr.
3884
3885 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
3886
3887         PR fortran/38324
3888         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
3889         * gfortran.h : Add prototype for above.
3890         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
3891         (gfc_trans_subcomponent_assign): Call new function to replace
3892         the code to deal with allocatable components.
3893         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
3894         gfc_get_full_arrayspec_from_expr to replace existing code.
3895
3896 2010-01-25  Tobias Burnus  <burnus@net-b.de>
3897
3898         PR fortran/42858
3899         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
3900         check.
3901
3902 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
3903
3904         PR fortran/41044
3905         PR fortran/41167
3906         * expr.c (remove_subobject_ref): If the constructor is NULL use
3907         the expression as the source.
3908         (simplify_const_ref): Change the type of expression if
3909         there are component references.  Allow for substring to be at
3910         the end of an arbitrarily long chain of references.  If an
3911         element is found that is not in an EXPR_ARRAY, assume that this
3912         is scalar initialization of array. Call remove_subobject_ref in
3913         this case with NULL second argument.
3914
3915 2010-01-24  Tobias Burnus  <burnus@net-b.de>
3916
3917         PR fortran/39304
3918         * array.c (gfc_array_dimen_size): Use correct specific
3919         function in the check.
3920
3921 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
3922
3923         PR fortran/42736
3924         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
3925         is required, turn any trailing array elements after a range
3926         into ranges so that offsets can be calculated.
3927
3928 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
3929
3930         * module.c (mio_f2k_derived): Use enumerator as initializer of
3931         enum variable.
3932
3933         PR bootstrap/42812
3934         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
3935         bitfield of width 2.
3936
3937 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3938
3939         PR fortran/42804
3940         * resolve.c (extract_compcall_passed_object): Set locus for
3941         passed-object argument.
3942         (extract_ppc_passed_object): Set locus and correctly remove PPC
3943         reference.
3944
3945 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
3946
3947         PR fortran/42783
3948         * trans-decl.c (add_argument_checking): Do not use the backend
3949         decl directly to test for the presence of an optional dummy
3950         argument.  Use gfc_conv_expr_present, remembering to set the
3951         symbol referenced.
3952
3953         PR fortran/42772
3954         * trans-decl.c (gfc_generate_function_code): Small white space
3955         changes. If 'recurcheckvar' is NULL do not try to reset it.
3956
3957 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
3958
3959         PR fortran/42545
3960         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
3961         component for extended types.
3962         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
3963         and take care of parent component accessibility.
3964
3965 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
3966
3967         PR fortran/42677
3968         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
3969         * interface.c (check_interface1): Move a warning message here from
3970         resolve_fl_procedure.
3971         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
3972         * module.c (read_module): Remove call to gfc_check_interfaces, since
3973         this comes too early here.
3974         * resolve.c (resolve_fl_procedure): Move warning message to
3975         check_interface1.
3976
3977 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3978
3979         PR fortran/42684
3980         * interface.c (check_interface1): Pass symbol name rather than NULL to
3981         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
3982         trap MULL.
3983         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3984         than NULL to gfc_compare_interfaces.
3985
3986 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
3987
3988         PR fortran/41478
3989         * trans-array.c (duplicate_allocatable):  Static version of
3990         gfc_duplicate_allocatable with provision to handle scalar
3991         components. New boolean argument to switch off call to malloc
3992         if true.
3993         (gfc_duplicate_allocatable): New function to call above with
3994         new argument false.
3995         (gfc_copy_allocatable_data): New function to call above with
3996         new argument true.
3997         (structure_alloc_comps): Do not apply indirect reference to
3998         scalar pointers. Add new section to copy allocatable components
3999         of arrays. Extend copying of allocatable components to include
4000         scalars.
4001         (gfc_copy_only_alloc_comp): New function to copy allocatable
4002         component derived types, without allocating the base structure.
4003         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
4004         Add primitive for gfc_copy_only_alloc_comp.
4005         * trans-expr.c (gfc_conv_procedure_call): After calls to
4006         transformational functions with results that are derived types
4007         with allocatable components, copy the components in the result.
4008         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
4009         of lhs derived types before allocation.
4010         
4011 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
4012
4013         PR fortran/42481
4014         * module.c (load_generic_interfaces): If a procedure that is
4015         use associated but not generic is given an interface that
4016         includes itself, then make it generic.
4017
4018 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
4019             Shujing Zhao  <pearly.zhao@oracle.com>
4020
4021         PR translation/42469
4022         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
4023         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
4024         character between option name and help text.
4025
4026 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4027
4028         PR fortran/20923
4029         PR fortran/32489
4030         * trans-array.c (gfc_conv_array_initializer): Change call to
4031         gfc_error_now to call to gfc_fatal_error.
4032         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
4033         (is_constant_element): Changed name from constant_element.
4034         (gfc_constant_ac): Only use expand_construuctor for expression
4035         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
4036         call gfc_is_constant_expr.
4037         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
4038         message.
4039         * resolve.c (gfc_is_expandable_expr): New function that determiners if
4040         array expressions should have their constructors expanded.
4041         (gfc_resolve_expr): Use new function to determine whether or not to call
4042         gfc_expand_constructor.
4043
4044 2010-01-09  Tobias Burnus  <burnus@net-b.de>
4045
4046         PR fortran/41298
4047         * trans-expr.c (gfc_trans_structure_assign): Handle
4048         c_null_(fun)ptr.
4049         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
4050         to the constructor for c_null_(fun)ptr.
4051         * resolve.c (resolve_structure_cons): Add special case
4052         for c_null_(fun)ptr.
4053
4054 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
4055
4056         * gfortranspec.c (lang_specific_driver): Update copyright notice
4057         dates.
4058
4059 2010-01-08  Tobias Burnus  <burnus@net-b.de>
4060
4061         PR/fortran 25829
4062         * symbol.c (check_conflict, gfc_copy_attr): Add
4063         ASYNCHRONOUS support.
4064         (gfc_add_asynchronous): New function.
4065         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
4066         (gfc_match_asynchronous): New function.
4067         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
4068         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
4069         (gfc_add_asynchronous): New Prototype.
4070         * module.c (ab_attribute, mio_symbol_attribute): Add
4071         ASYNCHRONOUS support.
4072         * resolve.c (was_declared): Ditto.
4073         * match.h (gfc_match_asynchronous): New prototype.
4074         * parse.c (decode_specification_statement,decode_statement):
4075         Add ASYNCHRONOUS support.
4076
4077 2010-01-07  Tobias Burnus  <burnus@net-b.de>
4078
4079         PR fortran/42597
4080         * trans-decl.c (get_proc_pointer_decl): Fix call to
4081         gfc_conv_initializer for array-valued proc-pointer funcs.
4082
4083 2010-01-07  Tobias Burnus  <burnus@net-b.de>
4084
4085         PR fortran/41872
4086         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
4087         allocatable scalars with SAVE attribute.
4088
4089 2010-01-05  Tobias Burnus  <burnus@net-b.de>
4090
4091         PR fortran/42517
4092         * options.c (gfc_post_options): Set -frecursion
4093         when -fopenmp is used.
4094
4095 2010-01-05  Tobias Burnus  <burnus@net-b.de>
4096
4097         PR fortran/41872
4098         * trans-expr.c (gfc_conv_procedure_call): Nullify
4099         return value for allocatable-scalar character functions.
4100
4101 2010-01-04  Tobias Burnus  <burnus@net-b.de>
4102
4103         PR fortran/36161
4104         * error.c (error_printf, gfc_warning, gfc_notify_std,
4105         gfc_warning_now, gfc_error, gfc_error_now,
4106         gfc_fatal_error): Change argument name from nocmsgid to
4107         gmsgid to enable (x)gettext's % checking.
4108
4109 2010-01-04  Tobias Burnus  <burnus@net-b.de>
4110         
4111         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
4112
4113 2010-01-04  Tobias Burnus  <burnus@net-b.de>
4114
4115         PR fortran/41872
4116         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
4117         for functions returning allocatable scalars.
4118         * trans-stmt.c (gfc_trans_allocate): Emmit error when
4119         reallocating an allocatable scalar.
4120         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
4121         in comment.
4122         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
4123         allocatable scalars.
4124         (gfc_generate_function_code): Nullify result variable for
4125         allocatable scalars.
4126         
4127         PR fortran/40849
4128         * module.c (gfc_use_module): Fix warning string to allow
4129         for translation.
4130
4131         PR fortran/42517
4132         * invoke.texi (-fcheck=recursion): Mention that the checking
4133         is also disabled for -frecursive.
4134         * trans-decl.c (gfc_generate_function_code): Disable
4135         -fcheck=recursion when -frecursive is used.
4136
4137         * intrinsic.texi (iso_c_binding): Improve wording.
4138
4139 \f
4140 Copyright (C) 2010 Free Software Foundation, Inc.
4141
4142 Copying and distribution of this file, with or without modification,
4143 are permitted in any medium without royalty provided the copyright
4144 notice and this notice are preserved.