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