OSDN Git Service

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