OSDN Git Service

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