]> gcc.gnu.org Git - gcc.git/blame - gcc/fortran/ChangeLog
re PR fortran/46152 ([F03] ALLOCATE with type-spec fails for intrinsic types)
[gcc.git] / gcc / fortran / ChangeLog
CommitLineData
1fccc6c3
SK
12010-11-01 Steven G. Kargl <kargl@gcc.gnu.org>
2
3 PR fortran/46152
4 * fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
5 with a gfc_find_symbol to prevent namespace pollution. Remove dead
6 code.
7 (match_type_spec): Remove parsing of '::'. Collapse character
8 kind checking to one location.
9 (gfc_match_allocate): Use correct locus in error message.
10
1607a827
TK
112010-10-30 Thomas Koenig <tkoenig@gcc.gnu.org>
12
13 * gfortran.h (gfc_option_t): Replace dump_parse_tree by
14 dump_fortran_original and add dump_fortran_optimized.
15 * lang.opt: Add fdump-fortran-original and
16 fdump-fortran-optimized. Document that fdump-parse-tree is
17 deprecated.
18 * gfortran.texi: Add -fdump-fortran-original and
19 -fdump-fortran-optimized. -fdump-parse-tree is deprecated.
20 * frontend-passes.c (gfc_run_passes): If optimizing and
21 if gfc_option.dump_fortran_optimized is set, dump the parse tree
22 after optimization.
23 * parse.c: Rename gfc_option.dump_parse_tree to
24 gfc_option.dump_fortran_original.
25 * options.c (gfc_init_options): Rename gfc_option.dump_parse_tree
26 to gfc_option.dump_fortran_original and handle
27 gfc_option.dump_fortran_optimize.
28 (gfc_post_options): Rename gfc_option.dump_parse_tree
29 to gfc_option.dump_fortran_original.
30 (gfc_handle_option): Rename OPT_fdump_parse_tree to
31 OPT_fdump_fortran_original and gfc_option.dump_parse_tree
32 to gfc_option.dump_fortran_original. Handle
33 OPT_fdump_fortran_optimized.
34
2b603773
JW
352010-10-30 Janus Weil <janus@gcc.gnu.org>
36
37 PR fortran/44917
38 PR fortran/44926
39 PR fortran/46196
40 * interface.c (count_types_test): Symmetrize type check.
41 (generic_correspondence): Ditto.
42
5ac13b8e
JW
432010-10-27 Janus Weil <janus@gcc.gnu.org>
44
45 PR fortran/46161
46 * interface.c (compare_allocatable): Handle polymorphic allocatables.
47 (compare_parameter): Add two error messages for polymorphic dummies.
48
2c807128
JW
492010-10-26 Janus Weil <janus@gcc.gnu.org>
50
51 PR fortran/42647
52 * trans.h (gfc_deallocate_scalar_with_status): New prototype.
53 * trans.c (gfc_deallocate_scalar_with_status): New function for
54 deallocation of allocatable scalars.
55 * trans-array.c (structure_alloc_comps): Call it here ...
56 * trans-decl.c (gfc_trans_deferred_vars): ... here ...
57 * trans-stmt.c (gfc_trans_deallocate): ... and here.
58
6739e9ec
TB
592010-10-26 Tobias Burnus <burnus@net-b.de>
60
61 PR fortran/45451
62 * trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.
63
64 PR fortran/43018
65 * trans-array.c (duplicate_allocatable): Use size of type and not
66 the size of the pointer to the type.
67
570f4691
SK
682010-10-25 Steven G. Kargl <kargl@gcc.gnu.org>
69
70 PR fortran/46140
71 * fortran/scanner.c (include_line): Check return value of load_file.
72
67f67405
TB
732010-10-23 Tobias Burnus <burnus@net-b.de>
74
75 PR fortran/46122
76 * expr.c (gfc_check_vardef_context): Fix PROTECTED check.
77
837c4b78
JW
782010-10-21 Janus Weil <janus@gcc.gnu.org>
79
80 PR fortran/46060
81 * match.h (gfc_matching_ptr_assignment): New global variable to indicate
82 we're currently matching a (non-proc-)pointer assignment.
83 * decl.c (match_pointer_init): Set it.
84 * match.c (gfc_match_pointer_assignment): Ditto.
85 * primary.c (matching_actual_arglist): New global variable to indicate
86 we're currently matching an actual argument list.
87 (gfc_match_actual_arglist): Set it.
88 (gfc_match_varspec): Reject procedure pointer component calls with
89 missing argument list.
90
acee8486
JW
912010-10-21 Janus Weil <janus@gcc.gnu.org>
92
93 PR fortran/46067
94 * interface.c (gfc_compare_interfaces): Switch arguments of type
95 comparison (important for polymorphic variables).
96
9b565d65
TB
972010-10-21 Tobias Burnus <burnus@net-b.de>
98
99 PR fortran/46100
100 * expr.c (gfc_check_vardef_context): Treat pointer functions
101 as variables.
102
cea59ace
JD
1032010-10-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
104
105 PR fortran/46079
106 * trans_stmt.c (gfc_trans_stop): Fix whitespace. Build a call to new
107 F08 numeric stop function.
108 * trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
109 * trans-decl.c (gfc_build_builtin_function_decls): Build declaration
110 for stop_numeric_f08.
111
a11930ba
JD
1122010-10-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
113
114 * gfortran.h: Remove definition of bt enumerator.
115 * libgfortran.h: Add bt enumerator type alighned with defintion.
116 Remove the dtype enumerator, no longer used.
117 previously given in libgfortran/io.h
118 * trans-types.c: Use new bt enumerator.
119 * trans-io.c: Likewise.
120
d4d9b0a6
TK
1212010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
122
123 * trans-io.c (gfc_build_io_library_fndecls):
124 Array descriptor arguments to transfer_array can be
125 dereferenced recursively.
126
6eb6875d
TK
1272010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
128
129 PR fortran/20165
130 PR fortran/31593
131 PR fortran/43665
132 * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
133 IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
134 IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
135 IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
136 (gfc_build_io_library_fndecls): Add corresponding function
137 decls.
138 (transfer_expr): If the current transfer is a READ, use
139 the iocall with the original version, otherwise the version
140 with _WRITE.
141 (transfer_array_desc): Likewise.
a11930ba 142
55bd9c35
TB
1432010-10-15 Tobias Burnus <burnus@net-b.de>
144
145 PR fortran/45186
146 * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
147 (gfc_trans_runtime_error_vararg): Remove prototype.
148 * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
149 (gfc_add_modify, gfc_evaluate_now): Use them.
150 (trans_runtime_error_vararg): Renamed from
151 gfc_trans_runtime_error_vararg, made static and use locus.
152 (gfc_trans_runtime_error): Use it.
153 (gfc_trans_runtime_check): Ditto and make use of locus.
154 * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
155 gfc_trans_do, gfc_trans_do_while): Improve line number
156 associated with generated expressions.
157
a81f4b67
DK
1582010-10-12 Daniel Kraft <d@domob.eu>
159
160 PR fortran/38936
161 * parse.c (parse_associate): Set typespec of associate-name if that of
162 the target is already available.
163
d3735479
JW
1642010-10-10 Janus Weil <janus@gcc.gnu.org>
165
166 PR fortran/45961
167 * resolve.c (resolve_typebound_function): Bugfix for type-bound
168 operators.
169
32af57e2
TK
1702010-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
171
172 * frontend-passes.c: Include opts.h.
173 (optimize_comparison): Renamed from optimize_equality.
174 Change second argument to operation to be compared.
175 Use flag_finite_math_only to avoid comparing REAL and
176 COMPLEX only when NANs are honored. Simplify comparing
177 of string concatenations where left or right operands are
178 equal. Simplify all comparison operations, based on the result
179 of gfc_dep_compare_expr.
180 * dependency.c: Include arith.h.
181 (gfc_are_identical_variables): Volatile variables should not
182 compare equal to themselves.
183 (gfc_dep_compare_expr): Handle string constants and string
184 concatenations.
185
a75bfaa6
JM
1862010-10-08 Joseph Myers <joseph@codesourcery.com>
187
188 * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
189 * gfortran.h (gfc_init_options_struct): Declare.
190 * options.c (gfc_init_options_struct): New. Split out from
191 gfc_init_options.
192
061e60bd
JW
1932010-10-07 Janus Weil <janus@gcc.gnu.org>
194
195 PR fortran/45933
196 * resolve.c (resolve_typebound_function): Use correct declared type
197 for type-bound operators.
198
9f23af48
MM
1992010-10-07 Mikael Morin <mikael@gcc.gnu.org>
200
201 PR fortran/45916
202 Revert revision 165026:
203 2010-10-06 Mikael Morin <mikael@gcc.gnu.org>
204
205 * decl.c (match_procedure_in_type): Assertify if conditions.
206
6cf860a2
JD
2072010-10-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
208
209 PR fortran/45889
210 * resolve.c (resolve_transfer): Use expression inside parenthesis to
211 find acutal component to be transgferred.
212
c956e9af
MM
2132010-10-06 Mikael Morin <mikael@gcc.gnu.org>
214
215 * trans-stmt.c (gfc_trans_allocate): free lhs expr.
216
fcba5509
MM
2172010-10-06 Mikael Morin <mikael@gcc.gnu.org>
218
219 * trans-array.c (gfc_free_ss_chain): Made non-static.
220 * trans-array.h (gfc_free_ss_chain): New prototype.
221 * trans-stmt.c (gfc_trans_where_2): Free ss chains.
222
cebd5ce4
MM
2232010-10-06 Mikael Morin <mikael@gcc.gnu.org>
224
225 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
226 subcomponents.
227
3231fe90
MM
2282010-10-06 Mikael Morin <mikael@gcc.gnu.org>
229
230 * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
231
c12ee5df
MM
2322010-10-06 Mikael Morin <mikael@gcc.gnu.org>
233
234 * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
235 before calling gfc_free_expr.
236
3db5d687
MM
2372010-10-06 Mikael Morin <mikael@gcc.gnu.org>
238
239 * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
240 gfc_advance_se_ss_chain.
241 * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
242 gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
243 calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
244 * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
245 * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
246
363aab21
MM
2472010-10-06 Mikael Morin <mikael@gcc.gnu.org>
248
249 * trans.c (gfc_restore_backend_locus): New function.
250 (gfc_get_backend_locus): Renamed to ...
251 (gfc_save_backend_locus): ... this.
252 * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
253 gfc_save_backend_locus): Same.
254 * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
255 gfc_trans_deferred_array): Rename gfc_get_backend_locus to
256 gfc_save_backend_locus.
257 (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
258 end.
259 (gfc_trans_g77_array, gfc_trans_deferred_array): Use
260 gfc_restore_backend_locus instead of gfc_set_backend_locus.
261 (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
262 return.
263 * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
264 gfc_trans_deferred_vars):
265 Rename gfc_get_backend_locus to gfc_save_backend_locus.
266 Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
267
1b4544b7
MM
2682010-10-06 Mikael Morin <mikael@gcc.gnu.org>
269
270 * trans-array.c (gfc_build_constant_array_constructor): Free array
271 spec when done.
272
9ce32b25
MM
2732010-10-06 Mikael Morin <mikael@gcc.gnu.org>
274
275 * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
276 before overwriting it.
277
40a33e3f
MM
2782010-10-06 Mikael Morin <mikael@gcc.gnu.org>
279
280 * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
281 * symbol.c (gen_shape_param): Ditto.
282
1b02e401
MM
2832010-10-06 Mikael Morin <mikael@gcc.gnu.org>
284
285 * symbol.c (free_entry_list): New function.
286 (gfc_free_namespace): Free list of entries.
287
4f2b3d28
MM
2882010-10-06 Mikael Morin <mikael@gcc.gnu.org>
289
290 * symbol.c (free_components): Free list of formal args and formal
291 namespace.
292
9231ff56
MM
2932010-10-06 Mikael Morin <mikael@gcc.gnu.org>
294
295 * simplify.c (gfc_simplify_size): Clear temporary mpz int before
296 returning.
297
f372a0c0
MM
2982010-10-06 Mikael Morin <mikael@gcc.gnu.org>
299
300 * resolve.c (add_dt_to_dt_list): Remove unneeded if.
301
99b41d52
MM
3022010-10-06 Mikael Morin <mikael@gcc.gnu.org>
303
304 * resolve.c (check_typebound_baseobject): Free local expr before
305 returning.
306
3bf9ef1b
MM
3072010-10-06 Mikael Morin <mikael@gcc.gnu.org>
308
309 * primary.c (gfc_match_structure_constructor): Invert the assert logic.
310
3d2e4fe6
MM
3112010-10-06 Mikael Morin <mikael@gcc.gnu.org>
312
313 * primary.c (gfc_free_structure_ctor_component): Also free the
314 component structure itself.
315
5919751c
MM
3162010-10-06 Mikael Morin <mikael@gcc.gnu.org>
317
318 * module.c (gfc_use_module): Free atom_string when done with it.
319
3e212b5d
MM
3202010-10-06 Mikael Morin <mikael@gcc.gnu.org>
321
322 * module.c (read_module): Remove useless string duplication.
323
476bed66
MM
3242010-10-06 Mikael Morin <mikael@gcc.gnu.org>
325
326 * gfortranspec.c (append_arg): Remove commented code.
327
c9ab240e
MM
3282010-10-06 Mikael Morin <mikael@gcc.gnu.org>
329
330 * decl.c (match_procedure_in_type): Assertify if conditions.
331
adb18384
MM
3322010-10-06 Mikael Morin <mikael@gcc.gnu.org>
333
334 * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
335 preprocessing is disabled.
336
d724c876
JJ
3372010-10-06 Jakub Jelinek <jakub@redhat.com>
338
339 PR middle-end/45838
340 * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
341 ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
342 (gfc_define_builtin): Change last argument to int bitmask from bool,
343 control addition of TREE_NOTHROW and leaf attribute as well.
344 (DO_DEFINE_MATH_BUILTIN): Adjust callers.
345 (gfc_init_builtin_functions): Likewise. Remove
346 ATTR_{,CONST_}NOTHROW_LIST enum.
347
a90163e9
AK
3482010-10-04 Andi Kleen <ak@linux.intel.com>
349
350 * Make-lang.in (gfortran, f951): Add + to build rule.
351
e5b16755
RG
3522010-10-04 Richard Guenther <rguenther@suse.de>
353
354 * f95-lang.c (current_translation_unit): New global variable.
355 (gfc_create_decls): Build a translation-unit decl.
356 (pushdecl): In the global binding-level use the
357 translation-unit decl as DECL_CONTEXT.
358 * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
359 (build_function_decl): Likewise. Delay setting the assembler
360 name, leave setting of DECL_CONTEXT to pushdecl.
361 (trans_function_start): Use DECL_FILE_SCOPE_P.
362 (gfc_create_module_variable): Likewise. Remove questionable
363 asserts.
364 * trans.c (gfc_generate_module_code): Likewise.
365
82a1c2fe
FXC
3662010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
367
368 * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
369 instead of duplicating code.
370 * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
371 BASEVER.
372
8b932a71
JW
3732010-10-02 Janus Weil <janus@gcc.gnu.org>
374
375 PR fortran/45748
376 * resolve.c (resolve_formal_arglist): Avoid setting default type for
377 formal arguments of intrinsic procedures.
378
03d79dc3
JW
3792010-09-30 Janus Weil <janus@gcc.gnu.org>
380
381 PR fortran/45828
382 * resolve.c (resolve_allocate_expr): Do not use
383 'gfc_has_default_initializer'.
384
e9853e1c
TB
3852010-09-30 Tobias Burnus <burnus@net-b.de>
386
387 * gfortran.tex (Fortran 2008 status): Update list of
388 implemented features.
389
f0036cca
JM
3902010-09-29 Joseph Myers <joseph@codesourcery.com>
391
392 * lang.opt: Don't use VarExists.
393
e3339d0f
JM
3942010-09-29 Joseph Myers <joseph@codesourcery.com>
395
396 * cpp.c (cpp_define_builtins): Update names of gfc_option_t
397 members.
398 (gfc_cpp_post_options): Update names of cpp_options members.
399 (cb_cpp_error): Update names of diagnostic_context members.
400 * f95-lang.c (gfc_init_builtin_functions): Update names of
401 gfc_option_t members.
402 * gfortran.h (gfc_option_t): Rename warn_conversion and
403 flag_openmp.
404 * intrinsic.c (gfc_convert_type_warn): Update names of
405 gfc_option_t members.
406 * options.c (gfc_init_options, gfc_post_options, set_Wall,
407 gfc_handle_option): Update names of gfc_option_t members.
408 * parse.c (next_free, next_fixed): Update names of gfc_option_t
409 members.
410 * scanner.c (pedantic): Remove extern declaration.
411 (skip_free_comments, skip_fixed_comments, include_line): Update
412 names of gfc_option_t members.
413 * trans-decl.c (gfc_generate_function_code): Update names of
414 gfc_option_t members.
415
41804a5b
TB
4162010-09-28 Tobias Burnus <burnus@net-b.de>
417
418 PR fortran/40569
419 PR fortran/40568
420 * intrinsic.c (add_functions): Make compiler_version and
421 compiler_options CLASS_INQUIRY.
422 * gfortran.h (gfc_get_option_string): New prototype.
423 * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
424 Add documentation.
425 (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
426 (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
427 (ISO_C_BINDING): Refer to C_SIZEOF.
428 * options.c (gfc_get_option_string): New function.
429 * simplify.c (gfc_simplify_compiler_options): Use it.
430 (gfc_simplify_compiler_version): Include compiler name.
431
0d6e14fd
JH
4322010-09-28 Jan Hubicka <jh@suse.cz>
433
434 * f95-lang.c (gfc_define_builtin): Make leaf.
435 (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
436 and ATTR_NOTHROW_LEAF_LIST.
437 (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
438 (DEF_GOMP_BUILTIN): Likewise.
439
4ed5664e
TB
4402010-09-28 Tobias Burnus <burnus@net-b.de>
441
442 PR fortran/45756
443 * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
444 module parameters.
445
d000aa67
TB
4462010-09-27 Tobias Burnus <burnus@net-b.de>
447
448 PR fortran/40569
449 PR fortran/40568
450 * intrinsic.h (gfc_simplify_compiler_options,
451 gfc_simplify_compiler_version): New prototypes.
452 * intrinsic.c (gfc_intrinsic_function_by_id,
453 make_from_module): New functions.
454 (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
455 gfc_specific_intrinsic): Don't return module intrinsics.
456 (add_functions): Add compiler_options, compiler_version.
457 (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
458 * symbol.c (std_for_isocbinding_symbol): Add version check for
459 NAMED_FUNCTIONS.
460 * iso-fortran-env.def: Add compiler_options, compiler_version.
461 * iso-c-binding.def: Add c_sizeof.
462 * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
463 (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
464 (gfc_intrinsic_function_by_id): New prototype.
465 * module.c (create_intrinsic_function): New function.
466 (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
467 * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
468 * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
469 by ISYM ID.
470 * simplify.c (gfc_simplify_compiler_options,
471 gfc_simplify_compiler_version): New functions.
472
414e8be2
DK
4732010-09-26 Daniel Kraft <d@domob.eu>
474
475 PR fortran/45783
476 PR fortran/45795
477 * resolve.c (resolve_select_type): Clarify code.
478 (resolve_assoc_var): Only set typespec if it is currently unknown.
479
d6f3358f
JD
4802010-09-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
481
482 PR fortran/45793
483 * module.c (create_int_parameter_array): Set the array value shape.
484
de514255
TB
4852010-09-25 Tobias Burnus <burnus@net-b.de>
486
487 * gfortran.texi: Re-add accidently removed \input line.
488
8e8dc060
DK
4892010-09-25 Daniel Kraft <d@domob.eu>
490
491 PR fortran/45776
492 * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
493 * io.c (resolve_tag): F2008 check for NEWUNIT and variable
494 definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
495 (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
496 `extra_comma' with changed semantics.
497 (gfc_resolve_dt): Check variable definitions.
498 (match_io_element): Remove INTENT and PURE checks here and
499 initialize code->ext.dt member.
500 (match_io): Set dt->dt_io_kind.
501 (gfc_resolve_inquire): Check variable definition for all tags
502 except UNIT, FILE and ID.
503 * resolve.c (resolve_transfer): Variable definition check.
504
915acec4
TB
5052010-09-25 Tobias Burnus <burnus@net-b.de>
506
507 * interface.c (gfc_match_end_interface): Constify char pointer
508 to fix warning.
509
c6d6e62f
SK
5102010-09-24 Steven G. Kargl < kargl@gcc.gnu.org>
511
915acec4 512 * interface.c (gfc_match_end_interface): Deal with user defined
c6d6e62f
SK
513 operators that overload rational operators and C1202.
514
3994c6b1
TB
5152010-09-24 Tobias Burnus <burnus@net-b.de>
516
517 * gfortran.texi: Add second space after end-of-sentence period;
518 change / to /@/ to allow hyphenation of URLs.
519 (Standards): Remove duplicated OpenMP, update wording given that
520 Fortran 2008 now released.
521 (Fortran 2008 status): Update and add list of implemented features.
522
be1f1ed9
TB
5232010-09-24 Tobias Burnus <burnus@net-b.de>
524
525 PR fortran/40571
526 * iso-fortran-env.def: Add NAMED_KINDARRAY with
527 character_kinds, integer_kinds, logical_kinds and
528 real_kinds.
529 * gfortran.h: Add them to iso_fortran_env_symbol.
530 * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
531 LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
532 libgfortran_stat_codes to libgfortran_error_codes.
533 * module.c (create_int_parameter_array): New function.
534 (use_iso_fortran_env_module): Use it for
535 NAMED_KINDARRAY of iso-fortran-env.def.
536 * trans-decl.c (gfc_get_symbol_decl): Parameter
537 arrays of intrinsics modules become local static variables.
538 * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
539 integer_kinds, logical_kinds and real_kinds.
540
962b8a0e
TK
5412010-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
542
543 PR fortran/45744
544 * frontend-passes.c (optimize_binop_array_assignment):
545 Only re-use lhs as intermediate storage if kind and type
546 parameters match.
547
bef6486a
MM
5482010-09-23 Mikael Morin <mikael@gcc.gnu.org>
549
550 PR fortran/45745
551 PR fortran/45648
962b8a0e
TK
552 * trans-array.c (gfc_conv_expr_descriptor): Handle
553 ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
bef6486a 554
87350d4a
TB
5552010-09-23 Tobias Burnus <burnus@net-b.de>
556
557 * intrinsic.texi (OpenMP modules): Add named constants of
558 OMP_LIB.
559
8c91ab34
DK
5602010-09-23 Daniel Kraft <d@domob.eu>
561
562 PR fortran/38936
563 PR fortran/44044
564 PR fortran/45474
565 * gfortran.h (gfc_check_vardef_context): New method.
566 (struct symbol_attribute): New flag `select_type_temporary'.
567 * primary.c (gfc_variable_attr): Clarify initialization of ref.
568 (match_variable): Remove PROTECTED check and assignment check
569 for PARAMETERs (this is now done later).
570 * match.c (gfc_match_iterator): Remove INTENT(IN) check.
571 (gfc_match_associate): Defer initialization of newAssoc->variable.
572 (gfc_match_nullify): Remove PURE definability check.
573 (select_type_set_tmp): Set new `select_type_temporary' flag.
574 * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
575 (gfc_check_pointer_assign): Ditto (and other checks removed).
576 (gfc_check_vardef_context): New method.
577 * interface.c (compare_parameter_protected): Removed.
578 (compare_actual_formal): Use `gfc_check_vardef_context' for checks
579 related to INTENT([IN]OUT) arguments.
580 * intrinsic.c (check_arglist): Check INTENT for intrinsics.
581 * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
582 (remove_last_array_ref): New method.
583 (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
584 (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
585 (resolve_assoc_var): Remove checks for definability here.
586 (resolve_select_type): Handle resolving of code->block here.
587 (resolve_ordinary_assign): Remove PURE check.
588 (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
589 Use `gfc_check_vardef_context' for assignments and pointer-assignments.
590
ab940b73
RW
5912010-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
592
593 * gfortran.texi (Argument list functions): Allow URL to wrap.
594 * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
595 (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
596 (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
597 code markups in the text.
598 * invoke.texi (Fortran Dialect Options)
599 (Error and Warning Options, Directory Options, Code Gen Options):
600 Likewise. Remove @code inside @smallexample.
601
e200444e
JM
6022010-09-22 Joseph Myers <joseph@codesourcery.com>
603
604 * gfortranspec.c (lang_specific_driver): Handle OPT__version and
605 OPT__help instead of OPT_fversion and OPT_fhelp.
606 * lang.opt (-all-warnings, -assert, -assert=, -comments,
607 -comments-in-macros, -define-macro, -define-macro=, -dependencies,
608 -dump, -dump=, -include-barrier, -include-directory,
609 -include-directory=, -include-directory-after,
610 -include-directory-after=, -include-prefix, -include-prefix=,
611 -no-line-commands, -no-standard-includes, -output, -output=,
612 -preprocess, -print-missing-file-dependencies, -trace-includes,
613 -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
614 -write-dependencies, -write-user-dependencies): New.
615
ec5e67bf
JB
6162010-09-21 Jason Blevins <jrblevin@sdf.org>
617
618 * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
619 execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
620 Correct spelling.
621
0b4f2770
MM
6222010-09-21 Mikael Morin <mikael@gcc.gnu.org>
623
624 PR fortran/45648
625 * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
626 info->dim.
627
628 PR fortran/45648
629 * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
630 accessing dimensions in reversed order.
631
632 PR fortran/45648
633 * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
634 intrinsic function call.
635
636 * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
637 Update asserts accordingly.
638
639 PR fortran/45648
640 * trans.h (gfc_se): New field force_tmp.
641 * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
642 and set parmse.force_tmp if some alias is found.
643 * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
644 if se->force_tmp is set.
645
48dbbcd6
JW
6462010-09-20 Janus Weil <janus@gcc.gnu.org>
647
648 PR fortran/45438
649 * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
650 TBPs, PPCs and pointer/allocatable components.
651
15c2ef5a
PT
6522010-09-20 Paul Thomas <pault@gcc.gnu.org>
653
654 PR fortran/45081
655 * simplify.c (is_constant_array_expr): Allow structure array
656 elements as well as constants.
657 (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
658 gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
659 type of source to the result.
660
1151446c
TK
6612010-09-19 Thomas Koenig <tkoenig@gcc.gnu.org>
662
663 * frontend-passes.c (gfc_expr_walker): Also
664 handle EXPR_SUBSTRING.
665
6662010-09-19 Thomas Koenig <tkoenig@gcc.gnu.org>
46f19baf
TK
667
668 * frontend-passes.c (gfc_expr_walker): Handle
669 constructors and references.
670
6dfd24f7
TB
6712010-09-16 Tobias Burnus <burnus@net-b.de>
672
673 PR fortran/43665
674 * trans-types.c (create_fn_spec): New function.
675 (gfc_get_function_type): Call it.
676
4d42b5cd
JJ
6772010-09-16 Jakub Jelinek <jakub@redhat.com>
678
679 * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
680 (gfc_expr_walker, gfc_code_walker): New prototypes.
681 * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
682 (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
683 (optimize_namespace): Use gfc_code_walker.
684 (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
685 (optimize_expr_0, optimize_code_node,
686 optimize_actual_arglist): Removed.
687 (optimize_assignment): Don't call optimize_expr_0.
688
7d58b9e7
JW
6892010-09-16 Janus Weil <janus@gcc.gnu.org>
690
691 PR fortran/45674
692 * interface.c (compare_parameter): Create vtab for actual argument,
693 instead of formal (if needed).
694
edd2b56a
JW
6952010-09-15 Janus Weil <janus@gcc.gnu.org>
696
697 PR fortran/45577
698 * resolve.c (resolve_allocate_expr): Do default initialization via
699 EXEC_INIT_ASSIGN.
700
a67189d4
FXC
7012010-09-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
702
703 * mathbuiltins.def: Do not defined huge_val built-in.
704 * trans-const.c (gfc_build_inf_or_huge): New function.
705 * trans-const.h (gfc_build_inf_or_huge): New prototype.
706 * f95-lang.c (gfc_init_builtin_functions): Don't defined
707 huge_val built-ins.
708 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
709 have functions of type (*) (void) anymore.
710 (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
711 (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
712 of generating a call to huge_val().
713
712efae1
MM
7142010-09-11 Mikael Morin <mikael@gcc.gnu.org>
715
716 * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
717 * dependency.c (gfc_check_dependency): Don't depend on
718 expr's inline_noncopying_intrinsic_attribute.
719 * dependency.c (gfc_check_argument_var_dependency,
720 gfc_check_argument_dependency): Ditto. Recursively check dependency
721 as NOT_ELEMENTAL in the non-copying (=transpose) case.
722 * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
723 * resolve.c (find_noncopying_intrinsics): Remove.
724 (resolve_function, resolve_call): Remove call to
725 find_noncopying_intrinsics.
726
727 * trans-array.c (gfc_conv_array_transpose): Remove.
728 (gfc_walk_subexpr): Make non-static. Move prototype...
729 * trans-array.h (gfc_walk_subexpr): ... here.
730 * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
731 handling.
732 (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
733 gfc_inline_intrinsic_function_p): New.
734 (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
735 Remove transpose from the libcall list.
736 (gfc_walk_intrinsic_function): Special case inline intrinsic.
737 * trans.h (gfc_inline_intrinsic_function_p): New prototype.
738
0ae6242f
MM
7392010-09-10 Mikael Morin <mikael@gcc.gnu.org>
740
741 * trans-expr.c (expr_is_variable): New function taking non-copying
742 intrinsic functions into account.
743 (gfc_trans_assignment_1): Use expr_is_variable.
744
4b4c18e2
MM
7452010-09-10 Mikael Morin <mikael@gcc.gnu.org>
746
747 * trans-array.c (gfc_conv_loop_setup): Access the shape along the
748 real array dimension instead of the scalarizer (loop) dimension.
749
af804603
MM
7502010-09-10 Mikael Morin <mikael@gcc.gnu.org>
751
752 * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
753 transposed references.
754
5d44e5c8
TB
7552010-09-10 Tobias Burnus <burnus@net-b.de>
756
757 PR fortran/45186
758 * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
759 build4_stat_loc): New inline functions.
760 (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
761 (build1_v, build2_v, build3_v, build4_v): Use input_location
762 as locus.
763 * trans-array.c (gfc_trans_scalarized_loop_end,
764 gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
765 * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
766 gfc_finish_wrapped_block): Ditto.
767 * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
768 * trans-expr.c (gfc_conv_missing_dummy,
769 gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
770 * trans-openmp.c (gfc_omp_clause_default_ctor,
771 gfc_trans_omp_critical, gfc_trans_omp_parallel,
772 gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
773 gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
774 gfc_trans_omp_single, gfc_trans_omp_task,
775 gfc_trans_omp_workshare): Ditto.
776
26865ab4
SK
7772010-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
778
779 * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
780 for dummy argument that appears in a specification statement.
781
99da3840
MM
7822010-09-09 Mikael Morin <mikael@gcc.gnu.org>
783
784 * trans-array.c (gfc_get_array_ref_dim): New function.
785 (gfc_trans_create_temp_array): Reconstruct array
786 bounds from loop bounds. Use array bounds instead of loop bounds.
787
e3cdb7cf
MM
7882010-09-09 Mikael Morin <mikael@gcc.gnu.org>
789
790 * trans-array.c (gfc_set_loop_bounds_from_array_spec):
791 Get the array dimension from the dim array.
792
79c3dc5f
MM
7932010-09-09 Mikael Morin <mikael@gcc.gnu.org>
794
795 * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
796 dim array to get the stride in the innermost loop.
797
ffc3bba4
MM
7982010-09-09 Mikael Morin <mikael@gcc.gnu.org>
799
800 * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
801 (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
802 * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
803
ea5e803f
MM
8042010-09-09 Mikael Morin <mikael@gcc.gnu.org>
805
806 * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
807 and info dimension are the same. Loop over loop dimension.
808 * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
809
d09b9f67
MM
8102010-09-09 Mikael Morin <mikael@gcc.gnu.org>
811
812 * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
813 name
814
1a14a58c
TB
8152010-09-09 Tobias Burnus <burnus@net-b.de>
816
817 PR fortran/43665
818 * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
819 STAT): Show also syntax for the function version.
820 * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
821 add_sym_3s_intent): Remove function.
822 (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
823 as argument.
824 (add_sym_2_intent): New function.
825 (add_functions): Set intent for functions which modify
826 the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
827 argument name of hostnm from "a" to "c"
828 (add_subroutines): Change add_sym_*s_intent to
829 add_sym_*s and add intent to the add_sym_*s calls.
830
88a95a11
FXC
8312010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
832
833 PR fortran/38282
834 * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
835 MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
836 * gfortran.h: Define ISYM values for above intrinsics.
837 * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
838 gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
839 gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
840 gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
841 gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
842 gfc_simplify_merge_bits, gfc_simplify_rshift,
843 gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
844 gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
845 gfc_resolve_shift): New prototypes.
846 * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
847 gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
848 * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
849 gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
850 functions.
851 * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
852 gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
853 gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
854 functions.
855 (gfc_conv_intrinsic_function): Call above static functions.
856 * intrinsic.texi: Document new intrinsics.
857 * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
858 gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
859 gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
860 gfc_simplify_merge_bits, gfc_simplify_rshift,
861 gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
862 New functions.
863
9c2934f4
JJ
8642010-09-08 Jakub Jelinek <jakub@redhat.com>
865
7d124e66
JJ
866 * frontend-passes.c (optimize_code_node): Walk block chain by default.
867
7602cb87
JJ
868 PR fortran/45597
869 * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
870 instead of code->block.
871
9c2934f4
JJ
872 PR fortran/45595
873 * openmp.c (resolve_omp_do): Report not enough do loops for
874 collapse even if block->next is NULL.
875
c56c0853
TK
8762010-09-07 Thomas Koenig <tkoenig@gcc.gnu.org>
877
878 PR fortran/45576
879 * dependency.c (gfc_deb_compare_expr): Take missing optional
880 arguments into account.
881
16c0e295
FXC
8822010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
883
884 * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
885 * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
886 (gfc_build_intrinsic_function_decls): Don't build the
887 gfor_fndecl_clz128 and gfor_fndecl_ctz128.
888 * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
889 gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
890 of calling clz128/ctz128 library functions.
891
fa9a7193
JH
8922010-09-07 Jan Hubicka <jh@suse.cz>
893
16c0e295
FXC
894 * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
895 initializers.
fa9a7193 896
21e92849
TB
8972010-09-07 Tobias Burnus <burnus@net-b.de>
898
899 PR fortran/45583
900 * intrinsic.texi (COS): Remove superfluous "n".
901
94471a56
TB
9022010-09-07 Tobias Burnus <burnus@net-b.de>
903
904 PR fortran/45186
905 * trans-array.c (gfc_conv_descriptor_data_get,
906 gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
907 gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
908 gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
909 gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
910 gfc_conv_shift_descriptor_lbound,
911 gfc_set_loop_bounds_from_array_spec,
912 gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
913 gfc_conv_array_transpose, gfc_get_iteration_count,
914 gfc_grow_array, gfc_trans_array_ctor_element,
915 gfc_trans_array_constructor_subarray,
916 gfc_trans_array_constructor_value,
917 constant_array_constructor_loop_size, gfc_trans_array_constructor,
918 gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
919 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
920 gfc_conv_array_ref, gfc_trans_preloop_setup,
921 gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
922 gfc_conv_loop_setup, gfc_conv_array_extent_dim,
923 gfc_conv_descriptor_size, gfc_array_init_size,
924 gfc_array_allocate, gfc_array_deallocate,
925 gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
926 gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
927 get_array_charlen, gfc_conv_expr_descriptor,
928 array_parameter_size, gfc_conv_array_parameter,
929 gfc_trans_dealloc_allocated, get_full_array_size,
930 duplicate_allocatable,
931 structure_alloc_comps): Change fold_build[0-9] to
932 fold_build[0-9]_loc.
933 (duplicate_allocatable, structure_alloc_comps,
934 gfc_duplicate_allocatable): Add space after function name.
935
86e033e2
MM
9362010-09-07 Mikael Morin <mikael@gcc.gnu.org>
937
938 * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
939 checking string length value.
940 * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
941 gfc_charlen_type_node type.
942
943 PR fortran/45564
944 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
945 length to gfc_charlen_type_node.
946
5c599206
TK
9472010-09-06 Thomas Koenig <tkoenig@gcc.gnu.org>
948
949 PR fortran/36931
950 * frontend-passes.c (optimize_binop_array_assignment): New
951 function.
952 (optimize_assignment): Call it.
953
f884552b
TK
9542010-09-06 Thomas Koenig <tkoenig@gcc.gnu.org>
955
956 PR fortran/34145
957 * trans-expr.c (gfc_conv_substring): If start and end
958 of the string reference are equal, set the length to one.
959
f973b648
TB
9602010-09-06 Tobias Burnus <burnus@net-b.de>
961
962 PR fortran/45560
963 * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
964
3c7ac37e
TB
9652010-09-06 Tobias Burnus <burnus@net-b.de>
966
967 PR fortran/45560
968 * dump-parse-tree.c (gfc_debug_expr): New function.
969
195a95c4
TB
9702010-09-06 Tobias Burnus <burnus@net-b.de>
971
972 PR fortran/38282
973 * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
974 (check_specific): Special case for those intrinsics.
975 * gfortran.h (gfc_isym_id): Add new intrinsics
976 * intrinsic.h (gfc_check_transf_bit_intrins,
977 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
978 gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
979 New prototypes.
980 * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
981 gfc_resolve_iparity, resolve_transformational): New functions.
982 (gfc_resolve_product, gfc_resolve_sum,
983 gfc_resolve_parity): Use resolve_transformational.
984 * check.c (gfc_check_transf_bit_intrins): New function.
985 * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
986 gfc_simplify_iparity, do_bit_any, do_bit_ior,
987 do_bit_xor, simplify_transformation): New functions.
988 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
989 gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
990 * trans-intrinsic.c (gfc_conv_intrinsic_arith,
991 gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
992 Handle IALL, IANY and IPARITY intrinsics.
993 * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
994 order.
995 (IALL, IANY, IPARITY): Document new intrinsics.
996
433ce291
TB
9972010-09-05 Tobias Burnus <burnus@net-b.de>
998
999 PR fortran/45186
1000 * f95-lang.c (gfc_truthvalue_conversion): Use
1001 fold_build[0-9]_loc instead of fold_build[0-9].
1002 * convert.c (convert): Ditto.
1003 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1004 build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
1005 gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
1006 gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
1007 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
1008 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1009 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1010 gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
1011 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1012 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
1013 gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
1014 gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
1015 gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
1016 gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1017 gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
1018 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1019 gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
1020 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
1021 gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
1022 gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
1023 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
1024 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
1025 size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
1026 gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
1027 gfc_conv_intrinsic_transfer, gfc_conv_allocated,
1028 gfc_conv_associated, gfc_conv_same_type_as,
1029 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
1030
e0608471
TB
10312010-09-04 Tobias Burnus <burnus@net-b.de>
1032
1033 PR fortran/45530
1034 * resolve.c (resolve_fl_namelist): Change constraint checking
1035 order to prevent endless loop.
1036
b6ff8128
JW
10372010-09-04 Janus Weil <janus@gcc.gnu.org>
1038
1039 PR fortran/45507
1040 * resolve.c (resolve_allocate_expr): Generate default initializers
1041 already at this point, resolve them and put them into expr3, ...
1042 * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
1043 translation stage.
1044
65a9ca82
TB
10452010-09-03 Tobias Burnus <burnus@net-b.de>
1046
1047 PR fortran/45186
1048 * trans-intrinsic.c (gfc_conv_intrinsic_sign,
1049 gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
1050 of build_call_expr.
1051 * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
1052 gfc_conv_string_length, gfc_conv_substring,
1053 gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1054 gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1055 gfc_conv_expr_op, gfc_build_compare_string,
1056 gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
1057 gfc_conv_derived_to_class, conv_isocbinding_procedure,
1058 gfc_conv_procedure_call, fill_with_spaces,
1059 gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
1060 gfc_trans_structure_assign, gfc_trans_pointer_assignment,
1061 gfc_trans_scalar_assign, gfc_trans_zero_assign,
1062 gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
1063 fold_build[0-9] to fold_build[0-9]_loc.
1064 * trans-io.c (set_parameter_const, set_parameter_value,
1065 set_parameter_ref, gfc_convert_array_to_string, set_string,
1066 set_internal_unit, io_result, set_error_locus,
1067 nml_get_addr_expr, build_dt): Ditto.
1068 * trans-openmp.c (gfc_omp_clause_default_ctor,
1069 gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1070 gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
1071 gfc_trans_omp_do): Ditto.
1072 * trans.c (gfc_add_modify, gfc_build_addr_expr,
1073 gfc_build_array_ref, gfc_trans_runtime_error_vararg,
1074 gfc_trans_runtime_check, gfc_call_malloc,
1075 gfc_allocate_with_status, gfc_allocate_array_with_status,
1076 gfc_call_free, gfc_deallocate_with_status,
1077 gfc_call_realloc): Ditto.
1078
124a8ce6
TK
10792010-09-03 Thomas Koenig <tkoenig@gcc.gnu.org>
1080
1081 PR fortran/45159
1082 * dependency.c (gfc_deb_compare_expr): Compare equal for equal
1083 arglists for pure user functions, or for those intrinsic
1084 functions which are also pure.
1085 * intrinsics.c (add_conv): Mark conversion functions as pure.
1086 (add_char_conversions): Likewise.
1087
5792039f
DK
10882010-09-03 Daniel Kraft <d@domob.eu>
1089
1090 PR fortran/34162
1091 * resolve.c (resolve_actual_arglist): Allow internal procedure
1092 as actual argument with Fortran 2008.
1093
e5ca9693
DK
10942010-09-03 Daniel Kraft <d@domob.eu>
1095
1096 PR fortran/44602
1097 * gfortran.h (struct gfc_code): Renamed `whichloop' to
1098 `which_construct' as this is no longer restricted to loops.
1099 * parse.h (struct gfc_state_data): New field `construct'.
1100 * match.c (match_exit_cycle): Handle EXIT from non-loops.
1101 * parse.c (push_state): Set `construct' field.
1102 * resolve.c (resolve_select_type): Extend comment.
1103 * trans-stmt.c (gfc_trans_if): Add exit label.
1104 (gfc_trans_block_construct), (gfc_trans_select): Ditto.
1105 (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
1106 (gfc_trans_do), (gfc_trans_do_while): Ditto.
1107 (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
1108 (gfc_trans_cycle): Ditto.
1109 (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
1110
36d9e52f
FXC
11112010-09-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1112
1113 * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
1114 (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
1115 (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
1116 * intrinsic.texi (RSHIFT): Fix documentation.
1117
bc98ed60
TB
11182010-09-02 Tobias Burnus <burnus@net-b.de>
1119
1120 PR fortran/45186
1121 * trans-common.c (create_common): Change build[0-9] to
1122 build[0-9]_loc.
1123 * trans-const.c (gfc_conv_constant_to_tree,
1124 gfc_conv_constant_to_tree): Ditto.
1125 * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
1126 gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
1127 add_argument_checking, create_main_function,
1128 gfc_generate_return): Ditto.
1129 * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
1130 * trans-stmt.c (allocate_temp_for_forall_nest_1,
1131 compute_inner_temp_size, compute_overall_iter_number,
1132 generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
1133 gfc_conv_elemental_dependencies, gfc_do_allocate,
1134 gfc_evaluate_where_mask, gfc_trans_allocate,
1135 gfc_trans_arithmetic_if, gfc_trans_call,
1136 gfc_trans_character_select, gfc_trans_deallocate,
1137 gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
1138 gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
1139 gfc_trans_integer_select, gfc_trans_logical_select,
1140 gfc_trans_pointer_assign_need_temp, gfc_trans_return,
1141 gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
1142 gfc_trans_where_assign) Ditto.
1143
c330d181
JW
11442010-09-02 Janus Weil <janus@gcc.gnu.org>
1145
1146 PR fortran/44541
1147 * resolve.c (resolve_symbol): Correct check for attributes of CLASS
1148 variable.
1149
86e6a239
TB
11502010-09-02 Tobias Burnus <burnus@net-b.de>
1151
1152 PR fortran/45489
1153 * resolve.c (apply_default_init): Mark symbol as referenced,
1154 if it is initialized.
1155 (resolve_symbol): Change intialized check for BT_DERIVED such
1156 that also function results get initialized; remove now obsolete
1157 gfc_set_sym_referenced for BT_CLASS.
1158
50f30801
JW
11592010-09-01 Janus Weil <janus@gcc.gnu.org>
1160
1161 PR fortran/44541
1162 * class.c (gfc_find_derived_vtab): Add component '$def_init'.
1163 * resolve.c (resolve_allocate_expr): Defer handling of default
1164 initialization to 'gfc_trans_allocate'.
1165 (apply_default_init,resolve_symbol): Handle polymorphic dummies.
1166 (resolve_fl_derived): Suppress error messages for vtypes.
1167 * trans-stmt.c (gfc_trans_allocate): Handle initialization via
1168 polymorphic MOLD expression.
1169 * trans-expr.c (gfc_trans_class_init_assign): Now only used for
1170 dummy initialization.
1171
f39168b3
TB
11722010-09-01 Tobias Burnus <burnus@net-b.de>
1173
1174 * gfortran.texi (preprocessing): Update URL to COCO.
1175
eacbdaaa
FXC
11762010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1177
1178 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
1179 array quad_decls. Remove unnecessary assignment.
1180
166d08bd
FXC
11812010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1182
1183 * trans-expr.c (gfc_conv_power_op): Handle floating-point types
1184 other than long double.
1185 * mathbuiltins.def: Add builtins from the POW and CPOW family.
1186 * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
1187 * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
1188 prefix to function name.
1189 (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
1190 (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
1191 function name.
1192 (gfc_conv_intrinsic_exponent): Likewise.
1193 (gfc_conv_intrinsic_abs): Likewise.
1194 (gfc_conv_intrinsic_mod): Likewise.
1195 (gfc_conv_intrinsic_sign): Likewise.
1196 (gfc_conv_intrinsic_arith): Likewise.
1197 (gfc_conv_intrinsic_fraction): Likewise.
1198 (gfc_conv_intrinsic_nearest): Likewise.
1199 (gfc_conv_intrinsic_spacing): Likewise.
1200 (gfc_conv_intrinsic_rrspacing): Likewise.
1201 (gfc_conv_intrinsic_scale): Likewise.
1202 (gfc_conv_intrinsic_set_exponent): Likewise.
1203
c14c8155
FXC
12042010-09-01 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1205
1206 * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
1207 * intrinsic.h (gfc_resolve_execute_command_line): New function.
1208 * iresolve.c (gfc_resolve_execute_command_line): New function.
1209 * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
1210 * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
1211
ad5f4de2
FXC
12122010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1213
1214 PR fortran/38282
1215 * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
1216 and parity{,l,ll} builtins.
1217 * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
1218 (gfc_conv_intrinsic_function): Call above new functions.
1219 * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
1220 functions.
1221 * intrinsic.texi: Document POPCNT and POPPAR.
1222
e8cd3983
JW
12232010-08-30 Janus Weil <janus@gcc.gnu.org>
1224
1225 PR fortran/45456
1226 * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
1227
f024c89f
FXC
12282010-08-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1229
1230 * Make-lang.in: Add frontend-passes.o dependencies.
1231
bd48f123
JW
12322010-08-29 Janus Weil <janus@gcc.gnu.org>
1233
1234 PR fortran/42769
1235 * resolve.c (resolve_structure_cons): For derived types, make sure the
1236 type has been resolved.
1237 (resolve_typebound_procedures): Make sure the vtab has been generated.
1238
f08f8b6a
JW
12392010-08-29 Janus Weil <janus@gcc.gnu.org>
1240
1241 PR fortran/45439
1242 * match.c (gfc_match_select_type): Give the associate-name the
1243 FL_VARIABLE attribute.
1244
bd48f123 12452010-08-28 Steven G. Kargl <kargl@gcc.gnu.org>
4c6e913c
SK
1246
1247 * simplify.c (gfc_simplify_bessel_n2): Fix indention
1248 and argument type.
1249
e84f122f
FXC
12502010-08-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1251
1252 PR fortran/45436
1253 * trans-types.c (gfc_init_kinds): Disable TFmode.
1254
b052cbd0
JW
12552010-08-27 Janus Weil <janus@gcc.gnu.org>
1256
1257 PR fortran/45432
1258 * match.c (gfc_match_allocate): Avoid double free on error.
1259
a3c85b74
FXC
12602010-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1261
1262 PR fortran/32049
1263 * gfortran.h (gfc_real_info): Add c_float128 field.
1264 * mathbuiltins.def: Indicate which builtins are const.
1265 * trans-types.h (float128_type_node, complex_float128_type_node,
1266 gfc_real16_is_float128): New variables.
1267 * trans-types.c (float128_type_node, complex_float128_type_node,
1268 gfc_real16_is_float128): New variables.
1269 (gfc_init_kinds): Allow TFmode.
1270 (gfc_build_real_type): Mark __float128 types as such.
1271 (gfc_init_types): Initialize float128_type_node and
1272 complex_float128_type_node
1273 * f95-lang.c (gfc_init_builtin_functions): Adjust for new
1274 argument of OTHER_BUILTIN macro.
1275 * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
1276 (builtin_decl_for_precision): Special case for __float128.
1277 (builtin_decl_for_float_kind): Likewise.
1278 (define_quad_builtin): New function.
1279 (gfc_build_intrinsic_lib_fndecls): Create all __float128
1280 library decls if necessary. Store them in the real16_decl and
1281 complex16_decl builtin map fields.
1282 (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
1283 library function names.
1284
0cd0559e
TB
12852010-08-27 Tobias Burnus <burnus@net-b.de>
1286
1287 PR fortran/33197
1288 * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
1289 * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
1290 gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
1291 gfc_resolve_parity): New prototypes.
1292 * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
1293 GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
1294 * gcc/fortran/iresolve.c (gfc_resolve_norm2,
1295 gfc_resolve_parity): New functions.
1296 * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
1297 New functions.
1298 * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
1299 gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
1300 * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
1301 * gcc/fortran/simplify.c (simplify_transformation_to_array):
1302 Add post-processing opterator.
1303 (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1304 gfc_simplify_product, gfc_simplify_sum): Update call.
1305 (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
1306 gfc_simplify_parity): New functions.
1307
cbadd64a
JW
13082010-08-27 Janus Weil <janus@gcc.gnu.org>
1309
1310 PR fortran/45420
1311 * match.c (select_type_set_tmp): Add the possibility to reset the
1312 temporary to NULL.
1313 (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
1314
e240f0f4
TK
13152010-08-27 Thomas Koenig <tkoenig@gcc.gnu.org>
1316
1317 PR fortran/45159
1318 * dependency.c (check_section_vs_section): Single test for
1319 identical strides which takes into account that only one
1320 of the strides may be NULL.
1321
401fcd3b
JD
13222010-08-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1323
1324 PR fortran/43217
1325 * primary.c (match_hollerith_constant): Calculate padding needed to
1326 fill default integer and allocate string for that size. Set pad bytes
1327 to ' '.
1328 * gfortran.h: Add hollerith pad value to type spec union.
1329 * data.c (create_character_initializer): Fix spelling of function name.
1330 Use hollerith pad value to calculate length.
1331 * arith.c (hollerith2representation); Use hollerith pad value to
1332 calculate length.
1333
3e78238a
DK
13342010-08-26 Daniel Kraft <d@domob.eu>
1335
1336 PR fortran/38936
1337 PR fortran/44047
1338 PR fortran/45384
1339 * gfortran.h (struct gfc_association_list): New flag `dangling'.
1340 (gfc_build_block_ns): Declared here...
1341 * parse.h (gfc_build_block_ns): ...instead of here.
1342 * trans.h (gfc_process_block_locals): Expect additionally the
1343 gfc_association_list of BLOCK (if present).
1344 * match.c (select_type_set_tmp): Create sym->assoc for temporary.
1345 * resolve.c (resolve_variable): Only check for invalid *array*
1346 references on associate-names.
1347 (resolve_assoc_var): New method with code previously in resolve_symbol.
1348 (resolve_select_type): Use association to give the selector and
1349 temporaries their values instead of ordinary assignment.
1350 (resolve_fl_var_and_proc): Allow CLASS associate-names.
1351 (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
1352 * trans-stmt.c (gfc_trans_block_construct): Pass association-list
1353 to `gfc_process_block_locals' to match new interface.
1354 * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
1355 here automatically.
1356 (gfc_process_block_locals): Defer them rather here when linked to
1357 from the BLOCK's association list.
1358
22b139e1
JJ
13592010-08-25 Jakub Jelinek <jakub@redhat.com>
1360
1361 * trans-decl.c (gfc_build_intrinsic_function_decls): Set
1362 TREE_NOTHROW on fndecls that can't throw. Set
1363 TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
1364 (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
1365 gfor_fndecl_associated.
1366
c0d15a77
MM
13672010-08-23 Mikael Morin <mikael@gcc.gnu.org>
1368
1369 PR fortran/45380
1370 * frontend-passes.c (optimize_equality): Don't optimize array equality
1371
2fcac97d
JW
13722010-08-23 Janus Weil <janus@gcc.gnu.org>
1373
1374 PR fortran/45366
1375 * resolve.c (resolve_procedure_interface): New function split off from
1376 'resolve_symbol'.
1377 (resolve_formal_arglist): Call it here ...
1378 (resolve_symbol): ... and here.
1379
d9d16a19
JM
13802010-08-22 Joseph Myers <joseph@codesourcery.com>
1381
1382 * Make-lang.in (gfortranspec.o): Update dependencies.
1383 * gfortranspec.c: Include coretypes.h before gcc.h. Include
1384 opts.h.
1385 (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
1386 (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
1387 (g77_xargc): Make unsigned.
1388 (g77_xargv): Change to g77_x_decoded_options.
1389 (g77_newargc): Make unsigned.
1390 (g77_newargv): Change to g77_new_decoded_options.
1391 (strings_same, options_same): New.
1392 (append_arg): Use cl_decoded_option structures.
1393 (append_option): New.
1394 (add_arg_libgfortran): New.
1395 (lang_specific_driver): Use cl_decoded_option structures.
1396
1d0134b3
JW
13972010-08-21 Janus Weil <janus@gcc.gnu.org>
1398
1399 PR fortran/45271
1400 PR fortran/45290
1401 * class.c (add_proc_comp): Add static initializer for PPCs.
1402 (add_procs_to_declared_vtab): Modified comment.
1403 * module.c (mio_component): Add argument 'vtype'. Don't read/write the
1404 initializer if the component is part of a vtype.
1405 (mio_component_list): Add argument 'vtype', pass it on to
1406 'mio_component'.
1407 (mio_symbol): Modified call to 'mio_component_list'.
1408 * trans.h (gfc_conv_initializer): Modified prototype.
1409 (gfc_trans_assign_vtab_procs): Removed.
1410 * trans-common.c (create_common): Modified call to
1411 'gfc_conv_initializer'.
1412 * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
1413 gfc_emit_parameter_debug_info): Modified call to
1414 'gfc_conv_initializer'.
1415 (build_function_decl): Remove assertion.
1416 * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1417 Removed call to 'gfc_trans_assign_vtab_procs'.
1418 (gfc_conv_initializer): Add argument 'procptr'.
1419 (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
1420 (gfc_trans_assign_vtab_procs): Removed.
1421 * trans-stmt.c (gfc_trans_allocate): Removed call to
1422 'gfc_trans_assign_vtab_procs'.
1423
47b99694
TB
14242010-08-21 Tobias Burnus <burnus@net-b.de>
1425
1426 PR fortran/36158
1427 PR fortran/33197
1428 * intrinsic.c (add_sym): Init value attribute.
1429 (set_attr_value): New function.
1430 (add_functions) Use it and add JN/YN resolvers.
1431 * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
1432 * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
1433 * gfortran.h (gfc_intrinsic_arg): Add value attribute.
1434 * iresolve.c (gfc_resolve_bessel_n2): New function.
1435 * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
1436 formal arg list.
1437 (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
1438 Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
1439 * simplify.c (): For YN set to -INF if previous values
1440 was -INF.
1441 * trans-expr.c (gfc_conv_procedure_call): Don't crash
1442 if sym->as is NULL.
1443 * iresolve.c (gfc_resolve_extends_type_of): Set the
1444 type of the dummy argument to the one of the actual.
1445
ca865c2b
JM
14462010-08-20 Joseph Myers <joseph@codesourcery.com>
1447
1448 * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
1449
1d4d9588
JM
14502010-08-20 Joseph Myers <joseph@codesourcery.com>
1451
1452 * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
1453 comment, not -lg2c.
1454
ac47786e
NF
14552010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1456
1457 * trans-openmp.c: Use FOR_EACH_VEC_ELT.
1458
99d821c0
DK
14592010-08-19 Daniel Kraft <d@domob.eu>
1460
1461 PR fortran/29785
1462 PR fortran/45016
1463 * trans.h (struct gfc_se): New flag `byref_noassign'.
1464 * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
1465 (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1466 * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
1467 and check for compile-time errors with those.
1468 * trans-decl.c (trans_associate_var): Use new routine
1469 `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
1470 * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
1471 (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1472 (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
1473 (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
1474 * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
1475 rank remapping for assignment.
1476
d76799c7
TB
14772010-08-19 Tobias Burnus <burnus@net-b.de>
1478
1479 * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
1480 * * simplify.c (gfc_simplify_bessel_yn): Change recursive
1481 into recurrence.
1482
29698e0f
TB
14832010-08-19 Tobias Burnus <burnus@net-b.de>
1484
1485 PR fortran/36158
1486 PR fortran/33197
1487 * check.c (gfc_check_bessel_n2): New function.
1488 * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1489 * intrinsic.c (add_functions): Add transformational version
1490 of the Bessel_jn/yn intrinsics.
1491 * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1492 gfc_simplify_bessel_yn2): New prototypes.
1493 * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1494 transformational variant.
1495 * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1496 Check for negative order.
1497 (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1498 gfc_simplify_bessel_yn2): New functions.
1499
771c5727
JD
15002010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1501
1502 PR fortran/41859
1503 * resolve.c (resolve_transfer): Traverse operands and set expression
1504 to be checked to a non EXPR_OP type.
1505
80f95228
JW
15062010-08-19 Janus Weil <janus@gcc.gnu.org>
1507
1508 PR fortran/45290
1509 * gfortran.h (gfc_add_save): Modified prototype.
1510 * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1511 (match_pointer_init): New function to match F08 pointer initialization.
1512 (variable_decl,match_procedure_decl,match_ppc_decl): Use
1513 'match_pointer_init'.
1514 (match_attr_spec): Module variables are implicitly SAVE.
1515 (gfc_match_save): Modified call to 'gfc_add_save'.
1516 * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1517 initialization.
1518 * primary.c (gfc_variable_attr): Handle SAVE attribute.
1519 * resolve.c (resolve_structure_cons): Add new argument and do pointer
1520 initialization checks.
1521 (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
1522 (resolve_values): Call 'resolve_structure_cons' directly with init arg.
1523 (resolve_fl_variable): Handle SAVE_IMPLICIT.
1524 * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
1525 SAVE_IMPLICIT.
1526 * trans-decl.c (gfc_create_module_variable): Module variables with
1527 TARGET can already exist.
1528 * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
1529 (gfc_conv_initializer): Implement non-NULL pointer
1530 initialization.
1531
9a18b99b
TB
15322010-08-18 Tobias Burnus <burnus@net-b.de>
1533
1534 PR fortran/45295
1535 * intrinsic.texi (selected_char_kind): Document ISO_10646
1536 support.
1537
35d3d688
JJ
15382010-08-17 Jakub Jelinek <jakub@redhat.com>
1539
1540 PR fortran/45304
1541 * trans-decl.c (build_library_function_decl_1): Chain on
1542 void_list_node instead of creating a new TREE_LIST.
1543 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
1544 * trans-types.c (gfc_get_function_type): Likewise. Set
1545 typelist to void_list_node for the main program.
1546
571d54de
DK
15472010-08-17 Daniel Kraft <d@domob.eu>
1548
1549 PR fortran/38936
1550 * gfortran.h (struct gfc_association_list): New member `where'.
1551 (gfc_is_associate_pointer) New method.
1552 * match.c (gfc_match_associate): Remember locus for each associate
1553 name matched and do not try to set variable flag.
1554 * parse.c (parse_associate): Use remembered locus for symbols.
1555 * primary.c (match_variable): Instead of variable-flag check for
1556 associate names set it for all such names used.
1557 * symbol.c (gfc_is_associate_pointer): New method.
1558 * resolve.c (resolve_block_construct): Don't generate assignments
1559 to give associate-names their values.
1560 (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
1561 (resolve_symbol): Set some more attributes for associate variables,
1562 set variable flag here and check it and don't try to build an
1563 explicitely shaped array-spec for array associate variables.
1564 * trans-expr.c (gfc_conv_variable): Dereference in case of association
1565 to scalar variable.
1566 * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
1567 (gfc_sym_type): Return pointer type for association to scalar vars.
1568 * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
1569 (trans_associate_var): New method.
1570 (gfc_trans_deferred_vars): Handle association symbols.
1571
c878765b
JM
15722010-08-16 Joseph Myers <joseph@codesourcery.com>
1573
1574 * lang.opt (MDX): Change back to MD. Mark NoDriverArg instead of
1575 RejectDriver.
1576 (MMDX): Change back to MMD. Mark NoDriverArg instead of
1577 RejectDriver.
1578 * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
1579 OPT_MDX and OPT_MMDX.
1580
603349bf
JM
15812010-08-16 Joseph Myers <joseph@codesourcery.com>
1582
1583 * lang.opt (MDX, MMDX): Mark RejectDriver.
1584
d44d2f9a
JW
15852010-08-15 Janus Weil <janus@gcc.gnu.org>
1586
1587 * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
1588 vtabs for generics any more).
1589
52bf62f9
DK
15902010-08-15 Daniel Kraft <d@domob.eu>
1591
1592 PR fortran/38936
1593 * gfortran.h (gfc_find_proc_namespace): New method.
1594 * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
1595 around with namespace.
1596 * symbol.c (gfc_find_proc_namespace): New method.
1597 * trans-decl.c (gfc_build_qualified_array): Use it for correct
1598 value of nest.
1599 * primary.c (gfc_match_varspec): Handle associate-names as arrays.
1600 * parse.c (parse_associate): Removed assignment-generation here...
1601 * resolve.c (resolve_block_construct): ...and added it here.
1602 (resolve_variable): Handle names that are arrays but were not parsed
1603 as such because of association.
1604 (resolve_code): Fix BLOCK resolution.
1605 (resolve_symbol): Generate array-spec for associate-names.
1606
ba3721c1
TB
16072010-08-15 Tobias Burnus <burnus@net-b.de>
1608
1609 PR fortran/45211
1610 * decl.c (verify_c_interop_param): Remove superfluous space (" ").
1611 (verify_c_interop): Handle unresolved DT with bind(C).
1612
08857b61
TB
16132010-08-15 Tobias Burnus <burnus@net-b.de>
1614
1615 * trans-expr.c (gfc_conv_expr_present): Regard nullified
1616 pointer arrays as absent.
1617 (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
1618 dummys as absent argument.
1619 * interface.c (compare_actual_formal,compare_parameter):
1620 Ditto.
1621
7d54ef80
TB
16222010-08-15 Tobias Burnus <burnus@net-b.de>
1623
1624 * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
1625 dummies with intent(in).
1626
e6c14898
DK
16272010-08-15 Daniel Kraft <d@domob.eu>
1628
1629 PR fortran/45197
1630 * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
1631 routines not IMPURE also as PURE.
1632 * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
1633 `NO_CLASS' in `CLASS_IMPURE'.
1634 (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
1635 (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
1636 (add_functions): Ditto.
1637 (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
1638 * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
1639 (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
1640 are not ALLOCATABLE and have their INTENT specified.
1641
f5ca06e6
DK
16422010-08-13 Daniel Kraft <d@domob.eu>
1643
1644 * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
1645 * array.c (gfc_match_array_spec): Match implied-shape specification and
1646 handle AS_IMPLIED_SHAPE correctly otherwise.
1647 * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
1648 (variable_decl): Some checks for implied-shape declaration.
1649 * resolve.c (resolve_symbol): Assert that array-spec is no longer
1650 AS_IMPLIED_SHAPE in any case.
1651
644fa7ac
JM
16522010-08-12 Joseph Myers <joseph@codesourcery.com>
1653
1654 * lang.opt (MD, MMD): Change to MDX and MMDX.
1655 * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
1656
c4aa95f8
JW
16572010-08-11 Janus Weil <janus@gcc.gnu.org>
1658
1659 PR fortran/44595
1660 * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
1661 'gfc_intrinsic_arg'.
1662 (check_arglist,check_specific): Add reference to 'name' field.
1663 (init_arglist): Remove reference to 'name' field.
1664 * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
1665 * check.c (variable_check): Reverse order of checks. Respect intent of
1666 formal arg.
1667 (int_or_proc_check): New function.
1668 (coarray_check): New function.
1669 (allocatable_check): New function.
1670 (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
1671 (gfc_check_complex): Use 'int_or_real_check'.
1672 (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
1673 gfc_check_ucobound): Use 'coarray_check'.
1674 (gfc_check_pack): Use 'real_or_complex_check'.
1675 (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
1676 'int_or_proc_check'.
1677 (scalar_check,type_check,numeric_check,int_or_real_check,
1678 real_or_complex_check,kind_check,double_check,logical_array_check,
1679 array_check,same_type_check,rank_check,nonoptional_check,
1680 kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
1681 gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
1682 gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
1683 gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
1684 gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
1685 gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
1686 gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
1687 to 'name' field.
1688
da4dbc25
DK
16892010-08-10 Daniel Kraft <d@domob.eu>
1690
1691 * gfortran.texi (Interoperability with C): Fix ordering in menu
1692 and add new subsection about pointers.
1693 (Interoperable Subroutines and Functions): Split off the pointer part.
1694 (working with Pointers): New subsection with extended discussion
1695 of pointers (especially procedure pointers).
1696
ee247636
TK
16972010-08-09 Thomas Koenig <tkoenig@gcc.gnu.org>
1698
1699 PR fortran/44235
1700 * array.c (gfc_ref_dimen_size): Add end argument.
1701 If end is non-NULL, calculate it.
1702 (ref_size): Adjust call to gfc_ref_dimen_size.
1703 (gfc_array_dimen_size): Likewise.
1704 (gfc_array_res_shape): Likewise.
1705 * gfortran.h: Adjust prototype for gfc_ref_dimen_size.
1706 * resolve.c (resolve_array_ref): For stride not equal to -1,
1707 fill in the lowest possible end.
1708
1ddfdcf2
JW
17092010-08-09 Janus Weil <janus@gcc.gnu.org>
1710
1711 * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
1712
1145e690
NF
17132010-08-07 Nathan Froyd <froydnj@codesourcery.com>
1714
1715 * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
1716 alloca.
1717 (check_some_aliasing): Likewise.
1718 * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
1719 (gfc_conv_intrinsic_int): Likewise.
1720 (gfc_conv_intrinsic_lib_function): Likewise.
1721 (gfc_conv_intrinsic_cmplx): Likewise.
1722 (gfc_conv_intrinsic_ctime): Likewise.
1723 (gfc_conv_intrinsic_fdate): Likewise.
1724 (gfc_conv_intrinsic_ttynam): Likewise.
1725 (gfc_conv_intrinsic_minmax): Likewise.
1726 (gfc_conv_intrinsic_minmax_char): Likewise.
1727 (gfc_conv_intrinsic_ishftc): Likewise.
1728 (gfc_conv_intrinsic_index_scan_verify): Likewise.
1729 (gfc_conv_intrinsic_merge): Likewise.
1730 (gfc_conv_intrinsic_trim): Likewise.
1731 * trans.c (gfc_trans_runtime_error_vararg): Likewise.
1732
8a0f25c3
TK
17332010-08-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1734
1735 PR fortran/45159
1736 * dependency.c (check_section_vs_section): Handle cases where
1737 the start expression coincides with the lower or upper
1738 bound of the array.
1739
e10f52d0
JW
17402010-08-04 Janus Weil <janus@gcc.gnu.org>
1741
1742 PR fortran/42207
1743 PR fortran/44064
1744 PR fortran/44065
1745 * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
1746 container types. Do not artificially increase refs. Commit symbols one
1747 by one.
1748 * interface.c (compare_parameter): Make sure vtabs are present before
1749 generating module variables.
1750 * resolve.c (resolve_allocate_expr): Ditto.
1751
c130efd5
TB
17522010-08-04 Tobias Burnus <burnus@net-b.de>
1753
1754 PR fortran/45183
1755 PR fortran/44857
1756 * resolve.c (resolve_structure_cons): Fix
1757 freeing of charlen.
1758
4bc20f3a
MM
17592010-08-04 Mikael Morin <mikael@gcc.gnu.org>
1760
1761 PR fortran/42051
1762 PR fortran/44064
1763 * symbol.c (changed_syms): Made static again.
ea5e803f 1764 (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
4bc20f3a
MM
1765 Changed conditional internal error into assert.
1766 Rename function to ...
1767 (gfc_enforce_clean_symbol_state): ... this.
ea5e803f 1768 * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
4bc20f3a
MM
1769 Rename the former to the latter.
1770 * parse.c (decode_statement, decode_omp_directive,
1771 decode_gcc_attribute): Update callers accordingly. Don't conditionalize
1772 on GFC_DEBUG.
1773 (changed_syms): Remove declaration.
1774 (next_statement): Use gfc_enforce_clean_symbol_state.
1775
a48a9173
TB
17762010-08-04 Tobias Burnus <burnus@net-b.de>
1777
1778 PR fortran/44857
1779 * resolve.c (resolve_structure_cons): Fix handling of
4bc20f3a 1780 initialization structure constructors with character
a48a9173
TB
1781 elements of the wrong length.
1782 * array.c (gfc_check_iter_variable): Add NULL check.
1783 (gfc_resolve_character_array_constructor): Also truncate
1784 character length.
1785
a19d2b95
TB
17862010-08-04 Tobias Burnus <burnus@net-b.de>
1787
1788 * trans-io.c (gfc_build_io_library_fndecls): Fix return
1789 value of some libgfortran functions.
1790
15b71db3
TK
17912010-08-03 Thomas Koenig <tkoenig@gcc.gnu.org>
1792
1793 PR fortran/45159
1794 * dependency.c (gfc_deb_compare_expr): Remove any integer
1795 conversion functions to larger types from both arguments.
1796 Remove handling these functions futher down.
1797
aea18e92
JW
17982010-08-03 Janus Weil <janus@gcc.gnu.org>
1799
1800 PR fortran/44584
1801 PR fortran/45161
1802 * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
1803 * resolve.c (resolve_tb_generic_targets): Check for errors.
1804
1d100230
TK
18052010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1806
1807 PR fortran/45159
1808 * depencency.c (gfc_dep_resolver): Fix logic for when a loop
1809 can be reversed.
1810
071bdb5f
TK
18112010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1812
1813 PR fortran/36854
1814 * dependency.h: Add prototype for gfc_are_identical_variables.
1815 * frontend-passes.c: Include depencency.h.
1816 (optimimize_equality): Use gfc_are_identical_variables.
1817 * dependency.c (identical_array_ref): New function.
1818 (gfc_are_identical_variables): New function.
1819 (gfc_deb_compare_expr): Use gfc_are_identical_variables.
1820 * dependency.c (gfc_check_section_vs_section). Rename gfc_
1821 prefix from statc function.
1822 (check_section_vs_section): Change arguments to gfc_array_ref,
1823 adjust function body accordingly.
1824
ef973f3f
MM
18252010-08-02 Mikael Morin <mikael@gcc.gnu.org>
1826 Janus Weil <janus@gcc.gnu.org>
1827
1828 PR fortran/42051
1829 PR fortran/44064
1830 PR fortran/45151
ea5e803f 1831 * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
ef973f3f
MM
1832 * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
1833 gfc_copy_formal_args, gfc_copy_formal_args_intr,
1834 gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
ea5e803f
MM
1835 * parse.c (parse_derived_contains, parse_spec, parse_progunit):
1836 Call reject_statement in case of error.
ef973f3f
MM
1837 (match_deferred_characteritics): Call gfc_undo_symbols in case match
1838 fails.
1839
f3f98a1e
JW
18402010-08-01 Janus Weil <janus@gcc.gnu.org>
1841
1842 PR fortran/44912
1843 * class.c (gfc_build_class_symbol): Make '$vptr' component private.
1844 (gfc_find_derived_vtab): Make vtabs and vtypes public.
1845 * module.c (read_module): When reading module files, always import
1846 vtab and vtype symbols.
1847
951d6341
MM
18482010-07-31 Mikael Morin <mikael@gcc.gnu.org>
1849
1850 PR fortran/42051
1851 PR fortran/44064
1852 * symbol.c (changed_syms): Made non-static.
ea5e803f 1853 * parse.c (changed_syms): Declare new external.
951d6341
MM
1854 (next_statement): Assert changed_syms is NULL at the beginning.
1855
1107bd38
JW
18562010-07-30 Janus Weil <janus@gcc.gnu.org>
1857 Steven G. Kargl <kargl@gcc.gnu.org>
1858
1859 PR fortran/44929
1860 * match.c (match_type_spec): Try to parse derived types before
1861 intrinsic types.
1862
3cb595ac
MM
18632010-07-30 Mikael Morin <mikael@gcc.gnu.org>
1864
1865 * gfortran.h (gfc_release_symbol): New prototype.
1866 * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
1867 (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
1868 Use gfc_release_symbol.
1869 * parse.c (gfc_fixup_sibling_symbols): Ditto.
1870 * resolve.c (resolve_symbol): Ditto.
1871
6a018495
TB
18722010-07-29 Tobias Burnus <burnus@net-b.de>
1873
1874 PR fortran/45087
1875 PR fortran/45125
1876 * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
1877 external procedure declarations in modules.
1878 (gfc_get_symbol_decl): Modify assert.
1879
6a68e29d
JW
18802010-07-29 Janus Weil <janus@gcc.gnu.org>
1881
1882 PR fortran/44962
1883 * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
1884
b2a5eb75
JW
18852010-07-29 Janus Weil <janus@gcc.gnu.org>
1886
1887 PR fortran/45004
1888 * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
1889 (gfc_trans_class_assign): Modified prototype.
1890 * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
1891 * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
1892 (gfc_trans_class_assign): ... here. Modified actual arguments.
1893 * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
1894 handle the MOVE_ALLOC intrinsic with scalar and class arguments.
1895 * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
1896
81fb8a48
MM
18972010-07-29 Mikael Morin <mikael@gcc.gnu.org>
1898
1899 PR fortran/42051
1900 PR fortran/44064
1901 * class.c (gfc_find_derived_vtab): Accept or discard newly created
1902 symbols before returning.
1903
6cfcf3ed
JM
19042010-07-29 Joseph Myers <joseph@codesourcery.com>
1905
1906 * lang.opt (cpp): Remove Joined and Separate markers.
1907 (cpp=): New internal option.
1908 * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
1909 * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
1910 OPT_cpp.
1911
2b868bf5
DK
19122010-07-29 Daniel Kraft <d@domob.eu>
1913
1914 PR fortran/45117
1915 * array.c (resolve_array_bound): Fix error message to properly handle
1916 non-variable expressions.
1917
c9d75a48
MM
19182010-07-28 Mikael Morin <mikael@gcc.gnu.org>
1919
1920 * decl.c (free_value): Also free repeat field.
1921 * data.c (gfc_assign_data_value): Always free offset before returning.
1922
69dcd06a
DK
19232010-07-28 Daniel Kraft <d@domob.eu>
1924
1925 * gfortran.h (gfc_build_intrinsic_call): New method.
1926 * expr.c (gfc_build_intrinsic_call): New method.
1927 * simplify.c (range_check): Ignore non-constant value.
1928 (simplify_bound_dim): Handle non-variable expressions and
1929 fix memory leak with non-free'ed expression.
1930 (simplify_bound): Handle non-variable expressions.
1931 (gfc_simplify_shape): Ditto.
1932 (gfc_simplify_size): Ditto, but only in certain cases possible.
1933
eea13ead
JM
19342010-07-28 Joseph Myers <joseph@codesourcery.com>
1935
1936 * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
1937 Remove.
1938
57e15568
TB
19392010-07-28 Tobias Burnus <burnus@net-b.de>
1940
1941 PR fortran/45077
1942 * trans-types.c (gfc_get_derived_type): Fix DT declaration
1943 from modules for whole-file mode.
1944
5f20c657
JM
19452010-07-27 Joseph Myers <joseph@codesourcery.com>
1946
1947 * gfortran.h (gfc_handle_option): Update prototype and return
1948 value type.
1949 * options.c (gfc_handle_option): Update prototype and return value
1950 type.
1951
7a9bf9a4
JM
19522010-07-27 Joseph Myers <joseph@codesourcery.com>
1953
1954 * cpp.c (gfc_cpp_init_options): Update prototype. Use number of
1955 decoded options in allocating deferred_opt.
1956 * cpp.h (gfc_cpp_init_options): Update prototype.
1957 * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
1958 * gfortran.h (gfc_option_lang_mask): New.
1959 (gfc_init_options): Update prototype.
1960 * options.c (gfc_option_lang_mask): New.
1961 (gfc_init_options): Update prototype. Pass new arguments to
1962 gfc_cpp_init_options.
1963
fb55ca75
TB
19642010-07-26 Tobias Burnus <burnus@net-b.de>
1965
1966 PR fortran/40873
1967 * trans-decl.c (gfc_get_extern_function_decl): Fix generation
1968 for functions which are later in the same file.
1969 (gfc_create_function_decl, build_function_decl,
1970 build_entry_thunks): Add global argument.
1971 * trans.c (gfc_generate_module_code): Update
1972 gfc_create_function_decl call.
1973 * trans.h (gfc_create_function_decl): Update prototype.
1974 * resolve.c (resolve_global_procedure): Also resolve for
1975 IFSRC_IFBODY.
1976
8b84c596
RH
19772010-07-26 Richard Henderson <rth@redhat.com>
1978
1979 PR target/44132
1980 * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
1981 (gfc_write_global_declarations): New.
1982
71ff73f3
TB
19832010-07-26 Tobias Burnus <burnus@net-b.de>
1984
1985 PR fortran/45066
1986 * trans-io.c (build_dt): Use NULL_TREE rather than NULL
1987 for call to transfer_namelist_element.
1988 * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
1989 for -fwhole-file.
1990
601d98be
TK
19912010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org>
1992
1993 PR fortran/40628
1994 * Make-lang.in: Add fortran/frontend-passes.o.
1995 * gfortran.h: Add prototype for gfc_run_passes.
1996 * resolve.c (gfc_resolve): Call gfc_run_passes.
1997 * frontend-passes.c: New file.
1998
32e4257f
JD
19992010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2000
2001 PR fortran/42852
2002 * scanner.c (gfc_next_char_literal): Enable truncation warning for
2003 free-form '&'.
2004
9c15986b
JD
20052010-07-25 Mikael Morin <mikael@gcc.gnu.org>
2006
2007 PR fortran/44660
2008 * gfortran.h (gfc_namespace): New field old_equiv.
2009 (gfc_free_equiv_until): New prototype.
2010 * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
2011 a parameterized stop condition.
2012 (gfc_free_equiv): Use gfc_free_equiv_until.
2013 * parse.c (next_statement): Save equivalence list.
ea5e803f 2014 (reject_statement): Restore equivalence list.
9c15986b 2015
ac64eec4
JD
20162010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2017
2018 PR fortran/42852
2019 * scanner.c (gfc_next_char_literal): Move check for truncation earlier
2020 in the function so that it does not get missed by early exits.
2021 (load_line): Add checks for quoted strings and free form comments to
2022 disable warnings on comments. Add check for ampersand as first
2023 character after truncation and don't warn for this case, but warn if
2024 there are subsequent non-whitespace characters.
2025
8569c753
TB
20262010-07-24 Tobias Burnus <burnus@net-b.de>
2027
2028 PR fortran/40011
2029 * parse.c (gfc_parse_file): Do not override
2030 gfc_global_ns_list items.
2031
df161b69
TB
20322010-07-24 Tobias Burnus <burnus@net-b.de>
2033
2034 * options.c (gfc_init_options): Enable -fwhole-file by default.
2035 * interface.c (compare_parameter): Assume a Hollerith constant is
2036 compatible with all other argument types.
2037
43afc047
TB
20382010-07-23 Tobias Burnus <burnus@net-b.de>
2039
2040 PR fortran/44945
2041 * trans-decl.c (gfc_get_symbol_decl): Use module decl with
2042 -fwhole-file also for derived types.
2043 * trans-types.c (copy_dt_decls_ifequal): Remove static and
2044 rename to gfc_copy_dt_decls_ifequal.
2045 (gfc_get_derived_type): Update call.
2046 * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
2047
48a32c49
TB
20482010-07-23 Tobias Burnus <burnus@net-b.de>
2049
2050 PR fortran/45030
2051 * resolve.c (resolve_global_procedure): Properly handle ENTRY.
2052
cd3f04c8
JJ
20532010-07-23 Jakub Jelinek <jakub@redhat.com>
2054
2055 * trans-types.c (gfc_get_array_descriptor_base,
2056 gfc_get_array_type_bounds): Set TYPE_NAMELESS.
2057 * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
2058 instead of clearing DECL_NAME.
2059 (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
2060
3d03ead0
PT
20612009-07-23 Paul Thomas <pault@gcc.gnu.org>
2062
2063 PR fortran/24524
2064 * trans-array.c (gfc_init_loopinfo): Initialize the reverse
2065 field.
2066 gfc_trans_scalarized_loop_end: If reverse set in dimension n,
2067 reverse the scalarization loop.
2068 gfc_conv_resolve_dependencies: Pass the reverse field of the
2069 loopinfo to gfc_dep_resolver.
2070 trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
2071 assignment by resetting loop.reverse.
2072 gfortran.h : Add the gfc_reverse enum.
2073 trans.h : Add the reverse field to gfc_loopinfo.
2074 dependency.c (gfc_check_dependency): Pass null to the new arg
2075 of gfc_dep_resolver.
2076 (gfc_check_section_vs_section): Check for reverse dependencies.
2077 (gfc_dep_resolver): Add reverse argument and deal with the loop
2078 reversal logic.
2079 dependency.h : Modify prototype for gfc_dep_resolver to include
2080 gfc_reverse *.
2081
61b644c2
DK
20822010-07-23 Daniel Kraft <d@domob.eu>
2083
2084 PR fortran/44709
2085 * gfortran.h (gfc_find_symtree_in_proc): New method.
2086 * symbol.c (gfc_find_symtree_in_proc): New method.
2087 * match.c (match_exit_cycle): Look for loop name also in parent
2088 namespaces within current procedure.
2089
e1d818f7
TB
20902010-07-22 Tobias Burnus <burnus@net-b.de>
2091
2092 PR fortran/45019
2093 * dependency.c (gfc_check_dependency): Add argument alising check.
2094 * symbol.c (gfc_symbols_could_alias): Add argument alising check.
2095
ba3ff5c2
DK
20962010-07-22 Daniel Kraft <d@domob.eu>
2097
2098 * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
2099 now in the correct place.
2100
6168fc43
SK
21012010-07-21 Steven G. Kargl <kargl@gcc.gnu.org>
2102
2103 PR fortran/44929
2104 * Revert my commit r162325.
2105
d74d8807
DK
21062010-07-21 Daniel Kraft <d@domob.eu>
2107
2108 * trans.h (gfc_get_return_label): Removed.
2109 (gfc_generate_return): New method.
2110 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2111 returning a tree directly.
2112 * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
2113 (gfc_trans_block_construct): Update for new interface to
2114 `gfc_trans_deferred_vars'.
2115 * trans-decl.c (current_function_return_label): Removed.
2116 (current_procedure_symbol): New variable.
2117 (gfc_get_return_label): Removed.
2118 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2119 returning a tree directly.
2120 (get_proc_result), (gfc_generate_return): New methods.
2121 (gfc_generate_function_code): Clean up and do init/cleanup here
2122 also with gfc_wrapped_block. Remove return-label but rather
2123 return directly.
2124
13411c9d
SK
21252010-07-19 Steven G. Kargl <kargl@gcc.gnu.org>
2126
2127 PR fortran/44929
2128 * fortran/match.c (match_type_spec): Check for derived type before
2129 intrinsic types.
2130
974df0f8
PT
21312010-07-19 Paul Thomas <pault@gcc.gnu.org>
2132
2133 PR fortran/42385
2134 * interface.c (matching_typebound_op): Add argument for the
2135 return of the generic name for the procedure.
2136 (build_compcall_for_operator): Add an argument for the generic
2137 name of an operator procedure and supply it to the expression.
2138 (gfc_extend_expr, gfc_extend_assign): Use the generic name in
2139 calls to the above procedures.
2140 * resolve.c (resolve_typebound_function): Catch procedure
2141 component calls for CLASS objects, check that the vtable is
2142 complete and insert the $vptr and procedure components, to make
2143 the call.
2144 (resolve_typebound_function): The same.
2145 * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
2146 an allocatable scalar if it is a result.
2147
44c9c01f
PT
21482010-07-19 Paul Thomas <pault@gcc.gnu.org>
2149
2150 PR fortran/44353
2151 * match.c (gfc_match_iterator): Reverted.
2152
91e2faaf
PT
21532010-07-18 Paul Thomas <pault@gcc.gnu.org>
2154
2155 PR fortran/44353
2156 * match.c (gfc_match_iterator): Remove error that iterator
2157 cannot be INTENT(IN).
2158
9157ccb2
MM
21592010-07-17 Mikael Morin <mikael@gcc.gnu.org>
2160
2161 * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
2162 Access subscript through the "dim" field index.
2163 (gfc_trans_create_temp_array): Access ss info through the "dim" field
2164 index.
2165 (gfc_conv_array_index_offset): Ditto.
2166 (gfc_conv_loop_setup): Ditto.
2167 (gfc_conv_expr_descriptor): Ditto.
2168 (gfc_conv_ss_startstride): Ditto. Update call to
2169 gfc_conv_section_startstride.
2170 (gfc_conv_section_startstride): Set values along the array dimension.
2171 Get array dimension directly from the argument.
2172
d2886bc7
JJ
21732010-07-15 Jakub Jelinek <jakub@redhat.com>
2174
2175 * trans.h (gfc_string_to_single_character): New prototype.
2176 * trans-expr.c (string_to_single_character): Renamed to ...
2177 (gfc_string_to_single_character): ... this. No longer static.
2178 (gfc_conv_scalar_char_value, gfc_build_compare_string,
2179 gfc_trans_string_copy): Adjust callers.
2180 * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
2181 * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
2182 (select_struct): Move to toplevel, add GTY(()).
2183 (gfc_trans_character_select): Optimize SELECT CASE
2184 with character length 1.
2185
910ad8de
NF
21862010-07-15 Nathan Froyd <froydnj@codesourcery.com>
2187
2188 * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2189 * trans-common.c: Likewise.
2190 * trans-decl.c: Likewise.
2191 * trans-types.c: Likewise.
2192 * trans.c: Likewise.
2193
ab7306ed
JW
21942010-07-15 Janus Weil <janus@gcc.gnu.org>
2195
2196 PR fortran/44936
2197 * resolve.c (resolve_typebound_generic_call): Resolve generic
2198 non-polymorphic type-bound procedure calls to the correct specific
2199 procedure.
2200 (resolve_typebound_subroutine): Remove superfluous code.
2201
0019d498
DK
22022010-07-15 Daniel Kraft <d@domob.eu>
2203
2204 PR fortran/44709
2205 * trans.h (struct gfc_wrapped_block): New struct.
2206 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2207 (gfc_finish_wrapped_block): New method.
2208 (gfc_init_default_dt): Add new init code to block rather than
2209 returning it.
2210 * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
2211 (gfc_trans_dummy_array_bias): Ditto.
2212 (gfc_trans_g77_array): Ditto.
2213 (gfc_trans_deferred_array): Ditto.
2214 * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
2215 (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
2216 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2217 (gfc_finish_wrapped_block): New method.
2218 * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
2219 (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
2220 (gfc_trans_deferred_array): Ditto.
2221 * trans-decl.c (gfc_trans_dummy_character): Ditto.
2222 (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
2223 (init_intent_out_dt): Ditto.
2224 (gfc_init_default_dt): Add new init code to block rather than
2225 returning it.
2226 (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
2227 and cleanup code and put it all together.
2228
23b10420
JJ
22292010-07-15 Jakub Jelinek <jakub@redhat.com>
2230
2231 * trans.h (gfc_build_compare_string): Add CODE argument.
2232 * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
2233 gfc_build_compare_string.
2234 * trans-expr.c (gfc_conv_expr_op): Pass CODE to
2235 gfc_build_compare_string.
2236 (string_to_single_character): Rename len variable to length.
2237 (gfc_optimize_len_trim): New function.
2238 (gfc_build_compare_string): Add CODE argument. If it is EQ_EXPR
2239 or NE_EXPR and one of the strings is string literal with LEN_TRIM
2240 bigger than the length of the other string, they compare unequal.
2241
79c74300
JJ
2242 PR fortran/40206
2243 * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
2244 in CASE_LABEL_EXPR and use NULL for low for the default case.
2245
859b6600
MM
22462010-07-14 Mikael Morin <mikael@gcc.gnu.org>
2247
2248 * trans-array.c (gfc_conv_section_upper_bound): Remove
ea5e803f 2249 (gfc_conv_section_startstride): Don't set the upper bound in the
9157ccb2 2250 vector subscript case.
859b6600
MM
2251 (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
2252
f6199e63
JW
22532010-07-14 Janus Weil <janus@gcc.gnu.org>
2254
2255 PR fortran/44925
2256 * gfortran.h (gfc_is_data_pointer): Remove prototype.
2257 * dependency.c (gfc_is_data_pointer): Make it static.
2258 * intrinsic.texi: Update documentation on C_LOC.
2259 * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
2260 and add a check for polymorphic variables.
2261
4ca4be7f
JJ
22622010-07-14 Jakub Jelinek <jakub@redhat.com>
2263
48b19537
JJ
2264 * trans-expr.c (string_to_single_character): Also optimize
2265 string literals containing a single char followed only by spaces.
2266 (gfc_trans_string_copy): Remove redundant string_to_single_character
2267 calls.
2268
4ca4be7f
JJ
2269 * trans-decl.c (gfc_build_intrinsic_function_decls,
2270 gfc_build_builtin_function_decls): Mark functions as
2271 DECL_PURE_P or TREE_READONLY.
2272
3bb06db4
NF
22732010-07-13 Nathan Froyd <froydnj@codesourcery.com>
2274
2275 * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
2276 instead of build_function_call_expr.
2277 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
2278
3f34855a
TB
22792010-07-13 Tobias Burnus <burnus@net-b.de>
2280 Daniel Franke <franke.daniel@gmail.com>
2281
2282 PR fortran/43665
2283 * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
2284 * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
2285 static.
2286 * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
2287
6368f166
DF
22882010-07-13 Daniel Franke <franke.daniel@gmail.com>
2289 Tobias Burnus <burnus@net-b.de>
2290
2291 PR fortran/43665
2292 * trans-decl.c (gfc_build_intrinsic_function_decls): Add
2293 noclobber/noescape annotations to function calls.
2294 (gfc_build_builtin_function_decls): Likewise.
2295
88ce8031
JW
22962010-07-13 Janus Weil <janus@gcc.gnu.org>
2297
2298 PR fortran/44434
2299 PR fortran/44565
2300 PR fortran/43945
2301 PR fortran/44869
2302 * gfortran.h (gfc_find_derived_vtab): Modified prototype.
2303 * class.c (gfc_build_class_symbol): Modified call to
2304 'gfc_find_derived_vtab'.
2305 (add_proc_component): Removed, moved code into 'add_proc_comp'.
2306 (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
2307 generics.
2308 (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
2309 Removed treatment of generics.
2310 (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
2311 Call 'add_proc_comp' instead of duplicating code.
2312 (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
2313 and 'declared'.
2314 (add_generic_specifics,add_generics_to_declared_vtab): Removed.
2315 (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
2316 Removed treatment of generics.
2317 * iresolve.c (gfc_resolve_extends_type_of): Modified call to
2318 'gfc_find_derived_vtab'.
2319 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2320 Removed treatment of generics.
2321 (resolve_select_type,resolve_fl_derived): Modified call to
2322 'gfc_find_derived_vtab'.
2323 * trans-decl.c (gfc_get_symbol_decl): Ditto.
2324 * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
2325 Ditto.
2326 * trans-stmt.c (gfc_trans_allocate): Ditto.
2327
c8dce2cf
JD
23282010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2329
2330 PR fortran/37077
2331 * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
2332 internal unit.
2333
04a17bb6
MM
23342010-07-12 Mikael Morin <mikael@gcc.gnu.org>
2335
2336 * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2337 * resolve.c (build_default_init_expr): Ditto.
2338
ee08f2e5
TB
23392010-07-11 Tobias Burnus <burnus@net-b.de>
2340
2341 PR fortran/44702
2342 * module.c (sort_iso_c_rename_list): Remove.
2343 (import_iso_c_binding_module,use_iso_fortran_env_module):
2344 Allow multiple imports of the same symbol.
2345
f67df2ca
MM
23462010-07-11 Mikael Morin <mikael@gcc.gnu.org>
2347
2348 * arith.c (gfc_arith_done_1): Release mpfr internal caches.
2349
d40477b4
JW
23502010-07-11 Janus Weil <janus@gcc.gnu.org>
2351
160ea5dd 2352 PR fortran/44869
d40477b4
JW
2353 * decl.c (build_sym,attr_decl1): Only build the class container if the
2354 symbol has sufficient attributes.
2355 * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
2356 pointer attribute for classes.
2357 * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
2358 * module.c (MOD_VERSION): Bump.
2359 (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
2360 (mio_symbol_attribute): Handle class_pointer attribute.
2361 * parse.c (parse_derived): Use class_pointer instead of pointer
2362 attribute for classes.
2363 * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
2364 * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
2365 resolve_allocate_expr,resolve_fl_derived): Ditto.
2366 (resolve_fl_var_and_proc): Check for class_ok attribute.
2367
35151cd5
MM
23682010-07-10 Mikael Morin <mikael@gcc.gnu.org>
2369
2370 * trans-io.c (gfc_build_st_parameter): Update calls to
2371 gfc_add_field_to_struct.
2372 * trans-stmt.c (ADD_FIELD): Ditto.
2373 * trans-types.c
2374 (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
9157ccb2 2375 C_ADDRESS field.
35151cd5
MM
2376 (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
2377 fieldlist, remove fieldlist from argument list.
2378 (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
9157ccb2 2379 and remove fieldlist from argument list.
35151cd5
MM
2380 (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
2381 gfc_get_mixed_entry_union): Move setting
2382 TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
2383 * trans-types.h (gfc_add_field_to_struct): Update prototype.
2384
022e30c0
PT
23852010-07-10 Paul Thomas <pault@gcc.gnu.org>
2386
2387 PR fortran/44773
2388 * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
2389 if the lhs has never been host associated, as well as not being
2390 use associated, a pointer or a target.
2391 * resolve.c (resolve_variable): Mark variables that are host
2392 associated.
2393 * gfortran.h: Add the host_assoc bit to the symbol_attribute
2394 structure.
2395
6685e806
JW
23962010-07-09 Janus Weil <janus@gcc.gnu.org>
2397
2398 * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
2399 STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
2400 SIZEOF and C_SIZEOF.
2401
048510c8
JW
24022010-07-08 Janus Weil <janus@gcc.gnu.org>
2403
2404 PR fortran/44649
2405 * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
2406 * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
2407 gfc_resolve_storage_size): New prototypes.
2408 * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
2409 * intrinsic.c (add_functions): Add STORAGE_SIZE.
2410 * iresolve.c (gfc_resolve_storage_size): New function.
2411 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
2412 arguments.
2413 (gfc_conv_intrinsic_storage_size): New function.
2414 (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
2415
84fa59a7
JJ
24162010-07-08 Jakub Jelinek <jakub@redhat.com>
2417
2418 PR fortran/44847
2419 * match.c (match_exit_cycle): Error on EXIT also from collapsed
2420 !$omp do loops. Error on CYCLE to non-innermost collapsed
2421 !$omp do loops.
2422
7aa0849a
TB
24232010-07-08 Tobias Burnus <burnus@net-b.de>
2424
2425 PR fortran/18918
2426 * array.c (gfc_match_array_ref): Better error message for
2427 coarrays with too few ranks.
2428 (match_subscript): Move one diagnostic to caller.
2429 * gfortran.h (gfc_get_corank): Add prottype.
2430 * expr.c (gfc_get_corank): New function.
2431 * iresolve.c (resolve_bound): Fix rank for cobounds.
2432 (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
2433 gfc_resolve_ucobound, gfc_resolve_this_image): Update
2434 resolve_bound call.
2435
928f0490
TB
24362010-07-06 Tobias Burnus <burnus@net-b.de>
2437
2438 PR fortran/44742
2439 * array.c (gfc_expand_constructor): Add optional diagnostic.
2440 * gfortran.h (gfc_expand_constructor): Update prototype.
2441 * expr.c (gfc_simplify_expr, check_init_expr,
2442 gfc_reduce_init_expr): Update gfc_expand_constructor call.
2443 * resolve.c (gfc_resolve_expr): Ditto.
2444
c829d016
TB
24452010-07-06 Tobias Burnus <burnus@net-b.de>
2446
2447 * trans-decl.c: Include diagnostic-core.h besides toplev.h.
2448 * trans-intrinsic.c: Ditto.
2449 * trans-types.c: Ditto.
2450 * convert.c: Include diagnostic-core.h instead of toplev.h.
2451 * options.c: Ditto.
2452 * trans-array.c: Ditto.
2453 * trans-const.c: Ditto.
2454 * trans-expr.c: Ditto.
2455 * trans-io.c: Ditto.
2456 * trans-openmp.c: Ditto.
2457 * trans.c: Ditto.
2458
7114ab45
TK
24592010-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
2460
2461 PR fortran/PR44693
2462 * check.c (dim_rank_check): Also check intrinsic functions.
2463 Adjust permissible rank for functions which reduce the rank of
2464 their argument. Spread is an exception, where DIM can
2465 be one larger than the rank of array.
2466
92336ae1
SK
24672010-07-05 Steven G. Kargl <kargl@gcc.gnu.org>
2468
9e6d8a0d 2469 PR fortran/44797
92336ae1
SK
2470 * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
2471
0a8c9a13
PT
24722010-07-05 Paul Thomas <pault@gcc.gnu.org>
2473
2474 PR fortran/44596
2475 * trans-types.c (gfc_get_derived_type): Derived type fields
2476 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
2477 but build_pointer_type_for_mode must be used for this.
2478
989ea525
NF
24792010-07-05 Nathan Froyd <froydnj@codesourcery.com>
2480
2481 * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
2482 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
2483 type of gfc_conv_procedure_call.
2484 (conv_generic_with_optional_char_arg): Likewise.
2485 * trans-stmt.c (gfc_trans_call): Likewise.
2486 * trans-expr.c (gfc_conv_function_expr): Likewise.
2487 (gfc_conv_procedure_call): Use build_call_vec instead of
2488 build_call_list.
2489
b8e0aa85
DK
24902010-07-04 Daniel Kraft <d@domob.eu>
2491
2492 * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2493
c9dfc414
PT
24942010-07-04 Paul Thomas <pault@gcc.gnu.org>
2495
2496 PR fortran/44596
2497 PR fortran/44745
2498 * trans-types.c (gfc_get_derived_type): Derived type fields
2499 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2500
ff5b6492
MM
25012010-07-02 Mikael Morin <mikael@gcc.gnu.org>
2502
2503 PR fortran/44662
2504 * decl.c (match_procedure_in_type): Clear structure before using.
2505 (gfc_match_generic): Ditto.
2506
dfd6ece2
NF
25072010-07-02 Nathan Froyd <froydnj@codesourcery.com>
2508
2509 * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2510 * trans-types.c (gfc_add_field_to_struct_1): New function, most
2511 of which comes from...
2512 (gfc_add_field_to_struct): ...here. Call it. Add new parameter.
2513 (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2514 building fields.
2515 (gfc_get_array_descriptor_base): Likewise.
2516 (gfc_get_mixed_entry_union): Likewise.
2517 (gfc_get_derived_type): Add extra chain parameter for
2518 gfc_add_field_to_struct.
2519 * trans-stmt.c (gfc_trans_character_select): Likewise.
2520 * trans-io.c (gfc_build_st_parameter): Likewise.
2521
68d8db77
JW
25222010-06-29 Janus Weil <janus@gcc.gnu.org>
2523
2524 PR fortran/44718
2525 * resolve.c (is_external_proc): Prevent procedure pointers from being
2526 regarded as external procedures.
2527
0e3b941e
JW
25282010-06-29 Janus Weil <janus@gcc.gnu.org>
2529
2530 PR fortran/44696
2531 * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
2532 passed as second argument of ASSOCIATED.
2533
42488c1b
PT
25342010-06-29 Paul Thomas <pault@gcc.gnu.org>
2535
2536 PR fortran/44582
2537 * trans-expr.c (arrayfunc_assign_needs_temporary): New function
2538 to determine if a function assignment can be made without a
2539 temporary.
2540 (gfc_trans_arrayfunc_assign): Move all the conditions that
2541 suppress the direct function call to the above new functon and
2542 call it.
2543
a516520c
PT
25442010-06-28 Paul Thomas <pault@gcc.gnu.org>
2545
2546 PR fortran/40158
2547 * interface.c (argument_rank_mismatch): New function.
2548 (compare_parameter): Call new function instead of generating
2549 the error directly.
2550
04924d6a
NF
25512010-06-28 Nathan Froyd <froydnj@codesourcery.com>
2552
2553 * trans-openmp.c (dovar_init): Define. Define VECs containing it.
2554 (gfc_trans_omp_do): Use a VEC to accumulate variables and their
2555 initializers.
2556
3b06d379
SB
25572010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2558
2559 * Make-lang.in: Update dependencies.
2560
e7041633
NF
25612010-06-27 Nathan Froyd <froydnj@codesourcery.com>
2562
2563 * gfortran.h (gfc_code): Split backend_decl field into cycle_label
2564 and exit_label fields.
2565 * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
2566 individually.
2567 * trans-stmt.c (gfc_trans_simple_do): Likewise.
2568 (gfc_trans_do): Likewise.
2569 (gfc_trans_do_while): Likewise.
2570 (gfc_trans_cycle): Use cycle_label directly.
2571 (gfc_trans_exit): Use exit_label directly.
2572
7ed979b9
DK
25732010-06-27 Daniel Kraft <d@domob.eu>
2574
2575 * dump-parse-tree.c (show_symbol): Dump target-expression for
2576 associate names.
2577 (show_code_node): Make distinction between BLOCK and ASSOCIATE.
2578 (show_namespace): Use show_level for correct indentation of
2579 "inner namespaces" (contained procedures or BLOCK).
2580
c6c15a14
TK
25812010-06-27 Thomas Koenig <tkoenig@gcc.gnu.org>
2582
2583 PR fortran/44678
2584 * dump-parse-tree.c (show_code_node): Show namespace for
2585 EXEC_BLOCK.
2586
0fb56814
TB
25872010-06-26 Tobias Burnus <burnus@net-b.de>
2588
2589 * decl.c (gfc_match_decl_type_spec): Support
2590 TYPE(intrinsic-type-spec).
2591
01349049
TB
25922010-06-25 Tobias Burnus <burnus@net-b.de>
2593
2594 * intrinsic.h (gfc_check_selected_real_kind,
2595 gfc_simplify_selected_real_kind): Update prototypes.
2596 * intrinsic.c (add_functions): Add radix support to
2597 selected_real_kind.
2598 * check.c (gfc_check_selected_real_kind): Ditto.
2599 * simplify.c (gfc_simplify_selected_real_kind): Ditto.
2600 * trans-decl.c (gfc_build_intrinsic_function_decls):
2601 Change call from selected_real_kind to selected_real_kind2008.
2602 * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
2603 (PRECISION, RANGE, RADIX): Add cross @refs.
2604
58fc89f6
TB
26052010-06-25 Tobias Burnus <burnus@net-b.de>
2606
2607 * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
2608 * gfortran.texi (_gfortran_set_options): Update for
2609 GFC_STD_F2008_OBS addition.
2610 * libgfortran.h: Add GFC_STD_F2008_OBS.
2611 * options.c (set_default_std_flags, gfc_handle_option): Handle
2612 GFC_STD_F2008_OBS.
2613 io.c (check_format): Fix allow_std check.
2614
272001a2
TB
26152010-06-25 Tobias Burnus <burnus@net-b.de>
2616
2617 * decl.c (gfc_match_entry): Allow END besides
2618 END SUBROUTINE/END FUNCTION for contained procedures.
2619
c6c73c51
TB
26202010-06-25 Tobias Burnus <burnus@net-b.de>
2621
2622 * parse.c (next_free, next_fixed): Allow ";" as first character.
2623
d646bbce
TB
26242010-06-24 Tobias Burnus <burnus@net-b.de>
2625
2626 PR fortran/44614
2627 * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
2628
5cd2f815
JW
26292010-06-22 Janus Weil <janus@gcc.gnu.org>
2630
2631 PR fortran/44616
2632 * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
2633 containers.
2634
fe4e525c
TB
26352010-06-21 Tobias Burnus <burnus@net-b.de>
2636
2637 PR fortran/40632
2638 * interface.c (compare_parameter): Add gfc_is_simply_contiguous
2639 checks.
2640 * symbol.c (gfc_add_contiguous): New function.
2641 (gfc_copy_attr, check_conflict): Handle contiguous attribute.
2642 * decl.c (match_attr_spec): Ditto.
2643 (gfc_match_contiguous): New function.
2644 * resolve.c (resolve_fl_derived, resolve_symbol): Handle
2645 contiguous.
2646 * gfortran.h (symbol_attribute): Add contiguous.
2647 (gfc_is_simply_contiguous): Add prototype.
2648 (gfc_add_contiguous): Add prototype.
2649 * match.h (gfc_match_contiguous): Add prototype.
2650 * parse.c (decode_specification_statement,
2651 decode_statement): Handle contiguous attribute.
2652 * expr.c (gfc_is_simply_contiguous): New function.
2653 * dump-parse-tree.c (show_attr): Handle contiguous.
2654 * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
2655 Ditto.
2656 * trans-expr.c (gfc_add_interface_mapping): Copy
2657 attr.contiguous.
2658 * trans-array.c (gfc_conv_descriptor_stride_get,
2659 gfc_conv_array_parameter): Handle contiguous arrays.
2660 * trans-types.c (gfc_build_array_type, gfc_build_array_type,
2661 gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
2662 Ditto.
2663 * trans.h (gfc_array_kind): Ditto.
2664 * trans-decl.c (gfc_get_symbol_decl): Ditto.
2665
6e2f1956
JM
26662010-06-20 Joseph Myers <joseph@codesourcery.com>
2667
2668 * options.c (gfc_handle_option): Don't handle N_OPTS.
2669
1304f582
JW
26702010-06-19 Janus Weil <janus@gcc.gnu.org>
2671
2672 PR fortran/44584
2673 * resolve.c (resolve_fl_derived): Reverse ordering of conditions
2674 to avoid ICE.
2675
ddf58e42
TB
26762010-06-18 Tobias Burnus <burnus@net-b.de>
2677
2678 PR fortran/44556
2679 * resolve.c (resolve_allocate_deallocate): Properly check
2680 part-refs in stat=/errmsg= for invalid use.
2681
8399a0cc
JW
26822010-06-17 Janus Weil <janus@gcc.gnu.org>
2683
2684 PR fortran/44558
2685 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2686 Return directly in case of an error.
2687
3e15518b
JW
26882010-06-16 Janus Weil <janus@gcc.gnu.org>
2689
2690 PR fortran/44549
2691 * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
2692 * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
2693 structure to each procedure in a procedure list.
2694 * module.c (mio_typebound_proc): Add NULL argument to
2695 'gfc_get_typebound_proc'.
2696 * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
2697 to initialize the new structure.
2698
94bff632
JW
26992010-06-15 Janus Weil <janus@gcc.gnu.org>
2700
2701 PR fortran/43388
2702 * gfortran.h (gfc_expr): Add new member 'mold'.
2703 * match.c (gfc_match_allocate): Implement the MOLD tag.
2704 * resolve.c (resolve_allocate_expr): Ditto.
2705 * trans-stmt.c (gfc_trans_allocate): Ditto.
2706
79943d19
JJ
27072010-06-15 Jakub Jelinek <jakub@redhat.com>
2708
2709 PR fortran/44536
2710 * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
2711 OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
2712 GFC_DECL_SAVED_DESCRIPTOR set.
2713 (gfc_omp_report_decl): New function.
2714 * trans.h (gfc_omp_report_decl): New prototype.
2715 * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
2716
d8ddea40
DF
27172010-06-13 Daniel Franke <franke.daniel@gmail.com>
2718
2719 PR fortran/31588
2720 PR fortran/43954
2721 * gfortranspec.c (lang_specific_driver): Removed deprecation
2722 warning for -M.
2723 * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
2724 * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
2725 * cpp.h (gfc_cpp_makedep): New.
2726 (gfc_cpp_add_dep): New.
2727 (gfc_cpp_add_target): New.
2728 * cpp.c (gfc_cpp_option): Add deps* members.
2729 (gfc_cpp_makedep): New.
2730 (gfc_cpp_add_dep): New.
2731 (gfc_cpp_add_target): New.
2732 (gfc_cpp_init_options): Initialize new options.
2733 (gfc_cpp_handle_option): Handle new options.
2734 (gfc_cpp_post_options): Map new options to libcpp-options.
2735 (gfc_cpp_init): Handle deferred -MQ and -MT options.
2736 (gfc_cpp_done): If requested, write dependencies to file.
2737 * module.c (gfc_dump_module): Add a module filename as target.
2738 * scanner.c (open_included_file): New parameter system; add the
2739 included file as dependency.
2740 (gfc_open_included_file): Add the included file as dependency.
2741 (gfc_open_intrinsic_module): Likewise.
2742 * invoke.texi: Removed deprecation warning for -M.
2743 * gfortran.texi: Removed Makefile-dependencies project.
2744
1b1a6626
DF
27452010-06-12 Daniel Franke <franke.daniel@gmail.com>
2746
2747 * resolve.c (resolve_global_procedure): Improved checking if an
2748 explicit interface is required.
2749
6cd8d93a
FXC
27502010-06-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2751
2752 * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
2753 return type.
2754 * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
2755 (gfc_conv_intrinsic_ttynam): Likewise.
2756 (gfc_conv_intrinsic_trim): Likewise.
2757
1be17993
JW
27582010-06-12 Janus Weil <janus@gcc.gnu.org>
2759
2760 PR fortran/40117
2761 * decl.c (match_procedure_in_type): Allow procedure lists (F08).
2762
1826e883
FXC
27632010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2764
2765 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
2766
2921157d
FXC
27672010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2768
2769 * mathbuiltins.def: Add builtins that do not directly correspond
2770 to a Fortran intrinsic, with new macro OTHER_BUILTIN.
2771 * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
2772 * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
2773 code_{r,c}{4,8,10,16} fields. Add
2774 {,complex}{float,double,long_double}_built_in fields.
2775 (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
2776 DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
2777 definition of OTHER_BUILTIN.
2778 (real_compnt_info): Remove unused struct.
2779 (builtin_decl_for_precision, builtin_decl_for_float_kind): New
2780 functions.
2781 (build_round_expr): Call builtin_decl_for_precision instead of
2782 series of if-else.
2783 (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
2784 instead of a switch.
2785 (gfc_build_intrinsic_lib_fndecls): Match
2786 {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
2787 (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
2788 kinds.
2789 (gfc_conv_intrinsic_lib_function): Go through all the extended
2790 gfc_intrinsic_map.
2791 (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
2792 instead of a switch.
2793 (gfc_conv_intrinsic_abs): Likewise.
2794 (gfc_conv_intrinsic_mod): Likewise.
2795 (gfc_conv_intrinsic_sign): Likewise.
2796 (gfc_conv_intrinsic_fraction): Likewise.
2797 (gfc_conv_intrinsic_nearest): Likewise.
2798 (gfc_conv_intrinsic_spacing): Likewise.
2799 (gfc_conv_intrinsic_rrspacing): Likewise.
2800 (gfc_conv_intrinsic_scale): Likewise.
2801 (gfc_conv_intrinsic_set_exponent): Likewise.
2802
92bb7768
PT
28032010-06-11 Paul Thomas <pault@gcc.gnu.org>
2804
2805 PR fortran/42051
2806 PR fortran/43896
2807 * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
2808 functions with CLASS formal arguments.
2809
66051b60
JW
28102010-06-10 Janus Weil <janus@gcc.gnu.org>
2811
2812 PR fortran/44207
2813 * resolve.c (conformable_arrays): Handle allocatable components.
2814
f14b9067
FXC
28152010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2816
2817 PR fortran/38273
2818 * gfortran.texi: Document that Cray pointers cannot be function
2819 results.
2820
28212010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2822
2823 PR fortran/36234
2824 * gfortran.texi: Document lack of support for syntax
2825 "complex FUNCTION name*16()", and existence of alternative
2826 legacy syntax "complex*16 FUNCTION name()".
2827
da12c997
FXC
28282010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2829
2830 PR fortran/43032
2831 * intrinsic.texi (FLUSH): Note the difference between FLUSH and
2832 POSIX's fsync(), and how to call the latter from Fortran code.
2833
84efddb2
DF
28342010-06-10 Daniel Franke <franke.daniel@gmail.com>
2835
2836 PR fortran/44457
2837 * interface.c (compare_actual_formal): Reject actual arguments with
2838 array subscript passed to ASYNCHRONOUS dummys.
2839
03af1e4c
DK
28402010-06-10 Daniel Kraft <d@domob.eu>
2841
2842 PR fortran/38936
2843 * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
2844 (struct gfc_symbol): New field `assoc'.
2845 (struct gfc_association_list): New struct.
2846 (struct gfc_code): New struct `block' in union, move `ns' there
2847 and add association list.
2848 (gfc_free_association_list): New method.
2849 (gfc_has_vector_subscript): Made public;
2850 * match.h (gfc_match_associate): New method.
2851 * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
2852 * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
2853 * interface.c (gfc_has_vector_subscript): Made public.
2854 (compare_actual_formal): Rename `has_vector_subscript' accordingly.
2855 * match.c (gfc_match_associate): New method.
2856 (gfc_match_select_type): Change reference to gfc_code's `ns' field.
2857 * primary.c (match_variable): Don't allow names associated to expr here.
2858 * parse.c (decode_statement): Try matching ASSOCIATE statement.
2859 (case_exec_markers, case_end): Add ASSOCIATE statement.
2860 (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
2861 (parse_associate): New method.
2862 (parse_executable): Handle ST_ASSOCIATE.
2863 (parse_block_construct): Change reference to gfc_code's `ns' field.
2864 * resolve.c (resolve_select_type): Ditto.
2865 (resolve_code): Ditto.
2866 (resolve_block_construct): Ditto and add comment.
2867 (resolve_select_type): Set association list in generated BLOCK to NULL.
2868 (resolve_symbol): Resolve associate names.
2869 * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
2870 and free association list.
2871 (gfc_free_association_list): New method.
2872 * symbol.c (gfc_new_symbol): NULL new field `assoc'.
2873 * trans-stmt.c (gfc_trans_block_construct): Change reference to
2874 gfc_code's `ns' field.
2875
acaed831
KT
28762010-06-10 Kai Tietz <kai.tietz@onevision.com>
2877
2878 * error.c (error_print): Pre-initialize loc by NULL.
2879 * openmp.c (resolve_omp_clauses): Add explicit
2880 braces to avoid ambigous else.
2881 * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
2882
07a67d6a
GP
28832010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
2884
2885 * gfc-internals.texi: Move to GFDL 1.3.
2886 * gfortran.texi: Ditto.
2887 * intrinsic.texi: Ditto.
2888 * invoke.texi: Ditto.
2889
70987f62
DF
28902010-06-09 Daniel Franke <franke.daniel@gmail.com>
2891
2892 PR fortran/44347
2893 * check.c (gfc_check_selected_real_kind): Verify that the
2894 actual arguments are scalar.
2895
33169a22
DF
28962010-06-09 Daniel Franke <franke.daniel@gmail.com>
2897
2898 PR fortran/44359
2899 * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
2900
b51789fe
JW
29012010-06-09 Janus Weil <janus@gcc.gnu.org>
2902
2903 PR fortran/44430
2904 * dump-parse-tree.c (show_symbol): Avoid infinite loop.
2905
87b18909
SK
29062010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
2907
2908 * fortran/symbol.c (check_conflict): Remove an invalid conflict check.
2909
289e52fd
SK
29102010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
2911
2912 * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
2913 gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
2914 * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
2915 gfc_check_ibclr, and gfc_check_ibset. Add prototype for
2916 gfc_check_bitfcn.
2917 * fortran/check.c (nonnegative_check, less_than_bitsize1,
2918 less_than_bitsize2): New functions.
2919 (gfc_check_btest): Renamed to gfc_check_bitfcn. Use
2920 nonnegative_check and less_than_bitsize1.
2921 (gfc_check_ibclr, gfc_check_ibset): Removed.
2922 (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
2923 less_than_bitsize1.
2924
f1a0b754
JW
29252010-06-09 Janus Weil <janus@gcc.gnu.org>
2926
2927 PR fortran/44211
2928 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2929 Resolve references.
2930
37b28a35
KT
29312010-06-09 Kai Tietz <kai.tietz@onevision.com>
2932
2933 * resolve.c (resolve_deallocate_expr): Avoid warning
2934 about possible use of iunitialized sym.
2935 (resolve_allocate_expr): Pre-initialize sym by NULL.
2936
07b7ede0
FXC
29372010-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2938
2939 PR fortran/43040
2940 * f95-lang.c (gfc_init_builtin_functions): Remove comment.
2941
a9429e29
LB
29422010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2943
2944 * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
2945 allocation.
2946 (gfc_get_array_type_bounds): Likewise.
2947
2948 * trans-decl.c (gfc_allocate_lang_decl): Likewise.
2949 (gfc_find_module): Likewise.
2950
2951 * f95-lang.c (pushlevel): Likewise.
2952
2953 * trans.h (struct lang_type): Add variable_size GTY option.
2954 (struct lang_decl): Likewise.
2955
c064bf1c
TB
29562010-06-08 Tobias Burnus <burnus@net-b.de>
2957
2958 PR fortran/44446
2959 * symbol.c (check_conflict): Move protected--external/procedure check ...
2960 * resolve.c (resolve_select_type): ... to the resolution stage.
2961
e7105ec5
TB
29622010-06-07 Tobias Burnus <burnus@net-b.de>
2963
2964 * options.c (gfc_handle_option): Fix -fno-recursive.
2965
d233147b
TB
29662010-06-07 Tobias Burnus <burnus@net-b.de>
2967
2968 * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
2969 * gfortran.texi (copyrights-gfortran): Ditto.
2970
5498f011
JM
29712010-06-07 Joseph Myers <joseph@codesourcery.com>
2972
2973 * lang.opt (fshort-enums): Define using Var and VarExists.
2974 * options.c (gfc_handle_option): Don't set flag_short_enums here.
2975
15d774f9
PT
29762010-06-05 Paul Thomas <pault@gcc.gnu.org>
2977 Janus Weil <janus@gcc.gnu.org>
2978
2979 PR fortran/43945
2980 * resolve.c (get_declared_from_expr): Move to before
2981 resolve_typebound_generic_call. Make new_ref and class_ref
2982 ignorable if set to NULL.
2983 (resolve_typebound_generic_call): Once we have resolved the
2984 generic call, check that the specific instance is that which
2985 is bound to the declared type.
2986 (resolve_typebound_function,resolve_typebound_subroutine): Avoid
2987 freeing 'class_ref->next' twice.
2988
546a65d9
PT
29892010-06-05 Paul Thomas <pault@gcc.gnu.org>
2990
2991 PR fortran/43895
2992 * trans-array.c (structure_alloc_comps): Dereference scalar
2993 'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
2994 TREE_TYPE (decl).
2995
bdc6b402
JM
29962010-06-04 Joseph Myers <joseph@codesourcery.com>
2997
2998 * gfortranspec.c (append_arg, lang_specific_driver): Use
2999 GCC-specific formats in diagnostics.
3000
aac18c02
TB
30012010-06-02 Tobias Burnus <burnus@net-b.de>
3002
3003 PR fortran/44360
3004 * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
3005 symbols.
3006
022d9260
JD
30072010-06-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3008
3009 PR fortran/44371
3010 * match.c (gfc_match_stopcode): Move gfc_match_eos call inside
3011 condition block.
3012
87187539
SK
30132010-05-31 Steven G. Kargl <kargl@gcc.gnu.org>
3014
3015 * fortran/gfortran.texi: Fix typos in description of variable-format-
3016 expressions.
3017
e2113565
TK
30182010-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
3019
3020 PR fortran/36928
3021 * dependency.c (gfc_check_section_vs_section): Check
3022 for interleaving array assignments without conflicts.
3023
7a08eda1
JW
30242010-05-30 Janus Weil <janus@gcc.gnu.org>
3025
3026 * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
3027 $data component of a class container.
3028 * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
3029 * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
3030 gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
3031 * gcc/fortran/interface.c (matching_typebound_op): Ditto.
3032 * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
3033 * gcc/fortran/parse.c (parse_derived): Ditto.
3034 * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
3035 gfc_expr_attr): Ditto.
3036 * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
3037 resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
3038 resolve_fl_var_and_proc, resolve_typebound_procedure,
3039 resolve_fl_derived): Ditto.
3040 * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
3041 * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
3042 CLASS_DATA.
3043 * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
3044 gfc_trans_deferred_vars): Ditto.
3045 * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
3046
984ad449
TB
30472010-05-28 Tobias Burnus <burnus@net-b.de>
3048
3049 * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
3050
2dec80c7
JM
30512010-05-28 Joseph Myers <joseph@codesourcery.com>
3052
3053 * gfortranspec.c (append_arg, lang_specific_driver): Use
3054 fatal_error instead of fatal. Use warning instead of fprintf for
3055 warnings.
3056
7ca92787
JM
30572010-05-28 Joseph Myers <joseph@codesourcery.com>
3058
3059 * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
3060 * module.c (write_char, gfc_dump_module, gfc_use_module): Use
3061 xstrerror instead of strerror.
3062
5f0f4a3b
JM
30632010-05-26 Joseph Myers <joseph@codesourcery.com>
3064
3065 * cpp.c (cb_cpp_error): Save and restore
3066 global_dc->warn_system_headers, not variable warn_system_headers.
3067
140b7433
SB
30682010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3069
3070 * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
3071
d347d97e
SB
30722010-05-26 Steven Bosscher <steven@gcc.gnu.org>
3073
3074 * trans-common.c: Do not include rtl.h, include output.h instead.
3075 * trans-decl.c: Likewise.
3076
cc9a4ca9
PT
30772010-05-26 Paul Thomas <pault@gcc.gnu.org>
3078
3079 PR fortran/40011
3080 * resolve.c (resolve_global_procedure): Resolve the gsymbol's
3081 namespace before trying to reorder the gsymbols.
3082
30145da5
DF
30832010-05-25 Daniel Franke <franke.daniel@gmail.com>
3084
3085 PR fortran/30668
3086 PR fortran/31346
3087 PR fortran/34260
3088 * resolve.c (resolve_global_procedure): Add check for global
3089 procedures with implicit interfaces and assumed-shape or optional
3090 dummy arguments. Verify that function return type, kind and string
3091 lengths match.
3092
7274feea
TB
30932010-05-21 Tobias Burnus <burnus@net-b.de>
3094
3095 * gfortran.h: Do not include system.h.
3096 * bbt.c: Include system.h.
3097 * data.c: Ditto.
3098 * dependency.c: Ditto.
3099 * dump-parse-tree.c: Ditto.
3100 * arith.h: Do not include gfortran.h.
3101 * constructor.h: Do not include gfortran.h and splay-tree.h.
3102 * match.h: Do not include gfortran.h.
3103 * parse.h: Ditto.
3104 * target-memory.h: Ditto.
3105 * openmp.c: Do not include toplev.h and target.h.
3106 * trans-stmt.c: Ditto not include toplev.h.
3107 * primary.c: Ditto.
3108 * trans-common.c: Tell why toplev.h is needed. And
3109 do not include target.h.
3110 * trans-expr.c: Tell why toplev.h is needed.
3111 * trans-array.c: Ditto.
3112 * trans-openmp.c: Ditto.
3113 * trans-const.c: Ditto.
3114 * trans.c: Ditto.
3115 * trans-types.c: Ditto.
3116 * trans-io.c: Ditto.
3117 * trans-decl.c: Ditto.
3118 * scanner.c: Ditto.
3119 * convert.c: Ditto.
3120 * trans-intrinsic.c: Ditto.
3121 * options.c: Ditto.
3122
5d2d72cb
JD
31232010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3124
3125 PR fortran/43851
3126 * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
3127 before returning MATCH_ERROR. Add check for scalar. Add check for
3128 default integer kind.
3129
bc382218
JW
31302010-05-22 Janus Weil <janus@gcc.gnu.org>
3131
3132 PR fortran/44212
3133 * match.c (gfc_match_select_type): On error jump back out of the local
3134 namespace.
3135 * parse.c (parse_derived): Defer creation of vtab symbols to resolution
3136 stage, more precisely to ...
3137 * resolve.c (resolve_fl_derived): ... this place.
3138
7c9b8fb9
JW
31392010-05-22 Janus Weil <janus@gcc.gnu.org>
3140
3141 PR fortran/44213
3142 * resolve.c (ensure_not_abstract): Allow abstract types with
3143 non-abstract ancestors.
3144
d49b6e1e
SB
31452010-05-21 Steven Bosscher <steven@gcc.gnu.org>
3146
3147 * trans-const.c: Include realmpfr.h.
3148 * Make-lang.in: Update dependencies.
3149
40013784
SB
31502010-05-21 Steven Bosscher <steven@gcc.gnu.org>
3151
3152 * trans-const.c, trans-types.c, trans-intrinsic.c:
3153 Clean up redundant includes.
3154
4ed44ccc
DF
31552010-05-20 Daniel Franke <franke.daniel@gmail.com>
3156
3157 PR fortran/38407
3158 * lang.opt (Wunused-dummy-argument): New option.
3159 * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
3160 * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
3161 (set_Wall): Enable warn_unused_dummy_argument.
3162 (gfc_handle_option): Set warn_unused_dummy_argument according to
3163 command line.
3164 * trans-decl.c (generate_local_decl): Separate warnings about
3165 unused variables and unused dummy arguments.
3166 * invoke.texi: Documented new option.
3167
a48ba7e1
SB
31682010-05-20 Steven Bosscher <steven@gcc.gnu.org>
3169
3170 * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
3171 (gfc_conv_string_tmp): Do not assert type comparibilty.
3172 * trans-array.c: Do not include gimple.h, ggc.h, and real.h.
3173 (gfc_conv_expr_descriptor): Remove assert.
3174 * trans-common.c: Clarify why rtl.h and tm.h are included.
3175 * trans-openmp.c: Do not include ggc.h and real.h.
3176 Explain why gimple.h is included.
3177 * trans-const.c: Do not include ggc.h.
3178 * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
3179 * trans.c: Do not include ggc.h and real.h.
3180 Explain why gimple.h is included.
3181 * trans-types.c: Do not include tm.h. Explain why langhooks.h
3182 and dwarf2out.h are included.
3183 * trans-io.c: Do not include gimple.h and real.h.
3184 * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
3185 * trans-intrinsic.c: Do not include gimple.h. Explain why tm.h
3186 is included.
3187
feef2551
TB
31882010-05-20 Tobias Burnus <burnus@net-b.de>
3189
3190 * options.c (gfc_init_options,gfc_post_options): Enable
3191 flag_associative_math by default.
3192
6d1b0f92
JD
31932010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3194
3195 PR fortran/43851
3196 * trans-stmt.c (gfc_trans_stop): Add generation of call to
3197 gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
3198 blank STOP, handling a null expression. (gfc_trans_pause): Use
3199 pause_string for blank PAUSE.
3200 * trans.h: Add external function declaration for error_stop_numeric.
3201 * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
3202 the declaration for the library call. Adjust whitespaces.
3203 * match.c (gfc_match_stopcode): Remove use of the actual stop code to
3204 signal no stop code. Match the expression following the stop and pass
3205 that to the translators. Remove the old use of digit matching. Add
3206 checks that the stop_code expression is INTEGER or CHARACTER, constant,
3207 and if CHARACTER, default character KIND.
3208
daf8c6f0
DF
32092010-05-19 Daniel Franke <franke.daniel@gmail.com>
3210
3211 PR fortran/44055
3212 * lang.opt (Wconversion-extra): New option.
3213 * gfortran.h (gfc_option_t): Add warn_conversion_extra.
3214 * options.c (gfc_init_options): Disable -Wconversion-extra by default.
3215 (set_Wall): Enable -Wconversion.
3216 (gfc_handle_option): Set warn_conversion_extra.
3217 * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
3218 introduced for -Wconversion if -Wconversion-extra is present.
3219 * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
3220 -Wconversion; document -Wconversion-extra.
3221
16e520b6
DF
32222010-05-19 Daniel Franke <franke.daniel@gmail.com>
3223
3224 PR fortran/42360
3225 * gfortran.h (gfc_has_default_initializer): New.
3226 * expr.c (gfc_has_default_initializer): New.
3227 * resolve.c (has_default_initializer): Removed, use
3228 gfc_has_default_initializer() instead. Updated all callers.
3229 * trans-array.c (has_default_initializer): Removed, use
3230 gfc_has_default_initializer() instead. Updated all callers.
3231 * trans-decl.c (generate_local_decl): Do not check the
3232 first component only to check for initializers, but use
3233 gfc_has_default_initializer() instead.
3234
66faed76
DF
32352010-05-19 Daniel Franke <franke.daniel@gmail.com>
3236
3237 PR fortran/38404
3238 * primary.c (match_string_constant): Move start_locus just inside
3239 the string.
3240 * data.c (create_character_intializer): Clarified truncation warning.
3241
c9018c71
DF
32422010-05-19 Daniel Franke <franke.daniel@gmail.com>
3243
3244 PR fortran/34505
3245 * intrinsic.h (gfc_check_float): New prototype.
3246 (gfc_check_sngl): New prototype.
3247 * check.c (gfc_check_float): New.
3248 (gfc_check_sngl): New.
3249 * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
3250 to be a specific for REAL. Added check routines for FLOAT, DFLOAT
3251 and SNGL.
3252 * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
3253 added them to the list of specifics of REAL instead.
3254
94ea6939
JW
32552010-05-17 Janus Weil <janus@gcc.gnu.org>
3256
3257 PR fortran/43990
3258 * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
3259 This is now handled via 'gfc_class_null_initializer'.
3260
d15bac21
JW
32612010-05-17 Janus Weil <janus@gcc.gnu.org>
3262
3263 * class.c (gfc_add_component_ref,gfc_class_null_initializer,
3264 gfc_build_class_symbol,add_proc_component,add_proc_comps,
3265 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3266 add_procs_to_declared_vtab,add_generic_specifics,
3267 add_generics_to_declared_vtab,gfc_find_derived_vtab,
3268 find_typebound_proc_uop,gfc_find_typebound_proc,
3269 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3270 gfc_get_tbp_symtree): Moved here from other places.
3271 * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
3272 class.c.
3273 * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
3274 gfc_find_typebound_proc,gfc_find_typebound_user_op,
3275 gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
3276 gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
3277 * Make-lang.in: Add class.o.
3278 * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
3279 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3280 add_procs_to_declared_vtab,add_generic_specifics,
3281 add_generics_to_declared_vtab,gfc_find_derived_vtab,
3282 find_typebound_proc_uop,gfc_find_typebound_proc,
3283 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3284 gfc_get_tbp_symtree): Move to class.c.
3285
1eabc6be 32862010-05-17 Nathan Froyd <froydnj@codesourcery.com>
b64fca63
NF
3287
3288 * trans-types.c (gfc_init_types): Use build_function_type_list.
3289 (gfc_get_ppc_type): Likewise.
3290 * trans-decl.c (gfc_generate_constructors): Likewise.
3291 * f95-lang.c (build_builtin_fntypes): Likewise.
3292 (gfc_init_builtin_functions): Likewise.
3293 (DEF_FUNCTION_TYPE_0): Likewise.
3294 (DEF_FUNCTION_TYPE_1): Likewise.
3295 (DEF_FUNCTION_TYPE_2): Likewise.
3296 (DEF_FUNCTION_TYPE_3): Likewise.
3297 (DEF_FUNCTION_TYPE_4): Likewise.
3298 (DEF_FUNCTION_TYPE_5): Likewise.
3299 (DEF_FUNCTION_TYPE_6): Likewise.
3300 (DEF_FUNCTION_TYPE_7): Likewise. Use ARG7.
3301 (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
3302
8341deb5 33032010-05-17 Nathan Froyd <froydnj@codesourcery.com>
8748ad99
NF
3304
3305 * trans-array.c (gfc_trans_array_constructor_value): Use
3306 build_constructor instead of build_constructor_from_list.
3307 (gfc_build_constant_array_constructor): Likewise.
3308 * trans-decl.c (create_main_function): Likewise.
3309 * trans-stmt.c (gfc_trans_character_select): Likewise.
3310
233961db
JW
33112010-05-17 Janus Weil <janus@gcc.gnu.org>
3312
3313 PR fortran/44044
3314 * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
3315 (resolve_fl_variable_derived): ... this place.
3316 (resolve_symbol): Make sure function symbols (and their result
3317 variables) are not resolved twice.
3318
cdc6637d
DF
33192010-05-16 Daniel Franke <franke.daniel@gmail.com>
3320
feef2551 3321 PR fortran/35779
cdc6637d
DF
3322 * array.c (match_array_list): Revert change from 2010-05-13.
3323
afdda4b4
RG
33242010-05-16 Richard Guenther <rguenther@suse.de>
3325
3326 * trans-decl.c (module_htab_decls_hash): Revert last change.
3327
6456e26e
RG
33282010-05-16 Richard Guenther <rguenther@suse.de>
3329
3330 * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
3331
fa36ce9c
MLI
33322010-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
3333
3334 * options.c (set_Wall): Remove special logic for Wuninitialized
3335 without -O.
3336
3a28464c
JW
33372010-05-15 Janus Weil <janus@gcc.gnu.org>
3338
3339 PR fortran/44154
3340 PR fortran/42647
3341 * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
3342 if branches.
3343
f8dde8af
JW
33442010-05-15 Janus Weil <janus@gcc.gnu.org>
3345
3346 PR fortran/43207
3347 PR fortran/43969
3348 * gfortran.h (gfc_class_null_initializer): New prototype.
3349 * expr.c (gfc_class_null_initializer): New function to build a NULL
3350 initializer for CLASS pointers.
3351 * symbol.c (gfc_build_class_symbol): Modify internal naming of class
3352 containers. Remove default NULL initialization of $data component.
3353 * trans.c (gfc_allocate_array_with_status): Fix wording of an error
3354 message.
3355 * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
3356 Use new function 'gfc_class_null_initializer'.
3357 * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
3358 class variables.
3359
c13af44b
SK
33602010-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
3361
3362 PR fortran/44135
3363 * fortran/interface.c (get_sym_storage_size): Use signed instead of
3364 unsigned mpz_get_?i routines.
3365
88e09c79
JJ
33662010-05-14 Jakub Jelinek <jakub@redhat.com>
3367
3368 * trans.c (trans_code): Set backend locus early.
3369 * trans-decl.c (gfc_get_fake_result_decl): Use source location
3370 of the function instead of current input_location.
3371
f2cbd86c
DF
33722010-05-13 Daniel Franke <franke.daniel@gmail.com>
3373
feef2551
TB
3374 PR fortran/35779
3375 * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
3376 Updated all usages.
3377 * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
3378 * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
3379 iterators.
f2cbd86c 3380
2b45bf21
JJ
33812010-05-13 Jakub Jelinek <jakub@redhat.com>
3382
3383 PR fortran/44036
3384 * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
3385 variable lists.
3386 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
3387 by reference dummy procedures or non-dummy procedure pointers.
3388 (gfc_omp_predetermined_sharing): Return
3389 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
3390
edf86ec1
DF
33912010-05-11 Daniel Franke <franke.daniel@gmail.com>
3392
feef2551
TB
3393 PR fortran/43711
3394 * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
3395 after OMP statement.
3396 (gfc_match_omp_critical): Likewise.
3397 (gfc_match_omp_flush): Likewise.
3398 (gfc_match_omp_workshare): Likewise.
3399 (gfc_match_omp_master): Likewise.
3400 (gfc_match_omp_ordered): Likewise.
3401 (gfc_match_omp_atomic): Likewise.
3402 (gfc_match_omp_barrier): Likewise.
3403 (gfc_match_omp_end_nowait): Likewise.
edf86ec1 3404
ad1614a7
DF
34052010-05-11 Daniel Franke <franke.daniel@gmail.com>
3406
3407 PR fortran/31820
3408 * resolve.c (validate_case_label_expr): Removed FIXME.
3409 (resolve_select): Raise default warning on case labels out of range
3410 of the case expression.
3411
4e42ad66
DF
34122010-05-10 Daniel Franke <franke.daniel@gmail.com>
3413
3414 PR fortran/27866
3415 PR fortran/35003
3416 PR fortran/42809
ad1614a7 3417 * intrinsic.c (gfc_convert_type_warn): Be more discriminative
4e42ad66
DF
3418 about conversion warnings.
3419
f5dbb57c
JW
34202010-05-10 Janus Weil <janus@gcc.gnu.org>
3421
3422 PR fortran/44044
3423 * match.c (gfc_match_select_type): Move error message to
3424 resolve_select_type.
3425 * resolve.c (resolve_select_type): Error message moved here from
3426 gfc_match_select_type. Correctly set type of temporary.
3427
0b7b376d
RG
34282010-05-10 Richard Guenther <rguenther@suse.de>
3429
3430 * trans-decl.c (gfc_build_library_function_decl): Split out
3431 worker to ...
3432 (build_library_function_decl_1): ... this new function.
3433 Set a fnspec attribute if a specification was provided.
3434 (gfc_build_library_function_decl_with_spec): New function.
3435 (gfc_build_intrinsic_function_decls): Annotate internal_pack
3436 and internal_unpack.
3437
db7d7dc1
DF
34382010-05-07 Daniel Franke <franke.daniel@gmail.com>
3439
3440 PR fortran/40728
3441 * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
feef2551 3442 as external.
db7d7dc1 3443
2cd5965f
JM
34442010-05-07 Jason Merrill <jason@redhat.com>
3445
3446 * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
3447 to avoid -Wc++-compat warning.
3448
3734d960
MLI
34492010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
3450
3451 PR 40989
3452 * options.c (gfc_handle_option): Add argument kind.
3453 * gfortran.h (gfc_handle_option): Update declaration.
3454
34552010-05-06 Tobias Burnus <burnus@net-b.de>
5e7b92b9
TB
3456
3457 PR fortran/43985
3458 * trans-types.c (gfc_sym_type): Mark Cray pointees as
3459 GFC_POINTER_TYPE_P.
3460
147a19a9
DF
34612010-05-05 Daniel Franke <franke.daniel@gmail.com>
3462
db7d7dc1 3463 PR fortran/32331
5e7b92b9
TB
3464 * resolve.c (traverse_data_list): Rephrase error message for
3465 non-constant bounds in data-implied-do.
147a19a9 3466
e5880243
DF
34672010-05-05 Daniel Franke <franke.daniel@gmail.com>
3468
3469 PR fortran/24978
3470 * gfortran.h: Removed repeat count from constructor, removed
3471 all usages.
3472 * data.h (gfc_assign_data_value_range): Changed return value from
3473 void to gfc_try.
3474 * data.c (gfc_assign_data_value): Add location to constructor element.
3475 (gfc_assign_data_value_range): Call gfc_assign_data_value()
3476 for each element in range. Return early if an error was generated.
3477 * resolve.c (check_data_variable): Stop early if range assignment
3478 generated an error.
3479
371b334e
JW
34802010-05-05 Janus Weil <janus@gcc.gnu.org>
3481
3482 PR fortran/43696
3483 * resolve.c (resolve_fl_derived): Some fixes for class variables.
3484 * symbol.c (gfc_build_class_symbol): Add separate class container for
3485 class pointers.
3486
431f5969
SK
34872010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
3488
3489 PR fortran/43592
3490 * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3491
0d6d8e00
TB
34922010-05-02 Tobias Burnus <burnus@net-b.de>
3493
3494 PR fortran/18918
3495 * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3496 for lcobound, ucobound, image_index and this_image.
3497 * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3498 gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3499 * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3500 gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3501 functions.
3502 (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3503
35042010-04-30 Tobias Burnus <burnus@net-b.de>
bf65e4b1
TB
3505
3506 PR fortran/18918
3507 PR fortran/43931
3508 * trans-types.c (gfc_get_array_descriptor_base): Fix index
3509 calculation for array descriptor types.
3510
eece1eb9
PT
35112010-04-29 Janus Weil <janus@gcc.gnu.org>
3512
3513 PR fortran/43896
3514 * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3515 initializers for PPC members of the vtabs.
3516
35172010-04-29 Janus Weil <janus@gcc.gnu.org>
3518
3519 PR fortran/42274
3520 * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
3521 attribute for all PPC members of the vtypes.
3522 (copy_vtab_proc_comps): Copy the correct interface.
3523 * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
3524 * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
3525 a dummy argument and make sure all PPC members of the vtab are
3526 initialized correctly.
3527 (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
3528 in call to gfc_trans_assign_vtab_procs.
3529 * trans-stmt.c (gfc_trans_allocate): Ditto.
3530
35312010-04-29 Paul Thomas <pault@gcc.gnu.org>
3532
3533 PR fortran/43326
3534 * resolve.c (resolve_typebound_function): Renamed
3535 resolve_class_compcall.Do all the detection of class references
3536 here.
3537 (resolve_typebound_subroutine): resolve_class_typebound_call
3538 renamed. Otherwise same as resolve_typebound_function.
3539 (gfc_resolve_expr): Call resolve_typebound_function.
3540 (resolve_code): Call resolve_typebound_subroutine.
3541
35422010-04-29 Janus Weil <janus@gcc.gnu.org>
3543
3544 PR fortran/43492
3545 * resolve.c (resolve_typebound_generic_call): For CLASS methods
3546 pass back the specific symtree name, rather than the target
3547 name.
3548
35492010-04-29 Paul Thomas <pault@gcc.gnu.org>
3550
3551 PR fortran/42353
3552 * resolve.c (resolve_structure_cons): Make the initializer of
3553 the vtab component 'extends' the same type as the component.
3554
35552010-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3556
3557 PR fortran/42680
3558 * interface.c (check_interface1): Pass symbol name rather than NULL to
3559 gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
3560 trap MULL. (gfc_compare_derived_types): Revert previous change
3561 incorporated incorrectly during merge from trunk, r155778.
3562 * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3563 than NULL to gfc_compare_interfaces.
3564 * symbol.c (add_generic_specifics): Likewise.
3565
35662010-02-29 Janus Weil <janus@gcc.gnu.org>
3567
3568 PR fortran/42353
3569 * interface.c (gfc_compare_derived_types): Add condition for vtype.
3570 * symbol.c (gfc_find_derived_vtab): Sey access to private.
3571 (gfc_find_derived_vtab): Likewise.
3572 * module.c (ab_attribute): Add enumerator AB_VTAB.
3573 (mio_symbol_attribute): Use new attribute, AB_VTAB.
3574 (check_for_ambiguous): Likewise.
3575
35762010-04-29 Paul Thomas <pault@gcc.gnu.org>
3577 Janus Weil <janus@gcc.gnu.org>
3578
3579 PR fortran/41829
3580 * trans-expr.c (select_class_proc): Remove function.
3581 (conv_function_val): Delete reference to previous.
3582 (gfc_conv_derived_to_class): Add second argument to the call to
3583 gfc_find_derived_vtab.
3584 (gfc_conv_structure): Exclude proc_pointer components when
3585 accessing $data field of class objects.
3586 (gfc_trans_assign_vtab_procs): New function.
3587 (gfc_trans_class_assign): Add second argument to the call to
3588 gfc_find_derived_vtab.
3589 * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
3590 implement holding off searching for the vptr derived type.
3591 (add_proc_component): New function.
3592 (add_proc_comps): New function.
3593 (add_procs_to_declared_vtab1): New function.
3594 (copy_vtab_proc_comps): New function.
3595 (add_procs_to_declared_vtab): New function.
3596 (void add_generic_specifics): New function.
3597 (add_generics_to_declared_vtab): New function.
3598 (gfc_find_derived_vtab): Add second argument to the call to
3599 gfc_find_derived_vtab. Add the calls to
3600 add_procs_to_declared_vtab and add_generics_to_declared_vtab.
3601 * decl.c (build_sym, build_struct): Use new arg in calls to
3602 gfc_build_class_symbol.
3603 * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
3604 definition of struct gfc_class_esym_list. Modify prototypes
3605 of gfc_build_class_symbol and gfc_find_derived_vtab.
3606 * trans-stmt.c (gfc_trans_allocate): Add second argument to the
3607 call to gfc_find_derived_vtab.
3608 * module.c : Add the vtype attribute.
3609 * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
3610 * resolve.c (resolve_typebound_generic_call): Add second arg
3611 to pass along the generic name for class methods.
3612 (resolve_typebound_call): The same.
3613 (resolve_compcall): Use the second arg to carry the generic
3614 name from the above. Remove the reference to class_esym.
3615 (check_members, check_class_members, resolve_class_esym,
3616 hash_value_expr): Remove functions.
3617 (resolve_class_compcall, resolve_class_typebound_call): Modify
3618 to use vtable rather than member by member calls.
3619 (gfc_resolve_expr): Modify second arg in call to
3620 resolve_compcall.
3621 (resolve_select_type): Add second arg in call to
3622 gfc_find_derived_vtab.
3623 (resolve_code): Add second arg in call resolve_typebound_call.
3624 (resolve_fl_derived): Exclude vtypes from check for late
3625 procedure definitions. Likewise for checking of explicit
3626 interface and checking of pass arg.
3627 * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
3628 calls to gfc_find_derived_vtab.
3629 * match.c (select_type_set_tmp): Use new arg in call to
3630 gfc_build_class_symbol.
3631 * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
3632 necessary.
3633 * parse.c (endType): Finish incomplete classes.
3634
a10da381
TB
36352010-04-28 Tobias Burnus <burnus@net-b.de>
3636
3637 PR fortran/18918
3638 PR fortran/43919
3639 * simplify.c (simplify_cobound): Handle scalar coarrays.
3640
ecb9d36f
TB
36412010-04-27 Tobias Burnus <burnus@net-b.de>
3642
3643 * gfc-internals.texi: Update copyright year.
3644 * gfortran.texi: Ditto.
3645 * invoke.texi: Ditto.
3646
f33beee9
TB
36472010-04-27 Tobias Burnus <burnus@net-b.de>
3648
3649 PR fortran/18918
3650 * resolve.c (resolve_allocate_expr): Allow array coarrays.
3651 * trans-types.h (gfc_get_array_type_bounds): Update prototype.
3652 * trans-types.c (gfc_get_array_type_bounds,
3653 gfc_get_array_descriptor_base): Add corank argument.
3654 * trans-array.c (gfc_array_init_size): Handle corank.
3655 (gfc_trans_create_temp_array, gfc_array_allocate,
3656 gfc_conv_expr_descriptor): Add corank argument to call.
3657 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
3658
8583a512
SK
36592010-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
3660
3661 PR fortran/30073
3662 PR fortran/43793
3663 * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
3664 of mucking with a tree directly.
3665
2b8f356c
JD
36662010-04-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3667
3668 PR fortran/43832
3669 * io.c (gfc_match_open): Remove branch to syntax error. Add call to
3670 gfc_error with new error message.
3671
991b4da1
PT
36722010-04-24 Paul Thomas <pault@gcc.gnu.org>
3673
3674 PR fortran/43841
3675 PR fortran/43843
3676 * trans-expr.c (gfc_conv_expr): Supply an address expression for
3677 GFC_SS_REFERENCE.
3678 (gfc_conv_expr_reference): Call gfc_conv_expr and return for
3679 GFC_SS_REFERENCE.
3680 * trans-array.c (gfc_add_loop_ss_code): Store the value rather
3681 than the address of a GFC_SS_REFERENCE.
3682 * trans.h : Change comment on GFC_SS_REFERENCE.
3683
92375a20
RG
36842010-04-22 Richard Guenther <rguenther@suse.de>
3685
3686 PR fortran/43829
3687 * resolve.c (gfc_resolve_index): Wrap around ...
3688 (gfc_resolve_index_1): ... this. Add parameter to allow
3689 any integer kind index type.
3690 (resolve_array_ref): Allow any integer kind for the start
3691 index of an array ref.
3692
2b65cd83
JJ
36932010-04-21 Jakub Jelinek <jakub@redhat.com>
3694
3695 PR fortran/43836
3696 * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
3697 the decl.
3698
b41f8489
HA
36992010-04-20 Harald Anlauf <anlauf@gmx.de>
3700
3701 * intrinsic.c (sort_actual): Remove 'is' in error message.
3702
9c4174d8
PT
37032010-04-20 Paul Thomas <pault@gcc.gnu.org>
3704
3705 PR fortran/43227
3706 * resolve.c (resolve_fl_derived): If a component character
3707 length has not been resolved, do so now.
3708 (resolve_symbol): The same as above for a symbol character
3709 length.
3710 * trans-decl.c (gfc_create_module_variable): A 'length' decl is
3711 not needed for a character valued, procedure pointer.
3712
3713 PR fortran/43266
3714 * resolve.c (ensure_not_abstract_walker): If 'overriding' is
3715 not found, return FAILURE rather than ICEing.
3716
310e4472
JJ
37172010-04-19 Jakub Jelinek <jakub@redhat.com>
3718
3719 PR fortran/43339
3720 * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
3721 sequential loops private in the innermost containing task region.
3722
3b9e5d95
EB
37232010-04-18 Eric Botcazou <ebotcazou@adacore.com>
3724
3725 * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
3726 to build_common_tree_nodes.
3727
6c559604
SK
37282010-04-17 Steven G. Kargl <kargl@gcc.gnu.org>
3729
3b9e5d95
EB
3730 PR fortran/31538
3731 * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
3732 gfc_msg_bounds by using 'Array bound mismatch' directly.
3733 (gfc_trans_dummy_array_bias): Remove the use of gfc_msg_bounds. Reword
3734 error message to include the mismatch in the extent of array bound.
3735 * fortran/trans.c: Remove gfc_msg_bounds. It is only used in one place.
3736 * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
6c559604 3737
0e9496cc
JD
37382010-04-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3739
3740 * gfortran.texi: Update information on temporary file locations.
3741
fcd3c5a9
JJ
37422010-04-16 Jakub Jelinek <jakub@redhat.com>
3743
3744 * trans-decl.c (gfc_build_qualified_array): Ensure
3745 ubound.N and lbound.N artificial variable names don't appear
3746 in debug info.
3747
e3e529d1
SK
37482010-04-15 Steven G. Kargl <kargl@gcc.gnu.org>
3749
3750 PR fortran/30073
3751 * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
3752 block of code. Set name to the variable associated with the descriptor.
3753
e429bb49
JJ
37542010-04-15 Jakub Jelinek <jakub@redhat.com>
3755
3756 * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
3757 on VAR_DECL LBOUND and/or UBOUND, even for -O1.
3758
17fb1a8c
SK
37592010-04-14 Steven G. Kargl <kargl@gcc.gnu.org>
3760
e429bb49 3761 * intrinsic.texi: Add the missing specific name of intrinsic
17fb1a8c
SK
3762 procedure where the specific name is identical to the generic name.
3763 Fix inconsistent or mismatch in the argument names in intrinsic
3764 procedure descriptions. Add the SCALAR allocatable description to
3765 ALLOCATED.
3766
64f002ed
TB
37672010-04-14 Tobias Burnus <burnus@net-b.de>
3768
3769 PR fortran/18918
3770 * array.c (gfc_find_array_ref): Handle codimensions.
3771 (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
3772 * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
3773 gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
3774 New functions.
3775 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
3776 GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
3777 GFC_ISYM_UCOBOUND.
3778 * intrinsic.h (add_functions): Add this_image, image_index,
3779 lcobound and ucobound intrinsics.
3780 * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
3781 gfc_check_image_index, gfc_check_this_image,
3782 gfc_simplify_image_index, gfc_simplify_lcobound,
3783 gfc_simplify_this_image, gfc_simplify_ucobound):
3784 New function prototypes.
3785 * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
3786 IMAGE_INDEX): Document new intrinsic functions.
3787 * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
3788 error fatal.
3789 * simplify.c (simplify_bound_dim): Handle coarrays.
3790 (simplify_bound): Update simplify_bound_dim call.
3791 (gfc_simplify_num_images): Add -fcoarray=none check.
3792 (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
3793 gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
3794
b1ccc24e
JD
37952010-04-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3796
3797 PR fortran/43747
3798 * constructor.c: Fix typo in comment.
3799 * expr.c (find_array_section): Add check for max array limit.
3800
5f1c83e1
IS
38012010-04-13 Iain Sandoe <iains@gcc.gnu.org>
3802
3803 PR bootstrap/31400
3804 * gfortranspec.c (lookup_option): Check for -static and return
3805 OPTION_static.
3806 (lang_specific_driver): Break when OPTION_static is discovered.
3807
b7e75771
JD
38082010-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3809
3810 * array.c (extract_element): Restore function from trunk.
3811 (gfc_get_array_element): Restore function from trunk.
3812 (gfc_expand_constructor): Restore check against
3813 flag_max_array_constructor.
3814 * constructor.c (node_copy_and_append): Delete unused.
3815 * gfortran.h: Delete comment and extra include.
3816 * constructor.h: Bump copyright and clean up TODO comments.
3817 * resolve.c: Whitespace.
3818
38192010-04-12 Daniel Franke <franke.daniel@gmail.com>
3820
3821 * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
3822 with direct access access to elements. Adjusted prototype, fixed all
3823 callers.
3824 (gfc_simplify_dot_product): Removed duplicate check for zero-sized
3825 array.
3826 (gfc_simplify_matmul): Removed usage of ADVANCE macro.
3827 (gfc_simplify_spread): Removed workaround, directly insert elements
3828 at a given array position.
3829 (gfc_simplify_transpose): Likewise.
3830 (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
3831 function calls.
3832 (gfc_simplify_unpack): Likewise.
3833
38342010-04-12 Daniel Franke <franke.daniel@gmail.com>
3835
3836 * simplify.c (only_convert_cmplx_boz): Renamed to ...
3837 (convert_boz): ... this and moved to start of file.
3838 (gfc_simplify_abs): Whitespace fix.
3839 (gfc_simplify_acos): Whitespace fix.
3840 (gfc_simplify_acosh): Whitespace fix.
3841 (gfc_simplify_aint): Whitespace fix.
3842 (gfc_simplify_dint): Whitespace fix.
3843 (gfc_simplify_anint): Whitespace fix.
3844 (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
3845 (gfc_simplify_dnint): Whitespace fix.
3846 (gfc_simplify_asin): Whitespace fix.
3847 (gfc_simplify_asinh): Moved creation of result-expr out of switch.
3848 (gfc_simplify_atan): Likewise.
3849 (gfc_simplify_atanh): Whitespace fix.
3850 (gfc_simplify_atan2): Whitespace fix.
3851 (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
3852 (gfc_simplify_bessel_j1): Likewise.
3853 (gfc_simplify_bessel_jn): Likewise.
3854 (gfc_simplify_bessel_y0): Likewise.
3855 (gfc_simplify_bessel_y1): Likewise.
3856 (gfc_simplify_bessel_yn): Likewise.
3857 (gfc_simplify_ceiling): Reorderd statements.
3858 (simplify_cmplx): Use convert_boz(), check for constant arguments.
3859 Whitespace fix.
3860 (gfc_simplify_cmplx): Use correct default kind. Removed check for
3861 constant arguments.
3862 (gfc_simplify_complex): Replaced if-gate. Removed check for
3863 constant arguments.
3864 (gfc_simplify_conjg): Whitespace fix.
3865 (gfc_simplify_cos): Whitespace fix.
3866 (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
3867 (gfc_simplify_dcmplx): Removed check for constant arguments.
3868 (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
3869 (gfc_simplify_digits): Whitespace fix.
3870 (gfc_simplify_dim): Whitespace fix.
3871 (gfc_simplify_dprod): Reordered statements.
3872 (gfc_simplify_erf): Whitespace fix.
3873 (gfc_simplify_erfc): Whitespace fix.
3874 (gfc_simplify_epsilon): Whitespace fix.
3875 (gfc_simplify_exp): Whitespace fix.
3876 (gfc_simplify_exponent): Use convert_boz().
3877 (gfc_simplify_floor): Reorderd statements.
3878 (gfc_simplify_gamma): Whitespace fix.
3879 (gfc_simplify_huge): Whitespace fix.
3880 (gfc_simplify_iand): Whitespace fix.
3881 (gfc_simplify_ieor): Whitespace fix.
3882 (simplify_intconv): Use gfc_convert_constant().
3883 (gfc_simplify_int): Use simplify_intconv().
3884 (gfc_simplify_int2): Reorderd statements.
3885 (gfc_simplify_idint): Reorderd statements.
3886 (gfc_simplify_ior): Whitespace fix.
3887 (gfc_simplify_ishftc): Removed duplicate type check.
3888 (gfc_simplify_len): Use range_check() instead of manual range check.
3889 (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
3890 (gfc_simplify_log): Whitespace fix.
3891 (gfc_simplify_log10): Whitespace fix.
3892 (gfc_simplify_minval): Whitespace fix.
3893 (gfc_simplify_maxval): Whitespace fix.
3894 (gfc_simplify_mod): Whitespace fix.
3895 (gfc_simplify_modulo): Whitespace fix.
3896 (simplify_nint): Reorderd statements.
3897 (gfc_simplify_not): Whitespace fix.
3898 (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
3899 (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
3900 (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
3901 (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
3902 (gfc_simplify_realpart): Whitespace fix.
3903 (gfc_simplify_selected_char_kind): Removed unused result-variable.
3904 (gfc_simplify_selected_int_kind): Removed unused result-variable.
3905 (gfc_simplify_selected_real_kind): Removed unused result-variable.
3906 (gfc_simplify_sign): Whitespace fix.
3907 (gfc_simplify_sin): Whitespace fix.
3908 (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
3909 (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
3910 (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
3911 (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
3912 (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
3913
39142010-04-12 Daniel Franke <franke.daniel@gmail.com>
3915
3916 * gfortran.h (gfc_start_constructor): Removed.
3917 (gfc_get_array_element): Removed.
3918 * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr
3919 instead. Fixed all callers.
3920 (extract_element): Removed.
3921 (gfc_expand_constructor): Temporarily removed check for
3922 max-array-constructor. Will be re-introduced later if still required.
3923 (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
3924 instead. Fixed all callers.
3925 * expr.c (find_array_section): Replaced manual lookup of elements
3926 by gfc_constructor_lookup.
3927
39282010-04-12 Daniel Franke <franke.daniel@gmail.com>
3929
feef2551
TB
3930 * gfortran.h (gfc_get_null_expr): New prototype.
3931 (gfc_get_operator_expr): New prototype.
3932 (gfc_get_character_expr): New prototype.
3933 (gfc_get_iokind_expr): New prototype.
3934 * expr.c (gfc_get_null_expr): New.
3935 (gfc_get_character_expr): New.
3936 (gfc_get_iokind_expr): New.
3937 (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
3938 * matchexp.c (build_node): Renamed and moved to
3939 expr.c (gfc_get_operator_expr). Reordered arguments to match
3940 other functions. Fixed all callers.
3941 (gfc_get_parentheses): Use specific function to build expr.
3942 * array.c (gfc_match_array_constructor): Likewise.
3943 * arith.c (eval_intrinsic): Likewise.
3944 (gfc_hollerith2int): Likewise.
3945 (gfc_hollerith2real): Likewise.
3946 (gfc_hollerith2complex): Likewise.
3947 (gfc_hollerith2logical): Likewise.
3948 * data.c (create_character_intializer): Likewise.
3949 * decl.c (gfc_match_null): Likewise.
3950 (enum_initializer): Likewise.
3951 * io.c (gfc_match_format): Likewise.
3952 (match_io): Likewise.
3953 * match.c (gfc_match_nullify): Likewise.
3954 * primary.c (match_string_constant): Likewise.
3955 (match_logical_constant): Likewise.
3956 (build_actual_constructor): Likewise.
3957 * resolve.c (build_default_init_expr): Likewise.
3958 * symbol.c (generate_isocbinding_symbol): Likewise.
3959 (gfc_build_class_symbol): Likewise.
3960 (gfc_find_derived_vtab): Likewise.
3961 * simplify.c (simplify_achar_char): Likewise.
3962 (gfc_simplify_adjustl): Likewise.
3963 (gfc_simplify_adjustr): Likewise.
3964 (gfc_simplify_and): Likewise.
3965 (gfc_simplify_bit_size): Likewise.
3966 (gfc_simplify_is_iostat_end): Likewise.
3967 (gfc_simplify_is_iostat_eor): Likewise.
3968 (gfc_simplify_isnan): Likewise.
3969 (simplify_bound): Likewise.
3970 (gfc_simplify_leadz): Likewise.
3971 (gfc_simplify_len_trim): Likewise.
3972 (gfc_simplify_logical): Likewise.
3973 (gfc_simplify_maxexponent): Likewise.
3974 (gfc_simplify_minexponent): Likewise.
3975 (gfc_simplify_new_line): Likewise.
3976 (gfc_simplify_null): Likewise.
3977 (gfc_simplify_or): Likewise.
3978 (gfc_simplify_precision): Likewise.
3979 (gfc_simplify_repeat): Likewise.
3980 (gfc_simplify_scan): Likewise.
3981 (gfc_simplify_size): Likewise.
3982 (gfc_simplify_trailz): Likewise.
3983 (gfc_simplify_trim): Likewise.
3984 (gfc_simplify_verify): Likewise.
3985 (gfc_simplify_xor): Likewise.
3986 * trans-io.c (build_dt): Likewise.
3987 (gfc_new_nml_name_expr): Removed.
b7e75771
JD
3988
39892010-04-12 Daniel Franke <franke.daniel@gmail.com>
3990
3991 * arith.h (gfc_constant_result): Removed prototype.
3992 * constructor.h (gfc_build_array_expr): Removed prototype.
3993 (gfc_build_structure_constructor_expr): Removed prototype.
3994 * gfortran.h (gfc_int_expr): Removed prototype.
3995 (gfc_logical_expr): Removed prototype.
3996 (gfc_get_array_expr): New prototype.
3997 (gfc_get_structure_constructor_expr): New prototype.
3998 (gfc_get_constant_expr): New prototype.
3999 (gfc_get_int_expr): New prototype.
4000 (gfc_get_logical_expr): New prototype.
4001 * arith.c (gfc_constant_result): Moved and renamed to
4002 expr.c (gfc_get_constant_expr). Fixed all callers.
4003 * constructor.c (gfc_build_array_expr): Moved and renamed to
4004 expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
4005 and kind. Fixed all callers.
4006 (gfc_build_structure_constructor_expr): Moved and renamed to
4007 expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
4008 to type and kind. Fixed all callers.
4009 * expr.c (gfc_logical_expr): Renamed to ...
4010 (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
4011 (gfc_int_expr): Renamed to ...
4012 (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
4013 callers.
4014 (gfc_get_constant_expr): New.
4015 (gfc_get_array_expr): New.
4016 (gfc_get_structure_constructor_expr): New.
4017 * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
4018 instead.
4019
40202010-04-12 Daniel Franke <franke.daniel@gmail.com>
4021
4022 * constructor.h: New.
4023 * constructor.c: New.
4024 * Make-lang.in: Add new files to F95_PARSER_OBJS.
4025 * arith.c (reducy_unary): Use constructor API.
4026 (reduce_binary_ac): Likewise.
4027 (reduce_binary_ca): Likewise.
4028 (reduce_binary_aa): Likewise.
4029 * check.c (gfc_check_pack): Likewise.
4030 (gfc_check_reshape): Likewise.
4031 (gfc_check_unpack): Likewise.
4032 * decl.c (add_init_expr_to_sym): Likewise.
4033 (build_struct): Likewise.
4034 * dependency.c (gfc_check_dependency): Likewise.
4035 (contains_forall_index_p): Likewise.
4036 * dump-parse-tree.c (show_constructor): Likewise.
4037 * expr.c (free_expr0): Likewise.
4038 (gfc_copy_expr): Likewise.
4039 (gfc_is_constant_expr): Likewise.
4040 (simplify_constructor): Likewise.
4041 (find_array_element): Likewise.
4042 (find_component_ref): Likewise.
4043 (find_array_section): Likewise.
4044 (find_substring_ref): Likewise.
4045 (simplify_const_ref): Likewise.
4046 (scalarize_intrinsic_call): Likewise.
4047 (check_alloc_comp_init): Likewise.
4048 (gfc_default_initializer): Likewise.
4049 (gfc_traverse_expr): Likewise.
4050 * iresolve.c (check_charlen_present): Likewise.
4051 (gfc_resolve_reshape): Likewise.
4052 (gfc_resolve_transfer): Likewise.
4053 * module.c (mio_constructor): Likewise.
4054 * primary.c (build_actual_constructor): Likewise.
4055 (gfc_match_structure_constructor): Likewise.
4056 * resolve.c (resolve_structure_cons): Likewise.
4057 * simplify.c (is_constant_array_expr): Likewise.
4058 (init_result_expr): Likewise.
4059 (transformational_result): Likewise.
4060 (simplify_transformation_to_scalar): Likewise.
4061 (simplify_transformation_to_array): Likewise.
4062 (gfc_simplify_dot_product): Likewise.
4063 (simplify_bound): Likewise.
4064 (simplify_matmul): Likewise.
4065 (simplify_minval_maxval): Likewise.
4066 (gfc_simplify_pack): Likewise.
4067 (gfc_simplify_reshape): Likewise.
4068 (gfc_simplify_shape): Likewise.
4069 (gfc_simplify_spread): Likewise.
4070 (gfc_simplify_transpose): Likewise.
4071 (gfc_simplify_unpack): Likewise.q
4072 (gfc_convert_constant): Likewise.
4073 (gfc_convert_char_constant): Likewise.
4074 * target-memory.c (size_array): Likewise.
4075 (encode_array): Likewise.
4076 (encode_derived): Likewise.
4077 (interpret_array): Likewise.
4078 (gfc_interpret_derived): Likewise.
4079 (expr_to_char): Likewise.
4080 (gfc_merge_initializers): Likewise.
4081 * trans-array.c (gfc_get_array_constructor_size): Likewise.
4082 (gfc_trans_array_constructor_value): Likewise.
4083 (get_array_ctor_strlen): Likewise.
4084 (gfc_constant_array_constructor_p): Likewise.
4085 (gfc_build_constant_array_constructor): Likewise.
4086 (gfc_trans_array_constructor): Likewise.
4087 (gfc_conv_array_initializer): Likewise.
4088 * trans-decl.c (check_constant_initializer): Likewise.
4089 * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
4090 (gfc_apply_interface_mapping_to_cons): Likewise.
4091 (gfc_trans_structure_assign): Likewise.
4092 (gfc_conv_structure): Likewise.
4093 * array.c (check_duplicate_iterator): Likewise.
4094 (match_array_list): Likewise.
4095 (match_array_cons_element): Likewise.
4096 (gfc_match_array_constructor): Likewise.
4097 (check_constructor_type): Likewise.
4098 (check_constructor): Likewise.
4099 (expand): Likewise.
4100 (expand_constructor): Likewise.
4101 (extract_element): Likewise.
4102 (gfc_expanded_ac): Likewise.
4103 (resolve_array_list): Likewise.
4104 (gfc_resolve_character_array_constructor): Likewise.
4105 (copy_iterator): Renamed to ...
4106 (gfc_copy_iterator): ... this.
4107 (gfc_append_constructor): Removed.
4108 (gfc_insert_constructor): Removed unused function.
4109 (gfc_get_constructor): Removed.
4110 (gfc_free_constructor): Removed.
4111 (qgfc_copy_constructor): Removed.
4112 * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
4113 Removed all references. Replaced constructor list by splay-tree.
4114 (struct gfc_constructor): Removed member 'next', moved 'offset' from
4115 the inner struct, added member 'base'.
4116 (gfc_append_constructor): Removed prototype.
4117 (gfc_insert_constructor): Removed prototype.
4118 (gfc_get_constructor): Removed prototype.
4119 (gfc_free_constructor): Removed prototype.
4120 (qgfc_copy_constructor): Removed prototype.
4121 (gfc_copy_iterator): New prototype.
4122 * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
4123
687ea68f
TB
41242010-04-10 Tobias Burnus <burnus@net-b.de>
4125
4126 PR fortran/43591
4127 * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
4128 proc-pointers and type-bound procedures.
4129 (gfc_specification_expr): Check proc-pointers for pureness.
4130
8351bca7
IS
41312010-04-09 Iain Sandoe <iains@gcc.gnu.org>
4132
4133 PR bootstrap/43684
4134 * gfortranspec.c (lang_specific_driver): Do not expose vars
4135 only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
4136 for such.
4137
d3a9eea2
TB
41382010-04-09 Tobias Burnus <burnus@net-b.de>
4139
4140 PR fortran/18918
4141 * decl.c (variable_decl, match_attr_spec): Fix setting the array
4142 spec.
4143 * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
4144 * data.c (gfc_assign_data_value): Ditto.
4145 * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
4146 (gfc_traverse_expr): Traverse also through codimension expressions.
4147 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4148 gfc_has_ultimate_pointer): New functions.
4149 * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
4150 (gfc_array_ref): Add codimen.
4151 (gfc_array_ref): Add in_allocate.
4152 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4153 gfc_has_ultimate_pointer): Add prototypes.
4154 * interface.c (compare_parameter, compare_actual_formal,
4155 check_intents): Add coarray constraints.
4156 * match.c (gfc_match_iterator): Add coarray constraint.
4157 * match.h (gfc_match_array_ref): Update interface.
4158 * primary.c (gfc_match_varspec): Handle codimensions.
4159 * resolve.c (coarray_alloc, inquiry_argument): New static variables.
4160 (check_class_members): Return gfc_try instead for error recovery.
4161 (resolve_typebound_function,resolve_typebound_subroutine,
4162 check_members): Handle return value of check_class_members.
4163 (resolve_structure_cons, resolve_actual_arglist, resolve_function,
4164 check_dimension, compare_spec_to_ref, resolve_array_ref,
4165 resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
4166 resolve_allocate_expr, resolve_ordinary_assign): Add coarray
4167 support.
4168 * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
4169 Skip over coarray refs.
4170 (gfc_array_allocate) Add support for references containing coindexes.
4171 * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
4172 (gfc_map_intrinsic_function): Ignore codimensions.
4173
d0a2c5a9
BD
41742010-04-08 Bud Davis <bdavis9659@sbcglobal.net>
4175
4176 PR fortran/28039
4177 * io.c (check_format_string): Added check for additional non
4178 blank characters after the format string was successfully
4179 parsed.
4180 * io.c (check_format): Changed the error messages for positive
4181 int required and period required to drop through the error logic
4182 and report with gfc_error instead of gfc_error_now. Corrected
4183 format postion for hollerith strings.
4184
3e2f637e
TB
41852010-04-08 Tobias Burnus <burnus@net-b.de>
4186
4187 * module.c (use_iso_fortran_env_module): Fix standard check.
4188
60d3aec4
JJ
41892010-04-07 Jakub Jelinek <jakub@redhat.com>
4190
4191 * parse.c (parse_derived, parse_enum): Avoid set but not used
4192 warning.
4193
927f4842
JB
41942010-04-07 Janne Blomqvist <jb@gcc.gnu.org>
4195
4196 PR fortran/40539
4197 * gfortran.texi: Add section about representation of
3e2f637e 4198 LOGICAL variables.
927f4842 4199
87cf0651
SB
42002010-04-07 Simon Baldwin <simonb@google.com>
4201
4202 * cpp.c (cb_cpp_error): Add warning reason argument, set a value
4203 for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
4204
0d3c82d6
RG
42052010-04-07 Richard Guenther <rguenther@suse.de>
4206
4207 * options.c (gfc_init_options): Do not set.
4208
f4d1d50a
TB
42092010-04-06 Tobias Burnus <burnus@net-b.de>
4210
4211 PR fortran/18918
4212 * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
4213 * match.c (gfc_match_critical, sync_statement): Ditto.
4214 * gfortran.h (gfc_fcoarray): New enum.
4215 (gfc_option_t): Use it.
4216 * lang.opt (fcoarray): Add new flag.
4217 * invoke.texi (fcoarray): Document it.
4218 * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
4219 (gfc_handle_coarray_option): New function.
4220
178f9aa1
TB
42212010-04-06 Tobias Burnus <burnus@net-b.de>
4222
4223 PR fortran/18918
4224 * gfortran.h (gfc_array_spec): Add cotype.
4225 * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
4226 and defer error diagnostic.
4227 * resolve.c (resolve_fl_derived): Add missing check.
4228 (resolve_symbol): Add cotype/type check.
4229 * parse.c (parse_derived): Fix setting of coarray_comp.
4230
be59db2d
TB
42312010-04-06 Tobias Burnus <burnus@net-b.de>
4232
4233 PR fortran/18918
4234 * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
4235 match_array_element_spec,gfc_copy_array_spec,
4236 gfc_compare_array_spec): Include corank.
4237 (match_array_element_spec,gfc_set_array_spec): Support codimension.
4238 * decl.c (build_sym,build_struct,variable_decl,
4239 match_attr_spec,attr_decl1,cray_pointer_decl,
4240 gfc_match_volatile): Add codimension.
4241 (gfc_match_codimension): New function.
4242 * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
4243 * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
4244 (gfc_add_codimension): New function prototype.
4245 * match.h (gfc_match_codimension): New function prototype.
4246 (gfc_match_array_spec): Update prototype
4247 * match.c (gfc_match_common): Update gfc_match_array_spec call.
4248 * module.c (MOD_VERSION): Bump.
4249 (mio_symbol_attribute): Support coarray attributes.
4250 (mio_array_spec): Add corank support.
4251 * parse.c (decode_specification_statement,decode_statement,
4252 parse_derived): Add coarray support.
4253 * resolve.c (resolve_formal_arglist, was_declared,
4254 is_non_constant_shape_array, resolve_fl_variable,
4255 resolve_fl_derived, resolve_symbol): Add coarray support.
4256 * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
4257 gfc_build_class_symbol): Add coarray support.
4258 (gfc_add_codimension): New function.
4259
385e8144
TB
42602010-04-06 Tobias Burnus <burnus@net-b.de>
4261
4262 PR fortran/18918
4263 * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
4264 atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
4265 stat_locked_other_image, stat_stopped_image and stat_unlocked of
4266 Fortran 2008.
4267 * intrinsic.texi (iso_fortran_env): Ditto.
4268 * libgfortran.h (libgfortran_stat_codes): New enum.
4269 * module.c (use_iso_fortran_env_module): Honour -std= when loading
4270 constants from the intrinsic module.
4271
d0a4a61c
TB
42722010-04-06 Tobias Burnus <burnus@net-b.de>
4273
4274 PR fortran/39997
4275 * intrinsic.c (add_functions): Add num_images.
4276 * decl.c (gfc_match_end): Handle END CRITICAL.
4277 * intrinsic.h (gfc_simplify_num_images): Add prototype.
4278 * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
4279 and SYNC.
4280 * gfortran.h (gfc_statement): Add enum items for those.
4281 (gfc_exec_op) Ditto.
4282 (gfc_isym_id): Add num_images.
4283 * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
4284 (gfc_trans_sync,gfc_trans_critical): New functions.
4285 * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
4286 gfc_trans_critical): Add/update prototypes.
4287 * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
4288 and SYNC statements.
4289 * trans.h (gfor_fndecl_error_stop_string) Add variable.
4290 * resolve.c (resolve_sync): Add function.
4291 (gfc_resolve_blocks): Handle CRITICAL.
4292 (resolve_code): Handle CRITICAL, ERROR STOP,
4293 (resolve_branch): Add CRITICAL constraint check.
4294 and SYNC statements.
4295 * st.c (gfc_free_statement): Add new statements.
4296 * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
4297 (gfc_build_builtin_function_decls): Initialize it.
4298 * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
4299 (gfc_match_critical, gfc_match_error_stop, sync_statement,
4300 gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
4301 New functions.
4302 (match_exit_cycle): Handle CRITICAL constraint.
4303 (gfc_match_stopcode): Handle ERROR STOP.
4304 * match.h (gfc_match_critical, gfc_match_error_stop,
4305 gfc_match_sync_all, gfc_match_sync_images,
4306 gfc_match_sync_memory): Add prototype.
4307 * parse.c (decode_statement, gfc_ascii_statement,
4308 parse_executable): Handle new statements.
4309 (parse_critical_block): New function.
4310 * parse.h (gfc_compile_state): Add COMP_CRITICAL.
4311 * intrinsic.texi (num_images): Document new function.
4312 * simplify.c (gfc_simplify_num_images): Add function.
4313
2b56d6a4
TB
43142010-04-06 Tobias Burnus <burnus@net-b.de>
4315
4316 PR fortran/43178
4317 * trans-array.c (gfc_conv_expr_descriptor): Update
4318 gfc_trans_scalar_assign call.
4319 (has_default_initializer): New function.
4320 (gfc_trans_deferred_array): Nullify less often.
4321 * trans-expr.c (gfc_conv_subref_array_arg,
4322 gfc_trans_subcomponent_assign): Update call to
4323 gfc_trans_scalar_assign.
4324 (gfc_trans_scalar_assign): Add parameter and pass it on.
4325 (gfc_trans_assignment_1): Optionally, do not dealloc before
4326 assignment.
4327 * trans-openmp.c (gfc_trans_omp_array_reduction): Update
4328 call to gfc_trans_scalar_assign.
4329 * trans-decl.c (gfc_get_symbol_decl): Do not always apply
4330 initializer to static variables.
4331 (gfc_init_default_dt): Add dealloc parameter and pass it on.
4332 * trans-stmt.c (forall_make_variable_temp,
4333 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
4334 gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
4335 gfc_trans_allocate): Update gfc_trans_assignment call.
4336 * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
4337 gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
4338 parameter to prototype.
4339
0a261912
PT
43402010-03-31 Paul Thomas <pault@gcc.gnu.org>
4341
4342 * ioparm.def : Update copyright.
4343 * lang.opt : ditto
4344 * trans-array.c : ditto
4345 * trans-array.h : ditto
4346 * expr.c: ditto
4347 * trans-types.c: ditto
4348 * dependency.c : ditto
4349 * gfortran.h : ditto
4350 * options.c : ditto
4351 * trans-io.c : ditto
4352 * trans-intrinsic.c : ditto
4353 * libgfortran.h : ditto
4354 * invoke.texi : ditto
4355 * intrinsic.texi : ditto
4356 * trans.c : ditto
4357 * trans.h : ditto
4358 * intrinsic.c : ditto
4359 * interface.c : ditto
4360 * iresolve.c : ditto
4361 * trans-stmt.c : ditto
4362 * trans-stmt.h : ditto
4363 * parse,c : ditto
4364 * match.h : ditto
4365 * error.c : ditto
4366
b8849663
PT
43672010-03-20 Paul Thomas <pault@gcc.gnu.org>
4368
4369 PR fortran/43450
4370 * trans-decl.c (gfc_create_module_variable): With -fwhole-file
4371 do not assert the context of derived types.
4372
41c3cddc
JD
43732010-03-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4374
4375 PR fortran/43409
4376 * ioparm.def: Change inquire size variable to type pointer to
4377 GFC_IO_INT type.
4378
1821bcfc
PT
43792010-03-18 Paul Thomas <pault@gcc.gnu.org>
4380
feef2551
TB
4381 PR fortran/43039
4382 * trans-expr.c (conv_parent_component_references): Ensure that
1821bcfc
PT
4383 'dt' has a backend_decl.
4384
feef2551
TB
4385 PR fortran/43043
4386 * trans-expr.c (gfc_conv_structure): Ensure that the derived
1821bcfc
PT
4387 type has a backend_decl.
4388
feef2551
TB
4389 PR fortran/43044
4390 * resolve.c (resolve_global_procedure): Check that the 'cl'
1821bcfc
PT
4391 structure is not NULL.
4392
316fc112
SZ
43932010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
4394
4395 * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
4396 redundant tab.
4397
b3aefde2
TB
43982010-03-17 Tobias Burnus <burnus@net-b.de>
4399
4400 PR fortran/43331
4401 * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
4402 gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
4403 check.
4404 * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
4405 pointees as having explizit size.
4406 * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
4407 check.
4408 * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
4409 (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
4410 * resolve.c (resolve_symbol): Handle cp_was_assumed.
4411 * trans-decl.c (gfc_trans_deferred_vars): Ditto.
4412 (gfc_finish_var_decl): Don't mark Cray pointees as restricted
4413 pointers.
4414
4eceddd7
TB
44152010-03-14 Tobias Burnus <burnus@net-b.de>
4416
4417 PR fortran/43362
4418 * resolve.c (resolve_structure_cons): Add missing PURE constraint.
4419 (resolve_ordinary_assign): Add check to avoid segfault.
4420
6a943ee7
PT
44212010-03-12 Paul Thomas <pault@gcc.gnu.org>
4422
4423 PR fortran/43291
4424 PR fortran/43326
4425 * resolve.c (resolve_compcall): Add new boolean dummy argument
4426 'class_members'. Only resolve expression at end if false.
4427 Remove redundant, static variable 'class_object'.
4428 (check_class_members): Add extra argument to call of
4429 resolve_compcall.
4430 (resolve_typebound_function): Renamed resolve_class_compcall.
4431 Do all the detection of class references here. Correct calls to
4432 resolve_compcall for extra argument.
4433 (resolve_typebound_subroutine): resolve_class_typebound_call
4434 renamed. Otherwise same as resolve_typebound_function.
4435 (gfc_resolve_expr): Call resolve_typebound_function.
4436 (resolve_code): Call resolve_typebound_subroutine.
4437
abf4d60b
TB
44382010-03-10 Tobias Burnus <burnus@net-b.de
4439
4440 PR fortran/43303
4441 * symbol.c (get_iso_c_sym): Set sym->result.
4442
b3d286ba
JW
44432010-03-08 Janus Weil <janus@gcc.gnu.org>
4444
4445 PR fortran/43256
4446 * resolve.c (resolve_compcall): Don't set 'value.function.name' here
4447 for TBPs, otherwise they will not be resolved properly.
4448 (resolve_function): Use 'value.function.esym' instead of
abf4d60b 4449 'value.function.name' to check if we're dealing with a TBP.
b3d286ba
JW
4450 (check_class_members): Set correct type of passed object for all TBPs,
4451 not only generic ones, except if the type is abstract.
4452
33344e0f
JW
44532010-03-04 Janus Weil <janus@gcc.gnu.org>
4454
4455 PR fortran/43244
4456 * decl.c (gfc_match_final_decl): Make sure variable names starting with
4457 'final...' are not misinterpreted as FINAL statements.
4458
ba461991
PT
44592010-03-03 Paul Thomas <pault@gcc.gnu.org>
4460
4461 PR fortran/43243
4462 * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4463 allocatable ultimate components do not need temporaries, whilst
4464 ultimate pointer components do.
4465
d1039125
JW
44662010-03-03 Janus Weil <janus@gcc.gnu.org>
4467
4468 PR fortran/43169
4469 * resolve.c (resolve_code): Correctly set gfc_current_ns for
4470 EXEC_SELECT_TYPE.
4471 (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
4472 (gfc_pure): Ditto.
4473
2542496c
PT
44742010-03-02 Paul Thomas <pault@gcc.gnu.org>
4475
4476 PR fortran/43180
4477 * trans-array.c (gfc_conv_array_parameter): A full array of
4478 derived type need not be restricted to a symbol without an
4479 array spec to use the call to gfc_conv_expr_descriptor.
4480
4481 PR fortran/43173
4482 * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4483 allocatable arrays do not need temporaries.
4484
fef06326
TB
44852010-03-01 Tobias Burnus <burnus@net-b.de>
4486
4487 PR fortran/43199
4488 * resolve.c (find_array_spec): Handle REF_COMPONENT with
4489 CLASS components.
4490
dfd65514
TB
44912010-02-28 Tobias Burnus <burnus@net-b.de>
4492
4493 PR fortran/43205
4494 * trans-expr.c (is_zero_initializer_p): Move up in the file.
4495 (gfc_conv_initializer): Handle zero initializer as special case.
4496
cea2d589
TB
44972010-02-27 Tobias Burnus <burnus@net-b.de>
4498
4499 PR fortran/43185
4500 * resolve.c (resolve_fl_variable_derived): Imply SAVE
4501 for module variables for Fortran 2008.
4502
06796564
JJ
45032010-02-25 Jakub Jelinek <jakub@redhat.com>
4504
4505 PR debug/43166
4506 * trans-common.c (build_common_decl): Also update DECL_MODE,
4507 and DECL_SIZE when encountering a larger common block and call
4508 layout_decl.
4509
feef2551 45102010-02-24 Tobias Burnus <burnus@net-b.de>
505a36f9
TB
4511
4512 PR fortran/43042
4513 * trans-expr.c (gfc_conv_initializer): Call directly
feef2551 4514 gfc_conv_constant for C_NULL_(FUN)PTR.
505a36f9 4515
f80c558f
PT
45162010-02-22 Paul Thomas <pault@gcc.gnu.org>
4517
4518 PR fortran/43072
4519 * dependency.c (gfc_full_array_ref_p): Check for contiguous by
4520 checking the rest of the dimensions for elements.
4521
72bd130e
TB
45222010-02-21 Tobias Burnus <burnus@net-b.de>
4523
4524 PR fortran/35259
4525 * gfortran.h (gfc_option_t): New flag -fprotect-parens.
4526 * lang.opt: Ditto.
4527 * option.c (gfc_init_options,gfc_handle_option): Ditto.
4528 * trans-expr.c (gfc_conv_expr_op): Use the flag.
4529 * invoke.texi: Document new -fno-protect-parens flag.
4530
f7172b55
PT
45312010-02-20 Paul Thomas <pault@gcc.gnu.org>
4532
4533 PR fortran/36932
4534 PR fortran/36933
4535 PR fortran/43072
4536 PR fortran/43111
4537 * dependency.c (gfc_check_argument_var_dependency): Use enum
4538 value instead of arithmetic vaue for 'elemental'.
4539 (check_data_pointer_types): New function.
4540 (gfc_check_dependency): Call check_data_pointer_types.
4541 * trans-array.h : Change fourth argument of
4542 gfc_conv_array_parameter to boolean.
4543 * trans-array.c (gfc_conv_array_parameter): A contiguous array
4544 can be a dummy but it must not be assumed shape or deferred.
4545 Change fourth argument to boolean. Array constructor exprs will
4546 always be contiguous and do not need packing and unpacking.
4547 * trans-expr.c (gfc_conv_procedure_call): Clean up some white
4548 space and change fourth argument of gfc_conv_array_parameter
4549 to boolean.
4550 (gfc_trans_arrayfunc_assign): Change fourth argument of
4551 gfc_conv_array_parameter to boolean.
4552 * trans-io.c (gfc_convert_array_to_string): The same.
4553 * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
4554
22bdbb0f
TB
45552010-02-20 Tobias Burnus <burnus@net-b.de>
4556
4557 PR fortran/42958
4558 * libgfortran.h: Add GFC_RTCHECK_MEM.
4559 * invoke.texi (-fcheck=): Document -fcheck=mem.
4560 * tranc.c (gfc_call_malloc): Remove negative-size run-time error
4561 and enable malloc-success check only with -fcheck=mem.
4562 * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
4563
7bc19392
TB
45642010-02-16 Tobias Burnus <burnus@net-b.de>
4565
4566 PR fortran/43040
4567 * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
4568 * intrinsic.c (add_functions): Ditto.
4569 * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
4570 * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
4571
bc51e726
JD
45722010-02-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4573
4574 PR fortran/32382
4575 * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
4576 gfc_trans_do prototype.
4577 * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
4578 a loop exit condition. If exit condition is given, build the loop exit
4579 code, checking IO results of implied do loops in READ and WRITE.
4580 (gfc_trans_do): Likewise.
4581 * trans.c (trans_code): New static work function, previously
4582 gfc_trans_code. Passes exit condition to gfc_trans_do.
4583 (gfc_trans_code): Calls trans_code with NULL_TREE condition.
4584 (gfc_trans_code_cond): Calls trans_code with loop exit condition.
4585 * trans-io.c (build_dt): Build an exit condition to allow checking IO
4586 result status bits in the dtparm structure. Use this condition in call
4587 to gfc_trans_code_cond.
4588
17555e7e
PT
45892010-02-13 Paul Thomas <pault@gcc.gnu.org>
4590
4591 PR fortran/41113
4592 PR fortran/41117
4593 * trans-array.c (gfc_conv_array_parameter): Use
4594 gfc_full_array_ref_p to detect full and contiguous variable
4595 arrays. Full array components and contiguous arrays do not need
4596 internal_pack and internal_unpack.
4597
01e64c3d
JJ
45982010-02-11 Jakub Jelinek <jakub@redhat.com>
4599
a79ff094
JJ
4600 PR fortran/43030
4601 * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
4602
01e64c3d
JJ
4603 PR fortran/43029
4604 * decl.c (enumerator_decl): Don't call gfc_free_enum_history
4605 here.
4606 (gfc_match_enumerator_def): But here whenever enumerator_decl returns
4607 MATCH_ERROR.
4608
7fcd5ad5
TB
46092010-02-10 Joost VandeVondele <jv244@cam.ac.uk>
4610 Tobias Burnus <burnus@net-b.de>
4611
4612 PR fortran/40823
4613 * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
4614
975d3303
TB
46152010-02-10 Tobias Burnus <burnus@net-b.de>
4616
4617 PR fortran/43015
4618 * trans-decl.c (gfc_generate_function_code): Only check
4619 actual-vs.-dummy character bounds if not bind(C).
4620
45406a12
JJ
46212010-02-10 Jakub Jelinek <jakub@redhat.com>
4622
4623 PR fortran/42309
4624 * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
4625 info->dimen after info has been freed.
4626
cbb1ab10 46272010-02-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
db9633ec
JD
4628
4629 PR fortran/42999
4630 * array.c (gfc_constant_ac): Do not prevent expansion of constructors
4631 with iterators.
4632
b16be5f2
JJ
46332010-02-09 Jakub Jelinek <jakub@redhat.com>
4634
4635 * module.c (fix_mio_expr): Declare sym.
4636
6f117ca5
TB
46372010-02-09 Paul Thomas <pault@gcc.gnu.org>
4638
4639 PR fortran/41869
4640 * module.c (fix_mio_expr): Fix for private generic procedures.
4641
5e1d6b4c
DK
46422010-02-09 Daniel Kraft <d@domob.eu>
4643
4644 PR fortran/39171
4645 * resolve.c (resolve_charlen): Change warning about negative CHARACTER
4646 length to be correct and issue only with -Wsurprising.
4647 * invoke.texi (Wsurprising): Mention this new warning that is
4648 turned on by -Wsurprising.
4649
d0d4124c
DK
46502010-02-09 Daniel Kraft <d@domob.eu>
4651
4652 PR fortran/41507
4653 * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
4654 can be CHARACTER type.
4655 (MINVAL), (MAXLOC), (MINLOC): Ditto.
4656
430f2d1f
PT
46572010-02-05 Paul Thomas <pault@gcc.gnu.org>
4658
4659 PR fortran/42309
4660 * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
4661 'formal_ptr'. If this is true, give returned descriptor unity
4662 lbounds, in all dimensions, and the appropriate offset.
4663 (gfc_conv_procedure_call); If formal is a pointer, set the last
4664 argument of gfc_conv_subref_array_arg to true.
4665 * trans.h : Add last argument for gfc_conv_subref_array_arg.
4666 * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
4667 new arg of gfc_conv_subref_array_arg to false.
4668 * trans-stmt.c (forall_make_variable_temp): The same.
4669
d8a8dab3
TB
46702010-02-03 Tobias Burnus <burnus@net-b.de>
4671
4672 PR fortran/42936
4673 * interface.c (compare_parameter): Disable rank-checking
4674 for NULL().
4675
096bfdb1
TB
46762010-02-02 Tobias Burnus <burnus@net-b.de>
4677
4678 PR fortran/42650
4679 * parse.c (decode_specification_statement): Use sym->result not sym.
4680
ade20620
TB
46812010-02-01 Tobias Burnus <burnus@net-b.de>
4682
4683 PR fortran/42922
4684 * decl.c (variable_decl): Allow default initializer in
4685 TYPE declarations in PURE functions.
4686
7adac79a
JW
46872010-01-31 Janus Weil <janus@gcc.gnu.org>
4688
4689 PR fortran/42888
4690 * resolve.c (resolve_allocate_expr): Move default initialization code
4691 here from gfc_trans_allocate.
4692 * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
4693 EXEC_INIT_ASSIGN.
4694 * trans-expr.c (gfc_trans_class_assign): Handle default initialization
4695 of CLASS variables via memcpy.
4696 * trans-stmt.c (gfc_trans_allocate): Move default initialization code
4697 to resolve_allocate_expr.
4698
b7d1d8b4
PT
46992010-01-31 Paul Thomas <pault@gcc.gnu.org>
4700
ade20620 4701 PR fortran/38324
b7d1d8b4
PT
4702 * expr.c (gfc_get_full_arrayspec_from_expr): New function.
4703 * gfortran.h : Add prototype for above.
ade20620 4704 * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
b7d1d8b4
PT
4705 (gfc_trans_subcomponent_assign): Call new function to replace
4706 the code to deal with allocatable components.
4707 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
4708 gfc_get_full_arrayspec_from_expr to replace existing code.
4709
03d838ba
TB
47102010-01-25 Tobias Burnus <burnus@net-b.de>
4711
4712 PR fortran/42858
4713 * array.c (gfc_array_dimen_size): Fix intrinsic procedure
4714 check.
4715
ff015c5b
PT
47162010-01-24 Paul Thomas <pault@gcc.gnu.org>
4717
4718 PR fortran/41044
4719 PR fortran/41167
4720 * expr.c (remove_subobject_ref): If the constructor is NULL use
4721 the expression as the source.
4722 (simplify_const_ref): Change the type of expression if
4723 there are component references. Allow for substring to be at
4724 the end of an arbitrarily long chain of references. If an
4725 element is found that is not in an EXPR_ARRAY, assume that this
4726 is scalar initialization of array. Call remove_subobject_ref in
4727 this case with NULL second argument.
4728
23f6293e
TB
47292010-01-24 Tobias Burnus <burnus@net-b.de>
4730
4731 PR fortran/39304
4732 * array.c (gfc_array_dimen_size): Use correct specific
4733 function in the check.
4734
3c3b62d1
PT
47352010-01-21 Paul Thomas <pault@gcc.gnu.org>
4736
4737 PR fortran/42736
4738 * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
4739 is required, turn any trailing array elements after a range
4740 into ranges so that offsets can be calculated.
4741
e80b7e74
JR
47422010-01-20 Joern Rennecke <amylaar@spamcop.net>
4743
4744 * module.c (mio_f2k_derived): Use enumerator as initializer of
4745 enum variable.
4746
204803dc
JR
4747 PR bootstrap/42812
4748 * gfortran.h (struct gfc_namespace) <resolved>: Change to signed
4749 bitfield of width 2.
4750
63894de2
JW
47512010-01-19 Janus Weil <janus@gcc.gnu.org>
4752
4753 PR fortran/42804
4754 * resolve.c (extract_compcall_passed_object): Set locus for
4755 passed-object argument.
4756 (extract_ppc_passed_object): Set locus and correctly remove PPC
4757 reference.
4758
702a738b
PT
47592010-01-19 Paul Thomas <pault@gcc.gnu.org>
4760
4761 PR fortran/42783
4762 * trans-decl.c (add_argument_checking): Do not use the backend
4763 decl directly to test for the presence of an optional dummy
4764 argument. Use gfc_conv_expr_present, remembering to set the
4765 symbol referenced.
4766
4767 PR fortran/42772
4768 * trans-decl.c (gfc_generate_function_code): Small white space
4769 changes. If 'recurcheckvar' is NULL do not try to reset it.
4770
f89cc1a3
JW
47712010-01-19 Janus Weil <janus@gcc.gnu.org>
4772
4773 PR fortran/42545
4774 * resolve.c (resolve_fl_derived): Set the accessibility of the parent
4775 component for extended types.
4776 * symbol.c (gfc_find_component): Remove a wrongly-worded error message
4777 and take care of parent component accessibility.
4778
ae7c61de
JW
47792010-01-17 Janus Weil <janus@gcc.gnu.org>
4780
4781 PR fortran/42677
4782 * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
4783 * interface.c (check_interface1): Move a warning message here from
4784 resolve_fl_procedure.
4785 (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
4786 * module.c (read_module): Remove call to gfc_check_interfaces, since
4787 this comes too early here.
4788 * resolve.c (resolve_fl_procedure): Move warning message to
4789 check_interface1.
4790
0175478d
JD
47912010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4792
4793 PR fortran/42684
4794 * interface.c (check_interface1): Pass symbol name rather than NULL to
4795 gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
4796 trap MULL.
4797 * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
4798 than NULL to gfc_compare_interfaces.
4799
40c32948
PT
48002010-01-14 Paul Thomas <pault@gcc.gnu.org>
4801
feef2551
TB
4802 PR fortran/41478
4803 * trans-array.c (duplicate_allocatable): Static version of
40c32948
PT
4804 gfc_duplicate_allocatable with provision to handle scalar
4805 components. New boolean argument to switch off call to malloc
4806 if true.
4807 (gfc_duplicate_allocatable): New function to call above with
4808 new argument false.
4809 (gfc_copy_allocatable_data): New function to call above with
4810 new argument true.
4811 (structure_alloc_comps): Do not apply indirect reference to
4812 scalar pointers. Add new section to copy allocatable components
4813 of arrays. Extend copying of allocatable components to include
4814 scalars.
4815 (gfc_copy_only_alloc_comp): New function to copy allocatable
4816 component derived types, without allocating the base structure.
4817 * trans-array.h : Add primitive for gfc_copy_allocatable_data.
4818 Add primitive for gfc_copy_only_alloc_comp.
4819 * trans-expr.c (gfc_conv_procedure_call): After calls to
4820 transformational functions with results that are derived types
4821 with allocatable components, copy the components in the result.
4822 (gfc_trans_arrayfunc_assign): Deallocate allocatable components
4823 of lhs derived types before allocation.
4824
08b02036
PT
48252010-01-14 Paul Thomas <pault@gcc.gnu.org>
4826
4827 PR fortran/42481
4828 * module.c (load_generic_interfaces): If a procedure that is
4829 use associated but not generic is given an interface that
4830 includes itself, then make it generic.
4831
feef2551 48322010-01-11 Joseph Myers <joseph@codesourcery.com>
f94e1d66
JM
4833 Shujing Zhao <pearly.zhao@oracle.com>
4834
4835 PR translation/42469
4836 * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
4837 finit-logical=, finit-real=, fmax-array-constructor=): Use tab
4838 character between option name and help text.
4839
f2ff577a
JD
48402010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
4841
4842 PR fortran/20923
4843 PR fortran/32489
4844 * trans-array.c (gfc_conv_array_initializer): Change call to
4845 gfc_error_now to call to gfc_fatal_error.
4846 * array.c (count_elements): Whitespace. (extract_element): Whitespace.
4847 (is_constant_element): Changed name from constant_element.
4848 (gfc_constant_ac): Only use expand_construuctor for expression
4849 types of EXPR_ARRAY. If expression type is EXPR_CONSTANT, no need to
4850 call gfc_is_constant_expr.
4851 * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
4852 message.
4853 * resolve.c (gfc_is_expandable_expr): New function that determiners if
4854 array expressions should have their constructors expanded.
4855 (gfc_resolve_expr): Use new function to determine whether or not to call
4856 gfc_expand_constructor.
4857
3d876aba
TB
48582010-01-09 Tobias Burnus <burnus@net-b.de>
4859
4860 PR fortran/41298
4861 * trans-expr.c (gfc_trans_structure_assign): Handle
4862 c_null_(fun)ptr.
4863 * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
4864 to the constructor for c_null_(fun)ptr.
4865 * resolve.c (resolve_structure_cons): Add special case
4866 for c_null_(fun)ptr.
4867
bd5c3aa5
JJ
48682010-01-09 Jakub Jelinek <jakub@redhat.com>
4869
4870 * gfortranspec.c (lang_specific_driver): Update copyright notice
4871 dates.
4872
48732010-01-08 Tobias Burnus <burnus@net-b.de>
1eee5628
TB
4874
4875 PR/fortran 25829
4876 * symbol.c (check_conflict, gfc_copy_attr): Add
4877 ASYNCHRONOUS support.
4878 (gfc_add_asynchronous): New function.
4879 * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
4880 (gfc_match_asynchronous): New function.
4881 * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
4882 * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
4883 (gfc_add_asynchronous): New Prototype.
4884 * module.c (ab_attribute, mio_symbol_attribute): Add
4885 ASYNCHRONOUS support.
4886 * resolve.c (was_declared): Ditto.
4887 * match.h (gfc_match_asynchronous): New prototype.
4888 * parse.c (decode_specification_statement,decode_statement):
4889 Add ASYNCHRONOUS support.
4890
2a3c437d
TB
48912010-01-07 Tobias Burnus <burnus@net-b.de>
4892
4893 PR fortran/42597
4894 * trans-decl.c (get_proc_pointer_decl): Fix call to
4895 gfc_conv_initializer for array-valued proc-pointer funcs.
4896
64b33a7e
TB
48972010-01-07 Tobias Burnus <burnus@net-b.de>
4898
4899 PR fortran/41872
4900 * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
4901 allocatable scalars with SAVE attribute.
4902
653f6dc5
TB
49032010-01-05 Tobias Burnus <burnus@net-b.de>
4904
4905 PR fortran/42517
4906 * options.c (gfc_post_options): Set -frecursion
4907 when -fopenmp is used.
4908
11492349
TB
49092010-01-05 Tobias Burnus <burnus@net-b.de>
4910
4911 PR fortran/41872
4912 * trans-expr.c (gfc_conv_procedure_call): Nullify
4913 return value for allocatable-scalar character functions.
4914
d6de356a
TB
49152010-01-04 Tobias Burnus <burnus@net-b.de>
4916
4917 PR fortran/36161
4918 * error.c (error_printf, gfc_warning, gfc_notify_std,
4919 gfc_warning_now, gfc_error, gfc_error_now,
4920 gfc_fatal_error): Change argument name from nocmsgid to
4921 gmsgid to enable (x)gettext's % checking.
4922
93c71688
TB
49232010-01-04 Tobias Burnus <burnus@net-b.de>
4924
4925 * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
4926
5b130807
TB
49272010-01-04 Tobias Burnus <burnus@net-b.de>
4928
4929 PR fortran/41872
4930 * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
4931 for functions returning allocatable scalars.
4932 * trans-stmt.c (gfc_trans_allocate): Emmit error when
4933 reallocating an allocatable scalar.
4934 * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
4935 in comment.
4936 * trans-decl.c (gfc_trans_deferred_vars): Nullify local
4937 allocatable scalars.
4938 (gfc_generate_function_code): Nullify result variable for
4939 allocatable scalars.
4940
4941 PR fortran/40849
4942 * module.c (gfc_use_module): Fix warning string to allow
4943 for translation.
4944
4945 PR fortran/42517
4946 * invoke.texi (-fcheck=recursion): Mention that the checking
4947 is also disabled for -frecursive.
4948 * trans-decl.c (gfc_generate_function_code): Disable
4949 -fcheck=recursion when -frecursive is used.
4950
4951 * intrinsic.texi (iso_c_binding): Improve wording.
ad41bd84
JM
4952
4953\f
0bdf1263 4954Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
4955
4956Copying and distribution of this file, with or without modification,
4957are permitted in any medium without royalty provided the copyright
4958notice and this notice are preserved.
This page took 1.171692 seconds and 5 git commands to generate.