OSDN Git Service

2010-09-25 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-09-25  Tobias Burnus  <burnus@net-b.de>
2
3         * gfortran.texi: Re-add accidently removed \input line.
4
5 2010-09-25  Daniel Kraft  <d@domob.eu>
6
7         PR fortran/45776
8         * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
9         * io.c (resolve_tag): F2008 check for NEWUNIT and variable
10         definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
11         (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
12         `extra_comma' with changed semantics.
13         (gfc_resolve_dt): Check variable definitions.
14         (match_io_element): Remove INTENT and PURE checks here and
15         initialize code->ext.dt member.
16         (match_io): Set dt->dt_io_kind.
17         (gfc_resolve_inquire): Check variable definition for all tags
18         except UNIT, FILE and ID.
19         * resolve.c (resolve_transfer): Variable definition check.
20
21 2010-09-25  Tobias Burnus  <burnus@net-b.de>
22
23         * interface.c (gfc_match_end_interface): Constify char pointer
24         to fix warning.
25
26 2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
27
28         * interface.c (gfc_match_end_interface): Deal with user defined
29         operators that overload rational operators and C1202.
30
31 2010-09-24  Tobias Burnus  <burnus@net-b.de>
32
33         * gfortran.texi: Add second space after end-of-sentence period;
34         change / to /@/ to allow hyphenation of URLs.
35         (Standards): Remove duplicated OpenMP, update wording given that
36         Fortran 2008 now released.
37         (Fortran 2008 status): Update and add list of implemented features.
38
39 2010-09-24  Tobias Burnus  <burnus@net-b.de>
40
41         PR fortran/40571
42         * iso-fortran-env.def: Add NAMED_KINDARRAY with
43         character_kinds, integer_kinds, logical_kinds and
44         real_kinds.
45         * gfortran.h: Add them to iso_fortran_env_symbol.
46         * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
47         LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
48         libgfortran_stat_codes to libgfortran_error_codes.
49         * module.c (create_int_parameter_array): New function.
50         (use_iso_fortran_env_module): Use it for
51         NAMED_KINDARRAY of iso-fortran-env.def.
52         * trans-decl.c (gfc_get_symbol_decl): Parameter
53         arrays of intrinsics modules become local static variables.
54         * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
55         integer_kinds, logical_kinds and real_kinds.
56
57 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
58
59         PR fortran/45744
60         * frontend-passes.c (optimize_binop_array_assignment):
61         Only re-use lhs as intermediate storage if kind and type
62         parameters match.
63
64 2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
65
66         PR fortran/45745
67         PR fortran/45648
68         * trans-array.c (gfc_conv_expr_descriptor): Handle
69         ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
70
71 2010-09-23  Tobias Burnus  <burnus@net-b.de>
72
73         * intrinsic.texi (OpenMP modules): Add named constants of
74         OMP_LIB.
75
76 2010-09-23  Daniel Kraft  <d@domob.eu>
77
78         PR fortran/38936
79         PR fortran/44044
80         PR fortran/45474
81         * gfortran.h (gfc_check_vardef_context): New method.
82         (struct symbol_attribute): New flag `select_type_temporary'.
83         * primary.c (gfc_variable_attr): Clarify initialization of ref.
84         (match_variable): Remove PROTECTED check and assignment check
85         for PARAMETERs (this is now done later).
86         * match.c (gfc_match_iterator): Remove INTENT(IN) check.
87         (gfc_match_associate): Defer initialization of newAssoc->variable.
88         (gfc_match_nullify): Remove PURE definability check.
89         (select_type_set_tmp): Set new `select_type_temporary' flag.
90         * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
91         (gfc_check_pointer_assign): Ditto (and other checks removed).
92         (gfc_check_vardef_context): New method.
93         * interface.c (compare_parameter_protected): Removed.
94         (compare_actual_formal): Use `gfc_check_vardef_context' for checks
95         related to INTENT([IN]OUT) arguments.
96         * intrinsic.c (check_arglist): Check INTENT for intrinsics.
97         * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
98         (remove_last_array_ref): New method.
99         (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
100         (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
101         (resolve_assoc_var): Remove checks for definability here.
102         (resolve_select_type): Handle resolving of code->block here.
103         (resolve_ordinary_assign): Remove PURE check.
104         (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
105         Use `gfc_check_vardef_context' for assignments and pointer-assignments.
106
107 2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
108
109         * gfortran.texi (Argument list functions): Allow URL to wrap.
110         * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
111         (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
112         (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
113         code markups in the text.
114         * invoke.texi (Fortran Dialect Options)
115         (Error and Warning Options, Directory Options, Code Gen Options):
116         Likewise.  Remove @code inside @smallexample.
117
118 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
119
120         * gfortranspec.c (lang_specific_driver): Handle OPT__version and
121         OPT__help instead of OPT_fversion and OPT_fhelp.
122         * lang.opt (-all-warnings, -assert, -assert=, -comments,
123         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
124         -dump, -dump=, -include-barrier, -include-directory,
125         -include-directory=, -include-directory-after,
126         -include-directory-after=, -include-prefix, -include-prefix=,
127         -no-line-commands, -no-standard-includes, -output, -output=,
128         -preprocess, -print-missing-file-dependencies, -trace-includes,
129         -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
130         -write-dependencies, -write-user-dependencies): New.
131
132 2010-09-21  Jason Blevins  <jrblevin@sdf.org>
133
134         * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
135         execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
136         Correct spelling.
137
138 2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
139
140         PR fortran/45648
141         * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
142         info->dim.
143
144         PR fortran/45648
145         * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
146         accessing dimensions in reversed order. 
147
148         PR fortran/45648
149         * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
150         intrinsic function call. 
151
152         * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
153         Update asserts accordingly.
154
155         PR fortran/45648
156         * trans.h (gfc_se): New field force_tmp. 
157         * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
158         and set parmse.force_tmp if some alias is found. 
159         * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
160         if se->force_tmp is set. 
161
162 2010-09-20  Janus Weil  <janus@gcc.gnu.org>
163
164         PR fortran/45438
165         * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
166         TBPs, PPCs and pointer/allocatable components.
167
168 2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
169
170         PR fortran/45081
171         * simplify.c (is_constant_array_expr): Allow structure array
172         elements as well as constants.
173         (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
174         gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
175         type of source to the result.
176
177 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
178
179         * frontend-passes.c (gfc_expr_walker):  Also
180         handle EXPR_SUBSTRING.
181
182 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
183
184         * frontend-passes.c (gfc_expr_walker):  Handle
185         constructors and references.
186
187 2010-09-16  Tobias Burnus  <burnus@net-b.de>
188
189         PR fortran/43665
190         * trans-types.c (create_fn_spec): New function.
191         (gfc_get_function_type): Call it.
192
193 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
194
195         * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
196         (gfc_expr_walker, gfc_code_walker): New prototypes.
197         * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
198         (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
199         (optimize_namespace): Use gfc_code_walker.
200         (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
201         (optimize_expr_0, optimize_code_node,
202         optimize_actual_arglist): Removed.
203         (optimize_assignment): Don't call optimize_expr_0.
204
205 2010-09-16  Janus Weil  <janus@gcc.gnu.org>
206
207         PR fortran/45674
208         * interface.c (compare_parameter): Create vtab for actual argument,
209         instead of formal (if needed).
210
211 2010-09-15  Janus Weil  <janus@gcc.gnu.org>
212
213         PR fortran/45577
214         * resolve.c (resolve_allocate_expr): Do default initialization via
215         EXEC_INIT_ASSIGN.
216
217 2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
218
219         * mathbuiltins.def: Do not defined huge_val built-in.
220         * trans-const.c (gfc_build_inf_or_huge): New function.
221         * trans-const.h (gfc_build_inf_or_huge): New prototype.
222         * f95-lang.c (gfc_init_builtin_functions): Don't defined
223         huge_val built-ins.
224         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
225         have functions of type (*) (void) anymore.
226         (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
227         (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
228         of generating a call to huge_val().
229
230 2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>
231
232         * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
233         * dependency.c (gfc_check_dependency): Don't depend on
234         expr's inline_noncopying_intrinsic_attribute.
235         * dependency.c (gfc_check_argument_var_dependency,
236         gfc_check_argument_dependency): Ditto. Recursively check dependency
237         as NOT_ELEMENTAL in the non-copying (=transpose) case.
238         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
239         * resolve.c (find_noncopying_intrinsics): Remove.
240         (resolve_function, resolve_call): Remove call to
241         find_noncopying_intrinsics.
242
243         * trans-array.c (gfc_conv_array_transpose): Remove.
244         (gfc_walk_subexpr): Make non-static. Move prototype...
245         * trans-array.h (gfc_walk_subexpr): ... here.
246         * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
247         handling.
248         (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
249         gfc_inline_intrinsic_function_p): New.
250         (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
251         Remove transpose from the libcall list.
252         (gfc_walk_intrinsic_function): Special case inline intrinsic.
253         * trans.h (gfc_inline_intrinsic_function_p): New prototype.
254
255 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
256
257         * trans-expr.c (expr_is_variable): New function taking non-copying
258         intrinsic functions into account.
259         (gfc_trans_assignment_1): Use expr_is_variable.
260
261 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
262
263         * trans-array.c (gfc_conv_loop_setup): Access the shape along the
264         real array dimension instead of the scalarizer (loop) dimension.
265
266 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
267
268         * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
269         transposed references.
270
271 2010-09-10  Tobias Burnus  <burnus@net-b.de>
272
273         PR fortran/45186
274         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
275         build4_stat_loc): New inline functions.
276         (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
277         (build1_v, build2_v, build3_v, build4_v): Use input_location
278         as locus.
279         * trans-array.c (gfc_trans_scalarized_loop_end,
280         gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
281         * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
282         gfc_finish_wrapped_block): Ditto.
283         * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
284         * trans-expr.c (gfc_conv_missing_dummy,
285         gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
286         * trans-openmp.c (gfc_omp_clause_default_ctor,
287         gfc_trans_omp_critical, gfc_trans_omp_parallel,
288         gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
289         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
290         gfc_trans_omp_single, gfc_trans_omp_task,
291         gfc_trans_omp_workshare): Ditto.
292
293 2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
294
295         * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
296         for dummy argument that appears in a specification statement.
297
298 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
299
300         * trans-array.c (gfc_get_array_ref_dim): New function.
301         (gfc_trans_create_temp_array): Reconstruct array
302         bounds from loop bounds. Use array bounds instead of loop bounds.
303
304 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
305
306         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
307         Get the array dimension from the dim array.
308
309 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
310
311         * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
312         dim array to get the stride in the innermost loop.
313
314 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
315
316         * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
317         (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
318         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
319
320 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
321
322         * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
323         and info dimension are the same. Loop over loop dimension.
324         * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
325
326 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
327
328         * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
329         name
330
331 2010-09-09  Tobias Burnus  <burnus@net-b.de>
332
333         PR fortran/43665
334         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
335         STAT): Show also syntax for the function version.
336         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
337          add_sym_3s_intent): Remove function.
338         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
339         as argument.
340         (add_sym_2_intent): New function.
341         (add_functions): Set intent for functions which modify
342         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
343         argument name of hostnm from "a" to "c"
344         (add_subroutines): Change add_sym_*s_intent to
345         add_sym_*s and add intent to the add_sym_*s calls.
346
347 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
348
349         PR fortran/38282
350         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
351         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
352         * gfortran.h: Define ISYM values for above intrinsics.
353         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
354         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
355         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
356         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
357         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
358         gfc_simplify_merge_bits, gfc_simplify_rshift,
359         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
360         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
361         gfc_resolve_shift): New prototypes.
362         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
363         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
364         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
365         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
366         functions.
367         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
368         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
369         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
370         functions.
371         (gfc_conv_intrinsic_function): Call above static functions.
372         * intrinsic.texi: Document new intrinsics.
373         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
374         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
375         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
376         gfc_simplify_merge_bits, gfc_simplify_rshift, 
377         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
378         New functions.
379
380 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
381
382         * frontend-passes.c (optimize_code_node): Walk block chain by default.
383
384         PR fortran/45597
385         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
386         instead of code->block.
387
388         PR fortran/45595
389         * openmp.c (resolve_omp_do): Report not enough do loops for
390         collapse even if block->next is NULL.
391
392 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
393
394         PR fortran/45576
395         * dependency.c (gfc_deb_compare_expr):  Take missing optional
396         arguments into account.
397
398 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
399
400         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
401         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
402         (gfc_build_intrinsic_function_decls): Don't build the
403         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
404         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
405         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
406         of calling clz128/ctz128 library functions.
407
408 2010-09-07  Jan Hubicka  <jh@suse.cz>
409
410         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
411         initializers.
412
413 2010-09-07  Tobias Burnus <burnus@net-b.de>
414         
415         PR fortran/45583
416         * intrinsic.texi (COS): Remove superfluous "n".
417
418 2010-09-07  Tobias Burnus <burnus@net-b.de>
419
420         PR fortran/45186
421         * trans-array.c (gfc_conv_descriptor_data_get,
422         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
423         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
424         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
425         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
426         gfc_conv_shift_descriptor_lbound,
427         gfc_set_loop_bounds_from_array_spec,
428         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
429         gfc_conv_array_transpose, gfc_get_iteration_count,
430         gfc_grow_array, gfc_trans_array_ctor_element,
431         gfc_trans_array_constructor_subarray,
432         gfc_trans_array_constructor_value,
433         constant_array_constructor_loop_size, gfc_trans_array_constructor,
434         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
435         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
436         gfc_conv_array_ref, gfc_trans_preloop_setup,
437         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
438         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
439         gfc_conv_descriptor_size, gfc_array_init_size,
440         gfc_array_allocate, gfc_array_deallocate,
441         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
442         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
443         get_array_charlen, gfc_conv_expr_descriptor,
444         array_parameter_size, gfc_conv_array_parameter,
445         gfc_trans_dealloc_allocated, get_full_array_size,
446         duplicate_allocatable,
447         structure_alloc_comps): Change fold_build[0-9] to
448         fold_build[0-9]_loc.
449         (duplicate_allocatable, structure_alloc_comps,
450         gfc_duplicate_allocatable): Add space after function name.
451
452 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
453
454         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
455         checking string length value.
456         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
457         gfc_charlen_type_node type.
458
459         PR fortran/45564
460         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
461         length to gfc_charlen_type_node.
462
463 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
464
465         PR fortran/36931
466         * frontend-passes.c (optimize_binop_array_assignment):  New
467         function.
468         (optimize_assignment):  Call it.
469
470 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
471
472         PR fortran/34145
473         * trans-expr.c (gfc_conv_substring):  If start and end
474         of the string reference are equal, set the length to one.
475
476 2010-09-06  Tobias Burnus  <burnus@net-b.de>
477
478         PR fortran/45560
479         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
480
481 2010-09-06  Tobias Burnus  <burnus@net-b.de>
482
483         PR fortran/45560
484         * dump-parse-tree.c (gfc_debug_expr): New function.
485
486 2010-09-06  Tobias Burnus  <burnus@net-b.de>
487
488         PR fortran/38282
489         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
490         (check_specific): Special case for those intrinsics.
491         * gfortran.h (gfc_isym_id): Add new intrinsics
492         * intrinsic.h (gfc_check_transf_bit_intrins,
493         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
494         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
495         New prototypes.
496         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
497         gfc_resolve_iparity, resolve_transformational): New functions.
498         (gfc_resolve_product, gfc_resolve_sum,
499         gfc_resolve_parity): Use resolve_transformational.
500         * check.c (gfc_check_transf_bit_intrins): New function.
501         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
502         gfc_simplify_iparity, do_bit_any, do_bit_ior,
503         do_bit_xor, simplify_transformation): New functions.
504         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
505         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
506         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
507         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
508         Handle IALL, IANY and IPARITY intrinsics.       
509         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
510         order.
511         (IALL, IANY, IPARITY): Document new intrinsics.
512
513 2010-09-05  Tobias Burnus <burnus@net-b.de>
514
515         PR fortran/45186
516         * f95-lang.c (gfc_truthvalue_conversion): Use
517         fold_build[0-9]_loc instead of fold_build[0-9].
518         * convert.c (convert): Ditto.
519         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
520         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
521         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
522         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
523         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
524         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
525         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
526         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
527         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
528         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
529         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
530         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
531         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
532         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
533         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
534         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
535         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
536         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
537         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
538         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
539         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
540         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
541         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
542         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
543         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
544         gfc_conv_associated, gfc_conv_same_type_as,
545         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
546
547 2010-09-04  Tobias Burnus  <burnus@net-b.de>
548
549         PR fortran/45530
550         * resolve.c (resolve_fl_namelist): Change constraint checking
551         order to prevent endless loop.
552
553 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
554
555         PR fortran/45507
556         * resolve.c (resolve_allocate_expr): Generate default initializers
557         already at this point, resolve them and put them into expr3, ...
558         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
559         translation stage.
560
561 2010-09-03  Tobias Burnus  <burnus@net-b.de>
562
563         PR fortran/45186
564         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
565         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
566         of build_call_expr.
567         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
568         gfc_conv_string_length, gfc_conv_substring,
569         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
570         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
571         gfc_conv_expr_op, gfc_build_compare_string,
572         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
573         gfc_conv_derived_to_class, conv_isocbinding_procedure,
574         gfc_conv_procedure_call, fill_with_spaces,
575         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
576         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
577         gfc_trans_scalar_assign, gfc_trans_zero_assign,
578         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
579         fold_build[0-9] to fold_build[0-9]_loc.
580         * trans-io.c (set_parameter_const, set_parameter_value,
581         set_parameter_ref, gfc_convert_array_to_string, set_string,
582         set_internal_unit, io_result, set_error_locus,
583         nml_get_addr_expr, build_dt): Ditto.
584         * trans-openmp.c (gfc_omp_clause_default_ctor,
585         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
586         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
587         gfc_trans_omp_do): Ditto.
588         * trans.c (gfc_add_modify, gfc_build_addr_expr,
589         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
590         gfc_trans_runtime_check, gfc_call_malloc,
591         gfc_allocate_with_status, gfc_allocate_array_with_status,
592         gfc_call_free, gfc_deallocate_with_status,
593         gfc_call_realloc): Ditto.
594
595 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
596
597         PR fortran/45159
598         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
599         arglists for pure user functions, or for those intrinsic
600         functions which are also pure.
601         * intrinsics.c (add_conv):  Mark conversion functions as pure.
602         (add_char_conversions):  Likewise.
603
604 2010-09-03  Daniel Kraft  <d@domob.eu>
605
606         PR fortran/34162
607         * resolve.c (resolve_actual_arglist): Allow internal procedure
608         as actual argument with Fortran 2008.
609
610 2010-09-03  Daniel Kraft  <d@domob.eu>
611
612         PR fortran/44602
613         * gfortran.h (struct gfc_code): Renamed `whichloop' to
614         `which_construct' as this is no longer restricted to loops.
615         * parse.h (struct gfc_state_data): New field `construct'.
616         * match.c (match_exit_cycle): Handle EXIT from non-loops.
617         * parse.c (push_state): Set `construct' field.
618         * resolve.c (resolve_select_type): Extend comment.
619         * trans-stmt.c (gfc_trans_if): Add exit label.
620         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
621         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
622         (gfc_trans_do), (gfc_trans_do_while): Ditto.
623         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
624         (gfc_trans_cycle): Ditto.
625         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
626
627 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
628
629         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
630         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
631         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
632         * intrinsic.texi (RSHIFT): Fix documentation.
633
634 2010-09-02  Tobias Burnus  <burnus@net-b.de>
635
636         PR fortran/45186
637         * trans-common.c (create_common): Change build[0-9] to
638         build[0-9]_loc.
639         * trans-const.c (gfc_conv_constant_to_tree,
640         gfc_conv_constant_to_tree): Ditto.
641         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
642         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
643         add_argument_checking, create_main_function,
644         gfc_generate_return): Ditto.
645         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
646         * trans-stmt.c (allocate_temp_for_forall_nest_1,
647         compute_inner_temp_size, compute_overall_iter_number,
648         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
649         gfc_conv_elemental_dependencies, gfc_do_allocate,
650         gfc_evaluate_where_mask, gfc_trans_allocate,
651         gfc_trans_arithmetic_if, gfc_trans_call,
652         gfc_trans_character_select, gfc_trans_deallocate,
653         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
654         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
655         gfc_trans_integer_select, gfc_trans_logical_select,
656         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
657         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
658         gfc_trans_where_assign) Ditto.
659
660 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
661
662         PR fortran/44541
663         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
664         variable.
665
666 2010-09-02  Tobias Burnus  <burnus@net-b.de>
667
668         PR fortran/45489
669         * resolve.c (apply_default_init): Mark symbol as referenced,
670         if it is initialized.
671         (resolve_symbol): Change intialized check for BT_DERIVED such
672         that also function results get initialized; remove now obsolete
673         gfc_set_sym_referenced for BT_CLASS.
674
675 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
676
677         PR fortran/44541
678         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
679         * resolve.c (resolve_allocate_expr): Defer handling of default
680         initialization to 'gfc_trans_allocate'.
681         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
682         (resolve_fl_derived): Suppress error messages for vtypes.
683         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
684         polymorphic MOLD expression.
685         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
686         dummy initialization.
687
688 2010-09-01  Tobias Burnus  <burnus@net-b.de>
689
690         * gfortran.texi (preprocessing): Update URL to COCO.
691
692 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
693
694         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
695         array quad_decls. Remove unnecessary assignment.
696
697 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
698
699         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
700         other than long double.
701         * mathbuiltins.def: Add builtins from the POW and CPOW family.
702         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
703         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
704         prefix to function name.
705         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
706         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
707         function name.
708         (gfc_conv_intrinsic_exponent): Likewise.
709         (gfc_conv_intrinsic_abs): Likewise.
710         (gfc_conv_intrinsic_mod): Likewise.
711         (gfc_conv_intrinsic_sign): Likewise.
712         (gfc_conv_intrinsic_arith): Likewise.
713         (gfc_conv_intrinsic_fraction): Likewise.
714         (gfc_conv_intrinsic_nearest): Likewise.
715         (gfc_conv_intrinsic_spacing): Likewise.
716         (gfc_conv_intrinsic_rrspacing): Likewise.
717         (gfc_conv_intrinsic_scale): Likewise.
718         (gfc_conv_intrinsic_set_exponent): Likewise.
719
720 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
721
722         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
723         * intrinsic.h (gfc_resolve_execute_command_line): New function.
724         * iresolve.c (gfc_resolve_execute_command_line): New function.
725         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
726         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
727
728 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
729
730         PR fortran/38282
731         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
732         and parity{,l,ll} builtins.
733         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
734         (gfc_conv_intrinsic_function): Call above new functions.
735         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
736         functions.
737         * intrinsic.texi: Document POPCNT and POPPAR.
738
739 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
740
741         PR fortran/45456
742         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
743
744 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
745
746         * Make-lang.in: Add frontend-passes.o dependencies.
747
748 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
749
750         PR fortran/42769
751         * resolve.c (resolve_structure_cons): For derived types, make sure the
752         type has been resolved.
753         (resolve_typebound_procedures): Make sure the vtab has been generated.
754
755 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
756
757         PR fortran/45439
758         * match.c (gfc_match_select_type): Give the associate-name the
759         FL_VARIABLE attribute.
760
761 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
762
763         * simplify.c (gfc_simplify_bessel_n2): Fix indention
764         and argument type.
765
766 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
767
768         PR fortran/45436
769         * trans-types.c (gfc_init_kinds): Disable TFmode.
770
771 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
772
773         PR fortran/45432
774         * match.c (gfc_match_allocate): Avoid double free on error.
775
776 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
777
778         PR fortran/32049
779         * gfortran.h (gfc_real_info): Add c_float128 field.
780         * mathbuiltins.def: Indicate which builtins are const.
781         * trans-types.h (float128_type_node, complex_float128_type_node,
782         gfc_real16_is_float128): New variables.
783         * trans-types.c (float128_type_node, complex_float128_type_node,
784         gfc_real16_is_float128): New variables.
785         (gfc_init_kinds): Allow TFmode.
786         (gfc_build_real_type): Mark __float128 types as such.
787         (gfc_init_types): Initialize float128_type_node and
788         complex_float128_type_node
789         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
790         argument of OTHER_BUILTIN macro.
791         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
792         (builtin_decl_for_precision): Special case for __float128.
793         (builtin_decl_for_float_kind): Likewise.
794         (define_quad_builtin): New function.
795         (gfc_build_intrinsic_lib_fndecls): Create all __float128
796         library decls if necessary. Store them in the real16_decl and
797         complex16_decl builtin map fields.
798         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
799         library function names.
800
801 2010-08-27  Tobias Burnus  <burnus@net-b.de>
802
803         PR fortran/33197
804         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
805         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
806         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
807         gfc_resolve_parity): New prototypes.
808         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
809         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
810         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
811         gfc_resolve_parity): New functions.
812         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
813         New functions.
814         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
815         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
816         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
817         * gcc/fortran/simplify.c (simplify_transformation_to_array):
818         Add post-processing opterator.
819         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
820         gfc_simplify_product, gfc_simplify_sum): Update call.
821         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
822         gfc_simplify_parity): New functions.
823
824 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
825
826         PR fortran/45420
827         * match.c (select_type_set_tmp): Add the possibility to reset the
828         temporary to NULL.
829         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
830
831 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
832
833         PR fortran/45159
834         * dependency.c (check_section_vs_section):  Single test for
835         identical strides which takes into account that only one
836         of the strides may be NULL.
837
838 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
839
840         PR fortran/43217
841         * primary.c (match_hollerith_constant): Calculate padding needed to
842         fill default integer and allocate string for that size.  Set pad bytes
843         to ' '.
844         * gfortran.h: Add hollerith pad value to type spec union.
845         * data.c (create_character_initializer): Fix spelling of function name.
846         Use hollerith pad value to calculate length.
847         * arith.c (hollerith2representation); Use hollerith pad value to
848         calculate length.
849
850 2010-08-26  Daniel Kraft  <d@domob.eu>
851
852         PR fortran/38936
853         PR fortran/44047
854         PR fortran/45384
855         * gfortran.h (struct gfc_association_list): New flag `dangling'.
856         (gfc_build_block_ns): Declared here...
857         * parse.h (gfc_build_block_ns): ...instead of here.
858         * trans.h (gfc_process_block_locals): Expect additionally the
859         gfc_association_list of BLOCK (if present).
860         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
861         * resolve.c (resolve_variable): Only check for invalid *array*
862         references on associate-names.
863         (resolve_assoc_var): New method with code previously in resolve_symbol.
864         (resolve_select_type): Use association to give the selector and
865         temporaries their values instead of ordinary assignment.
866         (resolve_fl_var_and_proc): Allow CLASS associate-names.
867         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
868         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
869         to `gfc_process_block_locals' to match new interface.
870         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
871         here automatically.
872         (gfc_process_block_locals): Defer them rather here when linked to
873         from the BLOCK's association list.
874
875 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
876
877         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
878         TREE_NOTHROW on fndecls that can't throw.  Set
879         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
880         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
881         gfor_fndecl_associated.
882
883 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
884
885         PR fortran/45380
886         * frontend-passes.c (optimize_equality): Don't optimize array equality
887
888 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
889
890         PR fortran/45366
891         * resolve.c (resolve_procedure_interface): New function split off from
892         'resolve_symbol'.
893         (resolve_formal_arglist): Call it here ...
894         (resolve_symbol): ... and here.
895
896 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
897
898         * Make-lang.in (gfortranspec.o): Update dependencies.
899         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
900         opts.h.
901         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
902         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
903         (g77_xargc): Make unsigned.
904         (g77_xargv): Change to g77_x_decoded_options.
905         (g77_newargc): Make unsigned.
906         (g77_newargv): Change to g77_new_decoded_options.
907         (strings_same, options_same): New.
908         (append_arg): Use cl_decoded_option structures.
909         (append_option): New.
910         (add_arg_libgfortran): New.
911         (lang_specific_driver): Use cl_decoded_option structures.
912
913 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
914
915         PR fortran/45271
916         PR fortran/45290
917         * class.c (add_proc_comp): Add static initializer for PPCs.
918         (add_procs_to_declared_vtab): Modified comment.
919         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
920         initializer if the component is part of a vtype.
921         (mio_component_list): Add argument 'vtype', pass it on to
922         'mio_component'.
923         (mio_symbol): Modified call to 'mio_component_list'.
924         * trans.h (gfc_conv_initializer): Modified prototype.
925         (gfc_trans_assign_vtab_procs): Removed.
926         * trans-common.c (create_common): Modified call to
927         'gfc_conv_initializer'.
928         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
929         gfc_emit_parameter_debug_info): Modified call to
930         'gfc_conv_initializer'.
931         (build_function_decl): Remove assertion.
932         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
933         Removed call to 'gfc_trans_assign_vtab_procs'.
934         (gfc_conv_initializer): Add argument 'procptr'.
935         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
936         (gfc_trans_assign_vtab_procs): Removed.
937         * trans-stmt.c (gfc_trans_allocate): Removed call to
938         'gfc_trans_assign_vtab_procs'.
939
940 2010-08-21  Tobias Burnus  <burnus@net-b.de>
941
942         PR fortran/36158
943         PR fortran/33197
944         * intrinsic.c (add_sym): Init value attribute.
945         (set_attr_value): New function.
946         (add_functions) Use it and add JN/YN resolvers.
947         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
948         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
949         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
950         * iresolve.c (gfc_resolve_bessel_n2): New function.
951         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
952         formal arg list.
953         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
954         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
955         * simplify.c (): For YN set to -INF if previous values
956         was -INF.
957         * trans-expr.c (gfc_conv_procedure_call): Don't crash
958         if sym->as is NULL.
959         * iresolve.c (gfc_resolve_extends_type_of): Set the
960         type of the dummy argument to the one of the actual.
961
962 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
963
964         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
965
966 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
967
968         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
969         comment, not -lg2c.
970
971 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
972
973         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
974
975 2010-08-19  Daniel Kraft  <d@domob.eu>
976
977         PR fortran/29785
978         PR fortran/45016
979         * trans.h (struct gfc_se): New flag `byref_noassign'.
980         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
981         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
982         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
983         and check for compile-time errors with those.
984         * trans-decl.c (trans_associate_var): Use new routine
985         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
986         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
987         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
988         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
989         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
990         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
991         rank remapping for assignment.
992
993 2010-08-19  Tobias Burnus  <burnus@net-b.de>
994
995         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
996         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
997         into recurrence.
998
999 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1000
1001         PR fortran/36158
1002         PR fortran/33197
1003         * check.c (gfc_check_bessel_n2): New function.
1004         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1005         * intrinsic.c (add_functions): Add transformational version
1006         of the Bessel_jn/yn intrinsics.
1007         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1008         gfc_simplify_bessel_yn2): New prototypes.
1009         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1010         transformational variant.
1011         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1012         Check for negative order.
1013         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1014         gfc_simplify_bessel_yn2): New functions.
1015
1016 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1017
1018         PR fortran/41859
1019         * resolve.c (resolve_transfer): Traverse operands and set expression
1020         to be checked to a non EXPR_OP type.
1021
1022 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
1023
1024         PR fortran/45290
1025         * gfortran.h (gfc_add_save): Modified prototype.
1026         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1027         (match_pointer_init): New function to match F08 pointer initialization.
1028         (variable_decl,match_procedure_decl,match_ppc_decl): Use
1029         'match_pointer_init'.
1030         (match_attr_spec): Module variables are implicitly SAVE.
1031         (gfc_match_save): Modified call to 'gfc_add_save'.
1032         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1033         initialization.
1034         * primary.c (gfc_variable_attr): Handle SAVE attribute.
1035         * resolve.c (resolve_structure_cons): Add new argument and do pointer
1036         initialization checks.
1037         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1038         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1039         (resolve_fl_variable): Handle SAVE_IMPLICIT.
1040         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1041         SAVE_IMPLICIT.
1042         * trans-decl.c (gfc_create_module_variable): Module variables with
1043         TARGET can already exist.
1044         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1045         (gfc_conv_initializer): Implement non-NULL pointer
1046         initialization.
1047
1048 2010-08-18  Tobias Burnus  <burnus@net-b.de>
1049
1050         PR fortran/45295
1051         * intrinsic.texi (selected_char_kind): Document ISO_10646
1052         support.
1053
1054 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
1055
1056         PR fortran/45304
1057         * trans-decl.c (build_library_function_decl_1): Chain on
1058         void_list_node instead of creating a new TREE_LIST.
1059         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1060         * trans-types.c (gfc_get_function_type): Likewise.  Set
1061         typelist to void_list_node for the main program.
1062
1063 2010-08-17  Daniel Kraft  <d@domob.eu>
1064
1065         PR fortran/38936
1066         * gfortran.h (struct gfc_association_list): New member `where'.
1067         (gfc_is_associate_pointer) New method.
1068         * match.c (gfc_match_associate): Remember locus for each associate
1069         name matched and do not try to set variable flag.
1070         * parse.c (parse_associate): Use remembered locus for symbols.
1071         * primary.c (match_variable): Instead of variable-flag check for
1072         associate names set it for all such names used.
1073         * symbol.c (gfc_is_associate_pointer): New method.
1074         * resolve.c (resolve_block_construct): Don't generate assignments
1075         to give associate-names their values.
1076         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1077         (resolve_symbol): Set some more attributes for associate variables,
1078         set variable flag here and check it and don't try to build an
1079         explicitely shaped array-spec for array associate variables.
1080         * trans-expr.c (gfc_conv_variable): Dereference in case of association
1081         to scalar variable.
1082         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1083         (gfc_sym_type): Return pointer type for association to scalar vars.
1084         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1085         (trans_associate_var): New method.
1086         (gfc_trans_deferred_vars): Handle association symbols.
1087
1088 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1089
1090         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
1091         RejectDriver.
1092         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
1093         RejectDriver.
1094         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1095         OPT_MDX and OPT_MMDX.
1096
1097 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
1098
1099         * lang.opt (MDX, MMDX): Mark RejectDriver.
1100
1101 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
1102
1103         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1104         vtabs for generics any more).
1105
1106 2010-08-15  Daniel Kraft  <d@domob.eu>
1107
1108         PR fortran/38936
1109         * gfortran.h (gfc_find_proc_namespace): New method.
1110         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1111         around with namespace.
1112         * symbol.c (gfc_find_proc_namespace): New method.
1113         * trans-decl.c (gfc_build_qualified_array): Use it for correct
1114         value of nest.
1115         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1116         * parse.c (parse_associate): Removed assignment-generation here...
1117         * resolve.c (resolve_block_construct): ...and added it here.
1118         (resolve_variable): Handle names that are arrays but were not parsed
1119         as such because of association.
1120         (resolve_code): Fix BLOCK resolution.
1121         (resolve_symbol): Generate array-spec for associate-names.
1122
1123 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1124
1125         PR fortran/45211
1126         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1127         (verify_c_interop): Handle unresolved DT with bind(C).
1128
1129 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1130
1131         * trans-expr.c (gfc_conv_expr_present): Regard nullified
1132         pointer arrays as absent.
1133         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1134         dummys as absent argument.
1135         * interface.c (compare_actual_formal,compare_parameter):
1136         Ditto.
1137
1138 2010-08-15  Tobias Burnus  <burnus@net-b.de>
1139
1140         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1141         dummies with intent(in).
1142
1143 2010-08-15  Daniel Kraft  <d@domob.eu>
1144
1145         PR fortran/45197
1146         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1147         routines not IMPURE also as PURE.
1148         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1149         `NO_CLASS' in `CLASS_IMPURE'.
1150         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1151         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1152         (add_functions): Ditto.
1153         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1154         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1155         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1156         are not ALLOCATABLE and have their INTENT specified.
1157
1158 2010-08-13  Daniel Kraft  <d@domob.eu>
1159
1160         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1161         * array.c (gfc_match_array_spec): Match implied-shape specification and
1162         handle AS_IMPLIED_SHAPE correctly otherwise.
1163         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1164         (variable_decl): Some checks for implied-shape declaration.
1165         * resolve.c (resolve_symbol): Assert that array-spec is no longer
1166         AS_IMPLIED_SHAPE in any case.
1167
1168 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
1169
1170         * lang.opt (MD, MMD): Change to MDX and MMDX.
1171         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1172
1173 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
1174
1175         PR fortran/44595
1176         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1177         'gfc_intrinsic_arg'.
1178         (check_arglist,check_specific): Add reference to 'name' field.
1179         (init_arglist): Remove reference to 'name' field.
1180         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1181         * check.c (variable_check): Reverse order of checks. Respect intent of
1182         formal arg.
1183         (int_or_proc_check): New function.
1184         (coarray_check): New function.
1185         (allocatable_check): New function.
1186         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1187         (gfc_check_complex): Use 'int_or_real_check'.
1188         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1189         gfc_check_ucobound): Use 'coarray_check'.
1190         (gfc_check_pack): Use 'real_or_complex_check'.
1191         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1192         'int_or_proc_check'.
1193         (scalar_check,type_check,numeric_check,int_or_real_check,
1194         real_or_complex_check,kind_check,double_check,logical_array_check,
1195         array_check,same_type_check,rank_check,nonoptional_check,
1196         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1197         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1198         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1199         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1200         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1201         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1202         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1203         to 'name' field.
1204
1205 2010-08-10  Daniel Kraft  <d@domob.eu>
1206
1207         * gfortran.texi (Interoperability with C): Fix ordering in menu
1208         and add new subsection about pointers.
1209         (Interoperable Subroutines and Functions): Split off the pointer part.
1210         (working with Pointers): New subsection with extended discussion
1211         of pointers (especially procedure pointers).
1212
1213 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
1214
1215         PR fortran/44235
1216         * array.c (gfc_ref_dimen_size):  Add end argument.
1217         If end is non-NULL, calculate it.
1218         (ref_size):  Adjust call to gfc_ref_dimen_size.
1219         (gfc_array_dimen_size):  Likewise.
1220         (gfc_array_res_shape):  Likewise.
1221         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
1222         * resolve.c (resolve_array_ref):  For stride not equal to -1,
1223         fill in the lowest possible end.
1224
1225 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
1226
1227         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1228
1229 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
1230
1231         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1232         alloca.
1233         (check_some_aliasing): Likewise.
1234         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1235         (gfc_conv_intrinsic_int): Likewise.
1236         (gfc_conv_intrinsic_lib_function): Likewise.
1237         (gfc_conv_intrinsic_cmplx): Likewise.
1238         (gfc_conv_intrinsic_ctime): Likewise.
1239         (gfc_conv_intrinsic_fdate): Likewise.
1240         (gfc_conv_intrinsic_ttynam): Likewise.
1241         (gfc_conv_intrinsic_minmax): Likewise.
1242         (gfc_conv_intrinsic_minmax_char): Likewise.
1243         (gfc_conv_intrinsic_ishftc): Likewise.
1244         (gfc_conv_intrinsic_index_scan_verify): Likewise.
1245         (gfc_conv_intrinsic_merge): Likewise.
1246         (gfc_conv_intrinsic_trim): Likewise.
1247         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1248
1249 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1250
1251         PR fortran/45159
1252         * dependency.c (check_section_vs_section):  Handle cases where
1253         the start expression coincides with the lower or upper
1254         bound of the array.
1255
1256 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
1257
1258         PR fortran/42207
1259         PR fortran/44064
1260         PR fortran/44065
1261         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1262         container types. Do not artificially increase refs. Commit symbols one
1263         by one.
1264         * interface.c (compare_parameter): Make sure vtabs are present before
1265         generating module variables.
1266         * resolve.c (resolve_allocate_expr): Ditto.
1267
1268 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1269
1270         PR fortran/45183
1271         PR fortran/44857
1272         * resolve.c (resolve_structure_cons): Fix
1273         freeing of charlen.
1274
1275 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
1276
1277         PR fortran/42051
1278         PR fortran/44064
1279         * symbol.c (changed_syms): Made static again.
1280         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
1281         Changed conditional internal error into assert.
1282         Rename function to ...
1283         (gfc_enforce_clean_symbol_state): ... this.
1284         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
1285         Rename the former to the latter.
1286         * parse.c (decode_statement, decode_omp_directive,
1287         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1288         on GFC_DEBUG.
1289         (changed_syms): Remove declaration.
1290         (next_statement): Use gfc_enforce_clean_symbol_state.
1291
1292 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1293
1294         PR fortran/44857
1295         * resolve.c (resolve_structure_cons): Fix handling of
1296         initialization structure constructors with character
1297         elements of the wrong length.
1298         * array.c (gfc_check_iter_variable): Add NULL check.
1299         (gfc_resolve_character_array_constructor): Also truncate
1300         character length.
1301
1302 2010-08-04  Tobias Burnus  <burnus@net-b.de>
1303
1304         * trans-io.c (gfc_build_io_library_fndecls): Fix return
1305         value of some libgfortran functions.
1306
1307 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1308
1309         PR fortran/45159
1310         * dependency.c (gfc_deb_compare_expr):  Remove any integer
1311         conversion functions to larger types from both arguments.
1312         Remove handling these functions futher down.
1313
1314 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
1315
1316         PR fortran/44584
1317         PR fortran/45161
1318         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
1319         * resolve.c (resolve_tb_generic_targets): Check for errors.
1320
1321 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1322
1323         PR fortran/45159
1324         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
1325         can be reversed.
1326
1327 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
1328
1329         PR fortran/36854
1330         * dependency.h:  Add prototype for gfc_are_identical_variables.
1331         * frontend-passes.c:  Include depencency.h.
1332         (optimimize_equality):  Use gfc_are_identical_variables.
1333         * dependency.c (identical_array_ref): New function.
1334         (gfc_are_identical_variables):  New function.
1335         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
1336         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
1337         prefix from statc function.
1338         (check_section_vs_section): Change arguments to gfc_array_ref,
1339         adjust function body accordingly.
1340
1341 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
1342             Janus Weil  <janus@gcc.gnu.org>
1343
1344         PR fortran/42051
1345         PR fortran/44064
1346         PR fortran/45151
1347         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
1348         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1349         gfc_copy_formal_args, gfc_copy_formal_args_intr,
1350         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
1351         * parse.c (parse_derived_contains, parse_spec, parse_progunit):
1352         Call reject_statement in case of error.
1353         (match_deferred_characteritics): Call gfc_undo_symbols in case match
1354         fails.
1355
1356 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
1357
1358         PR fortran/44912
1359         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1360         (gfc_find_derived_vtab): Make vtabs and vtypes public.
1361         * module.c (read_module): When reading module files, always import
1362         vtab and vtype symbols.
1363
1364 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
1365
1366         PR fortran/42051
1367         PR fortran/44064
1368         * symbol.c (changed_syms): Made non-static.
1369         * parse.c (changed_syms): Declare new external.
1370         (next_statement): Assert changed_syms is NULL at the beginning.
1371
1372 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
1373             Steven G. Kargl  <kargl@gcc.gnu.org>
1374
1375         PR fortran/44929
1376         * match.c (match_type_spec): Try to parse derived types before
1377         intrinsic types.
1378
1379 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
1380
1381         * gfortran.h (gfc_release_symbol): New prototype.
1382         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1383         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1384         Use gfc_release_symbol.
1385         * parse.c (gfc_fixup_sibling_symbols): Ditto.
1386         * resolve.c (resolve_symbol): Ditto.
1387
1388 2010-07-29  Tobias Burnus  <burnus@net-b.de>
1389
1390         PR fortran/45087
1391         PR fortran/45125
1392         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
1393         external procedure declarations in modules.
1394         (gfc_get_symbol_decl): Modify assert.
1395
1396 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1397
1398         PR fortran/44962
1399         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
1400
1401 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
1402
1403         PR fortran/45004
1404         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
1405         (gfc_trans_class_assign): Modified prototype.
1406         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
1407         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
1408         (gfc_trans_class_assign): ... here. Modified actual arguments.
1409         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
1410         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
1411         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
1412
1413 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
1414
1415         PR fortran/42051
1416         PR fortran/44064
1417         * class.c (gfc_find_derived_vtab): Accept or discard newly created
1418         symbols before returning.
1419
1420 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
1421
1422         * lang.opt (cpp): Remove Joined and Separate markers.
1423         (cpp=): New internal option.
1424         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
1425         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
1426         OPT_cpp.
1427
1428 2010-07-29  Daniel Kraft  <d@domob.eu>
1429
1430         PR fortran/45117
1431         * array.c (resolve_array_bound): Fix error message to properly handle
1432         non-variable expressions.
1433
1434 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
1435
1436         * decl.c (free_value): Also free repeat field.
1437         * data.c (gfc_assign_data_value): Always free offset before returning.
1438
1439 2010-07-28  Daniel Kraft  <d@domob.eu>
1440
1441         * gfortran.h (gfc_build_intrinsic_call): New method.
1442         * expr.c (gfc_build_intrinsic_call): New method.
1443         * simplify.c (range_check): Ignore non-constant value.
1444         (simplify_bound_dim): Handle non-variable expressions and
1445         fix memory leak with non-free'ed expression.
1446         (simplify_bound): Handle non-variable expressions.
1447         (gfc_simplify_shape): Ditto.
1448         (gfc_simplify_size): Ditto, but only in certain cases possible.
1449
1450 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
1451
1452         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
1453         Remove.
1454
1455 2010-07-28  Tobias Burnus  <burnus@net-b.de>
1456
1457         PR fortran/45077
1458         * trans-types.c (gfc_get_derived_type): Fix DT declaration
1459         from modules for whole-file mode.
1460
1461 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1462
1463         * gfortran.h (gfc_handle_option): Update prototype and return
1464         value type.
1465         * options.c (gfc_handle_option): Update prototype and return value
1466         type.
1467
1468 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1469
1470         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
1471         decoded options in allocating deferred_opt.
1472         * cpp.h (gfc_cpp_init_options): Update prototype.
1473         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
1474         * gfortran.h (gfc_option_lang_mask): New.
1475         (gfc_init_options): Update prototype.
1476         * options.c (gfc_option_lang_mask): New.
1477         (gfc_init_options): Update prototype.  Pass new arguments to
1478         gfc_cpp_init_options.
1479
1480 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1481
1482         PR fortran/40873
1483         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
1484         for functions which are later in the same file.
1485         (gfc_create_function_decl, build_function_decl,
1486         build_entry_thunks): Add global argument.
1487         * trans.c (gfc_generate_module_code): Update
1488         gfc_create_function_decl call.
1489         * trans.h (gfc_create_function_decl): Update prototype.
1490         * resolve.c (resolve_global_procedure): Also resolve for
1491         IFSRC_IFBODY.
1492
1493 2010-07-26  Richard Henderson  <rth@redhat.com>
1494
1495         PR target/44132
1496         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
1497         (gfc_write_global_declarations): New.
1498
1499 2010-07-26  Tobias Burnus  <burnus@net-b.de>
1500
1501         PR fortran/45066
1502         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
1503         for call to transfer_namelist_element.
1504         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
1505         for -fwhole-file.
1506
1507 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
1508
1509         PR fortran/40628
1510         * Make-lang.in:  Add fortran/frontend-passes.o.
1511         * gfortran.h:  Add prototype for gfc_run_passes.
1512         * resolve.c (gfc_resolve):  Call gfc_run_passes.
1513         * frontend-passes.c:  New file.
1514
1515 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1516
1517         PR fortran/42852
1518         * scanner.c (gfc_next_char_literal): Enable truncation warning for
1519         free-form '&'.
1520
1521 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
1522
1523         PR fortran/44660
1524         * gfortran.h (gfc_namespace): New field old_equiv.
1525         (gfc_free_equiv_until): New prototype.
1526         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
1527         a parameterized stop condition.
1528         (gfc_free_equiv): Use gfc_free_equiv_until.
1529         * parse.c (next_statement): Save equivalence list.
1530         (reject_statement): Restore equivalence list.
1531
1532 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1533
1534         PR fortran/42852
1535         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
1536         in the function so that it does not get missed by early exits.
1537         (load_line): Add checks for quoted strings and free form comments to
1538         disable warnings on comments. Add check for ampersand as first
1539         character after truncation and don't warn for this case, but warn if
1540         there are subsequent non-whitespace characters.
1541
1542 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1543
1544         PR fortran/40011
1545         * parse.c (gfc_parse_file): Do not override
1546         gfc_global_ns_list items.
1547
1548 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1549
1550         * options.c (gfc_init_options): Enable -fwhole-file by default.
1551         * interface.c (compare_parameter): Assume a Hollerith constant is
1552         compatible with all other argument types.
1553
1554 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1555
1556         PR fortran/44945
1557         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
1558         -fwhole-file also for derived types.
1559         * trans-types.c (copy_dt_decls_ifequal): Remove static and
1560         rename to gfc_copy_dt_decls_ifequal.
1561         (gfc_get_derived_type): Update call.
1562         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
1563
1564 2010-07-23  Tobias Burnus  <burnus@net-b.de>
1565
1566         PR fortran/45030
1567         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
1568
1569 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
1570
1571         * trans-types.c (gfc_get_array_descriptor_base,
1572         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
1573         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
1574         instead of clearing DECL_NAME.
1575         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
1576
1577 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
1578
1579         PR fortran/24524
1580         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
1581         field.
1582         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
1583         reverse the scalarization loop.
1584         gfc_conv_resolve_dependencies: Pass the reverse field of the
1585         loopinfo to gfc_dep_resolver.
1586         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
1587         assignment by resetting loop.reverse.
1588         gfortran.h : Add the gfc_reverse enum.
1589         trans.h : Add the reverse field to gfc_loopinfo.
1590         dependency.c (gfc_check_dependency): Pass null to the new arg
1591         of gfc_dep_resolver.
1592         (gfc_check_section_vs_section): Check for reverse dependencies.
1593         (gfc_dep_resolver): Add reverse argument and deal with the loop
1594         reversal logic.
1595         dependency.h : Modify prototype for gfc_dep_resolver to include
1596         gfc_reverse *.
1597
1598 2010-07-23  Daniel Kraft  <d@domob.eu>
1599
1600         PR fortran/44709
1601         * gfortran.h (gfc_find_symtree_in_proc): New method.
1602         * symbol.c (gfc_find_symtree_in_proc): New method.
1603         * match.c (match_exit_cycle): Look for loop name also in parent
1604         namespaces within current procedure.
1605
1606 2010-07-22  Tobias Burnus  <burnus@net-b.de>
1607
1608         PR fortran/45019
1609         * dependency.c (gfc_check_dependency): Add argument alising check.
1610         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
1611
1612 2010-07-22  Daniel Kraft  <d@domob.eu>
1613
1614         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
1615         now in the correct place.
1616
1617 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
1618
1619         PR fortran/44929
1620         * Revert my commit r162325.
1621
1622 2010-07-21  Daniel Kraft  <d@domob.eu>
1623
1624         * trans.h (gfc_get_return_label): Removed.
1625         (gfc_generate_return): New method.
1626         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1627         returning a tree directly.
1628         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
1629         (gfc_trans_block_construct): Update for new interface to
1630         `gfc_trans_deferred_vars'.
1631         * trans-decl.c (current_function_return_label): Removed.
1632         (current_procedure_symbol): New variable.
1633         (gfc_get_return_label): Removed.
1634         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1635         returning a tree directly.
1636         (get_proc_result), (gfc_generate_return): New methods.
1637         (gfc_generate_function_code): Clean up and do init/cleanup here
1638         also with gfc_wrapped_block.  Remove return-label but rather
1639         return directly.
1640
1641 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1642
1643         PR fortran/44929
1644         * fortran/match.c (match_type_spec): Check for derived type before
1645         intrinsic types.
1646
1647 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1648
1649         PR fortran/42385
1650         * interface.c (matching_typebound_op): Add argument for the
1651         return of the generic name for the procedure.
1652         (build_compcall_for_operator): Add an argument for the generic
1653         name of an operator procedure and supply it to the expression.
1654         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
1655         calls to the above procedures.
1656         * resolve.c (resolve_typebound_function): Catch procedure
1657         component calls for CLASS objects, check that the vtable is
1658         complete and insert the $vptr and procedure components, to make
1659         the call.
1660         (resolve_typebound_function): The same.
1661         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
1662         an allocatable scalar if it is a result.
1663
1664 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
1665
1666         PR fortran/44353
1667         * match.c (gfc_match_iterator): Reverted.
1668
1669 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
1670
1671         PR fortran/44353
1672         * match.c (gfc_match_iterator): Remove error that iterator
1673         cannot be INTENT(IN).
1674
1675 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
1676
1677         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
1678         Access subscript through the "dim" field index.
1679         (gfc_trans_create_temp_array): Access ss info through the "dim" field
1680         index.
1681         (gfc_conv_array_index_offset): Ditto.
1682         (gfc_conv_loop_setup): Ditto.
1683         (gfc_conv_expr_descriptor): Ditto.
1684         (gfc_conv_ss_startstride): Ditto.  Update call to
1685         gfc_conv_section_startstride.
1686         (gfc_conv_section_startstride): Set values along the array dimension.
1687         Get array dimension directly from the argument.
1688
1689 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1690
1691         * trans.h (gfc_string_to_single_character): New prototype.
1692         * trans-expr.c (string_to_single_character): Renamed to ...
1693         (gfc_string_to_single_character): ... this.  No longer static.
1694         (gfc_conv_scalar_char_value, gfc_build_compare_string,
1695         gfc_trans_string_copy): Adjust callers.
1696         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
1697         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
1698         (select_struct): Move to toplevel, add GTY(()).
1699         (gfc_trans_character_select): Optimize SELECT CASE
1700         with character length 1.
1701
1702 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1703
1704         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1705         * trans-common.c: Likewise.
1706         * trans-decl.c: Likewise.
1707         * trans-types.c: Likewise.
1708         * trans.c: Likewise.
1709
1710 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
1711
1712         PR fortran/44936
1713         * resolve.c (resolve_typebound_generic_call): Resolve generic
1714         non-polymorphic type-bound procedure calls to the correct specific
1715         procedure.
1716         (resolve_typebound_subroutine): Remove superfluous code.
1717
1718 2010-07-15  Daniel Kraft  <d@domob.eu>
1719
1720         PR fortran/44709
1721         * trans.h (struct gfc_wrapped_block): New struct.
1722         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1723         (gfc_finish_wrapped_block): New method.
1724         (gfc_init_default_dt): Add new init code to block rather than
1725         returning it.
1726         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
1727         (gfc_trans_dummy_array_bias): Ditto.
1728         (gfc_trans_g77_array): Ditto.
1729         (gfc_trans_deferred_array): Ditto.
1730         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
1731         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
1732         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1733         (gfc_finish_wrapped_block): New method.
1734         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
1735         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
1736         (gfc_trans_deferred_array): Ditto.
1737         * trans-decl.c (gfc_trans_dummy_character): Ditto.
1738         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
1739         (init_intent_out_dt): Ditto.
1740         (gfc_init_default_dt): Add new init code to block rather than
1741         returning it.
1742         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
1743         and cleanup code and put it all together.
1744
1745 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
1746
1747         * trans.h (gfc_build_compare_string): Add CODE argument.
1748         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
1749         gfc_build_compare_string.
1750         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
1751         gfc_build_compare_string.
1752         (string_to_single_character): Rename len variable to length.
1753         (gfc_optimize_len_trim): New function.
1754         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
1755         or NE_EXPR and one of the strings is string literal with LEN_TRIM
1756         bigger than the length of the other string, they compare unequal.
1757
1758         PR fortran/40206
1759         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
1760         in CASE_LABEL_EXPR and use NULL for low for the default case.
1761
1762 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
1763
1764         * trans-array.c (gfc_conv_section_upper_bound): Remove
1765         (gfc_conv_section_startstride): Don't set the upper bound in the
1766         vector subscript case.
1767         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
1768
1769 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
1770
1771         PR fortran/44925
1772         * gfortran.h (gfc_is_data_pointer): Remove prototype.
1773         * dependency.c (gfc_is_data_pointer): Make it static.
1774         * intrinsic.texi: Update documentation on C_LOC.
1775         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
1776         and add a check for polymorphic variables.
1777
1778 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
1779
1780         * trans-expr.c (string_to_single_character): Also optimize
1781         string literals containing a single char followed only by spaces.
1782         (gfc_trans_string_copy): Remove redundant string_to_single_character
1783         calls.
1784
1785         * trans-decl.c (gfc_build_intrinsic_function_decls,
1786         gfc_build_builtin_function_decls): Mark functions as
1787         DECL_PURE_P or TREE_READONLY.
1788
1789 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
1790
1791         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
1792         instead of build_function_call_expr.
1793         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
1794
1795 2010-07-13  Tobias Burnus  <burnus@net-b.de>
1796             Daniel Franke  <franke.daniel@gmail.com>
1797
1798         PR fortran/43665
1799         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
1800         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
1801         static.
1802         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
1803
1804 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
1805             Tobias Burnus  <burnus@net-b.de>
1806
1807         PR fortran/43665
1808         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
1809         noclobber/noescape annotations to function calls.
1810         (gfc_build_builtin_function_decls): Likewise.
1811
1812 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
1813
1814         PR fortran/44434
1815         PR fortran/44565
1816         PR fortran/43945
1817         PR fortran/44869
1818         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
1819         * class.c (gfc_build_class_symbol): Modified call to
1820         'gfc_find_derived_vtab'.
1821         (add_proc_component): Removed, moved code into 'add_proc_comp'.
1822         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
1823         generics.
1824         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
1825         Removed treatment of generics.
1826         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
1827         Call 'add_proc_comp' instead of duplicating code.
1828         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
1829         and 'declared'.
1830         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
1831         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
1832         Removed treatment of generics.
1833         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
1834         'gfc_find_derived_vtab'.
1835         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1836         Removed treatment of generics.
1837         (resolve_select_type,resolve_fl_derived): Modified call to
1838         'gfc_find_derived_vtab'.
1839         * trans-decl.c (gfc_get_symbol_decl): Ditto.
1840         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1841         Ditto.
1842         * trans-stmt.c (gfc_trans_allocate): Ditto.
1843
1844 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1845
1846         PR fortran/37077
1847         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
1848         internal unit.
1849
1850 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
1851
1852         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
1853         * resolve.c (build_default_init_expr): Ditto.
1854
1855 2010-07-11  Tobias Burnus  <burnus@net-b.de>
1856
1857         PR fortran/44702
1858         * module.c (sort_iso_c_rename_list): Remove.
1859         (import_iso_c_binding_module,use_iso_fortran_env_module):
1860         Allow multiple imports of the same symbol.
1861
1862 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
1863
1864         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
1865
1866 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
1867
1868         PR fortran/44869
1869         * decl.c (build_sym,attr_decl1): Only build the class container if the
1870         symbol has sufficient attributes.
1871         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
1872         pointer attribute for classes.
1873         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
1874         * module.c (MOD_VERSION): Bump.
1875         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
1876         (mio_symbol_attribute): Handle class_pointer attribute.
1877         * parse.c (parse_derived): Use class_pointer instead of pointer
1878         attribute for classes.
1879         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
1880         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
1881         resolve_allocate_expr,resolve_fl_derived): Ditto.
1882         (resolve_fl_var_and_proc): Check for class_ok attribute.
1883
1884 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
1885
1886         * trans-io.c (gfc_build_st_parameter): Update calls to
1887         gfc_add_field_to_struct.
1888         * trans-stmt.c (ADD_FIELD): Ditto.
1889         * trans-types.c
1890         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
1891         C_ADDRESS field.
1892         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
1893         fieldlist, remove fieldlist from argument list.
1894         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
1895         and remove fieldlist from argument list.
1896         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
1897         gfc_get_mixed_entry_union): Move setting
1898         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
1899         * trans-types.h (gfc_add_field_to_struct): Update prototype.
1900
1901 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
1902
1903         PR fortran/44773
1904         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
1905         if the lhs has never been host associated, as well as not being
1906         use associated, a pointer or a target.
1907         * resolve.c (resolve_variable): Mark variables that are host
1908         associated.
1909         * gfortran.h: Add the host_assoc bit to the symbol_attribute
1910         structure.
1911
1912 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
1913
1914         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
1915         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
1916         SIZEOF and C_SIZEOF.
1917
1918 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
1919
1920         PR fortran/44649
1921         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
1922         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
1923         gfc_resolve_storage_size): New prototypes.
1924         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
1925         * intrinsic.c (add_functions): Add STORAGE_SIZE.
1926         * iresolve.c (gfc_resolve_storage_size): New function.
1927         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
1928         arguments.
1929         (gfc_conv_intrinsic_storage_size): New function.
1930         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
1931
1932 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
1933
1934         PR fortran/44847
1935         * match.c (match_exit_cycle): Error on EXIT also from collapsed
1936         !$omp do loops.  Error on CYCLE to non-innermost collapsed
1937         !$omp do loops.
1938
1939 2010-07-08  Tobias Burnus  <burnus@net-b.de>
1940
1941         PR fortran/18918
1942         * array.c (gfc_match_array_ref): Better error message for
1943         coarrays with too few ranks.
1944         (match_subscript): Move one diagnostic to caller.
1945         * gfortran.h (gfc_get_corank): Add prottype.
1946         * expr.c (gfc_get_corank): New function.
1947         * iresolve.c (resolve_bound): Fix rank for cobounds.
1948         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
1949         gfc_resolve_ucobound, gfc_resolve_this_image): Update
1950         resolve_bound call.
1951
1952 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1953
1954         PR fortran/44742
1955         * array.c (gfc_expand_constructor): Add optional diagnostic.
1956         * gfortran.h (gfc_expand_constructor): Update prototype.
1957         * expr.c (gfc_simplify_expr, check_init_expr,
1958         gfc_reduce_init_expr): Update gfc_expand_constructor call.
1959         * resolve.c (gfc_resolve_expr): Ditto.
1960
1961 2010-07-06  Tobias Burnus  <burnus@net-b.de>
1962
1963         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
1964         * trans-intrinsic.c: Ditto.
1965         * trans-types.c: Ditto.
1966         * convert.c: Include diagnostic-core.h instead of toplev.h.
1967         * options.c: Ditto.
1968         * trans-array.c: Ditto.
1969         * trans-const.c: Ditto.
1970         * trans-expr.c: Ditto.
1971         * trans-io.c: Ditto.
1972         * trans-openmp.c: Ditto.
1973         * trans.c: Ditto.
1974
1975 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1976
1977         PR fortran/PR44693
1978         * check.c (dim_rank_check):  Also check intrinsic functions.
1979         Adjust permissible rank for functions which reduce the rank of
1980         their argument.  Spread is an exception, where DIM can
1981         be one larger than the rank of array.
1982
1983 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1984
1985         PR fortran/44797
1986         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
1987
1988 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
1989
1990         PR fortran/44596
1991         * trans-types.c (gfc_get_derived_type): Derived type fields
1992         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
1993         but build_pointer_type_for_mode must be used for this.
1994
1995 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
1996
1997         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
1998         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
1999         type of gfc_conv_procedure_call.
2000         (conv_generic_with_optional_char_arg): Likewise.
2001         * trans-stmt.c (gfc_trans_call): Likewise.
2002         * trans-expr.c (gfc_conv_function_expr): Likewise.
2003         (gfc_conv_procedure_call): Use build_call_vec instead of
2004         build_call_list.
2005
2006 2010-07-04  Daniel Kraft  <d@domob.eu>
2007
2008         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2009
2010 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
2011
2012         PR fortran/44596
2013         PR fortran/44745
2014         * trans-types.c (gfc_get_derived_type): Derived type fields
2015         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2016
2017 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
2018
2019         PR fortran/44662
2020         * decl.c (match_procedure_in_type): Clear structure before using.
2021         (gfc_match_generic): Ditto.
2022
2023 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
2024
2025         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2026         * trans-types.c (gfc_add_field_to_struct_1): New function, most
2027         of which comes from...
2028         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
2029         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2030         building fields.
2031         (gfc_get_array_descriptor_base): Likewise.
2032         (gfc_get_mixed_entry_union): Likewise.
2033         (gfc_get_derived_type): Add extra chain parameter for
2034         gfc_add_field_to_struct.
2035         * trans-stmt.c (gfc_trans_character_select): Likewise.
2036         * trans-io.c (gfc_build_st_parameter): Likewise.
2037
2038 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2039
2040         PR fortran/44718
2041         * resolve.c (is_external_proc): Prevent procedure pointers from being
2042         regarded as external procedures.
2043
2044 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
2045
2046         PR fortran/44696
2047         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2048         passed as second argument of ASSOCIATED.
2049
2050 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
2051
2052         PR fortran/44582
2053         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2054         to determine if a function assignment can be made without a
2055         temporary.
2056         (gfc_trans_arrayfunc_assign): Move all the conditions that
2057         suppress the direct function call to the above new functon and
2058         call it.
2059
2060 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
2061
2062         PR fortran/40158
2063         * interface.c (argument_rank_mismatch): New function.
2064         (compare_parameter): Call new function instead of generating
2065         the error directly.
2066
2067 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
2068
2069         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
2070         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2071         initializers.
2072
2073 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
2074
2075         * Make-lang.in: Update dependencies.
2076
2077 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
2078
2079         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2080         and exit_label fields.
2081         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2082         individually.
2083         * trans-stmt.c (gfc_trans_simple_do): Likewise.
2084         (gfc_trans_do): Likewise.
2085         (gfc_trans_do_while): Likewise.
2086         (gfc_trans_cycle): Use cycle_label directly.
2087         (gfc_trans_exit): Use exit_label directly.
2088
2089 2010-06-27  Daniel Kraft  <d@domob.eu>
2090
2091         * dump-parse-tree.c (show_symbol): Dump target-expression for
2092         associate names.
2093         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2094         (show_namespace): Use show_level for correct indentation of
2095         "inner namespaces" (contained procedures or BLOCK).
2096
2097 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
2098
2099         PR fortran/44678
2100         * dump-parse-tree.c (show_code_node):  Show namespace for
2101         EXEC_BLOCK.
2102
2103 2010-06-26  Tobias Burnus  <burnus@net-b.de>
2104
2105         * decl.c (gfc_match_decl_type_spec): Support
2106         TYPE(intrinsic-type-spec).
2107
2108 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2109
2110         * intrinsic.h (gfc_check_selected_real_kind,
2111         gfc_simplify_selected_real_kind): Update prototypes.
2112         * intrinsic.c (add_functions): Add radix support to
2113         selected_real_kind.
2114         * check.c (gfc_check_selected_real_kind): Ditto.
2115         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2116         * trans-decl.c (gfc_build_intrinsic_function_decls):
2117         Change call from selected_real_kind to selected_real_kind2008.
2118         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2119         (PRECISION, RANGE, RADIX): Add cross @refs.
2120
2121 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2122
2123         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2124         * gfortran.texi (_gfortran_set_options): Update for
2125         GFC_STD_F2008_OBS addition.
2126         * libgfortran.h: Add GFC_STD_F2008_OBS.
2127         * options.c (set_default_std_flags, gfc_handle_option): Handle
2128         GFC_STD_F2008_OBS.
2129         io.c (check_format): Fix allow_std check.
2130
2131 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2132
2133         * decl.c (gfc_match_entry): Allow END besides
2134         END SUBROUTINE/END FUNCTION for contained procedures.
2135
2136 2010-06-25  Tobias Burnus  <burnus@net-b.de>
2137
2138         * parse.c (next_free, next_fixed): Allow ";" as first character.
2139
2140 2010-06-24  Tobias Burnus  <burnus@net-b.de>
2141
2142         PR fortran/44614
2143         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2144
2145 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
2146
2147         PR fortran/44616
2148         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2149         containers.
2150
2151 2010-06-21  Tobias Burnus  <burnus@net-b.de>
2152
2153         PR fortran/40632
2154         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2155         checks.
2156         * symbol.c (gfc_add_contiguous): New function.
2157         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2158         * decl.c (match_attr_spec): Ditto.
2159         (gfc_match_contiguous): New function.
2160         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2161         contiguous.
2162         * gfortran.h (symbol_attribute): Add contiguous.
2163         (gfc_is_simply_contiguous): Add prototype.
2164         (gfc_add_contiguous): Add prototype.
2165         * match.h (gfc_match_contiguous): Add prototype.
2166         * parse.c (decode_specification_statement,
2167         decode_statement): Handle contiguous attribute.
2168         * expr.c (gfc_is_simply_contiguous): New function.
2169         * dump-parse-tree.c (show_attr): Handle contiguous.
2170         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2171         Ditto.
2172         * trans-expr.c (gfc_add_interface_mapping): Copy
2173         attr.contiguous.
2174         * trans-array.c (gfc_conv_descriptor_stride_get,
2175         gfc_conv_array_parameter): Handle contiguous arrays.
2176         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2177         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2178         Ditto.
2179         * trans.h (gfc_array_kind): Ditto.
2180         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2181
2182 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
2183
2184         * options.c (gfc_handle_option): Don't handle N_OPTS.
2185
2186 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
2187
2188         PR fortran/44584
2189         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2190         to avoid ICE.
2191
2192 2010-06-18  Tobias Burnus  <burnus@net-b.de>
2193
2194         PR fortran/44556
2195         * resolve.c (resolve_allocate_deallocate): Properly check
2196         part-refs in stat=/errmsg= for invalid use.
2197
2198 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
2199
2200         PR fortran/44558
2201         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2202         Return directly in case of an error.
2203
2204 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
2205
2206         PR fortran/44549
2207         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2208         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2209         structure to each procedure in a procedure list.
2210         * module.c (mio_typebound_proc): Add NULL argument to
2211         'gfc_get_typebound_proc'.
2212         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2213         to initialize the new structure.
2214
2215 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
2216
2217         PR fortran/43388
2218         * gfortran.h (gfc_expr): Add new member 'mold'.
2219         * match.c (gfc_match_allocate): Implement the MOLD tag.
2220         * resolve.c (resolve_allocate_expr): Ditto.
2221         * trans-stmt.c (gfc_trans_allocate): Ditto.
2222
2223 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
2224
2225         PR fortran/44536
2226         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2227         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2228         GFC_DECL_SAVED_DESCRIPTOR set.
2229         (gfc_omp_report_decl): New function.
2230         * trans.h (gfc_omp_report_decl): New prototype.
2231         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2232
2233 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
2234
2235         PR fortran/31588
2236         PR fortran/43954
2237         * gfortranspec.c (lang_specific_driver): Removed deprecation
2238         warning for -M.
2239         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2240         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2241         * cpp.h (gfc_cpp_makedep): New.
2242         (gfc_cpp_add_dep): New.
2243         (gfc_cpp_add_target): New.
2244         * cpp.c (gfc_cpp_option): Add deps* members.
2245         (gfc_cpp_makedep): New.
2246         (gfc_cpp_add_dep): New.
2247         (gfc_cpp_add_target): New.
2248         (gfc_cpp_init_options): Initialize new options.
2249         (gfc_cpp_handle_option): Handle new options.
2250         (gfc_cpp_post_options): Map new options to libcpp-options.
2251         (gfc_cpp_init): Handle deferred -MQ and -MT options.
2252         (gfc_cpp_done): If requested, write dependencies to file.
2253         * module.c (gfc_dump_module): Add a module filename as target.
2254         * scanner.c (open_included_file): New parameter system; add the
2255         included file as dependency.
2256         (gfc_open_included_file): Add the included file as dependency.
2257         (gfc_open_intrinsic_module): Likewise.
2258         * invoke.texi: Removed deprecation warning for -M.
2259         * gfortran.texi: Removed Makefile-dependencies project.
2260
2261 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
2262
2263         * resolve.c (resolve_global_procedure): Improved checking if an
2264         explicit interface is required.
2265
2266 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2267
2268         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2269         return type.
2270         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2271         (gfc_conv_intrinsic_ttynam): Likewise.
2272         (gfc_conv_intrinsic_trim): Likewise.
2273
2274 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
2275
2276         PR fortran/40117
2277         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2278
2279 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2280
2281         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2282
2283 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2284
2285         * mathbuiltins.def: Add builtins that do not directly correspond
2286         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2287         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2288         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2289         code_{r,c}{4,8,10,16} fields. Add
2290         {,complex}{float,double,long_double}_built_in fields.
2291         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2292         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2293         definition of OTHER_BUILTIN.
2294         (real_compnt_info): Remove unused struct.
2295         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2296         functions.
2297         (build_round_expr): Call builtin_decl_for_precision instead of
2298         series of if-else.
2299         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
2300         instead of a switch.
2301         (gfc_build_intrinsic_lib_fndecls): Match
2302         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
2303         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
2304         kinds.
2305         (gfc_conv_intrinsic_lib_function): Go through all the extended
2306         gfc_intrinsic_map.
2307         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
2308         instead of a switch.
2309         (gfc_conv_intrinsic_abs): Likewise.
2310         (gfc_conv_intrinsic_mod): Likewise.
2311         (gfc_conv_intrinsic_sign): Likewise.
2312         (gfc_conv_intrinsic_fraction): Likewise.
2313         (gfc_conv_intrinsic_nearest): Likewise.
2314         (gfc_conv_intrinsic_spacing): Likewise.
2315         (gfc_conv_intrinsic_rrspacing): Likewise.
2316         (gfc_conv_intrinsic_scale): Likewise.
2317         (gfc_conv_intrinsic_set_exponent): Likewise.
2318
2319 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
2320
2321         PR fortran/42051
2322         PR fortran/43896
2323         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
2324         functions with CLASS formal arguments.
2325
2326 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
2327
2328         PR fortran/44207
2329         * resolve.c (conformable_arrays): Handle allocatable components.
2330
2331 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2332
2333         PR fortran/38273
2334         * gfortran.texi: Document that Cray pointers cannot be function
2335         results.
2336
2337 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2338
2339         PR fortran/36234
2340         * gfortran.texi: Document lack of support for syntax
2341         "complex FUNCTION name*16()", and existence of alternative
2342         legacy syntax "complex*16 FUNCTION name()".
2343
2344 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2345
2346         PR fortran/43032
2347         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2348         POSIX's fsync(), and how to call the latter from Fortran code.
2349
2350 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
2351
2352         PR fortran/44457
2353         * interface.c (compare_actual_formal): Reject actual arguments with
2354         array subscript passed to ASYNCHRONOUS dummys.
2355
2356 2010-06-10  Daniel Kraft  <d@domob.eu>
2357
2358         PR fortran/38936
2359         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2360         (struct gfc_symbol): New field `assoc'.
2361         (struct gfc_association_list): New struct.
2362         (struct gfc_code): New struct `block' in union, move `ns' there
2363         and add association list.
2364         (gfc_free_association_list): New method.
2365         (gfc_has_vector_subscript): Made public;
2366         * match.h (gfc_match_associate): New method.
2367         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2368         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2369         * interface.c (gfc_has_vector_subscript): Made public.
2370         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2371         * match.c (gfc_match_associate): New method.
2372         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2373         * primary.c (match_variable): Don't allow names associated to expr here.
2374         * parse.c (decode_statement): Try matching ASSOCIATE statement.
2375         (case_exec_markers, case_end): Add ASSOCIATE statement.
2376         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2377         (parse_associate): New method.
2378         (parse_executable): Handle ST_ASSOCIATE.
2379         (parse_block_construct): Change reference to gfc_code's `ns' field.
2380         * resolve.c (resolve_select_type): Ditto.
2381         (resolve_code): Ditto.
2382         (resolve_block_construct): Ditto and add comment.
2383         (resolve_select_type): Set association list in generated BLOCK to NULL.
2384         (resolve_symbol): Resolve associate names.
2385         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2386         and free association list.
2387         (gfc_free_association_list): New method.
2388         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2389         * trans-stmt.c (gfc_trans_block_construct): Change reference to
2390         gfc_code's `ns' field.
2391
2392 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
2393
2394         * error.c (error_print): Pre-initialize loc by NULL.
2395         * openmp.c (resolve_omp_clauses): Add explicit
2396         braces to avoid ambigous else.
2397         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
2398
2399 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2400
2401         * gfc-internals.texi: Move to GFDL 1.3.
2402         * gfortran.texi: Ditto.
2403         * intrinsic.texi: Ditto.
2404         * invoke.texi: Ditto.
2405
2406 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2407
2408         PR fortran/44347
2409         * check.c (gfc_check_selected_real_kind): Verify that the
2410         actual arguments are scalar.
2411
2412 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
2413
2414         PR fortran/44359
2415         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
2416
2417 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2418
2419         PR fortran/44430
2420         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
2421
2422 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2423
2424         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
2425
2426 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
2427
2428         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
2429         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
2430         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
2431         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
2432         gfc_check_bitfcn.
2433         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
2434         less_than_bitsize2): New functions.
2435         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
2436         nonnegative_check and less_than_bitsize1.
2437         (gfc_check_ibclr, gfc_check_ibset): Removed.
2438         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
2439         less_than_bitsize1.
2440
2441 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
2442
2443         PR fortran/44211
2444         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2445         Resolve references.
2446
2447 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2448
2449         * resolve.c (resolve_deallocate_expr): Avoid warning
2450         about possible use of iunitialized sym.
2451         (resolve_allocate_expr): Pre-initialize sym by NULL.
2452
2453 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2454
2455         PR fortran/43040
2456         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
2457
2458 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2459
2460         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
2461         allocation.
2462         (gfc_get_array_type_bounds): Likewise.
2463
2464         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
2465         (gfc_find_module): Likewise.
2466
2467         * f95-lang.c (pushlevel): Likewise.
2468
2469         * trans.h (struct lang_type): Add variable_size GTY option.
2470         (struct lang_decl): Likewise.
2471
2472 2010-06-08  Tobias Burnus  <burnus@net-b.de>
2473
2474         PR fortran/44446
2475         * symbol.c (check_conflict): Move protected--external/procedure check ...
2476         * resolve.c (resolve_select_type): ... to the resolution stage.
2477
2478 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2479
2480         * options.c (gfc_handle_option): Fix -fno-recursive.
2481
2482 2010-06-07  Tobias Burnus  <burnus@net-b.de>
2483
2484         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
2485         * gfortran.texi (copyrights-gfortran): Ditto.
2486
2487 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2488
2489         * lang.opt (fshort-enums): Define using Var and VarExists.
2490         * options.c (gfc_handle_option): Don't set flag_short_enums here.
2491
2492 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2493             Janus Weil  <janus@gcc.gnu.org>
2494
2495         PR fortran/43945
2496         * resolve.c (get_declared_from_expr): Move to before
2497         resolve_typebound_generic_call.  Make new_ref and class_ref
2498         ignorable if set to NULL.
2499         (resolve_typebound_generic_call): Once we have resolved the
2500         generic call, check that the specific instance is that which
2501         is bound to the declared type.
2502         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
2503         freeing 'class_ref->next' twice.
2504
2505 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
2506
2507         PR fortran/43895
2508         * trans-array.c (structure_alloc_comps): Dereference scalar
2509         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
2510         TREE_TYPE (decl).
2511
2512 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
2513
2514         * gfortranspec.c (append_arg, lang_specific_driver): Use
2515         GCC-specific formats in diagnostics.
2516
2517 2010-06-02  Tobias Burnus  <burnus@net-b.de>
2518
2519         PR fortran/44360
2520         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
2521         symbols.
2522
2523 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2524
2525         PR fortran/44371
2526         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
2527         condition block.
2528
2529 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
2530
2531         * fortran/gfortran.texi:  Fix typos in description of variable-format-
2532         expressions.
2533
2534 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
2535
2536         PR fortran/36928
2537         * dependency.c (gfc_check_section_vs_section):  Check
2538         for interleaving array assignments without conflicts.
2539
2540 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
2541
2542         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
2543         $data component of a class container.
2544         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
2545         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
2546         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
2547         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
2548         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
2549         * gcc/fortran/parse.c (parse_derived): Ditto.
2550         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
2551         gfc_expr_attr): Ditto.
2552         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
2553         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
2554         resolve_fl_var_and_proc, resolve_typebound_procedure,
2555         resolve_fl_derived): Ditto.
2556         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
2557         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
2558         CLASS_DATA.
2559         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
2560         gfc_trans_deferred_vars): Ditto.
2561         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
2562
2563 2010-05-28  Tobias Burnus  <burnus@net-b.de>
2564
2565         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
2566
2567 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2568
2569         * gfortranspec.c (append_arg, lang_specific_driver): Use
2570         fatal_error instead of fatal.  Use warning instead of fprintf for
2571         warnings.
2572
2573 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2574
2575         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
2576         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
2577         xstrerror instead of strerror.
2578
2579 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2580
2581         * cpp.c (cb_cpp_error): Save and restore
2582         global_dc->warn_system_headers, not variable warn_system_headers.
2583
2584 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2585
2586         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
2587
2588 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2589
2590         * trans-common.c: Do not include rtl.h, include output.h instead.
2591         * trans-decl.c: Likewise.
2592
2593 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
2594
2595         PR fortran/40011
2596         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
2597         namespace before trying to reorder the gsymbols.
2598
2599 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
2600
2601         PR fortran/30668
2602         PR fortran/31346
2603         PR fortran/34260
2604         * resolve.c (resolve_global_procedure): Add check for global
2605         procedures with implicit interfaces and assumed-shape or optional
2606         dummy arguments. Verify that function return type, kind and string
2607         lengths match.
2608
2609 2010-05-21  Tobias Burnus  <burnus@net-b.de>
2610
2611         * gfortran.h: Do not include system.h.
2612         * bbt.c: Include system.h.
2613         * data.c: Ditto.
2614         * dependency.c: Ditto.
2615         * dump-parse-tree.c: Ditto.
2616         * arith.h: Do not include gfortran.h.
2617         * constructor.h: Do not include gfortran.h and splay-tree.h.
2618         * match.h: Do not include gfortran.h.
2619         * parse.h: Ditto.
2620         * target-memory.h: Ditto.
2621         * openmp.c: Do not include toplev.h and target.h.
2622         * trans-stmt.c: Ditto not include toplev.h.
2623         * primary.c: Ditto.
2624         * trans-common.c: Tell why toplev.h is needed. And
2625         do not include target.h.
2626         * trans-expr.c: Tell why toplev.h is needed.
2627         * trans-array.c: Ditto.
2628         * trans-openmp.c: Ditto.
2629         * trans-const.c: Ditto.
2630         * trans.c: Ditto.
2631         * trans-types.c: Ditto.
2632         * trans-io.c: Ditto.
2633         * trans-decl.c: Ditto.
2634         * scanner.c: Ditto.
2635         * convert.c: Ditto.
2636         * trans-intrinsic.c: Ditto.
2637         * options.c: Ditto.
2638
2639 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2640
2641         PR fortran/43851
2642         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
2643         before returning MATCH_ERROR. Add check for scalar. Add check for
2644         default integer kind.
2645
2646 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2647
2648         PR fortran/44212
2649         * match.c (gfc_match_select_type): On error jump back out of the local
2650         namespace.
2651         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
2652         stage, more precisely to ...
2653         * resolve.c (resolve_fl_derived): ... this place.
2654
2655 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
2656
2657         PR fortran/44213
2658         * resolve.c (ensure_not_abstract): Allow abstract types with
2659         non-abstract ancestors.
2660
2661 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2662
2663         * trans-const.c: Include realmpfr.h.
2664         * Make-lang.in: Update dependencies.
2665
2666 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2667
2668         * trans-const.c, trans-types.c, trans-intrinsic.c:
2669         Clean up redundant includes.
2670
2671 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
2672
2673         PR fortran/38407
2674         * lang.opt (Wunused-dummy-argument): New option.
2675         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
2676         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
2677         (set_Wall): Enable warn_unused_dummy_argument.
2678         (gfc_handle_option): Set warn_unused_dummy_argument according to
2679         command line.
2680         * trans-decl.c (generate_local_decl): Separate warnings about
2681         unused variables and unused dummy arguments.
2682         * invoke.texi: Documented new option.
2683
2684 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
2685
2686         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
2687         (gfc_conv_string_tmp): Do not assert type comparibilty.
2688         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
2689         (gfc_conv_expr_descriptor): Remove assert.
2690         * trans-common.c: Clarify why rtl.h and tm.h are included.
2691         * trans-openmp.c: Do not include ggc.h and real.h.
2692         Explain why gimple.h is included.
2693         * trans-const.c: Do not include ggc.h.
2694         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
2695         * trans.c: Do not include ggc.h and real.h.
2696         Explain why gimple.h is included.
2697         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
2698         and dwarf2out.h are included.
2699         * trans-io.c: Do not include gimple.h and real.h.
2700         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
2701         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
2702         is included.
2703
2704 2010-05-20  Tobias Burnus  <burnus@net-b.de>
2705
2706         * options.c (gfc_init_options,gfc_post_options): Enable
2707         flag_associative_math by default.
2708
2709 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2710
2711         PR fortran/43851
2712         * trans-stmt.c (gfc_trans_stop): Add generation of call to
2713         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
2714         blank STOP, handling a null expression. (gfc_trans_pause): Use
2715         pause_string for blank PAUSE.
2716         * trans.h: Add external function declaration for error_stop_numeric.
2717         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
2718         the declaration for the library call. Adjust whitespaces.
2719         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
2720         signal no stop code. Match the expression following the stop and pass
2721         that to the translators. Remove the old use of digit matching.  Add
2722         checks that the stop_code expression is INTEGER or CHARACTER, constant,
2723         and if CHARACTER, default character KIND.
2724
2725 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2726
2727         PR fortran/44055
2728         * lang.opt (Wconversion-extra): New option.
2729         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
2730         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
2731         (set_Wall): Enable -Wconversion.
2732         (gfc_handle_option): Set warn_conversion_extra.
2733         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
2734         introduced for -Wconversion if -Wconversion-extra is present.
2735         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
2736         -Wconversion; document -Wconversion-extra.
2737
2738 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2739
2740         PR fortran/42360
2741         * gfortran.h (gfc_has_default_initializer): New.
2742         * expr.c (gfc_has_default_initializer): New.
2743         * resolve.c (has_default_initializer): Removed, use
2744         gfc_has_default_initializer() instead. Updated all callers.
2745         * trans-array.c (has_default_initializer): Removed, use
2746         gfc_has_default_initializer() instead. Updated all callers.
2747         * trans-decl.c (generate_local_decl): Do not check the
2748         first component only to check for initializers, but use
2749         gfc_has_default_initializer() instead.
2750
2751 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2752
2753         PR fortran/38404
2754         * primary.c (match_string_constant): Move start_locus just inside 
2755         the string.
2756         * data.c (create_character_intializer): Clarified truncation warning.
2757
2758 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
2759
2760         PR fortran/34505
2761         * intrinsic.h (gfc_check_float): New prototype.
2762         (gfc_check_sngl): New prototype.
2763         * check.c (gfc_check_float): New.
2764         (gfc_check_sngl): New.
2765         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
2766         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
2767         and SNGL.
2768         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
2769         added them to the list of specifics of REAL instead.
2770
2771 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2772
2773         PR fortran/43990
2774         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
2775         This is now handled via 'gfc_class_null_initializer'.
2776
2777 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2778
2779         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
2780         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
2781         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2782         add_procs_to_declared_vtab,add_generic_specifics, 
2783         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2784         find_typebound_proc_uop,gfc_find_typebound_proc,
2785         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
2786         gfc_get_tbp_symtree): Moved here from other places.
2787         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
2788         class.c.
2789         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
2790         gfc_find_typebound_proc,gfc_find_typebound_user_op,
2791         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
2792         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
2793         * Make-lang.in: Add class.o.
2794         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
2795         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2796         add_procs_to_declared_vtab,add_generic_specifics,
2797         add_generics_to_declared_vtab,gfc_find_derived_vtab,
2798         find_typebound_proc_uop,gfc_find_typebound_proc,
2799         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
2800         gfc_get_tbp_symtree): Move to class.c.
2801
2802 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2803
2804         * trans-types.c (gfc_init_types): Use build_function_type_list.
2805         (gfc_get_ppc_type): Likewise.
2806         * trans-decl.c (gfc_generate_constructors): Likewise.
2807         * f95-lang.c (build_builtin_fntypes): Likewise.
2808         (gfc_init_builtin_functions): Likewise.
2809         (DEF_FUNCTION_TYPE_0): Likewise.
2810         (DEF_FUNCTION_TYPE_1): Likewise.
2811         (DEF_FUNCTION_TYPE_2): Likewise.
2812         (DEF_FUNCTION_TYPE_3): Likewise.
2813         (DEF_FUNCTION_TYPE_4): Likewise.
2814         (DEF_FUNCTION_TYPE_5): Likewise.
2815         (DEF_FUNCTION_TYPE_6): Likewise.
2816         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
2817         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
2818  
2819 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2820
2821         * trans-array.c (gfc_trans_array_constructor_value): Use
2822         build_constructor instead of build_constructor_from_list.
2823         (gfc_build_constant_array_constructor): Likewise.
2824         * trans-decl.c (create_main_function): Likewise.
2825         * trans-stmt.c (gfc_trans_character_select): Likewise.
2826
2827 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
2828
2829         PR fortran/44044
2830         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
2831         (resolve_fl_variable_derived): ... this place.
2832         (resolve_symbol): Make sure function symbols (and their result
2833         variables) are not resolved twice.
2834
2835 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
2836
2837         PR fortran/35779
2838         * array.c (match_array_list): Revert change from 2010-05-13.
2839
2840 2010-05-16  Richard Guenther  <rguenther@suse.de>
2841
2842         * trans-decl.c (module_htab_decls_hash): Revert last change.
2843
2844 2010-05-16  Richard Guenther  <rguenther@suse.de>
2845
2846         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
2847
2848 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2849
2850         * options.c (set_Wall): Remove special logic for Wuninitialized
2851         without -O.
2852
2853 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2854
2855         PR fortran/44154
2856         PR fortran/42647
2857         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
2858         if branches.
2859
2860 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
2861
2862         PR fortran/43207
2863         PR fortran/43969
2864         * gfortran.h (gfc_class_null_initializer): New prototype.
2865         * expr.c (gfc_class_null_initializer): New function to build a NULL
2866         initializer for CLASS pointers.
2867         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
2868         containers. Remove default NULL initialization of $data component.
2869         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
2870         message.
2871         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
2872         Use new function 'gfc_class_null_initializer'.
2873         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
2874         class variables.
2875
2876 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2877
2878         PR fortran/44135
2879         * fortran/interface.c (get_sym_storage_size): Use signed instead of
2880         unsigned mpz_get_?i routines.
2881
2882 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2883
2884         * trans.c (trans_code): Set backend locus early.
2885         * trans-decl.c (gfc_get_fake_result_decl): Use source location
2886         of the function instead of current input_location.
2887
2888 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
2889
2890         PR fortran/35779
2891         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
2892         Updated all usages.
2893         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
2894         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
2895         iterators.
2896
2897 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2898
2899         PR fortran/44036
2900         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
2901         variable lists.
2902         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
2903         by reference dummy procedures or non-dummy procedure pointers.
2904         (gfc_omp_predetermined_sharing): Return
2905         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
2906
2907 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2908
2909         PR fortran/43711
2910         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
2911         after OMP statement.
2912         (gfc_match_omp_critical): Likewise.
2913         (gfc_match_omp_flush): Likewise.
2914         (gfc_match_omp_workshare): Likewise.
2915         (gfc_match_omp_master): Likewise.
2916         (gfc_match_omp_ordered): Likewise.
2917         (gfc_match_omp_atomic): Likewise.
2918         (gfc_match_omp_barrier): Likewise.
2919         (gfc_match_omp_end_nowait): Likewise.
2920
2921 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
2922
2923         PR fortran/31820
2924         * resolve.c (validate_case_label_expr): Removed FIXME.
2925         (resolve_select): Raise default warning on case labels out of range
2926         of the case expression.
2927
2928 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
2929
2930         PR fortran/27866
2931         PR fortran/35003
2932         PR fortran/42809
2933         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
2934         about conversion warnings.
2935
2936 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
2937
2938         PR fortran/44044
2939         * match.c (gfc_match_select_type): Move error message to
2940         resolve_select_type.
2941         * resolve.c (resolve_select_type): Error message moved here from
2942         gfc_match_select_type. Correctly set type of temporary.
2943
2944 2010-05-10  Richard Guenther  <rguenther@suse.de>
2945
2946         * trans-decl.c (gfc_build_library_function_decl): Split out
2947         worker to ...
2948         (build_library_function_decl_1): ... this new function.
2949         Set a fnspec attribute if a specification was provided.
2950         (gfc_build_library_function_decl_with_spec): New function.
2951         (gfc_build_intrinsic_function_decls): Annotate internal_pack
2952         and internal_unpack.
2953
2954 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
2955
2956         PR fortran/40728
2957         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
2958         as external.
2959
2960 2010-05-07  Jason Merrill  <jason@redhat.com>
2961
2962         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2963         to avoid -Wc++-compat warning.
2964
2965 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2966
2967         PR 40989
2968         * options.c (gfc_handle_option): Add argument kind.
2969         * gfortran.h (gfc_handle_option): Update declaration.
2970
2971 2010-05-06  Tobias Burnus  <burnus@net-b.de>
2972
2973         PR fortran/43985
2974         * trans-types.c (gfc_sym_type): Mark Cray pointees as
2975         GFC_POINTER_TYPE_P.
2976
2977 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2978
2979         PR fortran/32331
2980         * resolve.c (traverse_data_list): Rephrase error message for
2981         non-constant bounds in data-implied-do.
2982
2983 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
2984
2985         PR fortran/24978
2986         * gfortran.h: Removed repeat count from constructor, removed
2987         all usages.
2988         * data.h (gfc_assign_data_value_range): Changed return value from
2989         void to gfc_try.
2990         * data.c (gfc_assign_data_value): Add location to constructor element.
2991         (gfc_assign_data_value_range): Call gfc_assign_data_value()
2992         for each element in range. Return early if an error was generated.
2993         * resolve.c (check_data_variable): Stop early if range assignment
2994         generated an error.
2995
2996 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
2997
2998         PR fortran/43696
2999         * resolve.c (resolve_fl_derived): Some fixes for class variables.
3000         * symbol.c (gfc_build_class_symbol): Add separate class container for
3001         class pointers.
3002
3003 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
3004
3005         PR fortran/43592
3006         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3007
3008 2010-05-02  Tobias Burnus  <burnus@net-b.de>
3009
3010         PR fortran/18918
3011         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3012         for lcobound, ucobound, image_index and this_image.
3013         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3014         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3015         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3016         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3017         functions.
3018         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3019
3020 2010-04-30  Tobias Burnus  <burnus@net-b.de>
3021
3022         PR fortran/18918
3023         PR fortran/43931
3024         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
3025         calculation for array descriptor types.
3026
3027 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3028
3029         PR fortran/43896
3030         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3031         initializers for PPC members of the vtabs.
3032
3033 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3034
3035         PR fortran/42274
3036         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3037         attribute for all PPC members of the vtypes.
3038         (copy_vtab_proc_comps): Copy the correct interface.
3039         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3040         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3041         a dummy argument and make sure all PPC members of the vtab are
3042         initialized correctly.
3043         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3044         in call to gfc_trans_assign_vtab_procs.
3045         * trans-stmt.c (gfc_trans_allocate): Ditto.
3046
3047 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3048
3049         PR fortran/43326
3050         * resolve.c (resolve_typebound_function): Renamed
3051         resolve_class_compcall.Do all the detection of class references
3052         here.
3053         (resolve_typebound_subroutine): resolve_class_typebound_call
3054         renamed. Otherwise same as resolve_typebound_function.
3055         (gfc_resolve_expr): Call resolve_typebound_function.
3056         (resolve_code): Call resolve_typebound_subroutine.
3057
3058 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3059
3060         PR fortran/43492
3061         * resolve.c (resolve_typebound_generic_call): For CLASS methods
3062         pass back the specific symtree name, rather than the target
3063         name.
3064
3065 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3066
3067         PR fortran/42353
3068         * resolve.c (resolve_structure_cons): Make the initializer of
3069         the vtab component 'extends' the same type as the component.
3070
3071 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3072
3073         PR fortran/42680
3074         * interface.c (check_interface1): Pass symbol name rather than NULL to
3075         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3076         trap MULL. (gfc_compare_derived_types): Revert previous change
3077         incorporated incorrectly during merge from trunk, r155778.
3078         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3079         than NULL to gfc_compare_interfaces.
3080         * symbol.c (add_generic_specifics): Likewise.
3081
3082 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
3083
3084         PR fortran/42353
3085         * interface.c (gfc_compare_derived_types): Add condition for vtype.
3086         * symbol.c (gfc_find_derived_vtab): Sey access to private.
3087         (gfc_find_derived_vtab): Likewise.
3088         * module.c (ab_attribute): Add enumerator AB_VTAB.
3089         (mio_symbol_attribute): Use new attribute, AB_VTAB.
3090         (check_for_ambiguous): Likewise.
3091
3092 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
3093             Janus Weil  <janus@gcc.gnu.org>
3094
3095         PR fortran/41829
3096         * trans-expr.c (select_class_proc): Remove function.
3097         (conv_function_val): Delete reference to previous.
3098         (gfc_conv_derived_to_class): Add second argument to the call to
3099         gfc_find_derived_vtab.
3100         (gfc_conv_structure): Exclude proc_pointer components when
3101         accessing $data field of class objects.
3102         (gfc_trans_assign_vtab_procs): New function.
3103         (gfc_trans_class_assign): Add second argument to the call to
3104         gfc_find_derived_vtab.
3105         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3106         implement holding off searching for the vptr derived type.
3107         (add_proc_component): New function.
3108         (add_proc_comps): New function.
3109         (add_procs_to_declared_vtab1): New function.
3110         (copy_vtab_proc_comps): New function.
3111         (add_procs_to_declared_vtab): New function.
3112         (void add_generic_specifics): New function.
3113         (add_generics_to_declared_vtab): New function.
3114         (gfc_find_derived_vtab): Add second argument to the call to
3115         gfc_find_derived_vtab. Add the calls to
3116         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3117         * decl.c (build_sym, build_struct): Use new arg in calls to
3118         gfc_build_class_symbol.
3119         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3120         definition of struct gfc_class_esym_list. Modify prototypes
3121         of gfc_build_class_symbol and gfc_find_derived_vtab.
3122         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3123         call to gfc_find_derived_vtab.
3124         * module.c : Add the vtype attribute.
3125         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3126         * resolve.c (resolve_typebound_generic_call): Add second arg
3127         to pass along the generic name for class methods.
3128         (resolve_typebound_call): The same.
3129         (resolve_compcall): Use the second arg to carry the generic
3130         name from the above. Remove the reference to class_esym.
3131         (check_members, check_class_members, resolve_class_esym,
3132         hash_value_expr): Remove functions.
3133         (resolve_class_compcall, resolve_class_typebound_call): Modify
3134         to use vtable rather than member by member calls.
3135         (gfc_resolve_expr): Modify second arg in call to
3136         resolve_compcall.
3137         (resolve_select_type): Add second arg in call to
3138         gfc_find_derived_vtab.
3139         (resolve_code): Add second arg in call resolve_typebound_call.
3140         (resolve_fl_derived): Exclude vtypes from check for late
3141         procedure definitions. Likewise for checking of explicit
3142         interface and checking of pass arg.
3143         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3144         calls to gfc_find_derived_vtab.
3145         * match.c (select_type_set_tmp): Use new arg in call to
3146         gfc_build_class_symbol.
3147         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3148         necessary.
3149         * parse.c (endType): Finish incomplete classes.
3150
3151 2010-04-28  Tobias Burnus  <burnus@net-b.de>
3152
3153         PR fortran/18918
3154         PR fortran/43919
3155         * simplify.c (simplify_cobound): Handle scalar coarrays.
3156
3157 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3158
3159         * gfc-internals.texi: Update copyright year.
3160         * gfortran.texi: Ditto.
3161         * invoke.texi: Ditto.
3162
3163 2010-04-27  Tobias Burnus  <burnus@net-b.de>
3164
3165         PR fortran/18918
3166         * resolve.c (resolve_allocate_expr): Allow array coarrays.
3167         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3168         * trans-types.c (gfc_get_array_type_bounds,
3169         gfc_get_array_descriptor_base): Add corank argument.
3170         * trans-array.c (gfc_array_init_size): Handle corank.
3171         (gfc_trans_create_temp_array, gfc_array_allocate,
3172         gfc_conv_expr_descriptor): Add corank argument to call.
3173         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3174
3175 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
3176
3177         PR fortran/30073
3178         PR fortran/43793
3179         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3180         of mucking with a tree directly.
3181
3182 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3183
3184         PR fortran/43832
3185         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3186         gfc_error with new error message.
3187
3188 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
3189
3190         PR fortran/43841
3191         PR fortran/43843
3192         * trans-expr.c (gfc_conv_expr): Supply an address expression for
3193         GFC_SS_REFERENCE.
3194         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3195         GFC_SS_REFERENCE.
3196         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3197         than the address of a GFC_SS_REFERENCE.
3198         * trans.h : Change comment on GFC_SS_REFERENCE. 
3199
3200 2010-04-22  Richard Guenther  <rguenther@suse.de>
3201
3202         PR fortran/43829
3203         * resolve.c (gfc_resolve_index): Wrap around ...
3204         (gfc_resolve_index_1): ... this.  Add parameter to allow
3205         any integer kind index type.
3206         (resolve_array_ref): Allow any integer kind for the start
3207         index of an array ref.
3208
3209 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
3210
3211         PR fortran/43836
3212         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3213         the decl.
3214
3215 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
3216
3217         * intrinsic.c (sort_actual): Remove 'is' in error message.
3218
3219 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
3220
3221         PR fortran/43227
3222         * resolve.c (resolve_fl_derived): If a component character
3223         length has not been resolved, do so now.
3224         (resolve_symbol): The same as above for a symbol character
3225         length.
3226         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3227         not needed for a character valued, procedure pointer.
3228
3229         PR fortran/43266
3230         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3231         not found, return FAILURE rather than ICEing.
3232
3233 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3234
3235         PR fortran/43339
3236         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3237         sequential loops private in the innermost containing task region.
3238
3239 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3240
3241         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3242         to build_common_tree_nodes.
3243
3244 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
3245
3246         PR fortran/31538
3247         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3248         gfc_msg_bounds by using 'Array bound mismatch' directly.
3249         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
3250         error message to include the mismatch in the extent of array bound.
3251         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
3252         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
3253
3254 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3255
3256         * gfortran.texi: Update information on temporary file locations.
3257
3258 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3259
3260         * trans-decl.c (gfc_build_qualified_array): Ensure
3261         ubound.N and lbound.N artificial variable names don't appear
3262         in debug info.
3263
3264 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
3265
3266         PR fortran/30073
3267         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3268         block of code.  Set name to the variable associated with the descriptor.
3269
3270 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
3271
3272         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3273         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3274
3275 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3276
3277         * intrinsic.texi: Add the missing specific name of intrinsic
3278         procedure where the specific name is identical to the generic name.
3279         Fix inconsistent or mismatch in the argument names in intrinsic
3280         procedure descriptions.  Add the SCALAR allocatable description to
3281         ALLOCATED.
3282
3283 2010-04-14  Tobias Burnus  <burnus@net-b.de>
3284
3285         PR fortran/18918
3286         * array.c (gfc_find_array_ref): Handle codimensions.
3287         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3288         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3289         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3290         New functions.
3291         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3292         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3293         GFC_ISYM_UCOBOUND.
3294         * intrinsic.h (add_functions): Add this_image, image_index,
3295         lcobound and ucobound intrinsics.
3296         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3297         gfc_check_image_index, gfc_check_this_image,
3298         gfc_simplify_image_index, gfc_simplify_lcobound,
3299         gfc_simplify_this_image, gfc_simplify_ucobound):
3300         New function prototypes.
3301         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
3302         IMAGE_INDEX): Document new intrinsic functions.
3303         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
3304         error fatal.
3305         * simplify.c (simplify_bound_dim): Handle coarrays.
3306         (simplify_bound): Update simplify_bound_dim call.
3307         (gfc_simplify_num_images): Add -fcoarray=none check.
3308         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
3309         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
3310
3311 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3312
3313         PR fortran/43747
3314         * constructor.c: Fix typo in comment.
3315         * expr.c (find_array_section): Add check for max array limit.
3316
3317 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
3318
3319         PR bootstrap/31400
3320         * gfortranspec.c (lookup_option): Check for -static and return
3321         OPTION_static.
3322         (lang_specific_driver): Break when OPTION_static is discovered.
3323
3324 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3325
3326         * array.c (extract_element): Restore function from trunk.
3327         (gfc_get_array_element): Restore function from trunk.
3328         (gfc_expand_constructor): Restore check against
3329         flag_max_array_constructor.
3330         * constructor.c (node_copy_and_append): Delete unused.
3331         * gfortran.h: Delete comment and extra include.
3332         * constructor.h: Bump copyright and clean up TODO comments.
3333         * resolve.c: Whitespace.
3334
3335 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3336
3337         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
3338         with direct access access to elements. Adjusted prototype, fixed all
3339         callers.
3340         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
3341         array.
3342         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
3343         (gfc_simplify_spread): Removed workaround, directly insert elements
3344         at a given array position.
3345         (gfc_simplify_transpose): Likewise.
3346         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
3347         function calls.
3348         (gfc_simplify_unpack): Likewise.
3349
3350 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
3351
3352         * simplify.c (only_convert_cmplx_boz): Renamed to ...
3353         (convert_boz): ... this and moved to start of file.
3354         (gfc_simplify_abs): Whitespace fix.
3355         (gfc_simplify_acos): Whitespace fix.
3356         (gfc_simplify_acosh): Whitespace fix.