1 2011-02-24 Tobias Burnus <burnus@net-b.de>
4 * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
5 multitable for linebreak between different syntax variants.
7 2011-02-24 Richard Guenther <rguenther@suse.de>
10 * f95-lang.c (pushdecl): For externs in non-global scope push
11 a copy of the decl into the BLOCK.
13 2011-02-23 Mikael Morin <mikael@gcc.gnu.org>
16 * trans.c (gfc_prepend_expr_to_block): New function.
17 * trans.h (gfc_prepend_expr_to_block): Declare.
18 * trans-array.c (gfc_conv_array_parameter): Replace
19 gfc_add_expr_to_block with gfc_prepend_expr_to_block.
21 2011-02-22 Paul Thomas <pault@gcc.gnu.org>
24 * trans-decl.c (gfc_get_extern_function_decl): Don't use the
25 gsymbol backend_decl if the procedure has a formal argument
28 2011-02-22 Tobias Burnus <burnus@net-b.de>
31 * trans-stmt.c (gfc_trans_if_1): Use correct line for
32 expressions in the if condition.
34 2011-02-20 Tobias Burnus <burnus@net-b.de>
37 * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
38 gfc_restore_backend_locus to have better debug locations.
39 * trans-array.c (gfc_trans_deferred_array): Ditto.
41 2011-02-20 Paul Thomas <pault@gcc.gnu.org>
45 * trans-types.c (gfc_get_derived_type): Remove code that looks
46 for decls in gsym and add call to gfc_get_module_backend_decl.
47 * trans.h : Add prototype for gfc_get_module_backend_decl.
48 * trans-decl.c (gfc_get_module_backend_decl): New function.
49 (gfc_get_symbol_decl): Call it.
51 2011-02-19 Paul Thomas <pault@gcc.gnu.org>
54 * trans-array.c (get_array_ctor_all_strlen): Move up in file.
55 (get_array_ctor_var_strlen): Add block dummy and add call to
56 get_array_ctor_all_strlen instead of giving up on substrings.
57 Call gcc_unreachable for default case.
58 (get_array_ctor_strlen): Add extra argument to in call to
59 get_array_ctor_var_strlen.
61 2011-02-18 Janus Weil <janus@gcc.gnu.org>
64 * primary.c (gfc_match_structure_constructor): Handle empty parent
67 2011-02-18 Tobias Burnus
70 * trans-expr.c (arrayfunc_assign_needs_temporary): Use
71 esym to check whether the specific procedure returns an
72 allocatable or pointer.
74 2011-02-18 Michael Matz <matz@suse.de>
77 * gfortran.h (struct gfc_component): Add norestrict_decl member.
78 * trans.h (struct lang_type): Add nonrestricted_type member.
79 * trans-expr.c (gfc_conv_component_ref): Search fields with correct
81 * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
82 (gfc_sym_type): Use it.
84 2011-02-18 Janus Weil <janus@gcc.gnu.org>
87 * resolve.c (resolve_transfer): Reject variables with procedure pointer
90 2011-02-18 Janus Weil <janus@gcc.gnu.org>
93 * gfortran.h (gfc_check_access): Removed prototype.
94 (gfc_check_symbol_access): Added prototype.
95 * module.c (gfc_check_access): Renamed to 'check_access', made static.
96 (gfc_check_symbol_access): New function, basically a shortcut for
98 (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
99 'gfc_check_symbol_access'.
100 (write_operator,write_module): Renamed 'gfc_check_access'.
101 * resolve.c (resolve_fl_procedure,resolve_fl_derived,
102 resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
103 'gfc_check_symbol_access'.
105 2011-02-16 Janus Weil <janus@gcc.gnu.org>
108 * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
109 * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
110 'gfc_build_class_symbol'.
111 (gfc_match_decl_type_spec): Reject unlimited polymorphism.
112 * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
113 * match.c (select_type_set_tmp): Move setting of 'class_ok' into
114 'gfc_build_class_symbol'.
115 * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
117 2011-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
120 . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
122 2011-02-14 Janus Weil <janus@gcc.gnu.org>
125 * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
127 2011-02-14 Janus Weil <janus@gcc.gnu.org>
130 * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
132 * primary.c (gfc_match_varspec): Avoid ICE for invalid class
135 2011-02-14 Janus Weil <janus@gcc.gnu.org>
138 * interface.c (get_expr_storage_size): Handle derived-type components.
140 2011-02-13 Tobias Burnus <burnus@net-b.de>
143 * interface.c (compare_parameter): Avoid ICE with
144 character components.
146 2011-02-12 Janus Weil <janus@gcc.gnu.org>
148 * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
149 * decl.c (build_sym,build_struct,attr_decl1): Use return value of
150 'gfc_build_class_symbol'.
152 2011-02-12 Michael Matz <matz@suse.de>
153 Janus Weil <janus@gcc.gnu.org>
154 Tobias Burnus <burnus@net-b.de>
157 * trans-expr.c (conv_parent_component_references): Avoid unintendent
158 skipping of parent compounds.
160 2011-02-11 Tobias Burnus <burnus@net-b.de>
163 * resolve.c (resolve_formal_arglist): PURE with VALUE
164 and no INTENT: Add -std= diagnostics.
166 2011-02-09 Janus Weil <janus@gcc.gnu.org>
169 * resolve.c (resolve_procedure_interface): If interface has a result
170 variable, copy the typespec and set result pointer to self.
172 2011-02-09 Janus Weil <janus@gcc.gnu.org>
175 * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
177 2011-02-09 Janus Weil <janus@gcc.gnu.org>
180 * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
182 2011-02-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
184 * io.c (match_io_element): Do not set dt if not inquire.
186 2011-02-08 Janus Weil <janus@gcc.gnu.org>
189 * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
190 initialization target.
192 2011-02-07 Janne Blomqvist <jb@gcc.gnu.org>
193 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
195 * gfortran.texi (Thread-safety): texinfo styling fixes.
196 * intrinsic.texi: Likewise.
198 2011-02-06 Janne Blomqvist <jb@gcc.gnu.org>
200 * gfortran.texi (Compiler Characteristics): Add reference to
201 thread-safety section.
203 2011-02-06 Janne Blomqvist <jb@gcc.gnu.org>
205 * gfortran.texi (Thread-safety): New section.
206 * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
208 (GET_ENVIRONMENT_VARIABLE): Likewise.
211 2011-02-06 Paul Thomas <pault@gcc.gnu.org>
214 * trans-stmt.c (gfc_trans_allocate): For deferred character
215 length allocations with SOURCE, store to the values and string
216 length to avoid calculating twice. Replace gfc_start_block
217 with gfc_init_block to avoid unnecessary contexts and to keep
218 declarations of temporaries where they should be. Tidy up the
221 2011-02-05 Janne Blomqvist <jb@gcc.gnu.org>
224 * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
226 2011-02-02 Janus Weil <janus@gcc.gnu.org>
227 Paul Thomas <pault@gcc.gnu.org>
230 * trans-expr.c (gfc_trans_class_init_assign): Add call to
231 gfc_get_derived_type.
232 * module.c (read_cleanup): Do not use unique_symtrees for vtabs
235 2011-02-02 Janus Weil <janus@gcc.gnu.org>
238 * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
240 2011-02-01 Janus Weil <janus@gcc.gnu.org>
243 * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
244 pointer components with allocatable result.
246 2011-01-31 Janus Weil <janus@gcc.gnu.org>
249 * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
250 with pointer or allocatable result.
252 2011-01-31 Paul Thomas <pault@gcc.gnu.org>
255 * trans-stmt.c (gfc_trans_allocate): Improve handling of
256 deferred character lengths with SOURCE.
257 * iresolve.c (gfc_resolve_repeat): Calculate character
258 length from source length and ncopies.
259 * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
260 expressions for ALLOCATE.
262 2011-01-31 Janus Weil <janus@gcc.gnu.org>
265 * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
266 an argument of a typebound assignment being a component.
268 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
270 * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
271 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
273 2011-01-31 Tobias Burnus <burnus@net-b.de>
276 * resolve.c (resolve_fl_procedure): Reject stmt functions
277 with pointer/allocatable attribute.
279 2011-01-31 Tobias Burnus <burnus@net-b.de>
282 * interface.c (gfc_procedure_use): Add explicit interface check for
283 pointer/allocatable functions.
285 2011-01-30 Paul Thomas <pault@gcc.gnu.org>
288 * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
289 expr and is assigned to a deferred character length scalar,
290 make sure that the function is called before reallocation,
291 so that the length is available. Include procedure pointer
292 and procedure pointer component rhs as well.
297 * gfortran.dg/allocatable_function_5.f90: New test not added by
298 mistake on 2011-01-28.
300 2011-01-29 Tobias Burnus <burnus@net-b.de>
303 * check.c (gfc_check_shape): Support kind argument in SHAPE.
304 * intrinsic.c (add_functions): Ditto.
305 * resolve.c (gfc_resolve_shape): Ditto.
306 * simplify.c (gfc_simplify_shape): Ditto.
307 * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
308 gfc_simplify_shape): Update prototypes.
309 * intrinisc.text (SHAPE): Document kind argument.
311 2011-01-28 Tobias Burnus <burnus@net-b.de>
314 * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
315 attribute also without INTENT.
317 2011-01-28 Tobias Burnus <burnus@net-b.de>
319 * gfortran.texi (Fortran 2003 status): Mention support for
320 nonconstant namelist variables.
322 2011-01-28 Paul Thomas <pault@gcc.gnu.org>
323 Tobias Burnus <burnus@gcc.gnu.org>
328 * interface.c (compare_actual_formal): An allocatable or pointer
329 deferred length actual is only allowed if the formal argument
330 is also deferred length. Clean up whitespace.
331 * trans-expr.c (gfc_conv_procedure_call): Pass string length for
332 deferred character length formal arguments by reference. Do the
333 same for function results.
334 (gfc_trans_pointer_assignment): Do not do runtime check of lhs
335 and rhs character lengths, if deferred length lhs. In this case
336 set the lhs character length to that of the rhs.
337 (gfc_conv_string_parameter): Remove assert that string length is
339 (is_scalar_reallocatable_lhs): New function.
340 (alloc_scalar_allocatable_for_assignment): New function.
341 (gfc_trans_assignment_1): Call above new function. If the rhs is
342 a deferred character length itself, makes ure that the function
343 is called before reallocation, so that the length is available.
344 (gfc_trans_asssignment): Remove error about assignment to
345 deferred length character variables.
346 * gfortran.texi : Update entry about (re)allocation on
348 * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
349 length character variables.
350 * module.c (mio_typespec): Transfer deferred characteristic.
351 * trans-types.c (gfc_get_function_type): New code to generate
352 hidden typelist, so that those character lengths that are
353 passed by reference get the right type.
354 * resolve.c (resolve_contained_fntype): Supress error for
355 deferred character length functions.
356 (resolve_function, resolve_fl_procedure) The same.
357 (check_symbols): Remove the error that support for
358 entity with deferred type parameter is not yet implemented.
359 (resolve_fl_derived): The same.
360 match.c (alloc_opt_list): Allow MOLD for deferred length object.
361 * trans-decl.c (gfc_get_symbol_decl): For deferred character
362 length dummies, generate a local variable for string length.
363 (create_function_arglist): Hidden length can be a pointer.
364 (gfc_trans_deferred_vars): For deferred character length
365 results and dummies, assign the string length to the local
366 variable from the hidden argument on entry and the other way
367 round on exit, as appropriate.
369 2011-01-27 Tobias Burnus <burnus@net-b.de>
372 * trans-decl.c (gfc_generate_function_code): Fix init
373 of allocatable result variable with allocatable components.
375 2011-01-27 Tobias Burnus <burnus@net-b.de>
378 * options.c (gfc_handle_module_path_options): Save
379 module path without trailing slash as include path.
381 2011-01-25 Tobias Burnus <burnus@net-b.de>
384 * interface.c (gfc_check_operator_interface): Fix
385 defined-assignment check.
387 2011-01-23 Tobias Burnus <burnus@net-b.de>
390 * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
391 scalar allocatable dummy arguments.
393 2011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org>
396 * resolve.c (gfc_iso_c_func_interface): For C_LOC,
397 check for array sections followed by component references
398 which are illegal. Also check for coindexed arguments.
400 2011-01-22 Tobias Burnus <burnus@net-b.de>
403 * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
406 2011-01-21 Tobias Burnus <burnus@net-b.de>
409 * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
410 Use defined instead of magic number exit status codes.
411 * scanner.c (include_line, gfc_new_file): Ditto.
413 2011-01-21 Tobias Burnus <burnus@net-b.de>
416 * expr.c (gfc_check_pointer_assign): Reject expr data-targets
417 without pointer attribute.
419 2011-01-18 Janus Weil <janus@gcc.gnu.org>
422 * resolve.c (expression_rank): Fix rank of procedure poiner components.
423 * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
424 pointer components as actual arguments.
426 2011-01-17 Jakub Jelinek <jakub@redhat.com>
429 * gfortran.h (struct gfc_omp_saved_state): New type.
430 (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
431 * resolve.c (resolve_global_procedure): Call it around gfc_resolve
433 * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
436 2011-01-17 Tobias Burnus <burnus@net-b.de>
439 * invoke.texi (Options to request or suppress errors
440 and warnings): Fix cross link.
442 2011-01-15 Tobias Burnus <burnus@net-b.de>
444 * gfortran.texi: Update Fortran 2003 Status section.
447 * invoke.texi: Add missing "-E" to the -dM example.
449 2011-01-13 Tobias Burnus <burnus@net-b.de>
452 * intrinsic.texi (get_command_argument, get_environment_variable):
453 Mark arguments as optional in the Arguments section.
455 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
456 Tobias Burnus <burnus@net-b.de>
459 * trans-decl.c (gfc_get_extern_function_decl,
460 build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
461 calling decl_attributes.
463 2011-01-13 Tobias Burnus <burnus@net-b.de>
464 Mikael Morin <mikael@gcc.gnu.org>
468 * gfortran.h (gfc_code): Move union ext's case_list into
470 * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
472 * frontend-passes.c (gfc_code_walker): Ditto.
473 * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
474 gfc_match_type_is, gfc_match_class_is): Ditto.
475 * resolve.c (resolve_select, resolve_select_type): Ditto.
476 * st.c (gfc_free_statement): Ditto.
477 * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
478 gfc_trans_character_select): Ditto.
479 * parse.c (resolve_all_program_units): For error recovery, avoid
480 segfault is proc_name is NULL.
482 2011-01-11 Paul Thomas <pault@gcc.gnu.org>
485 * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
486 to be standard compliant by testing for shape rather than size
487 before skipping reallocation. Improve comments.
489 2011-01-09 Janus Weil <janus@gcc.gnu.org>
492 * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
495 2011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
498 * resolve.c (is_scalar_expr_ptr): For a substring reference,
499 use gfc_dep_compare_expr to compare start and end expession.
500 Add FIXME for using gfc_deb_compare_expr elsewhere.
502 2011-01-09 Janus Weil <janus@gcc.gnu.org>
505 * class.c (get_unique_type_string): Make type name start with upper
508 2011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
511 * invoke.texi: Mention -ffree-line-length-none and
512 -ffixed-line-length-none for preprocessing.
514 2011-01-08 Paul Thomas <pault@gcc.gnu.org>
517 * trans-expr.c (gfc_conv_procedure_call): With a non-copying
518 procedure argument (eg TRANSPOSE) use a temporary if there is
519 any chance of aliasing due to host or use association.
520 (arrayfunc_assign_needs_temporary): Correct logic for function
521 results and do not use a temporary for implicitly PURE
522 variables. Use a temporary for Cray pointees.
523 * symbol.c (gfc_add_save): Explicit SAVE not compatible with
524 implicit pureness of containing procedure.
525 * decl.c (match_old_style_init, gfc_match_data): Where decl
526 would fail in PURE procedure, set implicit_pure to zero.
527 * gfortran.h : Add implicit_pure to structure symbol_attr and
528 add prototype for function gfc_implicit_pure.
529 * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
530 Where decl would fail in PURE procedure, reset implicit_pure.
531 * io.c (match_vtag, gfc_match_open, gfc_match_close,
532 gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
533 * match.c (gfc_match_critical, gfc_match_stopcode,
534 sync_statement, gfc_match_allocate, gfc_match_deallocate): The
536 * parse.c (decode_omp_directive): The same.
537 (parse_contained): If not PURE, set implicit pure attribute.
538 * resolve.c (resolve_formal_arglist, resolve_structure_cons,
539 resolve_function, resolve_ordinary_assign) : The same.
540 (gfc_implicit_pure): New function.
541 * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
542 to ab_attribute enum and use it in this function.
544 2011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
547 * symbol.c (gfc_symbols_could_alias): Strip gfc_ prefix,
548 make static and move in front of its only caller, to ...
549 * trans-array.c (symbols_could_alias): ... here.
550 Pass information about pointer and target status as
551 arguments. Allocatable arrays don't alias anything
552 unless they have the POINTER attribute.
553 (gfc_could_be_alias): Keep track of pointer and target
554 status when following references. Also check if typespecs
555 of components match those of other components or symbols.
557 2011-01-07 Tobias Burnus <burnus@net-b.de>
560 * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
561 * intrinsic.c (add_functions): Use simplify functions for
562 EXTENDS_TYPE_OF and SAME_TYPE_AS.
563 * intrinsic.h (gfc_simplify_extends_type_of,
564 gfc_simplify_same_type_as): New prototypes.
565 * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
566 gfc_simplify_same_type_as): New functions.
568 2011-01-07 Janus Weil <janus@gcc.gnu.org>
572 * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
573 * class.c (gfc_class_null_initializer): Initialize _vptr to declared
575 * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
576 * resolve.c (resolve_deallocate_expr): _data component will be added
577 at translation stage.
578 * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
579 * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
581 2011-01-06 Daniel Franke <franke.daniel@gmail.com>
585 * parse.c (parse_interface): Remove check for procedure types.
586 * interface.c (check_interface0): Verify that procedures are
587 either all SUBROUTINEs or all FUNCTIONs.
589 2011-01-05 Janus Weil <janus@gcc.gnu.org>
592 * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
593 'vtab' is initialized).
595 2011-01-05 Janus Weil <janus@gcc.gnu.org>
598 * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
599 assignment, set the _vptr component to the declared type.
601 2011-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
604 * resolve.c (resolve_allocate_deallocate): Follow references to
605 check for duplicate occurence of allocation/deallocation objects.
607 2011-01-05 Janus Weil <janus@gcc.gnu.org>
610 * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
611 of polymorphic allocatables according to their declared type.
613 2011-01-04 Janus Weil <janus@gcc.gnu.org>
616 * class.c (gfc_find_derived_vtab): Set the module field for the copying
617 routine to make sure it receives module name mangling.
619 2011-01-03 Jakub Jelinek <jakub@redhat.com>
621 * gfortranspec.c (lang_specific_driver): Update copyright notice
624 2011-01-03 Janus Weil <janus@gcc.gnu.org>
626 * intrinsic.texi (LEADZ): Fix example.
628 2011-01-02 Janus Weil <janus@gcc.gnu.org>
631 * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
635 Copyright (C) 2011 Free Software Foundation, Inc.
637 Copying and distribution of this file, with or without modification,
638 are permitted in any medium without royalty provided the copyright
639 notice and this notice are preserved.