1 2010-09-24 Tobias Burnus <burnus@net-b.de>
3 * gfortran.texi: Add second space after end-of-sentence period;
4 change / to /@/ to allow hyphenation of URLs.
5 (Standards): Remove duplicated OpenMP, update wording given that
6 Fortran 2008 now released.
7 (Fortran 2008 status): Update and add list of implemented features.
9 2010-09-24 Tobias Burnus <burnus@net-b.de>
12 * iso-fortran-env.def: Add NAMED_KINDARRAY with
13 character_kinds, integer_kinds, logical_kinds and
15 * gfortran.h: Add them to iso_fortran_env_symbol.
16 * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
17 LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
18 libgfortran_stat_codes to libgfortran_error_codes.
19 * module.c (create_int_parameter_array): New function.
20 (use_iso_fortran_env_module): Use it for
21 NAMED_KINDARRAY of iso-fortran-env.def.
22 * trans-decl.c (gfc_get_symbol_decl): Parameter
23 arrays of intrinsics modules become local static variables.
24 * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
25 integer_kinds, logical_kinds and real_kinds.
27 2010-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
30 * frontend-passes.c (optimize_binop_array_assignment):
31 Only re-use lhs as intermediate storage if kind and type
34 2010-09-23 Mikael Morin <mikael@gcc.gnu.org>
38 * trans-array.c (gfc_conv_expr_descriptor): Handle
39 ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
41 2010-09-23 Tobias Burnus <burnus@net-b.de>
43 * intrinsic.texi (OpenMP modules): Add named constants of
46 2010-09-23 Daniel Kraft <d@domob.eu>
51 * gfortran.h (gfc_check_vardef_context): New method.
52 (struct symbol_attribute): New flag `select_type_temporary'.
53 * primary.c (gfc_variable_attr): Clarify initialization of ref.
54 (match_variable): Remove PROTECTED check and assignment check
55 for PARAMETERs (this is now done later).
56 * match.c (gfc_match_iterator): Remove INTENT(IN) check.
57 (gfc_match_associate): Defer initialization of newAssoc->variable.
58 (gfc_match_nullify): Remove PURE definability check.
59 (select_type_set_tmp): Set new `select_type_temporary' flag.
60 * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
61 (gfc_check_pointer_assign): Ditto (and other checks removed).
62 (gfc_check_vardef_context): New method.
63 * interface.c (compare_parameter_protected): Removed.
64 (compare_actual_formal): Use `gfc_check_vardef_context' for checks
65 related to INTENT([IN]OUT) arguments.
66 * intrinsic.c (check_arglist): Check INTENT for intrinsics.
67 * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
68 (remove_last_array_ref): New method.
69 (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
70 (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
71 (resolve_assoc_var): Remove checks for definability here.
72 (resolve_select_type): Handle resolving of code->block here.
73 (resolve_ordinary_assign): Remove PURE check.
74 (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
75 Use `gfc_check_vardef_context' for assignments and pointer-assignments.
77 2010-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
79 * gfortran.texi (Argument list functions): Allow URL to wrap.
80 * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
81 (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
82 (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
83 code markups in the text.
84 * invoke.texi (Fortran Dialect Options)
85 (Error and Warning Options, Directory Options, Code Gen Options):
86 Likewise. Remove @code inside @smallexample.
88 2010-09-22 Joseph Myers <joseph@codesourcery.com>
90 * gfortranspec.c (lang_specific_driver): Handle OPT__version and
91 OPT__help instead of OPT_fversion and OPT_fhelp.
92 * lang.opt (-all-warnings, -assert, -assert=, -comments,
93 -comments-in-macros, -define-macro, -define-macro=, -dependencies,
94 -dump, -dump=, -include-barrier, -include-directory,
95 -include-directory=, -include-directory-after,
96 -include-directory-after=, -include-prefix, -include-prefix=,
97 -no-line-commands, -no-standard-includes, -output, -output=,
98 -preprocess, -print-missing-file-dependencies, -trace-includes,
99 -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
100 -write-dependencies, -write-user-dependencies): New.
102 2010-09-21 Jason Blevins <jrblevin@sdf.org>
104 * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
105 execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
108 2010-09-21 Mikael Morin <mikael@gcc.gnu.org>
111 * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
115 * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
116 accessing dimensions in reversed order.
119 * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
120 intrinsic function call.
122 * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
123 Update asserts accordingly.
126 * trans.h (gfc_se): New field force_tmp.
127 * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
128 and set parmse.force_tmp if some alias is found.
129 * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
130 if se->force_tmp is set.
132 2010-09-20 Janus Weil <janus@gcc.gnu.org>
135 * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
136 TBPs, PPCs and pointer/allocatable components.
138 2010-09-20 Paul Thomas <pault@gcc.gnu.org>
141 * simplify.c (is_constant_array_expr): Allow structure array
142 elements as well as constants.
143 (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
144 gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
145 type of source to the result.
147 2010-09-19 Thomas Koenig <tkoenig@gcc.gnu.org>
149 * frontend-passes.c (gfc_expr_walker): Also
150 handle EXPR_SUBSTRING.
152 2010-09-19 Thomas Koenig <tkoenig@gcc.gnu.org>
154 * frontend-passes.c (gfc_expr_walker): Handle
155 constructors and references.
157 2010-09-16 Tobias Burnus <burnus@net-b.de>
160 * trans-types.c (create_fn_spec): New function.
161 (gfc_get_function_type): Call it.
163 2010-09-16 Jakub Jelinek <jakub@redhat.com>
165 * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
166 (gfc_expr_walker, gfc_code_walker): New prototypes.
167 * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
168 (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
169 (optimize_namespace): Use gfc_code_walker.
170 (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
171 (optimize_expr_0, optimize_code_node,
172 optimize_actual_arglist): Removed.
173 (optimize_assignment): Don't call optimize_expr_0.
175 2010-09-16 Janus Weil <janus@gcc.gnu.org>
178 * interface.c (compare_parameter): Create vtab for actual argument,
179 instead of formal (if needed).
181 2010-09-15 Janus Weil <janus@gcc.gnu.org>
184 * resolve.c (resolve_allocate_expr): Do default initialization via
187 2010-09-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
189 * mathbuiltins.def: Do not defined huge_val built-in.
190 * trans-const.c (gfc_build_inf_or_huge): New function.
191 * trans-const.h (gfc_build_inf_or_huge): New prototype.
192 * f95-lang.c (gfc_init_builtin_functions): Don't defined
194 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
195 have functions of type (*) (void) anymore.
196 (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
197 (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
198 of generating a call to huge_val().
200 2010-09-11 Mikael Morin <mikael@gcc.gnu.org>
202 * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
203 * dependency.c (gfc_check_dependency): Don't depend on
204 expr's inline_noncopying_intrinsic_attribute.
205 * dependency.c (gfc_check_argument_var_dependency,
206 gfc_check_argument_dependency): Ditto. Recursively check dependency
207 as NOT_ELEMENTAL in the non-copying (=transpose) case.
208 * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
209 * resolve.c (find_noncopying_intrinsics): Remove.
210 (resolve_function, resolve_call): Remove call to
211 find_noncopying_intrinsics.
213 * trans-array.c (gfc_conv_array_transpose): Remove.
214 (gfc_walk_subexpr): Make non-static. Move prototype...
215 * trans-array.h (gfc_walk_subexpr): ... here.
216 * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
218 (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
219 gfc_inline_intrinsic_function_p): New.
220 (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
221 Remove transpose from the libcall list.
222 (gfc_walk_intrinsic_function): Special case inline intrinsic.
223 * trans.h (gfc_inline_intrinsic_function_p): New prototype.
225 2010-09-10 Mikael Morin <mikael@gcc.gnu.org>
227 * trans-expr.c (expr_is_variable): New function taking non-copying
228 intrinsic functions into account.
229 (gfc_trans_assignment_1): Use expr_is_variable.
231 2010-09-10 Mikael Morin <mikael@gcc.gnu.org>
233 * trans-array.c (gfc_conv_loop_setup): Access the shape along the
234 real array dimension instead of the scalarizer (loop) dimension.
236 2010-09-10 Mikael Morin <mikael@gcc.gnu.org>
238 * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
239 transposed references.
241 2010-09-10 Tobias Burnus <burnus@net-b.de>
244 * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
245 build4_stat_loc): New inline functions.
246 (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
247 (build1_v, build2_v, build3_v, build4_v): Use input_location
249 * trans-array.c (gfc_trans_scalarized_loop_end,
250 gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
251 * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
252 gfc_finish_wrapped_block): Ditto.
253 * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
254 * trans-expr.c (gfc_conv_missing_dummy,
255 gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
256 * trans-openmp.c (gfc_omp_clause_default_ctor,
257 gfc_trans_omp_critical, gfc_trans_omp_parallel,
258 gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
259 gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
260 gfc_trans_omp_single, gfc_trans_omp_task,
261 gfc_trans_omp_workshare): Ditto.
263 2010-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
265 * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
266 for dummy argument that appears in a specification statement.
268 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
270 * trans-array.c (gfc_get_array_ref_dim): New function.
271 (gfc_trans_create_temp_array): Reconstruct array
272 bounds from loop bounds. Use array bounds instead of loop bounds.
274 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
276 * trans-array.c (gfc_set_loop_bounds_from_array_spec):
277 Get the array dimension from the dim array.
279 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
281 * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
282 dim array to get the stride in the innermost loop.
284 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
286 * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
287 (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
288 * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
290 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
292 * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
293 and info dimension are the same. Loop over loop dimension.
294 * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
296 2010-09-09 Mikael Morin <mikael@gcc.gnu.org>
298 * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
301 2010-09-09 Tobias Burnus <burnus@net-b.de>
304 * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
305 STAT): Show also syntax for the function version.
306 * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
307 add_sym_3s_intent): Remove function.
308 (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
310 (add_sym_2_intent): New function.
311 (add_functions): Set intent for functions which modify
312 the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
313 argument name of hostnm from "a" to "c"
314 (add_subroutines): Change add_sym_*s_intent to
315 add_sym_*s and add intent to the add_sym_*s calls.
317 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
320 * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
321 MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
322 * gfortran.h: Define ISYM values for above intrinsics.
323 * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
324 gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
325 gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
326 gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
327 gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
328 gfc_simplify_merge_bits, gfc_simplify_rshift,
329 gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
330 gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
331 gfc_resolve_shift): New prototypes.
332 * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
333 gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
334 * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
335 gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
337 * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
338 gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
339 gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
341 (gfc_conv_intrinsic_function): Call above static functions.
342 * intrinsic.texi: Document new intrinsics.
343 * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
344 gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
345 gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
346 gfc_simplify_merge_bits, gfc_simplify_rshift,
347 gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
350 2010-09-08 Jakub Jelinek <jakub@redhat.com>
352 * frontend-passes.c (optimize_code_node): Walk block chain by default.
355 * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
356 instead of code->block.
359 * openmp.c (resolve_omp_do): Report not enough do loops for
360 collapse even if block->next is NULL.
362 2010-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
365 * dependency.c (gfc_deb_compare_expr): Take missing optional
366 arguments into account.
368 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
370 * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
371 * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
372 (gfc_build_intrinsic_function_decls): Don't build the
373 gfor_fndecl_clz128 and gfor_fndecl_ctz128.
374 * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
375 gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
376 of calling clz128/ctz128 library functions.
378 2010-09-07 Jan Hubicka <jh@suse.cz>
380 * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
383 2010-09-07 Tobias Burnus <burnus@net-b.de>
386 * intrinsic.texi (COS): Remove superfluous "n".
388 2010-09-07 Tobias Burnus <burnus@net-b.de>
391 * trans-array.c (gfc_conv_descriptor_data_get,
392 gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
393 gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
394 gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
395 gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
396 gfc_conv_shift_descriptor_lbound,
397 gfc_set_loop_bounds_from_array_spec,
398 gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
399 gfc_conv_array_transpose, gfc_get_iteration_count,
400 gfc_grow_array, gfc_trans_array_ctor_element,
401 gfc_trans_array_constructor_subarray,
402 gfc_trans_array_constructor_value,
403 constant_array_constructor_loop_size, gfc_trans_array_constructor,
404 gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
405 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
406 gfc_conv_array_ref, gfc_trans_preloop_setup,
407 gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
408 gfc_conv_loop_setup, gfc_conv_array_extent_dim,
409 gfc_conv_descriptor_size, gfc_array_init_size,
410 gfc_array_allocate, gfc_array_deallocate,
411 gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
412 gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
413 get_array_charlen, gfc_conv_expr_descriptor,
414 array_parameter_size, gfc_conv_array_parameter,
415 gfc_trans_dealloc_allocated, get_full_array_size,
416 duplicate_allocatable,
417 structure_alloc_comps): Change fold_build[0-9] to
419 (duplicate_allocatable, structure_alloc_comps,
420 gfc_duplicate_allocatable): Add space after function name.
422 2010-09-07 Mikael Morin <mikael@gcc.gnu.org>
424 * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
425 checking string length value.
426 * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
427 gfc_charlen_type_node type.
430 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
431 length to gfc_charlen_type_node.
433 2010-09-06 Thomas Koenig <tkoenig@gcc.gnu.org>
436 * frontend-passes.c (optimize_binop_array_assignment): New
438 (optimize_assignment): Call it.
440 2010-09-06 Thomas Koenig <tkoenig@gcc.gnu.org>
443 * trans-expr.c (gfc_conv_substring): If start and end
444 of the string reference are equal, set the length to one.
446 2010-09-06 Tobias Burnus <burnus@net-b.de>
449 * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
451 2010-09-06 Tobias Burnus <burnus@net-b.de>
454 * dump-parse-tree.c (gfc_debug_expr): New function.
456 2010-09-06 Tobias Burnus <burnus@net-b.de>
459 * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
460 (check_specific): Special case for those intrinsics.
461 * gfortran.h (gfc_isym_id): Add new intrinsics
462 * intrinsic.h (gfc_check_transf_bit_intrins,
463 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
464 gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
466 * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
467 gfc_resolve_iparity, resolve_transformational): New functions.
468 (gfc_resolve_product, gfc_resolve_sum,
469 gfc_resolve_parity): Use resolve_transformational.
470 * check.c (gfc_check_transf_bit_intrins): New function.
471 * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
472 gfc_simplify_iparity, do_bit_any, do_bit_ior,
473 do_bit_xor, simplify_transformation): New functions.
474 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
475 gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
476 * trans-intrinsic.c (gfc_conv_intrinsic_arith,
477 gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
478 Handle IALL, IANY and IPARITY intrinsics.
479 * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
481 (IALL, IANY, IPARITY): Document new intrinsics.
483 2010-09-05 Tobias Burnus <burnus@net-b.de>
486 * f95-lang.c (gfc_truthvalue_conversion): Use
487 fold_build[0-9]_loc instead of fold_build[0-9].
488 * convert.c (convert): Ditto.
489 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
490 build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
491 gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
492 gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
493 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
494 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
495 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
496 gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
497 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
498 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
499 gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
500 gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
501 gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
502 gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
503 gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
504 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
505 gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
506 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
507 gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
508 gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
509 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
510 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
511 size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
512 gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
513 gfc_conv_intrinsic_transfer, gfc_conv_allocated,
514 gfc_conv_associated, gfc_conv_same_type_as,
515 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
517 2010-09-04 Tobias Burnus <burnus@net-b.de>
520 * resolve.c (resolve_fl_namelist): Change constraint checking
521 order to prevent endless loop.
523 2010-09-04 Janus Weil <janus@gcc.gnu.org>
526 * resolve.c (resolve_allocate_expr): Generate default initializers
527 already at this point, resolve them and put them into expr3, ...
528 * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
531 2010-09-03 Tobias Burnus <burnus@net-b.de>
534 * trans-intrinsic.c (gfc_conv_intrinsic_sign,
535 gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
537 * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
538 gfc_conv_string_length, gfc_conv_substring,
539 gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
540 gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
541 gfc_conv_expr_op, gfc_build_compare_string,
542 gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
543 gfc_conv_derived_to_class, conv_isocbinding_procedure,
544 gfc_conv_procedure_call, fill_with_spaces,
545 gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
546 gfc_trans_structure_assign, gfc_trans_pointer_assignment,
547 gfc_trans_scalar_assign, gfc_trans_zero_assign,
548 gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
549 fold_build[0-9] to fold_build[0-9]_loc.
550 * trans-io.c (set_parameter_const, set_parameter_value,
551 set_parameter_ref, gfc_convert_array_to_string, set_string,
552 set_internal_unit, io_result, set_error_locus,
553 nml_get_addr_expr, build_dt): Ditto.
554 * trans-openmp.c (gfc_omp_clause_default_ctor,
555 gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
556 gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
557 gfc_trans_omp_do): Ditto.
558 * trans.c (gfc_add_modify, gfc_build_addr_expr,
559 gfc_build_array_ref, gfc_trans_runtime_error_vararg,
560 gfc_trans_runtime_check, gfc_call_malloc,
561 gfc_allocate_with_status, gfc_allocate_array_with_status,
562 gfc_call_free, gfc_deallocate_with_status,
563 gfc_call_realloc): Ditto.
565 2010-09-03 Thomas Koenig <tkoenig@gcc.gnu.org>
568 * dependency.c (gfc_deb_compare_expr): Compare equal for equal
569 arglists for pure user functions, or for those intrinsic
570 functions which are also pure.
571 * intrinsics.c (add_conv): Mark conversion functions as pure.
572 (add_char_conversions): Likewise.
574 2010-09-03 Daniel Kraft <d@domob.eu>
577 * resolve.c (resolve_actual_arglist): Allow internal procedure
578 as actual argument with Fortran 2008.
580 2010-09-03 Daniel Kraft <d@domob.eu>
583 * gfortran.h (struct gfc_code): Renamed `whichloop' to
584 `which_construct' as this is no longer restricted to loops.
585 * parse.h (struct gfc_state_data): New field `construct'.
586 * match.c (match_exit_cycle): Handle EXIT from non-loops.
587 * parse.c (push_state): Set `construct' field.
588 * resolve.c (resolve_select_type): Extend comment.
589 * trans-stmt.c (gfc_trans_if): Add exit label.
590 (gfc_trans_block_construct), (gfc_trans_select): Ditto.
591 (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
592 (gfc_trans_do), (gfc_trans_do_while): Ditto.
593 (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
594 (gfc_trans_cycle): Ditto.
595 (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
597 2010-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
599 * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
600 (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
601 (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
602 * intrinsic.texi (RSHIFT): Fix documentation.
604 2010-09-02 Tobias Burnus <burnus@net-b.de>
607 * trans-common.c (create_common): Change build[0-9] to
609 * trans-const.c (gfc_conv_constant_to_tree,
610 gfc_conv_constant_to_tree): Ditto.
611 * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
612 gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
613 add_argument_checking, create_main_function,
614 gfc_generate_return): Ditto.
615 * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
616 * trans-stmt.c (allocate_temp_for_forall_nest_1,
617 compute_inner_temp_size, compute_overall_iter_number,
618 generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
619 gfc_conv_elemental_dependencies, gfc_do_allocate,
620 gfc_evaluate_where_mask, gfc_trans_allocate,
621 gfc_trans_arithmetic_if, gfc_trans_call,
622 gfc_trans_character_select, gfc_trans_deallocate,
623 gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
624 gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
625 gfc_trans_integer_select, gfc_trans_logical_select,
626 gfc_trans_pointer_assign_need_temp, gfc_trans_return,
627 gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
628 gfc_trans_where_assign) Ditto.
630 2010-09-02 Janus Weil <janus@gcc.gnu.org>
633 * resolve.c (resolve_symbol): Correct check for attributes of CLASS
636 2010-09-02 Tobias Burnus <burnus@net-b.de>
639 * resolve.c (apply_default_init): Mark symbol as referenced,
640 if it is initialized.
641 (resolve_symbol): Change intialized check for BT_DERIVED such
642 that also function results get initialized; remove now obsolete
643 gfc_set_sym_referenced for BT_CLASS.
645 2010-09-01 Janus Weil <janus@gcc.gnu.org>
648 * class.c (gfc_find_derived_vtab): Add component '$def_init'.
649 * resolve.c (resolve_allocate_expr): Defer handling of default
650 initialization to 'gfc_trans_allocate'.
651 (apply_default_init,resolve_symbol): Handle polymorphic dummies.
652 (resolve_fl_derived): Suppress error messages for vtypes.
653 * trans-stmt.c (gfc_trans_allocate): Handle initialization via
654 polymorphic MOLD expression.
655 * trans-expr.c (gfc_trans_class_init_assign): Now only used for
656 dummy initialization.
658 2010-09-01 Tobias Burnus <burnus@net-b.de>
660 * gfortran.texi (preprocessing): Update URL to COCO.
662 2010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
664 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
665 array quad_decls. Remove unnecessary assignment.
667 2010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
669 * trans-expr.c (gfc_conv_power_op): Handle floating-point types
670 other than long double.
671 * mathbuiltins.def: Add builtins from the POW and CPOW family.
672 * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
673 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
674 prefix to function name.
675 (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
676 (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
678 (gfc_conv_intrinsic_exponent): Likewise.
679 (gfc_conv_intrinsic_abs): Likewise.
680 (gfc_conv_intrinsic_mod): Likewise.
681 (gfc_conv_intrinsic_sign): Likewise.
682 (gfc_conv_intrinsic_arith): Likewise.
683 (gfc_conv_intrinsic_fraction): Likewise.
684 (gfc_conv_intrinsic_nearest): Likewise.
685 (gfc_conv_intrinsic_spacing): Likewise.
686 (gfc_conv_intrinsic_rrspacing): Likewise.
687 (gfc_conv_intrinsic_scale): Likewise.
688 (gfc_conv_intrinsic_set_exponent): Likewise.
690 2010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
692 * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
693 * intrinsic.h (gfc_resolve_execute_command_line): New function.
694 * iresolve.c (gfc_resolve_execute_command_line): New function.
695 * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
696 * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
698 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
701 * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
702 and parity{,l,ll} builtins.
703 * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
704 (gfc_conv_intrinsic_function): Call above new functions.
705 * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
707 * intrinsic.texi: Document POPCNT and POPPAR.
709 2010-08-30 Janus Weil <janus@gcc.gnu.org>
712 * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
714 2010-08-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
716 * Make-lang.in: Add frontend-passes.o dependencies.
718 2010-08-29 Janus Weil <janus@gcc.gnu.org>
721 * resolve.c (resolve_structure_cons): For derived types, make sure the
722 type has been resolved.
723 (resolve_typebound_procedures): Make sure the vtab has been generated.
725 2010-08-29 Janus Weil <janus@gcc.gnu.org>
728 * match.c (gfc_match_select_type): Give the associate-name the
729 FL_VARIABLE attribute.
731 2010-08-28 Steven G. Kargl <kargl@gcc.gnu.org>
733 * simplify.c (gfc_simplify_bessel_n2): Fix indention
736 2010-08-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
739 * trans-types.c (gfc_init_kinds): Disable TFmode.
741 2010-08-27 Janus Weil <janus@gcc.gnu.org>
744 * match.c (gfc_match_allocate): Avoid double free on error.
746 2010-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
749 * gfortran.h (gfc_real_info): Add c_float128 field.
750 * mathbuiltins.def: Indicate which builtins are const.
751 * trans-types.h (float128_type_node, complex_float128_type_node,
752 gfc_real16_is_float128): New variables.
753 * trans-types.c (float128_type_node, complex_float128_type_node,
754 gfc_real16_is_float128): New variables.
755 (gfc_init_kinds): Allow TFmode.
756 (gfc_build_real_type): Mark __float128 types as such.
757 (gfc_init_types): Initialize float128_type_node and
758 complex_float128_type_node
759 * f95-lang.c (gfc_init_builtin_functions): Adjust for new
760 argument of OTHER_BUILTIN macro.
761 * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
762 (builtin_decl_for_precision): Special case for __float128.
763 (builtin_decl_for_float_kind): Likewise.
764 (define_quad_builtin): New function.
765 (gfc_build_intrinsic_lib_fndecls): Create all __float128
766 library decls if necessary. Store them in the real16_decl and
767 complex16_decl builtin map fields.
768 (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
769 library function names.
771 2010-08-27 Tobias Burnus <burnus@net-b.de>
774 * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
775 * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
776 gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
777 gfc_resolve_parity): New prototypes.
778 * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
779 GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
780 * gcc/fortran/iresolve.c (gfc_resolve_norm2,
781 gfc_resolve_parity): New functions.
782 * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
784 * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
785 gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
786 * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
787 * gcc/fortran/simplify.c (simplify_transformation_to_array):
788 Add post-processing opterator.
789 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
790 gfc_simplify_product, gfc_simplify_sum): Update call.
791 (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
792 gfc_simplify_parity): New functions.
794 2010-08-27 Janus Weil <janus@gcc.gnu.org>
797 * match.c (select_type_set_tmp): Add the possibility to reset the
799 (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
801 2010-08-27 Thomas Koenig <tkoenig@gcc.gnu.org>
804 * dependency.c (check_section_vs_section): Single test for
805 identical strides which takes into account that only one
806 of the strides may be NULL.
808 2010-08-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
811 * primary.c (match_hollerith_constant): Calculate padding needed to
812 fill default integer and allocate string for that size. Set pad bytes
814 * gfortran.h: Add hollerith pad value to type spec union.
815 * data.c (create_character_initializer): Fix spelling of function name.
816 Use hollerith pad value to calculate length.
817 * arith.c (hollerith2representation); Use hollerith pad value to
820 2010-08-26 Daniel Kraft <d@domob.eu>
825 * gfortran.h (struct gfc_association_list): New flag `dangling'.
826 (gfc_build_block_ns): Declared here...
827 * parse.h (gfc_build_block_ns): ...instead of here.
828 * trans.h (gfc_process_block_locals): Expect additionally the
829 gfc_association_list of BLOCK (if present).
830 * match.c (select_type_set_tmp): Create sym->assoc for temporary.
831 * resolve.c (resolve_variable): Only check for invalid *array*
832 references on associate-names.
833 (resolve_assoc_var): New method with code previously in resolve_symbol.
834 (resolve_select_type): Use association to give the selector and
835 temporaries their values instead of ordinary assignment.
836 (resolve_fl_var_and_proc): Allow CLASS associate-names.
837 (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
838 * trans-stmt.c (gfc_trans_block_construct): Pass association-list
839 to `gfc_process_block_locals' to match new interface.
840 * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
842 (gfc_process_block_locals): Defer them rather here when linked to
843 from the BLOCK's association list.
845 2010-08-25 Jakub Jelinek <jakub@redhat.com>
847 * trans-decl.c (gfc_build_intrinsic_function_decls): Set
848 TREE_NOTHROW on fndecls that can't throw. Set
849 TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
850 (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
851 gfor_fndecl_associated.
853 2010-08-23 Mikael Morin <mikael@gcc.gnu.org>
856 * frontend-passes.c (optimize_equality): Don't optimize array equality
858 2010-08-23 Janus Weil <janus@gcc.gnu.org>
861 * resolve.c (resolve_procedure_interface): New function split off from
863 (resolve_formal_arglist): Call it here ...
864 (resolve_symbol): ... and here.
866 2010-08-22 Joseph Myers <joseph@codesourcery.com>
868 * Make-lang.in (gfortranspec.o): Update dependencies.
869 * gfortranspec.c: Include coretypes.h before gcc.h. Include
871 (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
872 (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
873 (g77_xargc): Make unsigned.
874 (g77_xargv): Change to g77_x_decoded_options.
875 (g77_newargc): Make unsigned.
876 (g77_newargv): Change to g77_new_decoded_options.
877 (strings_same, options_same): New.
878 (append_arg): Use cl_decoded_option structures.
879 (append_option): New.
880 (add_arg_libgfortran): New.
881 (lang_specific_driver): Use cl_decoded_option structures.
883 2010-08-21 Janus Weil <janus@gcc.gnu.org>
887 * class.c (add_proc_comp): Add static initializer for PPCs.
888 (add_procs_to_declared_vtab): Modified comment.
889 * module.c (mio_component): Add argument 'vtype'. Don't read/write the
890 initializer if the component is part of a vtype.
891 (mio_component_list): Add argument 'vtype', pass it on to
893 (mio_symbol): Modified call to 'mio_component_list'.
894 * trans.h (gfc_conv_initializer): Modified prototype.
895 (gfc_trans_assign_vtab_procs): Removed.
896 * trans-common.c (create_common): Modified call to
897 'gfc_conv_initializer'.
898 * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
899 gfc_emit_parameter_debug_info): Modified call to
900 'gfc_conv_initializer'.
901 (build_function_decl): Remove assertion.
902 * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
903 Removed call to 'gfc_trans_assign_vtab_procs'.
904 (gfc_conv_initializer): Add argument 'procptr'.
905 (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
906 (gfc_trans_assign_vtab_procs): Removed.
907 * trans-stmt.c (gfc_trans_allocate): Removed call to
908 'gfc_trans_assign_vtab_procs'.
910 2010-08-21 Tobias Burnus <burnus@net-b.de>
914 * intrinsic.c (add_sym): Init value attribute.
915 (set_attr_value): New function.
916 (add_functions) Use it and add JN/YN resolvers.
917 * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
918 * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
919 * gfortran.h (gfc_intrinsic_arg): Add value attribute.
920 * iresolve.c (gfc_resolve_bessel_n2): New function.
921 * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
923 (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
924 Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
925 * simplify.c (): For YN set to -INF if previous values
927 * trans-expr.c (gfc_conv_procedure_call): Don't crash
929 * iresolve.c (gfc_resolve_extends_type_of): Set the
930 type of the dummy argument to the one of the actual.
932 2010-08-20 Joseph Myers <joseph@codesourcery.com>
934 * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
936 2010-08-20 Joseph Myers <joseph@codesourcery.com>
938 * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
941 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
943 * trans-openmp.c: Use FOR_EACH_VEC_ELT.
945 2010-08-19 Daniel Kraft <d@domob.eu>
949 * trans.h (struct gfc_se): New flag `byref_noassign'.
950 * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
951 (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
952 * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
953 and check for compile-time errors with those.
954 * trans-decl.c (trans_associate_var): Use new routine
955 `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
956 * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
957 (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
958 (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
959 (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
960 * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
961 rank remapping for assignment.
963 2010-08-19 Tobias Burnus <burnus@net-b.de>
965 * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
966 * * simplify.c (gfc_simplify_bessel_yn): Change recursive
969 2010-08-19 Tobias Burnus <burnus@net-b.de>
973 * check.c (gfc_check_bessel_n2): New function.
974 * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
975 * intrinsic.c (add_functions): Add transformational version
976 of the Bessel_jn/yn intrinsics.
977 * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
978 gfc_simplify_bessel_yn2): New prototypes.
979 * intrinsic.texi (Bessel_jn, Bessel_yn): Document
980 transformational variant.
981 * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
982 Check for negative order.
983 (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
984 gfc_simplify_bessel_yn2): New functions.
986 2010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
989 * resolve.c (resolve_transfer): Traverse operands and set expression
990 to be checked to a non EXPR_OP type.
992 2010-08-19 Janus Weil <janus@gcc.gnu.org>
995 * gfortran.h (gfc_add_save): Modified prototype.
996 * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
997 (match_pointer_init): New function to match F08 pointer initialization.
998 (variable_decl,match_procedure_decl,match_ppc_decl): Use
999 'match_pointer_init'.
1000 (match_attr_spec): Module variables are implicitly SAVE.
1001 (gfc_match_save): Modified call to 'gfc_add_save'.
1002 * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1004 * primary.c (gfc_variable_attr): Handle SAVE attribute.
1005 * resolve.c (resolve_structure_cons): Add new argument and do pointer
1006 initialization checks.
1007 (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1008 (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1009 (resolve_fl_variable): Handle SAVE_IMPLICIT.
1010 * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1012 * trans-decl.c (gfc_create_module_variable): Module variables with
1013 TARGET can already exist.
1014 * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1015 (gfc_conv_initializer): Implement non-NULL pointer
1018 2010-08-18 Tobias Burnus <burnus@net-b.de>
1021 * intrinsic.texi (selected_char_kind): Document ISO_10646
1024 2010-08-17 Jakub Jelinek <jakub@redhat.com>
1027 * trans-decl.c (build_library_function_decl_1): Chain on
1028 void_list_node instead of creating a new TREE_LIST.
1029 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1030 * trans-types.c (gfc_get_function_type): Likewise. Set
1031 typelist to void_list_node for the main program.
1033 2010-08-17 Daniel Kraft <d@domob.eu>
1036 * gfortran.h (struct gfc_association_list): New member `where'.
1037 (gfc_is_associate_pointer) New method.
1038 * match.c (gfc_match_associate): Remember locus for each associate
1039 name matched and do not try to set variable flag.
1040 * parse.c (parse_associate): Use remembered locus for symbols.
1041 * primary.c (match_variable): Instead of variable-flag check for
1042 associate names set it for all such names used.
1043 * symbol.c (gfc_is_associate_pointer): New method.
1044 * resolve.c (resolve_block_construct): Don't generate assignments
1045 to give associate-names their values.
1046 (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1047 (resolve_symbol): Set some more attributes for associate variables,
1048 set variable flag here and check it and don't try to build an
1049 explicitely shaped array-spec for array associate variables.
1050 * trans-expr.c (gfc_conv_variable): Dereference in case of association
1052 * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1053 (gfc_sym_type): Return pointer type for association to scalar vars.
1054 * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1055 (trans_associate_var): New method.
1056 (gfc_trans_deferred_vars): Handle association symbols.
1058 2010-08-16 Joseph Myers <joseph@codesourcery.com>
1060 * lang.opt (MDX): Change back to MD. Mark NoDriverArg instead of
1062 (MMDX): Change back to MMD. Mark NoDriverArg instead of
1064 * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1065 OPT_MDX and OPT_MMDX.
1067 2010-08-16 Joseph Myers <joseph@codesourcery.com>
1069 * lang.opt (MDX, MMDX): Mark RejectDriver.
1071 2010-08-15 Janus Weil <janus@gcc.gnu.org>
1073 * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1074 vtabs for generics any more).
1076 2010-08-15 Daniel Kraft <d@domob.eu>
1079 * gfortran.h (gfc_find_proc_namespace): New method.
1080 * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1081 around with namespace.
1082 * symbol.c (gfc_find_proc_namespace): New method.
1083 * trans-decl.c (gfc_build_qualified_array): Use it for correct
1085 * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1086 * parse.c (parse_associate): Removed assignment-generation here...
1087 * resolve.c (resolve_block_construct): ...and added it here.
1088 (resolve_variable): Handle names that are arrays but were not parsed
1089 as such because of association.
1090 (resolve_code): Fix BLOCK resolution.
1091 (resolve_symbol): Generate array-spec for associate-names.
1093 2010-08-15 Tobias Burnus <burnus@net-b.de>
1096 * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1097 (verify_c_interop): Handle unresolved DT with bind(C).
1099 2010-08-15 Tobias Burnus <burnus@net-b.de>
1101 * trans-expr.c (gfc_conv_expr_present): Regard nullified
1102 pointer arrays as absent.
1103 (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1104 dummys as absent argument.
1105 * interface.c (compare_actual_formal,compare_parameter):
1108 2010-08-15 Tobias Burnus <burnus@net-b.de>
1110 * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1111 dummies with intent(in).
1113 2010-08-15 Daniel Kraft <d@domob.eu>
1116 * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1117 routines not IMPURE also as PURE.
1118 * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1119 `NO_CLASS' in `CLASS_IMPURE'.
1120 (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1121 (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1122 (add_functions): Ditto.
1123 (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1124 * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1125 (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1126 are not ALLOCATABLE and have their INTENT specified.
1128 2010-08-13 Daniel Kraft <d@domob.eu>
1130 * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1131 * array.c (gfc_match_array_spec): Match implied-shape specification and
1132 handle AS_IMPLIED_SHAPE correctly otherwise.
1133 * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1134 (variable_decl): Some checks for implied-shape declaration.
1135 * resolve.c (resolve_symbol): Assert that array-spec is no longer
1136 AS_IMPLIED_SHAPE in any case.
1138 2010-08-12 Joseph Myers <joseph@codesourcery.com>
1140 * lang.opt (MD, MMD): Change to MDX and MMDX.
1141 * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1143 2010-08-11 Janus Weil <janus@gcc.gnu.org>
1146 * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1147 'gfc_intrinsic_arg'.
1148 (check_arglist,check_specific): Add reference to 'name' field.
1149 (init_arglist): Remove reference to 'name' field.
1150 * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1151 * check.c (variable_check): Reverse order of checks. Respect intent of
1153 (int_or_proc_check): New function.
1154 (coarray_check): New function.
1155 (allocatable_check): New function.
1156 (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1157 (gfc_check_complex): Use 'int_or_real_check'.
1158 (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1159 gfc_check_ucobound): Use 'coarray_check'.
1160 (gfc_check_pack): Use 'real_or_complex_check'.
1161 (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1162 'int_or_proc_check'.
1163 (scalar_check,type_check,numeric_check,int_or_real_check,
1164 real_or_complex_check,kind_check,double_check,logical_array_check,
1165 array_check,same_type_check,rank_check,nonoptional_check,
1166 kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1167 gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1168 gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1169 gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1170 gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1171 gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1172 gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1175 2010-08-10 Daniel Kraft <d@domob.eu>
1177 * gfortran.texi (Interoperability with C): Fix ordering in menu
1178 and add new subsection about pointers.
1179 (Interoperable Subroutines and Functions): Split off the pointer part.
1180 (working with Pointers): New subsection with extended discussion
1181 of pointers (especially procedure pointers).
1183 2010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>
1186 * array.c (gfc_ref_dimen_size): Add end argument.
1187 If end is non-NULL, calculate it.
1188 (ref_size): Adjust call to gfc_ref_dimen_size.
1189 (gfc_array_dimen_size): Likewise.
1190 (gfc_array_res_shape): Likewise.
1191 * gfortran.h: Adjust prototype for gfc_ref_dimen_size.
1192 * resolve.c (resolve_array_ref): For stride not equal to -1,
1193 fill in the lowest possible end.
1195 2010-08-09 Janus Weil <janus@gcc.gnu.org>
1197 * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1199 2010-08-07 Nathan Froyd <froydnj@codesourcery.com>
1201 * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1203 (check_some_aliasing): Likewise.
1204 * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1205 (gfc_conv_intrinsic_int): Likewise.
1206 (gfc_conv_intrinsic_lib_function): Likewise.
1207 (gfc_conv_intrinsic_cmplx): Likewise.
1208 (gfc_conv_intrinsic_ctime): Likewise.
1209 (gfc_conv_intrinsic_fdate): Likewise.
1210 (gfc_conv_intrinsic_ttynam): Likewise.
1211 (gfc_conv_intrinsic_minmax): Likewise.
1212 (gfc_conv_intrinsic_minmax_char): Likewise.
1213 (gfc_conv_intrinsic_ishftc): Likewise.
1214 (gfc_conv_intrinsic_index_scan_verify): Likewise.
1215 (gfc_conv_intrinsic_merge): Likewise.
1216 (gfc_conv_intrinsic_trim): Likewise.
1217 * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1219 2010-08-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1222 * dependency.c (check_section_vs_section): Handle cases where
1223 the start expression coincides with the lower or upper
1226 2010-08-04 Janus Weil <janus@gcc.gnu.org>
1231 * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1232 container types. Do not artificially increase refs. Commit symbols one
1234 * interface.c (compare_parameter): Make sure vtabs are present before
1235 generating module variables.
1236 * resolve.c (resolve_allocate_expr): Ditto.
1238 2010-08-04 Tobias Burnus <burnus@net-b.de>
1242 * resolve.c (resolve_structure_cons): Fix
1245 2010-08-04 Mikael Morin <mikael@gcc.gnu.org>
1249 * symbol.c (changed_syms): Made static again.
1250 (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
1251 Changed conditional internal error into assert.
1252 Rename function to ...
1253 (gfc_enforce_clean_symbol_state): ... this.
1254 * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
1255 Rename the former to the latter.
1256 * parse.c (decode_statement, decode_omp_directive,
1257 decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1259 (changed_syms): Remove declaration.
1260 (next_statement): Use gfc_enforce_clean_symbol_state.
1262 2010-08-04 Tobias Burnus <burnus@net-b.de>
1265 * resolve.c (resolve_structure_cons): Fix handling of
1266 initialization structure constructors with character
1267 elements of the wrong length.
1268 * array.c (gfc_check_iter_variable): Add NULL check.
1269 (gfc_resolve_character_array_constructor): Also truncate
1272 2010-08-04 Tobias Burnus <burnus@net-b.de>
1274 * trans-io.c (gfc_build_io_library_fndecls): Fix return
1275 value of some libgfortran functions.
1277 2010-08-03 Thomas Koenig <tkoenig@gcc.gnu.org>
1280 * dependency.c (gfc_deb_compare_expr): Remove any integer
1281 conversion functions to larger types from both arguments.
1282 Remove handling these functions futher down.
1284 2010-08-03 Janus Weil <janus@gcc.gnu.org>
1288 * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
1289 * resolve.c (resolve_tb_generic_targets): Check for errors.
1291 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1294 * depencency.c (gfc_dep_resolver): Fix logic for when a loop
1297 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1300 * dependency.h: Add prototype for gfc_are_identical_variables.
1301 * frontend-passes.c: Include depencency.h.
1302 (optimimize_equality): Use gfc_are_identical_variables.
1303 * dependency.c (identical_array_ref): New function.
1304 (gfc_are_identical_variables): New function.
1305 (gfc_deb_compare_expr): Use gfc_are_identical_variables.
1306 * dependency.c (gfc_check_section_vs_section). Rename gfc_
1307 prefix from statc function.
1308 (check_section_vs_section): Change arguments to gfc_array_ref,
1309 adjust function body accordingly.
1311 2010-08-02 Mikael Morin <mikael@gcc.gnu.org>
1312 Janus Weil <janus@gcc.gnu.org>
1317 * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
1318 * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1319 gfc_copy_formal_args, gfc_copy_formal_args_intr,
1320 gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
1321 * parse.c (parse_derived_contains, parse_spec, parse_progunit):
1322 Call reject_statement in case of error.
1323 (match_deferred_characteritics): Call gfc_undo_symbols in case match
1326 2010-08-01 Janus Weil <janus@gcc.gnu.org>
1329 * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1330 (gfc_find_derived_vtab): Make vtabs and vtypes public.
1331 * module.c (read_module): When reading module files, always import
1332 vtab and vtype symbols.
1334 2010-07-31 Mikael Morin <mikael@gcc.gnu.org>
1338 * symbol.c (changed_syms): Made non-static.
1339 * parse.c (changed_syms): Declare new external.
1340 (next_statement): Assert changed_syms is NULL at the beginning.
1342 2010-07-30 Janus Weil <janus@gcc.gnu.org>
1343 Steven G. Kargl <kargl@gcc.gnu.org>
1346 * match.c (match_type_spec): Try to parse derived types before
1349 2010-07-30 Mikael Morin <mikael@gcc.gnu.org>
1351 * gfortran.h (gfc_release_symbol): New prototype.
1352 * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1353 (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1354 Use gfc_release_symbol.
1355 * parse.c (gfc_fixup_sibling_symbols): Ditto.
1356 * resolve.c (resolve_symbol): Ditto.
1358 2010-07-29 Tobias Burnus <burnus@net-b.de>
1362 * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
1363 external procedure declarations in modules.
1364 (gfc_get_symbol_decl): Modify assert.
1366 2010-07-29 Janus Weil <janus@gcc.gnu.org>
1369 * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
1371 2010-07-29 Janus Weil <janus@gcc.gnu.org>
1374 * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
1375 (gfc_trans_class_assign): Modified prototype.
1376 * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
1377 * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
1378 (gfc_trans_class_assign): ... here. Modified actual arguments.
1379 * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
1380 handle the MOVE_ALLOC intrinsic with scalar and class arguments.
1381 * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
1383 2010-07-29 Mikael Morin <mikael@gcc.gnu.org>
1387 * class.c (gfc_find_derived_vtab): Accept or discard newly created
1388 symbols before returning.
1390 2010-07-29 Joseph Myers <joseph@codesourcery.com>
1392 * lang.opt (cpp): Remove Joined and Separate markers.
1393 (cpp=): New internal option.
1394 * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
1395 * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
1398 2010-07-29 Daniel Kraft <d@domob.eu>
1401 * array.c (resolve_array_bound): Fix error message to properly handle
1402 non-variable expressions.
1404 2010-07-28 Mikael Morin <mikael@gcc.gnu.org>
1406 * decl.c (free_value): Also free repeat field.
1407 * data.c (gfc_assign_data_value): Always free offset before returning.
1409 2010-07-28 Daniel Kraft <d@domob.eu>
1411 * gfortran.h (gfc_build_intrinsic_call): New method.
1412 * expr.c (gfc_build_intrinsic_call): New method.
1413 * simplify.c (range_check): Ignore non-constant value.
1414 (simplify_bound_dim): Handle non-variable expressions and
1415 fix memory leak with non-free'ed expression.
1416 (simplify_bound): Handle non-variable expressions.
1417 (gfc_simplify_shape): Ditto.
1418 (gfc_simplify_size): Ditto, but only in certain cases possible.
1420 2010-07-28 Joseph Myers <joseph@codesourcery.com>
1422 * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
1425 2010-07-28 Tobias Burnus <burnus@net-b.de>
1428 * trans-types.c (gfc_get_derived_type): Fix DT declaration
1429 from modules for whole-file mode.
1431 2010-07-27 Joseph Myers <joseph@codesourcery.com>
1433 * gfortran.h (gfc_handle_option): Update prototype and return
1435 * options.c (gfc_handle_option): Update prototype and return value
1438 2010-07-27 Joseph Myers <joseph@codesourcery.com>
1440 * cpp.c (gfc_cpp_init_options): Update prototype. Use number of
1441 decoded options in allocating deferred_opt.
1442 * cpp.h (gfc_cpp_init_options): Update prototype.
1443 * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
1444 * gfortran.h (gfc_option_lang_mask): New.
1445 (gfc_init_options): Update prototype.
1446 * options.c (gfc_option_lang_mask): New.
1447 (gfc_init_options): Update prototype. Pass new arguments to
1448 gfc_cpp_init_options.
1450 2010-07-26 Tobias Burnus <burnus@net-b.de>
1453 * trans-decl.c (gfc_get_extern_function_decl): Fix generation
1454 for functions which are later in the same file.
1455 (gfc_create_function_decl, build_function_decl,
1456 build_entry_thunks): Add global argument.
1457 * trans.c (gfc_generate_module_code): Update
1458 gfc_create_function_decl call.
1459 * trans.h (gfc_create_function_decl): Update prototype.
1460 * resolve.c (resolve_global_procedure): Also resolve for
1463 2010-07-26 Richard Henderson <rth@redhat.com>
1466 * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
1467 (gfc_write_global_declarations): New.
1469 2010-07-26 Tobias Burnus <burnus@net-b.de>
1472 * trans-io.c (build_dt): Use NULL_TREE rather than NULL
1473 for call to transfer_namelist_element.
1474 * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
1477 2010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1480 * Make-lang.in: Add fortran/frontend-passes.o.
1481 * gfortran.h: Add prototype for gfc_run_passes.
1482 * resolve.c (gfc_resolve): Call gfc_run_passes.
1483 * frontend-passes.c: New file.
1485 2010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1488 * scanner.c (gfc_next_char_literal): Enable truncation warning for
1491 2010-07-25 Mikael Morin <mikael@gcc.gnu.org>
1494 * gfortran.h (gfc_namespace): New field old_equiv.
1495 (gfc_free_equiv_until): New prototype.
1496 * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
1497 a parameterized stop condition.
1498 (gfc_free_equiv): Use gfc_free_equiv_until.
1499 * parse.c (next_statement): Save equivalence list.
1500 (reject_statement): Restore equivalence list.
1502 2010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1505 * scanner.c (gfc_next_char_literal): Move check for truncation earlier
1506 in the function so that it does not get missed by early exits.
1507 (load_line): Add checks for quoted strings and free form comments to
1508 disable warnings on comments. Add check for ampersand as first
1509 character after truncation and don't warn for this case, but warn if
1510 there are subsequent non-whitespace characters.
1512 2010-07-24 Tobias Burnus <burnus@net-b.de>
1515 * parse.c (gfc_parse_file): Do not override
1516 gfc_global_ns_list items.
1518 2010-07-24 Tobias Burnus <burnus@net-b.de>
1520 * options.c (gfc_init_options): Enable -fwhole-file by default.
1521 * interface.c (compare_parameter): Assume a Hollerith constant is
1522 compatible with all other argument types.
1524 2010-07-23 Tobias Burnus <burnus@net-b.de>
1527 * trans-decl.c (gfc_get_symbol_decl): Use module decl with
1528 -fwhole-file also for derived types.
1529 * trans-types.c (copy_dt_decls_ifequal): Remove static and
1530 rename to gfc_copy_dt_decls_ifequal.
1531 (gfc_get_derived_type): Update call.
1532 * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
1534 2010-07-23 Tobias Burnus <burnus@net-b.de>
1537 * resolve.c (resolve_global_procedure): Properly handle ENTRY.
1539 2010-07-23 Jakub Jelinek <jakub@redhat.com>
1541 * trans-types.c (gfc_get_array_descriptor_base,
1542 gfc_get_array_type_bounds): Set TYPE_NAMELESS.
1543 * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
1544 instead of clearing DECL_NAME.
1545 (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
1547 2009-07-23 Paul Thomas <pault@gcc.gnu.org>
1550 * trans-array.c (gfc_init_loopinfo): Initialize the reverse
1552 gfc_trans_scalarized_loop_end: If reverse set in dimension n,
1553 reverse the scalarization loop.
1554 gfc_conv_resolve_dependencies: Pass the reverse field of the
1555 loopinfo to gfc_dep_resolver.
1556 trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
1557 assignment by resetting loop.reverse.
1558 gfortran.h : Add the gfc_reverse enum.
1559 trans.h : Add the reverse field to gfc_loopinfo.
1560 dependency.c (gfc_check_dependency): Pass null to the new arg
1561 of gfc_dep_resolver.
1562 (gfc_check_section_vs_section): Check for reverse dependencies.
1563 (gfc_dep_resolver): Add reverse argument and deal with the loop
1565 dependency.h : Modify prototype for gfc_dep_resolver to include
1568 2010-07-23 Daniel Kraft <d@domob.eu>
1571 * gfortran.h (gfc_find_symtree_in_proc): New method.
1572 * symbol.c (gfc_find_symtree_in_proc): New method.
1573 * match.c (match_exit_cycle): Look for loop name also in parent
1574 namespaces within current procedure.
1576 2010-07-22 Tobias Burnus <burnus@net-b.de>
1579 * dependency.c (gfc_check_dependency): Add argument alising check.
1580 * symbol.c (gfc_symbols_could_alias): Add argument alising check.
1582 2010-07-22 Daniel Kraft <d@domob.eu>
1584 * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
1585 now in the correct place.
1587 2010-07-21 Steven G. Kargl <kargl@gcc.gnu.org>
1590 * Revert my commit r162325.
1592 2010-07-21 Daniel Kraft <d@domob.eu>
1594 * trans.h (gfc_get_return_label): Removed.
1595 (gfc_generate_return): New method.
1596 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1597 returning a tree directly.
1598 * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
1599 (gfc_trans_block_construct): Update for new interface to
1600 `gfc_trans_deferred_vars'.
1601 * trans-decl.c (current_function_return_label): Removed.
1602 (current_procedure_symbol): New variable.
1603 (gfc_get_return_label): Removed.
1604 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
1605 returning a tree directly.
1606 (get_proc_result), (gfc_generate_return): New methods.
1607 (gfc_generate_function_code): Clean up and do init/cleanup here
1608 also with gfc_wrapped_block. Remove return-label but rather
1611 2010-07-19 Steven G. Kargl <kargl@gcc.gnu.org>
1614 * fortran/match.c (match_type_spec): Check for derived type before
1617 2010-07-19 Paul Thomas <pault@gcc.gnu.org>
1620 * interface.c (matching_typebound_op): Add argument for the
1621 return of the generic name for the procedure.
1622 (build_compcall_for_operator): Add an argument for the generic
1623 name of an operator procedure and supply it to the expression.
1624 (gfc_extend_expr, gfc_extend_assign): Use the generic name in
1625 calls to the above procedures.
1626 * resolve.c (resolve_typebound_function): Catch procedure
1627 component calls for CLASS objects, check that the vtable is
1628 complete and insert the $vptr and procedure components, to make
1630 (resolve_typebound_function): The same.
1631 * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
1632 an allocatable scalar if it is a result.
1634 2010-07-19 Paul Thomas <pault@gcc.gnu.org>
1637 * match.c (gfc_match_iterator): Reverted.
1639 2010-07-18 Paul Thomas <pault@gcc.gnu.org>
1642 * match.c (gfc_match_iterator): Remove error that iterator
1643 cannot be INTENT(IN).
1645 2010-07-17 Mikael Morin <mikael@gcc.gnu.org>
1647 * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
1648 Access subscript through the "dim" field index.
1649 (gfc_trans_create_temp_array): Access ss info through the "dim" field
1651 (gfc_conv_array_index_offset): Ditto.
1652 (gfc_conv_loop_setup): Ditto.
1653 (gfc_conv_expr_descriptor): Ditto.
1654 (gfc_conv_ss_startstride): Ditto. Update call to
1655 gfc_conv_section_startstride.
1656 (gfc_conv_section_startstride): Set values along the array dimension.
1657 Get array dimension directly from the argument.
1659 2010-07-15 Jakub Jelinek <jakub@redhat.com>
1661 * trans.h (gfc_string_to_single_character): New prototype.
1662 * trans-expr.c (string_to_single_character): Renamed to ...
1663 (gfc_string_to_single_character): ... this. No longer static.
1664 (gfc_conv_scalar_char_value, gfc_build_compare_string,
1665 gfc_trans_string_copy): Adjust callers.
1666 * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
1667 * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
1668 (select_struct): Move to toplevel, add GTY(()).
1669 (gfc_trans_character_select): Optimize SELECT CASE
1670 with character length 1.
1672 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
1674 * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1675 * trans-common.c: Likewise.
1676 * trans-decl.c: Likewise.
1677 * trans-types.c: Likewise.
1678 * trans.c: Likewise.
1680 2010-07-15 Janus Weil <janus@gcc.gnu.org>
1683 * resolve.c (resolve_typebound_generic_call): Resolve generic
1684 non-polymorphic type-bound procedure calls to the correct specific
1686 (resolve_typebound_subroutine): Remove superfluous code.
1688 2010-07-15 Daniel Kraft <d@domob.eu>
1691 * trans.h (struct gfc_wrapped_block): New struct.
1692 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1693 (gfc_finish_wrapped_block): New method.
1694 (gfc_init_default_dt): Add new init code to block rather than
1696 * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
1697 (gfc_trans_dummy_array_bias): Ditto.
1698 (gfc_trans_g77_array): Ditto.
1699 (gfc_trans_deferred_array): Ditto.
1700 * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
1701 (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
1702 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
1703 (gfc_finish_wrapped_block): New method.
1704 * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
1705 (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
1706 (gfc_trans_deferred_array): Ditto.
1707 * trans-decl.c (gfc_trans_dummy_character): Ditto.
1708 (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
1709 (init_intent_out_dt): Ditto.
1710 (gfc_init_default_dt): Add new init code to block rather than
1712 (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
1713 and cleanup code and put it all together.
1715 2010-07-15 Jakub Jelinek <jakub@redhat.com>
1717 * trans.h (gfc_build_compare_string): Add CODE argument.
1718 * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
1719 gfc_build_compare_string.
1720 * trans-expr.c (gfc_conv_expr_op): Pass CODE to
1721 gfc_build_compare_string.
1722 (string_to_single_character): Rename len variable to length.
1723 (gfc_optimize_len_trim): New function.
1724 (gfc_build_compare_string): Add CODE argument. If it is EQ_EXPR
1725 or NE_EXPR and one of the strings is string literal with LEN_TRIM
1726 bigger than the length of the other string, they compare unequal.
1729 * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
1730 in CASE_LABEL_EXPR and use NULL for low for the default case.
1732 2010-07-14 Mikael Morin <mikael@gcc.gnu.org>
1734 * trans-array.c (gfc_conv_section_upper_bound): Remove
1735 (gfc_conv_section_startstride): Don't set the upper bound in the
1736 vector subscript case.
1737 (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
1739 2010-07-14 Janus Weil <janus@gcc.gnu.org>
1742 * gfortran.h (gfc_is_data_pointer): Remove prototype.
1743 * dependency.c (gfc_is_data_pointer): Make it static.
1744 * intrinsic.texi: Update documentation on C_LOC.
1745 * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
1746 and add a check for polymorphic variables.
1748 2010-07-14 Jakub Jelinek <jakub@redhat.com>
1750 * trans-expr.c (string_to_single_character): Also optimize
1751 string literals containing a single char followed only by spaces.
1752 (gfc_trans_string_copy): Remove redundant string_to_single_character
1755 * trans-decl.c (gfc_build_intrinsic_function_decls,
1756 gfc_build_builtin_function_decls): Mark functions as
1757 DECL_PURE_P or TREE_READONLY.
1759 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
1761 * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
1762 instead of build_function_call_expr.
1763 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
1765 2010-07-13 Tobias Burnus <burnus@net-b.de>
1766 Daniel Franke <franke.daniel@gmail.com>
1769 * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
1770 * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
1772 * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
1774 2010-07-13 Daniel Franke <franke.daniel@gmail.com>
1775 Tobias Burnus <burnus@net-b.de>
1778 * trans-decl.c (gfc_build_intrinsic_function_decls): Add
1779 noclobber/noescape annotations to function calls.
1780 (gfc_build_builtin_function_decls): Likewise.
1782 2010-07-13 Janus Weil <janus@gcc.gnu.org>
1788 * gfortran.h (gfc_find_derived_vtab): Modified prototype.
1789 * class.c (gfc_build_class_symbol): Modified call to
1790 'gfc_find_derived_vtab'.
1791 (add_proc_component): Removed, moved code into 'add_proc_comp'.
1792 (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
1794 (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
1795 Removed treatment of generics.
1796 (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
1797 Call 'add_proc_comp' instead of duplicating code.
1798 (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
1800 (add_generic_specifics,add_generics_to_declared_vtab): Removed.
1801 (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
1802 Removed treatment of generics.
1803 * iresolve.c (gfc_resolve_extends_type_of): Modified call to
1804 'gfc_find_derived_vtab'.
1805 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1806 Removed treatment of generics.
1807 (resolve_select_type,resolve_fl_derived): Modified call to
1808 'gfc_find_derived_vtab'.
1809 * trans-decl.c (gfc_get_symbol_decl): Ditto.
1810 * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1812 * trans-stmt.c (gfc_trans_allocate): Ditto.
1814 2010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1817 * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
1820 2010-07-12 Mikael Morin <mikael@gcc.gnu.org>
1822 * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
1823 * resolve.c (build_default_init_expr): Ditto.
1825 2010-07-11 Tobias Burnus <burnus@net-b.de>
1828 * module.c (sort_iso_c_rename_list): Remove.
1829 (import_iso_c_binding_module,use_iso_fortran_env_module):
1830 Allow multiple imports of the same symbol.
1832 2010-07-11 Mikael Morin <mikael@gcc.gnu.org>
1834 * arith.c (gfc_arith_done_1): Release mpfr internal caches.
1836 2010-07-11 Janus Weil <janus@gcc.gnu.org>
1839 * decl.c (build_sym,attr_decl1): Only build the class container if the
1840 symbol has sufficient attributes.
1841 * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
1842 pointer attribute for classes.
1843 * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
1844 * module.c (MOD_VERSION): Bump.
1845 (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
1846 (mio_symbol_attribute): Handle class_pointer attribute.
1847 * parse.c (parse_derived): Use class_pointer instead of pointer
1848 attribute for classes.
1849 * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
1850 * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
1851 resolve_allocate_expr,resolve_fl_derived): Ditto.
1852 (resolve_fl_var_and_proc): Check for class_ok attribute.
1854 2010-07-10 Mikael Morin <mikael@gcc.gnu.org>
1856 * trans-io.c (gfc_build_st_parameter): Update calls to
1857 gfc_add_field_to_struct.
1858 * trans-stmt.c (ADD_FIELD): Ditto.
1860 (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
1862 (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
1863 fieldlist, remove fieldlist from argument list.
1864 (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
1865 and remove fieldlist from argument list.
1866 (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
1867 gfc_get_mixed_entry_union): Move setting
1868 TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
1869 * trans-types.h (gfc_add_field_to_struct): Update prototype.
1871 2010-07-10 Paul Thomas <pault@gcc.gnu.org>
1874 * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
1875 if the lhs has never been host associated, as well as not being
1876 use associated, a pointer or a target.
1877 * resolve.c (resolve_variable): Mark variables that are host
1879 * gfortran.h: Add the host_assoc bit to the symbol_attribute
1882 2010-07-09 Janus Weil <janus@gcc.gnu.org>
1884 * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
1885 STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
1886 SIZEOF and C_SIZEOF.
1888 2010-07-08 Janus Weil <janus@gcc.gnu.org>
1891 * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
1892 * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
1893 gfc_resolve_storage_size): New prototypes.
1894 * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
1895 * intrinsic.c (add_functions): Add STORAGE_SIZE.
1896 * iresolve.c (gfc_resolve_storage_size): New function.
1897 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
1899 (gfc_conv_intrinsic_storage_size): New function.
1900 (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
1902 2010-07-08 Jakub Jelinek <jakub@redhat.com>
1905 * match.c (match_exit_cycle): Error on EXIT also from collapsed
1906 !$omp do loops. Error on CYCLE to non-innermost collapsed
1909 2010-07-08 Tobias Burnus <burnus@net-b.de>
1912 * array.c (gfc_match_array_ref): Better error message for
1913 coarrays with too few ranks.
1914 (match_subscript): Move one diagnostic to caller.
1915 * gfortran.h (gfc_get_corank): Add prottype.
1916 * expr.c (gfc_get_corank): New function.
1917 * iresolve.c (resolve_bound): Fix rank for cobounds.
1918 (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
1919 gfc_resolve_ucobound, gfc_resolve_this_image): Update
1922 2010-07-06 Tobias Burnus <burnus@net-b.de>
1925 * array.c (gfc_expand_constructor): Add optional diagnostic.
1926 * gfortran.h (gfc_expand_constructor): Update prototype.
1927 * expr.c (gfc_simplify_expr, check_init_expr,
1928 gfc_reduce_init_expr): Update gfc_expand_constructor call.
1929 * resolve.c (gfc_resolve_expr): Ditto.
1931 2010-07-06 Tobias Burnus <burnus@net-b.de>
1933 * trans-decl.c: Include diagnostic-core.h besides toplev.h.
1934 * trans-intrinsic.c: Ditto.
1935 * trans-types.c: Ditto.
1936 * convert.c: Include diagnostic-core.h instead of toplev.h.
1938 * trans-array.c: Ditto.
1939 * trans-const.c: Ditto.
1940 * trans-expr.c: Ditto.
1941 * trans-io.c: Ditto.
1942 * trans-openmp.c: Ditto.
1945 2010-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1948 * check.c (dim_rank_check): Also check intrinsic functions.
1949 Adjust permissible rank for functions which reduce the rank of
1950 their argument. Spread is an exception, where DIM can
1951 be one larger than the rank of array.
1953 2010-07-05 Steven G. Kargl <kargl@gcc.gnu.org>
1956 * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
1958 2010-07-05 Paul Thomas <pault@gcc.gnu.org>
1961 * trans-types.c (gfc_get_derived_type): Derived type fields
1962 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
1963 but build_pointer_type_for_mode must be used for this.
1965 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1967 * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
1968 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
1969 type of gfc_conv_procedure_call.
1970 (conv_generic_with_optional_char_arg): Likewise.
1971 * trans-stmt.c (gfc_trans_call): Likewise.
1972 * trans-expr.c (gfc_conv_function_expr): Likewise.
1973 (gfc_conv_procedure_call): Use build_call_vec instead of
1976 2010-07-04 Daniel Kraft <d@domob.eu>
1978 * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
1980 2010-07-04 Paul Thomas <pault@gcc.gnu.org>
1984 * trans-types.c (gfc_get_derived_type): Derived type fields
1985 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
1987 2010-07-02 Mikael Morin <mikael@gcc.gnu.org>
1990 * decl.c (match_procedure_in_type): Clear structure before using.
1991 (gfc_match_generic): Ditto.
1993 2010-07-02 Nathan Froyd <froydnj@codesourcery.com>
1995 * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
1996 * trans-types.c (gfc_add_field_to_struct_1): New function, most
1997 of which comes from...
1998 (gfc_add_field_to_struct): ...here. Call it. Add new parameter.
1999 (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2001 (gfc_get_array_descriptor_base): Likewise.
2002 (gfc_get_mixed_entry_union): Likewise.
2003 (gfc_get_derived_type): Add extra chain parameter for
2004 gfc_add_field_to_struct.
2005 * trans-stmt.c (gfc_trans_character_select): Likewise.
2006 * trans-io.c (gfc_build_st_parameter): Likewise.
2008 2010-06-29 Janus Weil <janus@gcc.gnu.org>
2011 * resolve.c (is_external_proc): Prevent procedure pointers from being
2012 regarded as external procedures.
2014 2010-06-29 Janus Weil <janus@gcc.gnu.org>
2017 * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2018 passed as second argument of ASSOCIATED.
2020 2010-06-29 Paul Thomas <pault@gcc.gnu.org>
2023 * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2024 to determine if a function assignment can be made without a
2026 (gfc_trans_arrayfunc_assign): Move all the conditions that
2027 suppress the direct function call to the above new functon and
2030 2010-06-28 Paul Thomas <pault@gcc.gnu.org>
2033 * interface.c (argument_rank_mismatch): New function.
2034 (compare_parameter): Call new function instead of generating
2037 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
2039 * trans-openmp.c (dovar_init): Define. Define VECs containing it.
2040 (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2043 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2045 * Make-lang.in: Update dependencies.
2047 2010-06-27 Nathan Froyd <froydnj@codesourcery.com>
2049 * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2050 and exit_label fields.
2051 * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2053 * trans-stmt.c (gfc_trans_simple_do): Likewise.
2054 (gfc_trans_do): Likewise.
2055 (gfc_trans_do_while): Likewise.
2056 (gfc_trans_cycle): Use cycle_label directly.
2057 (gfc_trans_exit): Use exit_label directly.
2059 2010-06-27 Daniel Kraft <d@domob.eu>
2061 * dump-parse-tree.c (show_symbol): Dump target-expression for
2063 (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2064 (show_namespace): Use show_level for correct indentation of
2065 "inner namespaces" (contained procedures or BLOCK).
2067 2010-06-27 Thomas Koenig <tkoenig@gcc.gnu.org>
2070 * dump-parse-tree.c (show_code_node): Show namespace for
2073 2010-06-26 Tobias Burnus <burnus@net-b.de>
2075 * decl.c (gfc_match_decl_type_spec): Support
2076 TYPE(intrinsic-type-spec).
2078 2010-06-25 Tobias Burnus <burnus@net-b.de>
2080 * intrinsic.h (gfc_check_selected_real_kind,
2081 gfc_simplify_selected_real_kind): Update prototypes.
2082 * intrinsic.c (add_functions): Add radix support to
2084 * check.c (gfc_check_selected_real_kind): Ditto.
2085 * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2086 * trans-decl.c (gfc_build_intrinsic_function_decls):
2087 Change call from selected_real_kind to selected_real_kind2008.
2088 * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2089 (PRECISION, RANGE, RADIX): Add cross @refs.
2091 2010-06-25 Tobias Burnus <burnus@net-b.de>
2093 * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2094 * gfortran.texi (_gfortran_set_options): Update for
2095 GFC_STD_F2008_OBS addition.
2096 * libgfortran.h: Add GFC_STD_F2008_OBS.
2097 * options.c (set_default_std_flags, gfc_handle_option): Handle
2099 io.c (check_format): Fix allow_std check.
2101 2010-06-25 Tobias Burnus <burnus@net-b.de>
2103 * decl.c (gfc_match_entry): Allow END besides
2104 END SUBROUTINE/END FUNCTION for contained procedures.
2106 2010-06-25 Tobias Burnus <burnus@net-b.de>
2108 * parse.c (next_free, next_fixed): Allow ";" as first character.
2110 2010-06-24 Tobias Burnus <burnus@net-b.de>
2113 * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2115 2010-06-22 Janus Weil <janus@gcc.gnu.org>
2118 * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2121 2010-06-21 Tobias Burnus <burnus@net-b.de>
2124 * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2126 * symbol.c (gfc_add_contiguous): New function.
2127 (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2128 * decl.c (match_attr_spec): Ditto.
2129 (gfc_match_contiguous): New function.
2130 * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2132 * gfortran.h (symbol_attribute): Add contiguous.
2133 (gfc_is_simply_contiguous): Add prototype.
2134 (gfc_add_contiguous): Add prototype.
2135 * match.h (gfc_match_contiguous): Add prototype.
2136 * parse.c (decode_specification_statement,
2137 decode_statement): Handle contiguous attribute.
2138 * expr.c (gfc_is_simply_contiguous): New function.
2139 * dump-parse-tree.c (show_attr): Handle contiguous.
2140 * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2142 * trans-expr.c (gfc_add_interface_mapping): Copy
2144 * trans-array.c (gfc_conv_descriptor_stride_get,
2145 gfc_conv_array_parameter): Handle contiguous arrays.
2146 * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2147 gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2149 * trans.h (gfc_array_kind): Ditto.
2150 * trans-decl.c (gfc_get_symbol_decl): Ditto.
2152 2010-06-20 Joseph Myers <joseph@codesourcery.com>
2154 * options.c (gfc_handle_option): Don't handle N_OPTS.
2156 2010-06-19 Janus Weil <janus@gcc.gnu.org>
2159 * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2162 2010-06-18 Tobias Burnus <burnus@net-b.de>
2165 * resolve.c (resolve_allocate_deallocate): Properly check
2166 part-refs in stat=/errmsg= for invalid use.
2168 2010-06-17 Janus Weil <janus@gcc.gnu.org>
2171 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2172 Return directly in case of an error.
2174 2010-06-16 Janus Weil <janus@gcc.gnu.org>
2177 * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2178 * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2179 structure to each procedure in a procedure list.
2180 * module.c (mio_typebound_proc): Add NULL argument to
2181 'gfc_get_typebound_proc'.
2182 * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2183 to initialize the new structure.
2185 2010-06-15 Janus Weil <janus@gcc.gnu.org>
2188 * gfortran.h (gfc_expr): Add new member 'mold'.
2189 * match.c (gfc_match_allocate): Implement the MOLD tag.
2190 * resolve.c (resolve_allocate_expr): Ditto.
2191 * trans-stmt.c (gfc_trans_allocate): Ditto.
2193 2010-06-15 Jakub Jelinek <jakub@redhat.com>
2196 * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2197 OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2198 GFC_DECL_SAVED_DESCRIPTOR set.
2199 (gfc_omp_report_decl): New function.
2200 * trans.h (gfc_omp_report_decl): New prototype.
2201 * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2203 2010-06-13 Daniel Franke <franke.daniel@gmail.com>
2207 * gfortranspec.c (lang_specific_driver): Removed deprecation
2209 * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2210 * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2211 * cpp.h (gfc_cpp_makedep): New.
2212 (gfc_cpp_add_dep): New.
2213 (gfc_cpp_add_target): New.
2214 * cpp.c (gfc_cpp_option): Add deps* members.
2215 (gfc_cpp_makedep): New.
2216 (gfc_cpp_add_dep): New.
2217 (gfc_cpp_add_target): New.
2218 (gfc_cpp_init_options): Initialize new options.
2219 (gfc_cpp_handle_option): Handle new options.
2220 (gfc_cpp_post_options): Map new options to libcpp-options.
2221 (gfc_cpp_init): Handle deferred -MQ and -MT options.
2222 (gfc_cpp_done): If requested, write dependencies to file.
2223 * module.c (gfc_dump_module): Add a module filename as target.
2224 * scanner.c (open_included_file): New parameter system; add the
2225 included file as dependency.
2226 (gfc_open_included_file): Add the included file as dependency.
2227 (gfc_open_intrinsic_module): Likewise.
2228 * invoke.texi: Removed deprecation warning for -M.
2229 * gfortran.texi: Removed Makefile-dependencies project.
2231 2010-06-12 Daniel Franke <franke.daniel@gmail.com>
2233 * resolve.c (resolve_global_procedure): Improved checking if an
2234 explicit interface is required.
2236 2010-06-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2238 * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2240 * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2241 (gfc_conv_intrinsic_ttynam): Likewise.
2242 (gfc_conv_intrinsic_trim): Likewise.
2244 2010-06-12 Janus Weil <janus@gcc.gnu.org>
2247 * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2249 2010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2251 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2253 2010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2255 * mathbuiltins.def: Add builtins that do not directly correspond
2256 to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2257 * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2258 * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2259 code_{r,c}{4,8,10,16} fields. Add
2260 {,complex}{float,double,long_double}_built_in fields.
2261 (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2262 DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2263 definition of OTHER_BUILTIN.
2264 (real_compnt_info): Remove unused struct.
2265 (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2267 (build_round_expr): Call builtin_decl_for_precision instead of
2269 (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
2270 instead of a switch.
2271 (gfc_build_intrinsic_lib_fndecls): Match
2272 {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
2273 (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
2275 (gfc_conv_intrinsic_lib_function): Go through all the extended
2277 (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
2278 instead of a switch.
2279 (gfc_conv_intrinsic_abs): Likewise.
2280 (gfc_conv_intrinsic_mod): Likewise.
2281 (gfc_conv_intrinsic_sign): Likewise.
2282 (gfc_conv_intrinsic_fraction): Likewise.
2283 (gfc_conv_intrinsic_nearest): Likewise.
2284 (gfc_conv_intrinsic_spacing): Likewise.
2285 (gfc_conv_intrinsic_rrspacing): Likewise.
2286 (gfc_conv_intrinsic_scale): Likewise.
2287 (gfc_conv_intrinsic_set_exponent): Likewise.
2289 2010-06-11 Paul Thomas <pault@gcc.gnu.org>
2293 * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
2294 functions with CLASS formal arguments.
2296 2010-06-10 Janus Weil <janus@gcc.gnu.org>
2299 * resolve.c (conformable_arrays): Handle allocatable components.
2301 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2304 * gfortran.texi: Document that Cray pointers cannot be function
2307 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2310 * gfortran.texi: Document lack of support for syntax
2311 "complex FUNCTION name*16()", and existence of alternative
2312 legacy syntax "complex*16 FUNCTION name()".
2314 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2317 * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2318 POSIX's fsync(), and how to call the latter from Fortran code.
2320 2010-06-10 Daniel Franke <franke.daniel@gmail.com>
2323 * interface.c (compare_actual_formal): Reject actual arguments with
2324 array subscript passed to ASYNCHRONOUS dummys.
2326 2010-06-10 Daniel Kraft <d@domob.eu>
2329 * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2330 (struct gfc_symbol): New field `assoc'.
2331 (struct gfc_association_list): New struct.
2332 (struct gfc_code): New struct `block' in union, move `ns' there
2333 and add association list.
2334 (gfc_free_association_list): New method.
2335 (gfc_has_vector_subscript): Made public;
2336 * match.h (gfc_match_associate): New method.
2337 * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2338 * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2339 * interface.c (gfc_has_vector_subscript): Made public.
2340 (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2341 * match.c (gfc_match_associate): New method.
2342 (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2343 * primary.c (match_variable): Don't allow names associated to expr here.
2344 * parse.c (decode_statement): Try matching ASSOCIATE statement.
2345 (case_exec_markers, case_end): Add ASSOCIATE statement.
2346 (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2347 (parse_associate): New method.
2348 (parse_executable): Handle ST_ASSOCIATE.
2349 (parse_block_construct): Change reference to gfc_code's `ns' field.
2350 * resolve.c (resolve_select_type): Ditto.
2351 (resolve_code): Ditto.
2352 (resolve_block_construct): Ditto and add comment.
2353 (resolve_select_type): Set association list in generated BLOCK to NULL.
2354 (resolve_symbol): Resolve associate names.
2355 * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2356 and free association list.
2357 (gfc_free_association_list): New method.
2358 * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2359 * trans-stmt.c (gfc_trans_block_construct): Change reference to
2360 gfc_code's `ns' field.
2362 2010-06-10 Kai Tietz <kai.tietz@onevision.com>
2364 * error.c (error_print): Pre-initialize loc by NULL.
2365 * openmp.c (resolve_omp_clauses): Add explicit
2366 braces to avoid ambigous else.
2367 * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
2369 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
2371 * gfc-internals.texi: Move to GFDL 1.3.
2372 * gfortran.texi: Ditto.
2373 * intrinsic.texi: Ditto.
2374 * invoke.texi: Ditto.
2376 2010-06-09 Daniel Franke <franke.daniel@gmail.com>
2379 * check.c (gfc_check_selected_real_kind): Verify that the
2380 actual arguments are scalar.
2382 2010-06-09 Daniel Franke <franke.daniel@gmail.com>
2385 * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
2387 2010-06-09 Janus Weil <janus@gcc.gnu.org>
2390 * dump-parse-tree.c (show_symbol): Avoid infinite loop.
2392 2010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
2394 * fortran/symbol.c (check_conflict): Remove an invalid conflict check.
2396 2010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
2398 * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
2399 gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
2400 * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
2401 gfc_check_ibclr, and gfc_check_ibset. Add prototype for
2403 * fortran/check.c (nonnegative_check, less_than_bitsize1,
2404 less_than_bitsize2): New functions.
2405 (gfc_check_btest): Renamed to gfc_check_bitfcn. Use
2406 nonnegative_check and less_than_bitsize1.
2407 (gfc_check_ibclr, gfc_check_ibset): Removed.
2408 (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
2411 2010-06-09 Janus Weil <janus@gcc.gnu.org>
2414 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2417 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
2419 * resolve.c (resolve_deallocate_expr): Avoid warning
2420 about possible use of iunitialized sym.
2421 (resolve_allocate_expr): Pre-initialize sym by NULL.
2423 2010-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2426 * f95-lang.c (gfc_init_builtin_functions): Remove comment.
2428 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2430 * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
2432 (gfc_get_array_type_bounds): Likewise.
2434 * trans-decl.c (gfc_allocate_lang_decl): Likewise.
2435 (gfc_find_module): Likewise.
2437 * f95-lang.c (pushlevel): Likewise.
2439 * trans.h (struct lang_type): Add variable_size GTY option.
2440 (struct lang_decl): Likewise.
2442 2010-06-08 Tobias Burnus <burnus@net-b.de>
2445 * symbol.c (check_conflict): Move protected--external/procedure check ...
2446 * resolve.c (resolve_select_type): ... to the resolution stage.
2448 2010-06-07 Tobias Burnus <burnus@net-b.de>
2450 * options.c (gfc_handle_option): Fix -fno-recursive.
2452 2010-06-07 Tobias Burnus <burnus@net-b.de>
2454 * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
2455 * gfortran.texi (copyrights-gfortran): Ditto.
2457 2010-06-07 Joseph Myers <joseph@codesourcery.com>
2459 * lang.opt (fshort-enums): Define using Var and VarExists.
2460 * options.c (gfc_handle_option): Don't set flag_short_enums here.
2462 2010-06-05 Paul Thomas <pault@gcc.gnu.org>
2463 Janus Weil <janus@gcc.gnu.org>
2466 * resolve.c (get_declared_from_expr): Move to before
2467 resolve_typebound_generic_call. Make new_ref and class_ref
2468 ignorable if set to NULL.
2469 (resolve_typebound_generic_call): Once we have resolved the
2470 generic call, check that the specific instance is that which
2471 is bound to the declared type.
2472 (resolve_typebound_function,resolve_typebound_subroutine): Avoid
2473 freeing 'class_ref->next' twice.
2475 2010-06-05 Paul Thomas <pault@gcc.gnu.org>
2478 * trans-array.c (structure_alloc_comps): Dereference scalar
2479 'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
2482 2010-06-04 Joseph Myers <joseph@codesourcery.com>
2484 * gfortranspec.c (append_arg, lang_specific_driver): Use
2485 GCC-specific formats in diagnostics.
2487 2010-06-02 Tobias Burnus <burnus@net-b.de>
2490 * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
2493 2010-06-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2496 * match.c (gfc_match_stopcode): Move gfc_match_eos call inside
2499 2010-05-31 Steven G. Kargl <kargl@gcc.gnu.org>
2501 * fortran/gfortran.texi: Fix typos in description of variable-format-
2504 2010-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
2507 * dependency.c (gfc_check_section_vs_section): Check
2508 for interleaving array assignments without conflicts.
2510 2010-05-30 Janus Weil <janus@gcc.gnu.org>
2512 * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
2513 $data component of a class container.
2514 * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
2515 * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
2516 gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
2517 * gcc/fortran/interface.c (matching_typebound_op): Ditto.
2518 * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
2519 * gcc/fortran/parse.c (parse_derived): Ditto.
2520 * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
2521 gfc_expr_attr): Ditto.
2522 * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
2523 resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
2524 resolve_fl_var_and_proc, resolve_typebound_procedure,
2525 resolve_fl_derived): Ditto.
2526 * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
2527 * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
2529 * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
2530 gfc_trans_deferred_vars): Ditto.
2531 * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
2533 2010-05-28 Tobias Burnus <burnus@net-b.de>
2535 * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
2537 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2539 * gfortranspec.c (append_arg, lang_specific_driver): Use
2540 fatal_error instead of fatal. Use warning instead of fprintf for
2543 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2545 * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
2546 * module.c (write_char, gfc_dump_module, gfc_use_module): Use
2547 xstrerror instead of strerror.
2549 2010-05-26 Joseph Myers <joseph@codesourcery.com>
2551 * cpp.c (cb_cpp_error): Save and restore
2552 global_dc->warn_system_headers, not variable warn_system_headers.
2554 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2556 * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
2558 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2560 * trans-common.c: Do not include rtl.h, include output.h instead.
2561 * trans-decl.c: Likewise.
2563 2010-05-26 Paul Thomas <pault@gcc.gnu.org>
2566 * resolve.c (resolve_global_procedure): Resolve the gsymbol's
2567 namespace before trying to reorder the gsymbols.
2569 2010-05-25 Daniel Franke <franke.daniel@gmail.com>
2574 * resolve.c (resolve_global_procedure): Add check for global
2575 procedures with implicit interfaces and assumed-shape or optional
2576 dummy arguments. Verify that function return type, kind and string
2579 2010-05-21 Tobias Burnus <burnus@net-b.de>
2581 * gfortran.h: Do not include system.h.
2582 * bbt.c: Include system.h.
2584 * dependency.c: Ditto.
2585 * dump-parse-tree.c: Ditto.
2586 * arith.h: Do not include gfortran.h.
2587 * constructor.h: Do not include gfortran.h and splay-tree.h.
2588 * match.h: Do not include gfortran.h.
2590 * target-memory.h: Ditto.
2591 * openmp.c: Do not include toplev.h and target.h.
2592 * trans-stmt.c: Ditto not include toplev.h.
2594 * trans-common.c: Tell why toplev.h is needed. And
2595 do not include target.h.
2596 * trans-expr.c: Tell why toplev.h is needed.
2597 * trans-array.c: Ditto.
2598 * trans-openmp.c: Ditto.
2599 * trans-const.c: Ditto.
2601 * trans-types.c: Ditto.
2602 * trans-io.c: Ditto.
2603 * trans-decl.c: Ditto.
2606 * trans-intrinsic.c: Ditto.
2609 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2612 * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
2613 before returning MATCH_ERROR. Add check for scalar. Add check for
2614 default integer kind.
2616 2010-05-22 Janus Weil <janus@gcc.gnu.org>
2619 * match.c (gfc_match_select_type): On error jump back out of the local
2621 * parse.c (parse_derived): Defer creation of vtab symbols to resolution
2622 stage, more precisely to ...
2623 * resolve.c (resolve_fl_derived): ... this place.
2625 2010-05-22 Janus Weil <janus@gcc.gnu.org>
2628 * resolve.c (ensure_not_abstract): Allow abstract types with
2629 non-abstract ancestors.
2631 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
2633 * trans-const.c: Include realmpfr.h.
2634 * Make-lang.in: Update dependencies.
2636 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
2638 * trans-const.c, trans-types.c, trans-intrinsic.c:
2639 Clean up redundant includes.
2641 2010-05-20 Daniel Franke <franke.daniel@gmail.com>
2644 * lang.opt (Wunused-dummy-argument): New option.
2645 * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
2646 * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
2647 (set_Wall): Enable warn_unused_dummy_argument.
2648 (gfc_handle_option): Set warn_unused_dummy_argument according to
2650 * trans-decl.c (generate_local_decl): Separate warnings about
2651 unused variables and unused dummy arguments.
2652 * invoke.texi: Documented new option.
2654 2010-05-20 Steven Bosscher <steven@gcc.gnu.org>
2656 * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
2657 (gfc_conv_string_tmp): Do not assert type comparibilty.
2658 * trans-array.c: Do not include gimple.h, ggc.h, and real.h.
2659 (gfc_conv_expr_descriptor): Remove assert.
2660 * trans-common.c: Clarify why rtl.h and tm.h are included.
2661 * trans-openmp.c: Do not include ggc.h and real.h.
2662 Explain why gimple.h is included.
2663 * trans-const.c: Do not include ggc.h.
2664 * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
2665 * trans.c: Do not include ggc.h and real.h.
2666 Explain why gimple.h is included.
2667 * trans-types.c: Do not include tm.h. Explain why langhooks.h
2668 and dwarf2out.h are included.
2669 * trans-io.c: Do not include gimple.h and real.h.
2670 * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
2671 * trans-intrinsic.c: Do not include gimple.h. Explain why tm.h
2674 2010-05-20 Tobias Burnus <burnus@net-b.de>
2676 * options.c (gfc_init_options,gfc_post_options): Enable
2677 flag_associative_math by default.
2679 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2682 * trans-stmt.c (gfc_trans_stop): Add generation of call to
2683 gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
2684 blank STOP, handling a null expression. (gfc_trans_pause): Use
2685 pause_string for blank PAUSE.
2686 * trans.h: Add external function declaration for error_stop_numeric.
2687 * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
2688 the declaration for the library call. Adjust whitespaces.
2689 * match.c (gfc_match_stopcode): Remove use of the actual stop code to
2690 signal no stop code. Match the expression following the stop and pass
2691 that to the translators. Remove the old use of digit matching. Add
2692 checks that the stop_code expression is INTEGER or CHARACTER, constant,
2693 and if CHARACTER, default character KIND.
2695 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
2698 * lang.opt (Wconversion-extra): New option.
2699 * gfortran.h (gfc_option_t): Add warn_conversion_extra.
2700 * options.c (gfc_init_options): Disable -Wconversion-extra by default.
2701 (set_Wall): Enable -Wconversion.
2702 (gfc_handle_option): Set warn_conversion_extra.
2703 * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
2704 introduced for -Wconversion if -Wconversion-extra is present.
2705 * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
2706 -Wconversion; document -Wconversion-extra.
2708 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
2711 * gfortran.h (gfc_has_default_initializer): New.
2712 * expr.c (gfc_has_default_initializer): New.
2713 * resolve.c (has_default_initializer): Removed, use
2714 gfc_has_default_initializer() instead. Updated all callers.
2715 * trans-array.c (has_default_initializer): Removed, use
2716 gfc_has_default_initializer() instead. Updated all callers.
2717 * trans-decl.c (generate_local_decl): Do not check the
2718 first component only to check for initializers, but use
2719 gfc_has_default_initializer() instead.
2721 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
2724 * primary.c (match_string_constant): Move start_locus just inside
2726 * data.c (create_character_intializer): Clarified truncation warning.
2728 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
2731 * intrinsic.h (gfc_check_float): New prototype.
2732 (gfc_check_sngl): New prototype.
2733 * check.c (gfc_check_float): New.
2734 (gfc_check_sngl): New.
2735 * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
2736 to be a specific for REAL. Added check routines for FLOAT, DFLOAT
2738 * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
2739 added them to the list of specifics of REAL instead.
2741 2010-05-17 Janus Weil <janus@gcc.gnu.org>
2744 * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
2745 This is now handled via 'gfc_class_null_initializer'.
2747 2010-05-17 Janus Weil <janus@gcc.gnu.org>
2749 * class.c (gfc_add_component_ref,gfc_class_null_initializer,
2750 gfc_build_class_symbol,add_proc_component,add_proc_comps,
2751 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2752 add_procs_to_declared_vtab,add_generic_specifics,
2753 add_generics_to_declared_vtab,gfc_find_derived_vtab,
2754 find_typebound_proc_uop,gfc_find_typebound_proc,
2755 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
2756 gfc_get_tbp_symtree): Moved here from other places.
2757 * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
2759 * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
2760 gfc_find_typebound_proc,gfc_find_typebound_user_op,
2761 gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
2762 gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
2763 * Make-lang.in: Add class.o.
2764 * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
2765 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
2766 add_procs_to_declared_vtab,add_generic_specifics,
2767 add_generics_to_declared_vtab,gfc_find_derived_vtab,
2768 find_typebound_proc_uop,gfc_find_typebound_proc,
2769 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
2770 gfc_get_tbp_symtree): Move to class.c.
2772 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
2774 * trans-types.c (gfc_init_types): Use build_function_type_list.
2775 (gfc_get_ppc_type): Likewise.
2776 * trans-decl.c (gfc_generate_constructors): Likewise.
2777 * f95-lang.c (build_builtin_fntypes): Likewise.
2778 (gfc_init_builtin_functions): Likewise.
2779 (DEF_FUNCTION_TYPE_0): Likewise.
2780 (DEF_FUNCTION_TYPE_1): Likewise.
2781 (DEF_FUNCTION_TYPE_2): Likewise.
2782 (DEF_FUNCTION_TYPE_3): Likewise.
2783 (DEF_FUNCTION_TYPE_4): Likewise.
2784 (DEF_FUNCTION_TYPE_5): Likewise.
2785 (DEF_FUNCTION_TYPE_6): Likewise.
2786 (DEF_FUNCTION_TYPE_7): Likewise. Use ARG7.
2787 (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
2789 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
2791 * trans-array.c (gfc_trans_array_constructor_value): Use
2792 build_constructor instead of build_constructor_from_list.
2793 (gfc_build_constant_array_constructor): Likewise.
2794 * trans-decl.c (create_main_function): Likewise.
2795 * trans-stmt.c (gfc_trans_character_select): Likewise.
2797 2010-05-17 Janus Weil <janus@gcc.gnu.org>
2800 * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
2801 (resolve_fl_variable_derived): ... this place.
2802 (resolve_symbol): Make sure function symbols (and their result
2803 variables) are not resolved twice.
2805 2010-05-16 Daniel Franke <franke.daniel@gmail.com>
2808 * array.c (match_array_list): Revert change from 2010-05-13.
2810 2010-05-16 Richard Guenther <rguenther@suse.de>
2812 * trans-decl.c (module_htab_decls_hash): Revert last change.
2814 2010-05-16 Richard Guenther <rguenther@suse.de>
2816 * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
2818 2010-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
2820 * options.c (set_Wall): Remove special logic for Wuninitialized
2823 2010-05-15 Janus Weil <janus@gcc.gnu.org>
2827 * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
2830 2010-05-15 Janus Weil <janus@gcc.gnu.org>
2834 * gfortran.h (gfc_class_null_initializer): New prototype.
2835 * expr.c (gfc_class_null_initializer): New function to build a NULL
2836 initializer for CLASS pointers.
2837 * symbol.c (gfc_build_class_symbol): Modify internal naming of class
2838 containers. Remove default NULL initialization of $data component.
2839 * trans.c (gfc_allocate_array_with_status): Fix wording of an error
2841 * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
2842 Use new function 'gfc_class_null_initializer'.
2843 * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
2846 2010-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
2849 * fortran/interface.c (get_sym_storage_size): Use signed instead of
2850 unsigned mpz_get_?i routines.
2852 2010-05-14 Jakub Jelinek <jakub@redhat.com>
2854 * trans.c (trans_code): Set backend locus early.
2855 * trans-decl.c (gfc_get_fake_result_decl): Use source location
2856 of the function instead of current input_location.
2858 2010-05-13 Daniel Franke <franke.daniel@gmail.com>
2861 * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
2863 * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
2864 * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
2867 2010-05-13 Jakub Jelinek <jakub@redhat.com>
2870 * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
2872 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
2873 by reference dummy procedures or non-dummy procedure pointers.
2874 (gfc_omp_predetermined_sharing): Return
2875 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
2877 2010-05-11 Daniel Franke <franke.daniel@gmail.com>
2880 * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
2881 after OMP statement.
2882 (gfc_match_omp_critical): Likewise.
2883 (gfc_match_omp_flush): Likewise.
2884 (gfc_match_omp_workshare): Likewise.
2885 (gfc_match_omp_master): Likewise.
2886 (gfc_match_omp_ordered): Likewise.
2887 (gfc_match_omp_atomic): Likewise.
2888 (gfc_match_omp_barrier): Likewise.
2889 (gfc_match_omp_end_nowait): Likewise.
2891 2010-05-11 Daniel Franke <franke.daniel@gmail.com>
2894 * resolve.c (validate_case_label_expr): Removed FIXME.
2895 (resolve_select): Raise default warning on case labels out of range
2896 of the case expression.
2898 2010-05-10 Daniel Franke <franke.daniel@gmail.com>
2903 * intrinsic.c (gfc_convert_type_warn): Be more discriminative
2904 about conversion warnings.
2906 2010-05-10 Janus Weil <janus@gcc.gnu.org>
2909 * match.c (gfc_match_select_type): Move error message to
2910 resolve_select_type.
2911 * resolve.c (resolve_select_type): Error message moved here from
2912 gfc_match_select_type. Correctly set type of temporary.
2914 2010-05-10 Richard Guenther <rguenther@suse.de>
2916 * trans-decl.c (gfc_build_library_function_decl): Split out
2918 (build_library_function_decl_1): ... this new function.
2919 Set a fnspec attribute if a specification was provided.
2920 (gfc_build_library_function_decl_with_spec): New function.
2921 (gfc_build_intrinsic_function_decls): Annotate internal_pack
2922 and internal_unpack.
2924 2010-05-07 Daniel Franke <franke.daniel@gmail.com>
2927 * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
2930 2010-05-07 Jason Merrill <jason@redhat.com>
2932 * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2933 to avoid -Wc++-compat warning.
2935 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
2938 * options.c (gfc_handle_option): Add argument kind.
2939 * gfortran.h (gfc_handle_option): Update declaration.
2941 2010-05-06 Tobias Burnus <burnus@net-b.de>
2944 * trans-types.c (gfc_sym_type): Mark Cray pointees as
2947 2010-05-05 Daniel Franke <franke.daniel@gmail.com>
2950 * resolve.c (traverse_data_list): Rephrase error message for
2951 non-constant bounds in data-implied-do.
2953 2010-05-05 Daniel Franke <franke.daniel@gmail.com>
2956 * gfortran.h: Removed repeat count from constructor, removed
2958 * data.h (gfc_assign_data_value_range): Changed return value from
2960 * data.c (gfc_assign_data_value): Add location to constructor element.
2961 (gfc_assign_data_value_range): Call gfc_assign_data_value()
2962 for each element in range. Return early if an error was generated.
2963 * resolve.c (check_data_variable): Stop early if range assignment
2966 2010-05-05 Janus Weil <janus@gcc.gnu.org>
2969 * resolve.c (resolve_fl_derived): Some fixes for class variables.
2970 * symbol.c (gfc_build_class_symbol): Add separate class container for
2973 2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
2976 * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
2978 2010-05-02 Tobias Burnus <burnus@net-b.de>
2981 * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
2982 for lcobound, ucobound, image_index and this_image.
2983 * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
2984 gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
2985 * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
2986 gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
2988 (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
2990 2010-04-30 Tobias Burnus <burnus@net-b.de>
2994 * trans-types.c (gfc_get_array_descriptor_base): Fix index
2995 calculation for array descriptor types.
2997 2010-04-29 Janus Weil <janus@gcc.gnu.org>
3000 * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3001 initializers for PPC members of the vtabs.
3003 2010-04-29 Janus Weil <janus@gcc.gnu.org>
3006 * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3007 attribute for all PPC members of the vtypes.
3008 (copy_vtab_proc_comps): Copy the correct interface.
3009 * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3010 * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3011 a dummy argument and make sure all PPC members of the vtab are
3012 initialized correctly.
3013 (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3014 in call to gfc_trans_assign_vtab_procs.
3015 * trans-stmt.c (gfc_trans_allocate): Ditto.
3017 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
3020 * resolve.c (resolve_typebound_function): Renamed
3021 resolve_class_compcall.Do all the detection of class references
3023 (resolve_typebound_subroutine): resolve_class_typebound_call
3024 renamed. Otherwise same as resolve_typebound_function.
3025 (gfc_resolve_expr): Call resolve_typebound_function.
3026 (resolve_code): Call resolve_typebound_subroutine.
3028 2010-04-29 Janus Weil <janus@gcc.gnu.org>
3031 * resolve.c (resolve_typebound_generic_call): For CLASS methods
3032 pass back the specific symtree name, rather than the target
3035 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
3038 * resolve.c (resolve_structure_cons): Make the initializer of
3039 the vtab component 'extends' the same type as the component.
3041 2010-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3044 * interface.c (check_interface1): Pass symbol name rather than NULL to
3045 gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3046 trap MULL. (gfc_compare_derived_types): Revert previous change
3047 incorporated incorrectly during merge from trunk, r155778.
3048 * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3049 than NULL to gfc_compare_interfaces.
3050 * symbol.c (add_generic_specifics): Likewise.
3052 2010-02-29 Janus Weil <janus@gcc.gnu.org>
3055 * interface.c (gfc_compare_derived_types): Add condition for vtype.
3056 * symbol.c (gfc_find_derived_vtab): Sey access to private.
3057 (gfc_find_derived_vtab): Likewise.
3058 * module.c (ab_attribute): Add enumerator AB_VTAB.
3059 (mio_symbol_attribute): Use new attribute, AB_VTAB.
3060 (check_for_ambiguous): Likewise.
3062 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
3063 Janus Weil <janus@gcc.gnu.org>
3066 * trans-expr.c (select_class_proc): Remove function.
3067 (conv_function_val): Delete reference to previous.
3068 (gfc_conv_derived_to_class): Add second argument to the call to
3069 gfc_find_derived_vtab.
3070 (gfc_conv_structure): Exclude proc_pointer components when
3071 accessing $data field of class objects.
3072 (gfc_trans_assign_vtab_procs): New function.
3073 (gfc_trans_class_assign): Add second argument to the call to
3074 gfc_find_derived_vtab.
3075 * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3076 implement holding off searching for the vptr derived type.
3077 (add_proc_component): New function.
3078 (add_proc_comps): New function.
3079 (add_procs_to_declared_vtab1): New function.
3080 (copy_vtab_proc_comps): New function.
3081 (add_procs_to_declared_vtab): New function.
3082 (void add_generic_specifics): New function.
3083 (add_generics_to_declared_vtab): New function.
3084 (gfc_find_derived_vtab): Add second argument to the call to
3085 gfc_find_derived_vtab. Add the calls to
3086 add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3087 * decl.c (build_sym, build_struct): Use new arg in calls to
3088 gfc_build_class_symbol.
3089 * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3090 definition of struct gfc_class_esym_list. Modify prototypes
3091 of gfc_build_class_symbol and gfc_find_derived_vtab.
3092 * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3093 call to gfc_find_derived_vtab.
3094 * module.c : Add the vtype attribute.
3095 * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3096 * resolve.c (resolve_typebound_generic_call): Add second arg
3097 to pass along the generic name for class methods.
3098 (resolve_typebound_call): The same.
3099 (resolve_compcall): Use the second arg to carry the generic
3100 name from the above. Remove the reference to class_esym.
3101 (check_members, check_class_members, resolve_class_esym,
3102 hash_value_expr): Remove functions.
3103 (resolve_class_compcall, resolve_class_typebound_call): Modify
3104 to use vtable rather than member by member calls.
3105 (gfc_resolve_expr): Modify second arg in call to
3107 (resolve_select_type): Add second arg in call to
3108 gfc_find_derived_vtab.
3109 (resolve_code): Add second arg in call resolve_typebound_call.
3110 (resolve_fl_derived): Exclude vtypes from check for late
3111 procedure definitions. Likewise for checking of explicit
3112 interface and checking of pass arg.
3113 * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3114 calls to gfc_find_derived_vtab.
3115 * match.c (select_type_set_tmp): Use new arg in call to
3116 gfc_build_class_symbol.
3117 * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3119 * parse.c (endType): Finish incomplete classes.
3121 2010-04-28 Tobias Burnus <burnus@net-b.de>
3125 * simplify.c (simplify_cobound): Handle scalar coarrays.
3127 2010-04-27 Tobias Burnus <burnus@net-b.de>
3129 * gfc-internals.texi: Update copyright year.
3130 * gfortran.texi: Ditto.
3131 * invoke.texi: Ditto.
3133 2010-04-27 Tobias Burnus <burnus@net-b.de>
3136 * resolve.c (resolve_allocate_expr): Allow array coarrays.
3137 * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3138 * trans-types.c (gfc_get_array_type_bounds,
3139 gfc_get_array_descriptor_base): Add corank argument.
3140 * trans-array.c (gfc_array_init_size): Handle corank.
3141 (gfc_trans_create_temp_array, gfc_array_allocate,
3142 gfc_conv_expr_descriptor): Add corank argument to call.
3143 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3145 2010-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
3149 * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3150 of mucking with a tree directly.
3152 2010-04-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3155 * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3156 gfc_error with new error message.
3158 2010-04-24 Paul Thomas <pault@gcc.gnu.org>
3162 * trans-expr.c (gfc_conv_expr): Supply an address expression for
3164 (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3166 * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3167 than the address of a GFC_SS_REFERENCE.
3168 * trans.h : Change comment on GFC_SS_REFERENCE.
3170 2010-04-22 Richard Guenther <rguenther@suse.de>
3173 * resolve.c (gfc_resolve_index): Wrap around ...
3174 (gfc_resolve_index_1): ... this. Add parameter to allow
3175 any integer kind index type.
3176 (resolve_array_ref): Allow any integer kind for the start
3177 index of an array ref.
3179 2010-04-21 Jakub Jelinek <jakub@redhat.com>
3182 * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3185 2010-04-20 Harald Anlauf <anlauf@gmx.de>
3187 * intrinsic.c (sort_actual): Remove 'is' in error message.
3189 2010-04-20 Paul Thomas <pault@gcc.gnu.org>
3192 * resolve.c (resolve_fl_derived): If a component character
3193 length has not been resolved, do so now.
3194 (resolve_symbol): The same as above for a symbol character
3196 * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3197 not needed for a character valued, procedure pointer.
3200 * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3201 not found, return FAILURE rather than ICEing.
3203 2010-04-19 Jakub Jelinek <jakub@redhat.com>
3206 * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3207 sequential loops private in the innermost containing task region.
3209 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
3211 * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3212 to build_common_tree_nodes.
3214 2010-04-17 Steven G. Kargl <kargl@gcc.gnu.org>
3217 * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3218 gfc_msg_bounds by using 'Array bound mismatch' directly.
3219 (gfc_trans_dummy_array_bias): Remove the use of gfc_msg_bounds. Reword
3220 error message to include the mismatch in the extent of array bound.
3221 * fortran/trans.c: Remove gfc_msg_bounds. It is only used in one place.
3222 * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
3224 2010-04-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3226 * gfortran.texi: Update information on temporary file locations.
3228 2010-04-16 Jakub Jelinek <jakub@redhat.com>
3230 * trans-decl.c (gfc_build_qualified_array): Ensure
3231 ubound.N and lbound.N artificial variable names don't appear
3234 2010-04-15 Steven G. Kargl <kargl@gcc.gnu.org>
3237 * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3238 block of code. Set name to the variable associated with the descriptor.
3240 2010-04-15 Jakub Jelinek <jakub@redhat.com>
3242 * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3243 on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3245 2010-04-14 Steven G. Kargl <kargl@gcc.gnu.org>
3247 * intrinsic.texi: Add the missing specific name of intrinsic
3248 procedure where the specific name is identical to the generic name.
3249 Fix inconsistent or mismatch in the argument names in intrinsic
3250 procedure descriptions. Add the SCALAR allocatable description to
3253 2010-04-14 Tobias Burnus <burnus@net-b.de>
3256 * array.c (gfc_find_array_ref): Handle codimensions.
3257 (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3258 * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3259 gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3261 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3262 GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3264 * intrinsic.h (add_functions): Add this_image, image_index,
3265 lcobound and ucobound intrinsics.
3266 * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3267 gfc_check_image_index, gfc_check_this_image,
3268 gfc_simplify_image_index, gfc_simplify_lcobound,
3269 gfc_simplify_this_image, gfc_simplify_ucobound):
3270 New function prototypes.
3271 * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
3272 IMAGE_INDEX): Document new intrinsic functions.
3273 * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
3275 * simplify.c (simplify_bound_dim): Handle coarrays.
3276 (simplify_bound): Update simplify_bound_dim call.
3277 (gfc_simplify_num_images): Add -fcoarray=none check.
3278 (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
3279 gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
3281 2010-04-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3284 * constructor.c: Fix typo in comment.
3285 * expr.c (find_array_section): Add check for max array limit.
3287 2010-04-13 Iain Sandoe <iains@gcc.gnu.org>
3290 * gfortranspec.c (lookup_option): Check for -static and return
3292 (lang_specific_driver): Break when OPTION_static is discovered.
3294 2010-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3296 * array.c (extract_element): Restore function from trunk.
3297 (gfc_get_array_element): Restore function from trunk.
3298 (gfc_expand_constructor): Restore check against
3299 flag_max_array_constructor.
3300 * constructor.c (node_copy_and_append): Delete unused.
3301 * gfortran.h: Delete comment and extra include.
3302 * constructor.h: Bump copyright and clean up TODO comments.
3303 * resolve.c: Whitespace.
3305 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3307 * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
3308 with direct access access to elements. Adjusted prototype, fixed all
3310 (gfc_simplify_dot_product): Removed duplicate check for zero-sized
3312 (gfc_simplify_matmul): Removed usage of ADVANCE macro.
3313 (gfc_simplify_spread): Removed workaround, directly insert elements
3314 at a given array position.
3315 (gfc_simplify_transpose): Likewise.
3316 (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
3318 (gfc_simplify_unpack): Likewise.
3320 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3322 * simplify.c (only_convert_cmplx_boz): Renamed to ...
3323 (convert_boz): ... this and moved to start of file.
3324 (gfc_simplify_abs): Whitespace fix.
3325 (gfc_simplify_acos): Whitespace fix.
3326 (gfc_simplify_acosh): Whitespace fix.
3327 (gfc_simplify_aint): Whitespace fix.
3328 (gfc_simplify_dint): Whitespace fix.
3329 (gfc_simplify_anint): Whitespace fix.
3330 (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
3331 (gfc_simplify_dnint): Whitespace fix.
3332 (gfc_simplify_asin): Whitespace fix.
3333 (gfc_simplify_asinh): Moved creation of result-expr out of switch.
3334 (gfc_simplify_atan): Likewise.
3335 (gfc_simplify_atanh): Whitespace fix.
3336 (gfc_simplify_atan2): Whitespace fix.
3337 (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
3338 (gfc_simplify_bessel_j1): Likewise.
3339 (gfc_simplify_bessel_jn): Likewise.
3340 (gfc_simplify_bessel_y0): Likewise.
3341 (gfc_simplify_bessel_y1): Likewise.
3342 (gfc_simplify_bessel_yn): Likewise.
3343 (gfc_simplify_ceiling): Reorderd statements.
3344 (simplify_cmplx): Use convert_boz(), check for constant arguments.
3346 (gfc_simplify_cmplx): Use correct default kind. Removed check for
3348 (gfc_simplify_complex): Replaced if-gate. Removed check for
3350 (gfc_simplify_conjg): Whitespace fix.
3351 (gfc_simplify_cos): Whitespace fix.
3352 (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
3353 (gfc_simplify_dcmplx): Removed check for constant arguments.
3354 (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
3355 (gfc_simplify_digits): Whitespace fix.
3356 (gfc_simplify_dim): Whitespace fix.
3357 (gfc_simplify_dprod): Reordered statements.
3358 (gfc_simplify_erf): Whitespace fix.
3359 (gfc_simplify_erfc): Whitespace fix.
3360 (gfc_simplify_epsilon): Whitespace fix.
3361 (gfc_simplify_exp): Whitespace fix.
3362 (gfc_simplify_exponent): Use convert_boz().
3363 (gfc_simplify_floor): Reorderd statements.
3364 (gfc_simplify_gamma): Whitespace fix.
3365 (gfc_simplify_huge): Whitespace fix.
3366 (gfc_simplify_iand): Whitespace fix.
3367 (gfc_simplify_ieor): Whitespace fix.
3368 (simplify_intconv): Use gfc_convert_constant().
3369 (gfc_simplify_int): Use simplify_intconv().
3370 (gfc_simplify_int2): Reorderd statements.
3371 (gfc_simplify_idint): Reorderd statements.
3372 (gfc_simplify_ior): Whitespace fix.
3373 (gfc_simplify_ishftc): Removed duplicate type check.
3374 (gfc_simplify_len): Use range_check() instead of manual range check.
3375 (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
3376 (gfc_simplify_log): Whitespace fix.
3377 (gfc_simplify_log10): Whitespace fix.
3378 (gfc_simplify_minval): Whitespace fix.
3379 (gfc_simplify_maxval): Whitespace fix.
3380 (gfc_simplify_mod): Whitespace fix.
3381 (gfc_simplify_modulo): Whitespace fix.
3382 (simplify_nint): Reorderd statements.
3383 (gfc_simplify_not): Whitespace fix.
3384 (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
3385 (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
3386 (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
3387 (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
3388 (gfc_simplify_realpart): Whitespace fix.
3389 (gfc_simplify_selected_char_kind): Removed unused result-variable.
3390 (gfc_simplify_selected_int_kind): Removed unused result-variable.
3391 (gfc_simplify_selected_real_kind): Removed unused result-variable.
3392 (gfc_simplify_sign): Whitespace fix.
3393 (gfc_simplify_sin): Whitespace fix.
3394 (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
3395 (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
3396 (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
3397 (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
3398 (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
3400 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3402 * gfortran.h (gfc_start_constructor): Removed.
3403 (gfc_get_array_element): Removed.
3404 * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr
3405 instead. Fixed all callers.
3406 (extract_element): Removed.
3407 (gfc_expand_constructor): Temporarily removed check for
3408 max-array-constructor. Will be re-introduced later if still required.
3409 (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
3410 instead. Fixed all callers.
3411 * expr.c (find_array_section): Replaced manual lookup of elements
3412 by gfc_constructor_lookup.
3414 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3416 * gfortran.h (gfc_get_null_expr): New prototype.
3417 (gfc_get_operator_expr): New prototype.
3418 (gfc_get_character_expr): New prototype.
3419 (gfc_get_iokind_expr): New prototype.
3420 * expr.c (gfc_get_null_expr): New.
3421 (gfc_get_character_expr): New.
3422 (gfc_get_iokind_expr): New.
3423 (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
3424 * matchexp.c (build_node): Renamed and moved to
3425 expr.c (gfc_get_operator_expr). Reordered arguments to match
3426 other functions. Fixed all callers.
3427 (gfc_get_parentheses): Use specific function to build expr.
3428 * array.c (gfc_match_array_constructor): Likewise.
3429 * arith.c (eval_intrinsic): Likewise.
3430 (gfc_hollerith2int): Likewise.
3431 (gfc_hollerith2real): Likewise.
3432 (gfc_hollerith2complex): Likewise.
3433 (gfc_hollerith2logical): Likewise.
3434 * data.c (create_character_intializer): Likewise.
3435 * decl.c (gfc_match_null): Likewise.
3436 (enum_initializer): Likewise.
3437 * io.c (gfc_match_format): Likewise.
3438 (match_io): Likewise.
3439 * match.c (gfc_match_nullify): Likewise.
3440 * primary.c (match_string_constant): Likewise.
3441 (match_logical_constant): Likewise.
3442 (build_actual_constructor): Likewise.
3443 * resolve.c (build_default_init_expr): Likewise.
3444 * symbol.c (generate_isocbinding_symbol): Likewise.
3445 (gfc_build_class_symbol): Likewise.
3446 (gfc_find_derived_vtab): Likewise.
3447 * simplify.c (simplify_achar_char): Likewise.
3448 (gfc_simplify_adjustl): Likewise.
3449 (gfc_simplify_adjustr): Likewise.
3450 (gfc_simplify_and): Likewise.
3451 (gfc_simplify_bit_size): Likewise.
3452 (gfc_simplify_is_iostat_end): Likewise.
3453 (gfc_simplify_is_iostat_eor): Likewise.
3454 (gfc_simplify_isnan): Likewise.
3455 (simplify_bound): Likewise.
3456 (gfc_simplify_leadz): Likewise.
3457 (gfc_simplify_len_trim): Likewise.
3458 (gfc_simplify_logical): Likewise.
3459 (gfc_simplify_maxexponent): Likewise.
3460 (gfc_simplify_minexponent): Likewise.
3461 (gfc_simplify_new_line): Likewise.
3462 (gfc_simplify_null): Likewise.
3463 (gfc_simplify_or): Likewise.
3464 (gfc_simplify_precision): Likewise.
3465 (gfc_simplify_repeat): Likewise.
3466 (gfc_simplify_scan): Likewise.
3467 (gfc_simplify_size): Likewise.
3468 (gfc_simplify_trailz): Likewise.
3469 (gfc_simplify_trim): Likewise.
3470 (gfc_simplify_verify): Likewise.
3471 (gfc_simplify_xor): Likewise.
3472 * trans-io.c (build_dt): Likewise.
3473 (gfc_new_nml_name_expr): Removed.
3475 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3477 * arith.h (gfc_constant_result): Removed prototype.
3478 * constructor.h (gfc_build_array_expr): Removed prototype.
3479 (gfc_build_structure_constructor_expr): Removed prototype.
3480 * gfortran.h (gfc_int_expr): Removed prototype.
3481 (gfc_logical_expr): Removed prototype.
3482 (gfc_get_array_expr): New prototype.
3483 (gfc_get_structure_constructor_expr): New prototype.
3484 (gfc_get_constant_expr): New prototype.
3485 (gfc_get_int_expr): New prototype.
3486 (gfc_get_logical_expr): New prototype.
3487 * arith.c (gfc_constant_result): Moved and renamed to
3488 expr.c (gfc_get_constant_expr). Fixed all callers.
3489 * constructor.c (gfc_build_array_expr): Moved and renamed to
3490 expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
3491 and kind. Fixed all callers.
3492 (gfc_build_structure_constructor_expr): Moved and renamed to
3493 expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
3494 to type and kind. Fixed all callers.
3495 * expr.c (gfc_logical_expr): Renamed to ...
3496 (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
3497 (gfc_int_expr): Renamed to ...
3498 (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
3500 (gfc_get_constant_expr): New.
3501 (gfc_get_array_expr): New.
3502 (gfc_get_structure_constructor_expr): New.
3503 * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
3506 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
3508 * constructor.h: New.
3509 * constructor.c: New.
3510 * Make-lang.in: Add new files to F95_PARSER_OBJS.
3511 * arith.c (reducy_unary): Use constructor API.
3512 (reduce_binary_ac): Likewise.
3513 (reduce_binary_ca): Likewise.
3514 (reduce_binary_aa): Likewise.
3515 * check.c (gfc_check_pack): Likewise.
3516 (gfc_check_reshape): Likewise.
3517 (gfc_check_unpack): Likewise.
3518 * decl.c (add_init_expr_to_sym): Likewise.
3519 (build_struct): Likewise.
3520 * dependency.c (gfc_check_dependency): Likewise.
3521 (contains_forall_index_p): Likewise.
3522 * dump-parse-tree.c (show_constructor): Likewise.
3523 * expr.c (free_expr0): Likewise.
3524 (gfc_copy_expr): Likewise.
3525 (gfc_is_constant_expr): Likewise.
3526 (simplify_constructor): Likewise.
3527 (find_array_element): Likewise.
3528 (find_component_ref): Likewise.
3529 (find_array_section): Likewise.
3530 (find_substring_ref): Likewise.
3531 (simplify_const_ref): Likewise.
3532 (scalarize_intrinsic_call): Likewise.
3533 (check_alloc_comp_init): Likewise.
3534 (gfc_default_initializer): Likewise.
3535 (gfc_traverse_expr): Likewise.
3536 * iresolve.c (check_charlen_present): Likewise.
3537 (gfc_resolve_reshape): Likewise.
3538 (gfc_resolve_transfer): Likewise.
3539 * module.c (mio_constructor): Likewise.
3540 * primary.c (build_actual_constructor): Likewise.
3541 (gfc_match_structure_constructor): Likewise.
3542 * resolve.c (resolve_structure_cons): Likewise.
3543 * simplify.c (is_constant_array_expr): Likewise.
3544 (init_result_expr): Likewise.
3545 (transformational_result): Likewise.
3546 (simplify_transformation_to_scalar): Likewise.
3547 (simplify_transformation_to_array): Likewise.
3548 (gfc_simplify_dot_product): Likewise.
3549 (simplify_bound): Likewise.
3550 (simplify_matmul): Likewise.
3551 (simplify_minval_maxval): Likewise.
3552 (gfc_simplify_pack): Likewise.
3553 (gfc_simplify_reshape): Likewise.
3554 (gfc_simplify_shape): Likewise.
3555 (gfc_simplify_spread): Likewise.
3556 (gfc_simplify_transpose): Likewise.
3557 (gfc_simplify_unpack): Likewise.q
3558 (gfc_convert_constant): Likewise.
3559 (gfc_convert_char_constant): Likewise.
3560 * target-memory.c (size_array): Likewise.
3561 (encode_array): Likewise.
3562 (encode_derived): Likewise.
3563 (interpret_array): Likewise.
3564 (gfc_interpret_derived): Likewise.
3565 (expr_to_char): Likewise.
3566 (gfc_merge_initializers): Likewise.
3567 * trans-array.c (gfc_get_array_constructor_size): Likewise.
3568 (gfc_trans_array_constructor_value): Likewise.
3569 (get_array_ctor_strlen): Likewise.
3570 (gfc_constant_array_constructor_p): Likewise.
3571 (gfc_build_constant_array_constructor): Likewise.
3572 (gfc_trans_array_constructor): Likewise.
3573 (gfc_conv_array_initializer): Likewise.
3574 * trans-decl.c (check_constant_initializer): Likewise.
3575 * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
3576 (gfc_apply_interface_mapping_to_cons): Likewise.
3577 (gfc_trans_structure_assign): Likewise.
3578 (gfc_conv_structure): Likewise.
3579 * array.c (check_duplicate_iterator): Likewise.
3580 (match_array_list): Likewise.
3581 (match_array_cons_element): Likewise.
3582 (gfc_match_array_constructor): Likewise.
3583 (check_constructor_type): Likewise.
3584 (check_constructor): Likewise.
3586 (expand_constructor): Likewise.
3587 (extract_element): Likewise.
3588 (gfc_expanded_ac): Likewise.
3589 (resolve_array_list): Likewise.
3590 (gfc_resolve_character_array_constructor): Likewise.
3591 (copy_iterator): Renamed to ...
3592 (gfc_copy_iterator): ... this.
3593 (gfc_append_constructor): Removed.
3594 (gfc_insert_constructor): Removed unused function.
3595 (gfc_get_constructor): Removed.
3596 (gfc_free_constructor): Removed.
3597 (qgfc_copy_constructor): Removed.
3598 * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
3599 Removed all references. Replaced constructor list by splay-tree.
3600 (struct gfc_constructor): Removed member 'next', moved 'offset' from
3601 the inner struct, added member 'base'.
3602 (gfc_append_constructor): Removed prototype.
3603 (gfc_insert_constructor): Removed prototype.
3604 (gfc_get_constructor): Removed prototype.
3605 (gfc_free_constructor): Removed prototype.
3606 (qgfc_copy_constructor): Removed prototype.
3607 (gfc_copy_iterator): New prototype.
3608 * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
3610 2010-04-10 Tobias Burnus <burnus@net-b.de>
3613 * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
3614 proc-pointers and type-bound procedures.
3615 (gfc_specification_expr): Check proc-pointers for pureness.
3617 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
3620 * gfortranspec.c (lang_specific_driver): Do not expose vars
3621 only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
3624 2010-04-09 Tobias Burnus <burnus@net-b.de>
3627 * decl.c (variable_decl, match_attr_spec): Fix setting the array
3629 * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
3630 * data.c (gfc_assign_data_value): Ditto.
3631 * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
3632 (gfc_traverse_expr): Traverse also through codimension expressions.
3633 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3634 gfc_has_ultimate_pointer): New functions.
3635 * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
3636 (gfc_array_ref): Add codimen.
3637 (gfc_array_ref): Add in_allocate.
3638 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
3639 gfc_has_ultimate_pointer): Add prototypes.
3640 * interface.c (compare_parameter, compare_actual_formal,
3641 check_intents): Add coarray constraints.
3642 * match.c (gfc_match_iterator): Add coarray constraint.
3643 * match.h (gfc_match_array_ref): Update interface.
3644 * primary.c (gfc_match_varspec): Handle codimensions.
3645 * resolve.c (coarray_alloc, inquiry_argument): New static variables.
3646 (check_class_members): Return gfc_try instead for error recovery.
3647 (resolve_typebound_function,resolve_typebound_subroutine,
3648 check_members): Handle return value of check_class_members.
3649 (resolve_structure_cons, resolve_actual_arglist, resolve_function,
3650 check_dimension, compare_spec_to_ref, resolve_array_ref,
3651 resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
3652 resolve_allocate_expr, resolve_ordinary_assign): Add coarray
3654 * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
3655 Skip over coarray refs.
3656 (gfc_array_allocate) Add support for references containing coindexes.
3657 * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
3658 (gfc_map_intrinsic_function): Ignore codimensions.
3660 2010-04-08 Bud Davis <bdavis9659@sbcglobal.net>
3663 * io.c (check_format_string): Added check for additional non
3664 blank characters after the format string was successfully
3666 * io.c (check_format): Changed the error messages for positive
3667 int required and period required to drop through the error logic
3668 and report with gfc_error instead of gfc_error_now. Corrected
3669 format postion for hollerith strings.
3671 2010-04-08 Tobias Burnus <burnus@net-b.de>
3673 * module.c (use_iso_fortran_env_module): Fix standard check.
3675 2010-04-07 Jakub Jelinek <jakub@redhat.com>
3677 * parse.c (parse_derived, parse_enum): Avoid set but not used
3680 2010-04-07 Janne Blomqvist <jb@gcc.gnu.org>
3683 * gfortran.texi: Add section about representation of
3686 2010-04-07 Simon Baldwin <simonb@google.com>
3688 * cpp.c (cb_cpp_error): Add warning reason argument, set a value
3689 for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
3691 2010-04-07 Richard Guenther <rguenther@suse.de>
3693 * options.c (gfc_init_options): Do not set.
3695 2010-04-06 Tobias Burnus <burnus@net-b.de>
3698 * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
3699 * match.c (gfc_match_critical, sync_statement): Ditto.
3700 * gfortran.h (gfc_fcoarray): New enum.
3701 (gfc_option_t): Use it.
3702 * lang.opt (fcoarray): Add new flag.
3703 * invoke.texi (fcoarray): Document it.
3704 * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
3705 (gfc_handle_coarray_option): New function.
3707 2010-04-06 Tobias Burnus <burnus@net-b.de>
3710 * gfortran.h (gfc_array_spec): Add cotype.
3711 * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
3712 and defer error diagnostic.
3713 * resolve.c (resolve_fl_derived): Add missing check.
3714 (resolve_symbol): Add cotype/type check.
3715 * parse.c (parse_derived): Fix setting of coarray_comp.
3717 2010-04-06 Tobias Burnus <burnus@net-b.de>
3720 * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
3721 match_array_element_spec,gfc_copy_array_spec,
3722 gfc_compare_array_spec): Include corank.
3723 (match_array_element_spec,gfc_set_array_spec): Support codimension.
3724 * decl.c (build_sym,build_struct,variable_decl,
3725 match_attr_spec,attr_decl1,cray_pointer_decl,
3726 gfc_match_volatile): Add codimension.
3727 (gfc_match_codimension): New function.
3728 * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
3729 * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
3730 (gfc_add_codimension): New function prototype.
3731 * match.h (gfc_match_codimension): New function prototype.
3732 (gfc_match_array_spec): Update prototype
3733 * match.c (gfc_match_common): Update gfc_match_array_spec call.
3734 * module.c (MOD_VERSION): Bump.
3735 (mio_symbol_attribute): Support coarray attributes.
3736 (mio_array_spec): Add corank support.
3737 * parse.c (decode_specification_statement,decode_statement,
3738 parse_derived): Add coarray support.
3739 * resolve.c (resolve_formal_arglist, was_declared,
3740 is_non_constant_shape_array, resolve_fl_variable,
3741 resolve_fl_derived, resolve_symbol): Add coarray support.
3742 * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
3743 gfc_build_class_symbol): Add coarray support.
3744 (gfc_add_codimension): New function.
3746 2010-04-06 Tobias Burnus <burnus@net-b.de>
3749 * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
3750 atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
3751 stat_locked_other_image, stat_stopped_image and stat_unlocked of
3753 * intrinsic.texi (iso_fortran_env): Ditto.
3754 * libgfortran.h (libgfortran_stat_codes): New enum.
3755 * module.c (use_iso_fortran_env_module): Honour -std= when loading
3756 constants from the intrinsic module.
3758 2010-04-06 Tobias Burnus <burnus@net-b.de>
3761 * intrinsic.c (add_functions): Add num_images.
3762 * decl.c (gfc_match_end): Handle END CRITICAL.
3763 * intrinsic.h (gfc_simplify_num_images): Add prototype.
3764 * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
3766 * gfortran.h (gfc_statement): Add enum items for those.
3767 (gfc_exec_op) Ditto.
3768 (gfc_isym_id): Add num_images.
3769 * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
3770 (gfc_trans_sync,gfc_trans_critical): New functions.
3771 * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
3772 gfc_trans_critical): Add/update prototypes.
3773 * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
3774 and SYNC statements.
3775 * trans.h (gfor_fndecl_error_stop_string) Add variable.
3776 * resolve.c (resolve_sync): Add function.
3777 (gfc_resolve_blocks): Handle CRITICAL.
3778 (resolve_code): Handle CRITICAL, ERROR STOP,
3779 (resolve_branch): Add CRITICAL constraint check.
3780 and SYNC statements.
3781 * st.c (gfc_free_statement): Add new statements.
3782 * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
3783 (gfc_build_builtin_function_decls): Initialize it.
3784 * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
3785 (gfc_match_critical, gfc_match_error_stop, sync_statement,
3786 gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
3788 (match_exit_cycle): Handle CRITICAL constraint.
3789 (gfc_match_stopcode): Handle ERROR STOP.
3790 * match.h (gfc_match_critical, gfc_match_error_stop,
3791 gfc_match_sync_all, gfc_match_sync_images,
3792 gfc_match_sync_memory): Add prototype.
3793 * parse.c (decode_statement, gfc_ascii_statement,
3794 parse_executable): Handle new statements.
3795 (parse_critical_block): New function.
3796 * parse.h (gfc_compile_state): Add COMP_CRITICAL.
3797 * intrinsic.texi (num_images): Document new function.
3798 * simplify.c (gfc_simplify_num_images): Add function.
3800 2010-04-06 Tobias Burnus <burnus@net-b.de>
3803 * trans-array.c (gfc_conv_expr_descriptor): Update
3804 gfc_trans_scalar_assign call.
3805 (has_default_initializer): New function.
3806 (gfc_trans_deferred_array): Nullify less often.
3807 * trans-expr.c (gfc_conv_subref_array_arg,
3808 gfc_trans_subcomponent_assign): Update call to
3809 gfc_trans_scalar_assign.
3810 (gfc_trans_scalar_assign): Add parameter and pass it on.
3811 (gfc_trans_assignment_1): Optionally, do not dealloc before
3813 * trans-openmp.c (gfc_trans_omp_array_reduction): Update
3814 call to gfc_trans_scalar_assign.
3815 * trans-decl.c (gfc_get_symbol_decl): Do not always apply
3816 initializer to static variables.
3817 (gfc_init_default_dt): Add dealloc parameter and pass it on.
3818 * trans-stmt.c (forall_make_variable_temp,
3819 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
3820 gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
3821 gfc_trans_allocate): Update gfc_trans_assignment call.
3822 * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
3823 gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
3824 parameter to prototype.
3826 2010-03-31 Paul Thomas <pault@gcc.gnu.org>
3828 * ioparm.def : Update copyright.
3830 * trans-array.c : ditto
3831 * trans-array.h : ditto
3833 * trans-types.c: ditto
3834 * dependency.c : ditto
3835 * gfortran.h : ditto
3837 * trans-io.c : ditto
3838 * trans-intrinsic.c : ditto
3839 * libgfortran.h : ditto
3840 * invoke.texi : ditto
3841 * intrinsic.texi : ditto
3844 * intrinsic.c : ditto
3845 * interface.c : ditto
3846 * iresolve.c : ditto
3847 * trans-stmt.c : ditto
3848 * trans-stmt.h : ditto
3853 2010-03-20 Paul Thomas <pault@gcc.gnu.org>
3856 * trans-decl.c (gfc_create_module_variable): With -fwhole-file
3857 do not assert the context of derived types.
3859 2010-03-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3862 * ioparm.def: Change inquire size variable to type pointer to
3865 2010-03-18 Paul Thomas <pault@gcc.gnu.org>
3868 * trans-expr.c (conv_parent_component_references): Ensure that
3869 'dt' has a backend_decl.
3872 * trans-expr.c (gfc_conv_structure): Ensure that the derived
3873 type has a backend_decl.
3876 * resolve.c (resolve_global_procedure): Check that the 'cl'
3877 structure is not NULL.
3879 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
3881 * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
3884 2010-03-17 Tobias Burnus <burnus@net-b.de>
3887 * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
3888 gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
3890 * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
3891 pointees as having explizit size.
3892 * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
3894 * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
3895 (gfc_sym_type): Don't mark Cray pointees as restricted pointers.