OSDN Git Service

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