OSDN Git Service

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