re PR fortran/56872 (Incorrect SUM evaluation, involving implied-do loop, with -ffron...
[gcc.git] / gcc / fortran / ChangeLog
1 2013-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
2
3 PR fortran/56782
4 * frontend-passes.c (callback_reduction): Dont't do
5 any simplification if there is only a single element
6 which has an iterator.
7
8 2013-04-07 Tobias Burnus <burnus@net-b.de>
9
10 PR fortran/56849
11 * iresolve.c (gfc_resolve_reshape): Set shape also
12 with order=.
13
14 2013-04-04 Janus Weil <janus@gcc.gnu.org>
15
16 PR fortran/40881
17 * match.c (gfc_match_return): Remove standard notification.
18 * primary.c (gfc_match_actual_arglist): Add standard notification.
19
20 2013-04-04 Tobias Burnus <burnus@net-b.de>
21
22 PR fortran/50269
23 * gcc/fortran/check.c (is_c_interoperable,
24 gfc_check_c_loc): Correct c_loc array checking
25 for Fortran 2003 and Fortran 2008.
26
27 2013-04-03 Janus Weil <janus@gcc.gnu.org>
28
29 PR fortran/56284
30 PR fortran/40881
31 * decl.c (gfc_match_formal_arglist): Warn about alternate-return
32 arguments.
33 * interface.c (check_dummy_characteristics): Return if symbols are NULL.
34
35 2013-04-01 Janus Weil <janus@gcc.gnu.org>
36
37 PR fortran/56500
38 * symbol.c (gfc_set_default_type): Build class container for
39 IMPLICIT CLASS.
40
41 2013-03-31 Tobias Burnus <burnus@net-b.de>
42
43 * class.c (finalization_scalarizer, finalizer_insert_packed_call,
44 generate_finalization_wrapper): Avoid segfault with absent SIZE=
45 argment to TRANSFER and use correct result kind for SIZE.
46 * intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
47 nonmodules.
48 * trans.c (gfc_build_final_call): Handle coarrays.
49
50 2013-03-30 Thomas Koenig <tkoenig@gcc.gnu.org>
51
52 * trans-expr.c (build_memcmp_call): New function.
53 (gfc_build_compare_string): If the strings
54 compared have constant and equal lengths and
55 the strings are kind=1, or, for kind=4 strings,
56 the test is for (in)equality, use memcmp().
57
58 2013-03-29 Tobias Burnus <burnus@net-b.de>
59
60 PR fortran/35203
61 * trans-decl.c (create_function_arglist): Pass hidden argument
62 for passed-by-value optional+value dummies.
63 * trans-expr.c (gfc_conv_expr_present,
64 gfc_conv_procedure_call): Handle those.
65
66 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
67
68 PR fortran/45159
69 * gfortran.h (gfc_dep_difference): Add prototype.
70 * dependency.c (discard_nops): New function.
71 (gfc_dep_difference): New function.
72 (check_section_vs_section): Use gfc_dep_difference
73 to calculate the difference of starting indices.
74 * trans-expr.c (gfc_conv_substring): Use
75 gfc_dep_difference to calculate the length of
76 substrings where possible.
77
78 2013-03-28 Thomas Koenig <tkoenig@gcc.gnu.org>
79
80 PR fortran/55806
81 * frontend-passes.c (optimize_code): Keep track of
82 current code to make code insertion possible.
83 (combine_array_constructor): New function.
84 (optimize_op): Call it.
85
86 2013-03-27 Tobias Burnus <burnus@net-b.de>
87
88 PR fortran/56650
89 PR fortran/36437
90 * check.c (gfc_check_sizeof, gfc_check_c_sizeof,
91 gfc_check_storage_size): Update checks.
92 * intrinsic.texi (SIZEOF): Correct class.
93 * intrinsic.h (gfc_simplify_sizeof,
94 gfc_simplify_storage_size): New prototypes.
95 * intrinsic.c (add_functions): Use them.
96 * simplify.c (gfc_simplify_sizeof,
97 gfc_simplify_storage_size): New functions.
98
99 2013-03-27 Janne Blomqvist <jb@gcc.gnu.org>
100
101 PR fortran/25708
102 * module.c (module_locus): Use long for position.
103 (module_content): New variable.
104 (module_pos): Likewise.
105 (prev_character): Remove.
106 (bad_module): Free data instead of closing mod file.
107 (set_module_locus): Use module_pos.
108 (get_module_locus): Likewise.
109 (module_char): use buffer rather than stdio file.
110 (module_unget_char): Likewise.
111 (read_module_to_tmpbuf): New function.
112 (gfc_use_module): Call read_module_to_tmpbuf.
113
114 2013-03-26 Tobias Burnus <burnus@net-b.de>
115
116 PR fortran/56649
117 * simplify.c (gfc_simplify_merge): Simplify more.
118
119 2013-03-25 Tobias Burnus <burnus@net-b.de>
120
121 PR fortran/38536
122 PR fortran/38813
123 PR fortran/38894
124 PR fortran/39288
125 PR fortran/40963
126 PR fortran/45824
127 PR fortran/47023
128 PR fortran/47034
129 PR fortran/49023
130 PR fortran/50269
131 PR fortran/50612
132 PR fortran/52426
133 PR fortran/54263
134 PR fortran/55343
135 PR fortran/55444
136 PR fortran/55574
137 PR fortran/56079
138 PR fortran/56378
139 * check.c (gfc_var_strlen): Properly handle 0-sized string.
140 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
141 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
142 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
143 functions.
144 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
145 compiler_options.
146 (gfc_check_pointer_assign): Refine function result check.
147 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
148 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
149 GFC_ISYM_C_LOC.
150 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
151 NAMED_SUBROUTINE.
152 (generate_isocbinding_symbol): Update prototype.
153 (get_iso_c_sym): Remove.
154 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
155 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
156 (gfc_intrinsic_sub_interface): Use it.
157 (add_functions, add_subroutines): Add missing C-binding intrinsics.
158 (gfc_intrinsic_func_interface): Add special case for c_loc.
159 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
160 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
161 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
162 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
163 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
164 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
165 functions.
166 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
167 NAMED_FUNCTION.
168 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
169 * module.c (create_intrinsic_function): Support subroutines and
170 derived-type results.
171 (use_iso_fortran_env_module): Update calls.
172 (import_iso_c_binding_module): Ditto; update calls to
173 generate_isocbinding_symbol.
174 * resolve.c (find_arglists): Skip for intrinsic symbols.
175 (gfc_resolve_intrinsic): Find intrinsic subs via id.
176 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
177 set_name_and_label, gfc_iso_c_sub_interface): Remove.
178 (resolve_function, resolve_specific_s0): Remove calls to those.
179 (resolve_structure_cons): Fix handling.
180 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
181 generation.
182 (gen_cptr_param, gen_fptr_param, gen_shape_param,
183 build_formal_args, get_iso_c_sym): Remove.
184 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
185 (generate_isocbinding_symbol): Support hidden symbols and
186 using c_ptr/c_funptr symtrees for nullptr defs.
187 * target-memory.c (gfc_target_encode_expr): Fix handling
188 of c_ptr/c_funptr.
189 * trans-expr.c (conv_isocbinding_procedure): Remove.
190 (gfc_conv_procedure_call): Remove call to it.
191 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
192 of c_ptr/c_funptr.
193 * trans-intrinsic.c (conv_isocbinding_function,
194 conv_isocbinding_subroutine): New.
195 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
196 Call them.
197 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
198 * trans-types.c (gfc_typenode_for_spec,
199 gfc_get_derived_type): Ditto.
200 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
201
202 2013-03-18 Tobias Burnus <burnus@net-b.de>
203
204 * gfortran.h (gfc_option_t): Remove flag_whole_file.
205 * invoke.texi (-fno-whole-file): Remove.
206 * lang.opt (fwhole-file): Change to Ignore.
207 * options.c (gfc_init_options, gfc_post_options,
208 gfc_handle_option): Remove !flag_whole_file handling
209 * parse.c (resolve_all_program_units, translate_all_program_units,
210 gfc_parse_file): Ditto.
211 * resolve.c (resolve_global_procedure): Ditto.
212 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
213 gfc_create_module_variable): Ditto.
214 * trans-types.c (gfc_get_derived_type): Ditto.
215
216 2013-03-15 Tobias Burnus <burnus@net-b.de>
217
218 PR fortran/56615
219 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
220 if they are not simply contiguous.
221
222 2013-03-11 Tobias Burnus <burnus@net-b.de>
223
224 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
225 to convert them into derived types.
226
227 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
228
229 PR fortran/56575
230 * expr.c (gfc_default_initializer): Check that a class declared
231 type has any components.
232 * resolve.c (resolve_fl_derived0): On failing the test for C437
233 set the type to BT_UNKNOWN to prevent repeat error messages.
234
235 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
236
237 PR fortran/56477
238 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
239
240 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
241
242 PR fortran/54730
243 * array.c (gfc_match_array_constructor): Set a checkpoint before
244 matching a typespec. Drop it on success, restore it otherwise.
245
246 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
247
248 PR fortran/54730
249 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
250 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
251 gfc_restore_last_undo_checkpoint): New prototypes.
252 * symbol.c (default_undo_chgset_var): Update initialization.
253 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
254 free_undo_change_set_data, pop_undo_change_set,
255 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
256 New functions.
257 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
258 field's previous value is not overwritten. Clear gfc_new field.
259 (restore_old_symbol): Restore previous old_symbol field.
260 (gfc_restore_last_undo_checkpoint): New function, using body renamed
261 from gfc_undo_symbols. Restore the previous change set as current one.
262 (gfc_undo_symbols): New body.
263 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
264 Call enforce_single_undo_checkpoint.
265 (gfc_symbol_done_2): Ditto. Free change set data.
266
267 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
268
269 * symbol.c (restore_old_symbol): Fix thinko.
270
271 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
272
273 * symbol.c (gfc_undo_symbols): Move code...
274 (restore_old_symbol): ... here as a new function.
275
276 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
277
278 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
279 * gfortran.h: Include vec.h.
280 (gfc_undo_change_set): New struct.
281 * symbol.c (tentative_tbp): Remove struct.
282 (changed_syms, tentative_tbp_list): Remove variables.
283 (default_undo_chgset_var, latest_undo_chgset): New variables.
284 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
285 gfc_commit_symbols, gfc_commit_symbol,
286 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
287 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
288
289 2013-03-01 Tobias Burnus <burnus@net-b.de>
290
291 PR fortran/56491
292 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
293 * symbol.c (free_components): Free proc-pointer components.
294
295 2013-03-01 Tobias Burnus <burnus@net-b.de>
296
297 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
298 * trans-io.c (build_dt): Ditto.
299
300 2013-02-24 Joseph Myers <joseph@codesourcery.com>
301
302 * resolve.c (generate_component_assignments): Don't use UTF-8
303 ligature in diagnostic.
304
305 2013-02-21 Janus Weil <janus@gcc.gnu.org>
306
307 PR fortran/56385
308 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
309 components with allocatable result.
310
311 2013-02-21 Tobias Burnus <burnus@net-b.de>
312
313 PR fortran/56416
314 * gfortran.texi (Part II: Language Reference, Extensions,
315 Non-Fortran Main Program): Sort @menu to match actual section order.
316 * intrinsic.texi (Intrinsic Procedures): Ditto.
317 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
318
319 2013-02-15 Tobias Burnus <burnus@net-b.de>
320 Mikael Morin <mikael@gcc.gnu.org>
321
322 PR fortran/56318
323 * simplify.c (gfc_simplify_matmul): Fix result shape
324 and matmul result.
325
326 2013-02-15 Tobias Burnus <burnus@net-b.de>
327
328 PR fortran/53818
329 * resolve.c (apply_default_init_local): Don't create an
330 initializer for a result variable.
331
332 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
333
334 PR fortran/56224
335 * gfortran.h (gfc_add_include_path): Add boolean argument
336 for warn.
337 * scanner.c (gfc_add_include_path): Pass along warn argument
338 to add_path_to_list.
339 * options.c (gfc_post_options): Add true warn argument to
340 gfc_add_include_path.
341 (gfc_handle_module_path_options): Likewise.
342 (gfc_handle_option): Also gfc_add_include_path for intrinsic
343 modules, without warning.
344
345 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
346 Tobias Burnus <burnus@net-b.de>
347
348 PR testsuite/56138
349 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
350 results for functions without extra result variable.
351
352 Revert:
353 2013-01-30 Tobias Burnus <burnus@net-b.de>
354
355 PR fortran/56138
356 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
357 results for functions without extra result variable.
358
359 2013-02-12 Janus Weil <janus@gcc.gnu.org>
360
361 PR fortran/46952
362 * resolve.c (resolve_call): Do not check deferred procedures for
363 recursiveness.
364
365 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
366
367 PR fortran/55362
368 * check.c (array_check): It is an error if a procedure is
369 passed.
370
371 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
372
373 PR fortran/54107
374 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
375 to error_mark_node on entry. Detect recursive types. Build a variadic
376 procedure type if the type is recursive. Restore the initial
377 backend_decl.
378
379 2013-02-07 Tobias Burnus <burnus@net-b.de>
380
381 PR fortran/54339
382 * gfortran.texi (Standards): Mention TS29113.
383 (Varying Length Character): Mention deferred-length
384 strings.
385 (Fortran 2003 Status): Add unlimited polymorphic.
386 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
387 (C Interop): Update the section about TS29113.
388
389 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
390
391 PR fortran/55789
392 * trans-array.c (trans_array_constructor): Remove condition
393 'dynamic' = true if the loop ubound is a VAR_DECL.
394
395 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
396
397 PR fortran/56008
398 PR fortran/47517
399 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
400 the lhs descriptor before it is modified for reallocation. Use
401 it to deallocate allocatable components in the reallocation
402 block. Nullify allocatable components for newly (re)allocated
403 arrays.
404
405 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
406
407 PR fortran/54195
408 * resolve.c (resolve_typebound_procedures): Recurse through
409 resolve_symbol.
410
411 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
412
413 PR fortran/54107
414 PR fortran/54195
415 * gfortran.h (struct gfc_symbol): New field 'resolved'.
416 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
417 (resolve_symbol): Skip duplicate calls. Don't check the current
418 namespace.
419
420 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
421
422 PR fortran/50627
423 PR fortran/56054
424 * decl.c (gfc_match_end): Remove half-ready namespace
425 from parent if the end of a block is missing.
426 * parse.c (parse_module): Do not put namespace into
427 gsymbol on error.
428
429 2013-01-30 Tobias Burnus <burnus@net-b.de>
430
431 PR fortran/56138
432 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
433 results for functions without extra result variable.
434
435 2013-01-29 Janus Weil <janus@gcc.gnu.org>
436 Mikael Morin <mikael@gcc.gnu.org>
437
438 PR fortran/54107
439 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
440 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
441 gfc_expr_replace_comp): Delete.
442 (gfc_sym_get_dummy_args): New prototype.
443 * dependency.c (gfc_check_fncall_dependency): Use
444 'gfc_sym_get_dummy_args'.
445 * expr.c (gfc_is_constant_expr): Ditto.
446 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
447 gfc_expr_replace_comp): Deleted.
448 * frontend-passes.c (doloop_code,do_function): Use
449 'gfc_sym_get_dummy_args'.
450 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
451 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
452 gfc_check_typebound_override): Ditto.
453 * module.c (MOD_VERSION): Bump module version.
454 (mio_component): Do not read/write 'formal' and 'formal_ns'.
455 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
456 copy formal args, but just keep a pointer to the interface.
457 (resolve_function,resolve_call,resolve_typebound_generic_call,
458 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
459 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
460 resolve_typebound_procedure,check_uop_procedure): Use
461 'gfc_sym_get_dummy_args'.
462 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
463 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
464 (gfc_sym_get_dummy_args): New function.
465 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
466 Use 'gfc_sym_get_dummy_args'.
467 * trans-decl.c (build_function_decl,create_function_arglist,
468 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
469 add_argument_checking): Ditto.
470 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
471 gfc_conv_statement_function): Ditto.
472 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
473 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
474
475 2013-01-28 Tobias Burnus <burnus@net-b.de>
476 Mikael Morin <mikael@gcc.gnu.org>
477
478 PR fortran/53537
479 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
480 interface block.
481 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
482 * decl.c (gfc_match_data_decl): Ditto.
483 (variable_decl): Remove undeclared type error.
484 (gfc_match_import): Use renamed instead of original name.
485
486 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
487
488 PR fortran/55984
489 PR fortran/56047
490 * gfortran.h : Add associate_var to symbol_attr.
491 * resolve.c (resolve_assoc_var): Set associate_var attribute.
492 If the target class_ok is set, set it for the associate
493 variable.
494 * check.c (allocatable_check): Associate variables should not
495 have the allocatable attribute even if their symbols do.
496 * class.c (gfc_build_class_symbol): Symbols with associate_var
497 set will always have a good class container.
498
499 2013-01-23 Janus Weil <janus@gcc.gnu.org>
500
501 PR fortran/56081
502 * resolve.c (resolve_select): Add argument 'select_type', reject
503 non-scalar expressions.
504 (resolve_select_type,resolve_code): Pass new argument to
505 'resolve_select'.
506
507 2013-01-23 Jakub Jelinek <jakub@redhat.com>
508
509 PR fortran/56052
510 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
511 and DECL_IGNORED_P on select_type_temporary and don't set
512 DECL_BY_REFERENCE.
513
514 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
515
516 PR fortran/55919
517 * scanner.c (add_path_to_list): Copy path to temporary and strip
518 trailing directory separators before calling stat().
519
520 2013-01-17 Richard Biener <rguenther@suse.de>
521
522 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
523 dependent on sign of step, avoids repeated evaluation of
524 step sign test. Avoid undefined overflow issues by using unsigned
525 arithmetic.
526
527 2013-01-16 Janus Weil <janus@gcc.gnu.org>
528
529 PR fortran/55983
530 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
531 asserting it.
532
533 2013-01-16 Jakub Jelinek <jakub@redhat.com>
534 Tobias Burnus <burnus@net-b.de>
535
536 PR driver/55884
537 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
538 (fintrinsic-modules-path=): New.
539 * options.c (gfc_handle_option, gfc_get_option_string,
540 gfc_get_option_string): Handle the latter.
541
542 2013-01-16 Jakub Jelinek <jakub@redhat.com>
543
544 PR fortran/52865
545 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
546 and use value of countm1 before the decrement in the condition.
547
548 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
549
550 PR fortran/54286
551 * expr.c (gfc_check_pointer_assign): Check for presence of
552 's2' before using it.
553
554 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
555
556 PR fortran/55806
557 * frontend-passes.c (optimize_reduction): New function,
558 including prototype.
559 (callback_reduction): Likewise.
560 (gfc_run_passes): Also run optimize_reduction.
561 (copy_walk_reduction_arg): New function.
562 (dummy_code_callback): New function.
563
564 2013-01-13 Jakub Jelinek <jakub@redhat.com>
565
566 PR fortran/55935
567 * trans-expr.c (gfc_conv_structure): Call
568 unshare_expr_without_location on the ctor elements.
569
570 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
571
572 PR fortran/54286
573 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
574 and rvalue interfaces are presented to gfc_compare_interfaces.
575 Simplify references to interface names by using the symbols
576 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
577 changed to overcome the asymmetry of this function. Do not
578 repeat the check for the presence of s1 and s2.
579
580 2013-01-12 Janus Weil <janus@gcc.gnu.org>
581
582 PR fortran/55072
583 * trans-array.c (gfc_conv_array_parameter): No packing was done for
584 full arrays of derived type.
585
586 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
587
588 PR fortran/55868
589 * class.c (get_unique_type_string): Change $tar to STAR and
590 replace sprintf by strcpy where there is no formatting.
591 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
592
593 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
594
595 PR fortran/47203
596 * module.c (check_for_ambiguous): Get the current program unit using
597 gfc_current_ns.
598
599 2013-01-09 Tobias Burnus <burnus@net-b.de>
600
601 PR fortran/55758
602 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
603 in BIND(C) procedures with -std=f*.
604
605 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
606
607 PR fortran/55618
608 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
609 character function arguments to elemental procedures in
610 scalarization loops.
611
612 2013-01-07 Tobias Burnus <burnus@net-b.de>
613
614 PR fortran/55763
615 * gfortran.h (gfc_check_assign_symbol): Update prototype.
616 * decl.c (add_init_expr_to_sym, do_parm): Update call.
617 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
618 improve error location; support components.
619 (gfc_check_pointer_assign): Handle component assignments.
620 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
621 (resolve_values): Update call.
622 (resolve_structure_cons): Avoid double diagnostic.
623
624 2013-01-07 Tobias Burnus <burnus@net-b.de>
625 Thomas Koenig <tkoenig@gcc.gnu.org>
626
627 PR fortran/55852
628 * expr.c (gfc_build_intrinsic_call): Avoid clashes
629 with user's procedures.
630 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
631 * simplify.c (gfc_simplify_size): Update call.
632 * class.c (finalization_scalarizer, finalization_get_offset,
633 finalizer_insert_packed_call, generate_finalization_wrapper):
634 Clean up by using gfc_build_intrinsic_call.
635
636 2013-01-07 Tobias Burnus <burnus@net-b.de>
637
638 PR fortran/55763
639 * resolve.c (resolve_select_type): Reject intrinsic types for
640 a non-unlimited-polymorphic selector.
641
642 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
643
644 PR fortran/53876
645 PR fortran/54990
646 PR fortran/54992
647 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
648 to see if it is GFC_CLASS_TYPE_P.
649 * trans-expr.c (gfc_get_vptr_from_expr): The same.
650 (gfc_conv_class_to_class): If the types are not the same,
651 cast parmese->expr to the type of ctree.
652 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
653 CLASS components must be set.
654
655 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
656
657 PR fortran/42769
658 PR fortran/45836
659 PR fortran/45900
660 * module.c (read_module): Don't reuse local symtree if the associated
661 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
662 ambiguous.
663 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
664 lookup the symtree.
665
666 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
667 Mikael Morin <mikael@gcc.gnu.org>
668
669 PR fortran/55827
670 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
671 e->symtree == NULL.
672 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
673
674 2013-01-05 Tobias Burnus <burnus@net-b.de>
675
676 * class.c (finalize_component): Used passed offset expr.
677 (finalization_get_offset): New static function.
678 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
679 to handle noncontiguous arrays.
680
681 2013-01-04 Tobias Burnus <burnus@net-b.de>
682
683 * trans.c (gfc_build_final_call): New function.
684 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
685 New function prototypes.
686 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
687 conv_scalar_to_descriptor, removed static attribute.
688 (gfc_conv_procedure_call): Honor renaming.
689
690 2013-01-04 Tobias Burnus <burnus@net-b.de>
691
692 * intrinsic.c (add_functions): New internal intrinsic
693 function GFC_PREFIX ("stride").
694 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
695 * intrinsic.h (gfc_resolve_stride): New prototypes.
696 * iresolve.c (gfc_resolve_stride): New function.
697 * trans-intrinsic.c (conv_intrinsic_stride): New static
698 function.
699 (gfc_conv_intrinsic_function): Use it.
700
701 2013-01-04 Tobias Burnus <burnus@net-b.de>
702
703 * class.c (gfc_find_intrinsic_vtab): Add _final
704 component.
705 * decl.c (gfc_match_null): Remove superfluous
706 variadic argument to gfc_match.
707
708 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
709
710 PR fortran/55172
711 * match.c (copy_ts_from_selector_to_associate): Remove call to
712 gfc_resolve_expr and replace it with explicit setting of the
713 array reference type.
714 * resolve.c (resolve_select_type): It is an error if the
715 selector is coindexed.
716
717 2013-01-04 Tobias Burnus <burnus@net-b.de>
718
719 PR fortran/55763
720 * decl.c (gfc_match_null): Parse and reject MOLD.
721
722 2013-01-04 Tobias Burnus <burnus@net-b.de>
723
724 PR fortran/55854
725 PR fortran/55763
726 * class.c (gfc_class_null_initializer): Fix finding the vtab.
727 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
728
729 2013-01-03 Janus Weil <janus@gcc.gnu.org>
730
731 PR fortran/55855
732 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
733 of rvalue. Correct hyphenation in error message.
734
735 2013-01-03 Jakub Jelinek <jakub@redhat.com>
736
737 * gfortranspec.c (lang_specific_driver): Update copyright notice
738 dates.
739 \f
740 Copyright (C) 2013 Free Software Foundation, Inc.
741
742 Copying and distribution of this file, with or without modification,
743 are permitted in any medium without royalty provided the copyright
744 notice and this notice are preserved.