1. 21 Jun, 2006 1 commit
  2. 09 Jun, 2006 1 commit
    • pault's avatar
      2006-06-10 Paul Thomas <pault@gcc.gnu.org> · d77f260f
      pault authored
      	PR fortran/24558
      	PR fortran/20877
      	PR fortran/25047
      	* decl.c (get_proc_name): Add new argument to flag that a
      	module function entry is being treated. If true, correct
      	error condition, add symtree to module namespace and add
      	a module procedure.
      	(gfc_match_function_decl, gfc_match_entry,
      	gfc_match_subroutine): Use the new argument in calls to
      	get_proc_name.
      	* resolve.c (resolve_entries): ENTRY symbol reference to
      	to master entry namespace if a module function.
      	* trans-decl.c (gfc_create_module_variable): Return if
      	the symbol is an entry.
      	* trans-exp.c (gfc_conv_variable): Check that parent_decl
      	is not NULL.
      
      2006-06-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/24558
      	* gfortran.dg/entry_6.f90: New test.
      
      	PR fortran/20877
      	PR fortran/25047
      	* gfortran.dg/entry_7.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114526 138bc75d-0d04-0410-961f-82ee72b054a4
      d77f260f
  3. 03 Jun, 2006 1 commit
    • fxcoudert's avatar
      * trans.c (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): · 97c2a00c
      fxcoudert authored
      	Add strings for common runtime error messages.
      	(gfc_trans_runtime_check): Add a locus argument, use a string
      	and not a string tree for the message.
      	* trans.h (gfc_trans_runtime_check): Change prototype accordingly.
      	(gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): Add proto.
      	* trans-const.c (gfc_strconst_bounds, gfc_strconst_fault,
      	gfc_strconst_wrong_return, gfc_strconst_current_filename): Remove.
      	(gfc_init_constants): Likewise.
      	* trans-const.h: Likewise.
      	* trans-decl.c (gfc_build_builtin_function_decls): Call to
      	_gfortran_runtime_error has only one argument, the message string.
      	* trans-array.h (gfc_conv_array_ref): Add a symbol argument and a
      	locus.
      	* trans-array.c (gfc_trans_array_bound_check): Build precise
      	error messages.
      	(gfc_conv_array_ref): Use the new symbol argument and the locus
      	to build more precise error messages.
      	(gfc_conv_ss_startstride): More precise error messages.
      	* trans-expr.c (gfc_conv_variable): Give symbol reference and
      	locus to gfc_conv_array_ref.
      	(gfc_conv_function_call): Use the new prototype for
      	gfc_trans_runtime_check.
      	* trans-stmt.c (gfc_trans_goto): Build more precise error message.
      	* trans-io.c (set_string): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use new prototype
      	for gfc_trans_runtime_check.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114346 138bc75d-0d04-0410-961f-82ee72b054a4
      97c2a00c
  4. 16 Apr, 2006 1 commit
    • pault's avatar
      2006-04-16 Paul Thomas <pault@gcc.gnu.org> · 10b07432
      pault authored
      	PR fortran/26822
      	* intrinsic.c (add_functions): Mark LOGICAL as elemental.
      
      	PR fortran/26787
      	* expr.c (gfc_check_assign): Extend scope of error to include
      	assignments to a procedure in the main program or, from a
      	module or internal procedure that is not that represented by
      	the lhs symbol. Use VARIABLE rather than l-value in message.
      
      	PR fortran/27096
      	* trans-array.c (gfc_trans_deferred_array): If the backend_decl
      	is not a descriptor, dereference and then test and use the type.
      
      	PR fortran/25597
      	* trans-decl.c (gfc_trans_deferred_vars): Check if an array
      	result, is also automatic character length.  If so, process
      	the character length.
      
      	PR fortran/18803
      	PR fortran/25669
      	PR fortran/26834
      	* trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
      	data.info.dimen for bound intrinsics.
      	* trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
      	UBOUND intrinsics and supply their shape information to the ss
      	and the loop.
      
      	PR fortran/27124
      	* trans_expr.c (gfc_trans_function_call):  Add a new block, post,
      	in to which all the argument post blocks are put.  Add this block
      	to se->pre after a byref call or to se->post, otherwise.
      
      2006-04-16  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/26787
      	* gfortran.dg/proc_assign_1.f90: New test.
      	* gfortran.dg/procedure_lvalue.f90: Change message.
      	* gfortran.dg/namelist_4.f90: Add new error.
      
      	PR fortran/27096
      	* gfortran.dg/auto_pointer_array_result_1.f90
      
      	PR fortran/27089
      	* gfortran.dg/specification_type_resolution_1.f90
      
      	PR fortran/18803
      	PR fortran/25669
      	PR fortran/26834
      	* gfortran.dg/bounds_temporaries_1.f90: New test.
      
      	PR fortran/27124
      	* gfortran.dg/array_return_value_1.f90: New test.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112981 138bc75d-0d04-0410-961f-82ee72b054a4
      10b07432
  5. 22 Mar, 2006 1 commit
    • tkoenig's avatar
      2006-03-22 Thomas Koenig <Thomas.Koenig@onlien.de> · f23886ab
      tkoenig authored
      	PR fortran/19303
      	* gfortran.h (gfc_option_t):  Add record_marker.
      	* lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
      	* trans-decl.c:  Add gfor_fndecl_set_record_marker.
      	(gfc_build_builtin_function_decls): Set
      	gfor_fndecl_set_record_marker.
      	(gfc_generate_function_code):  If we are in the main program
      	and -frecord-marker was provided, call set_record_marker.
      	* options.c (gfc_handle_option):  Add handling for
      	-frecord-marker=4 and -frecord-marker=8.
      	* invoke.texi:  Document -frecord-marker.
      
      2006-03-22  Thomas Koenig  <Thomas.Koenig@onlien.de>
      
      	PR fortran/19303
      	* libgfortran.h (compile_options_t):  Add record_marker.
      	* runtime/compile_options.c (set_record_marker):
      	New function.
      	* io/open.c:  If we have four-byte record markers, use
      	GFC_INTEGER_4_HUGE as default record length.
      	* io/file_pos.c (unformatted_backspace):  Handle
      	different size record markers.
      	* io/transfer.c (us_read):  Likewise.
      	(us_write):  Likewise.
      	(next_record...
      f23886ab
  6. 13 Mar, 2006 1 commit
  7. 06 Mar, 2006 1 commit
    • pault's avatar
      2006-03-06 Paul Thomas <pault@gcc.gnu.org> · c750cc52
      pault authored
      	PR fortran/26107
      	* resolve.c (resolve_function): Add name after test for pureness.
      
      	PR fortran/19546
      	* trans-expr.c (gfc_conv_variable): Detect reference to parent result,
      	store current_function_decl, replace with parent, whilst calls are
      	made to gfc_get_fake_result_decl, and restore afterwards. Signal this
      	to gfc_get_fake_result_decl with a new argument, parent_flag.
      	* trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg
      	is set to zero.
      	* trans.h: Add parent_flag to gfc_get_fake_result_decl prototype.
      	* trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set,
      	add decl to parent function. Replace refs to current_fake_result_decl
      	with refs to this_result_decl.
      	(gfc_generate_function_code): Null parent_fake_result_decl before the
      	translation of code for contained procedures. Set parent_flag to zero
      	in call to gfc_get_fake_result_decl.
      	* trans-intrinsic.c (gfc_conv_intrinsic_len): The same.
      
      2006-03-06  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/26107
      	* pure_dummy_length_1.f90: New test.
      
      	PR fortran/19546
      	* gfortran.dg/parent_result_ref_1.f90: New test.
      	* gfortran.dg/parent_result_ref_2.f90: New test.
      	* gfortran.dg/parent_result_ref_3.f90: New test.
      	* gfortran.dg/parent_result_ref_4.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111793 138bc75d-0d04-0410-961f-82ee72b054a4
      c750cc52
  8. 03 Mar, 2006 1 commit
    • tkoenig's avatar
      2006-03-03 Thomas Koenig <Thomas.Koenig@online.de> · 8a92488f
      tkoenig authored
      	PR fortran/25031
      	* trans-array.h:  Adjust gfc_array_allocate prototype.
      	* trans-array.c (gfc_array_allocate):  Change type of
      	gfc_array_allocatate to bool.  Function returns true if
      	it operates on an array.  Change second argument to gfc_expr.
      	Find last reference in chain.
      	If the function operates on an allocatable array, emit call to
      	allocate_array() or allocate64_array().
      	* trans-stmt.c (gfc_trans_allocate):  Code to follow to last
      	reference has been moved to gfc_array_allocate.
      	* trans.h:  Add declaration for gfor_fndecl_allocate_array and
      	gfor_fndecl_allocate64_array.
      	(gfc_build_builtin_function_decls):  Add gfor_fndecl_allocate_array
      	and gfor_fndecl_allocate64_array.
      
      2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/25031
      	* runtime/memory.c:  Adjust copyright years.
      	(allocate_array):  New function.
      	(allocate64_array):  New function.
      	* libgfortran.h (error_codes):  Add ERROR_ALLOCATION.
      
      2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/25031
      	* multiple_allocation_1.f90:  New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111677 138bc75d-0d04-0410-961f-82ee72b054a4
      8a92488f
  9. 01 Mar, 2006 1 commit
    • pault's avatar
      2006-03-01 Paul Thomas <pault@gcc.gnu.org> · 0b5dc8b5
      pault authored
      	* iresolve.c (gfc_resolve_dot_product):  Remove any difference in
      	treatment of logical types.
      	* trans-intrinsic.c (gfc_conv_intrinsic_dot_product):  New function. 
      
      	PR fortran/26393
      	* trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols
      	must be referenced to include unreferenced symbols in an interface
      	body. 
      
      	PR fortran/20938
      	* trans-array.c (gfc_conv_resolve_dependencies): Add call to
      	gfc_are_equivalenced_arrays.
      	* symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New
      	functions. (gfc_free_namespace): Call them.
      	* trans-common.c (copy_equiv_list_to_ns): New function.
      	(add_equivalences): Call it.
      	* gfortran.h: Add equiv_lists to gfc_namespace and define
      	gfc_equiv_list and gfc_equiv_info.
      	* dependency.c (gfc_are_equivalenced_arrays): New function.
      	(gfc_check_dependency): Call it.
      	* dependency.h: Prototype for gfc_are_equivalenced_arrays.
      
      2006-03-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/logical_dot_product.f90: New test. 
      
      	PR fortran/26393
      	* gfortran.dg/used_interface_ref.f90: New test.
      
      	PR fortran/20938
      	* gfortran.dg/dependency_2.f90: New test.
      	* gfortran.fortran-torture/execute/where17.f90: New test.
      	* gfortran.fortran-torture/execute/where18.f90: New test.
      	* gfortran.fortran-torture/execute/where19.f90: New test.
      	* gfortran.fortran-torture/execute/where20.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111616 138bc75d-0d04-0410-961f-82ee72b054a4
      0b5dc8b5
  10. 17 Feb, 2006 1 commit
  11. 14 Feb, 2006 1 commit
    • jakub's avatar
      gcc/fortran/ · 764f1175
      jakub authored
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      	    Richard Henderson  <rth@redhat.com>
      	    Diego Novillo  <dnovillo@redhat.com>
      
      	* invoke.texi: Document -fopenmp.
      	* gfortran.texi (Extensions): Document OpenMP.
      
      	Backport from gomp-20050608-branch
      	* trans-openmp.c: Call build_omp_clause instead of
      	make_node when creating OMP_CLAUSE_* trees.
      	(gfc_trans_omp_reduction_list): Remove argument 'code'.
      	Adjust all callers.
      
      	* trans.h (build4_v): Define.
      	* trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
      	Call build3_v to create OMP_SECTIONS nodes.
      
      	PR fortran/25162
      	* openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
      	on all symbols added to the variable list.
      
      	* openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
      	procedure symbol in REDUCTION.
      
      	* trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
      	for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
      
      	* trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument.  If PBLOCK
      	is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
      	that statement block.
      	(gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
      	for non-ordered non-static combined loops.
      	(gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
      
      	* openmp.c: Include target.h and toplev.h.
      	(gfc_match_omp_threadprivate): Emit diagnostic if target does
      	not support TLS.
      	* Make-lang.in (fortran/openmp.o): Add dependencies on
      	target.h and toplev.h.
      
      	* trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
      	* trans-openmp.c (gfc_omp_privatize_by_reference): Make
      	DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
      	(gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
      	(gfc_trans_omp_variable): New function.
      	(gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
      	* trans.h (GFC_DECL_RESULT): Define.
      
      	* trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
      	* f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
      	* trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
      
      	* trans-openmp.c (gfc_omp_privatize_by_reference): Return
      	true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
      	(gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
      	functions.
      	(gfc_trans_omp_clauses): Add WHERE argument.  Call
      	gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
      	for reductions.
      	(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
      	gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
      	gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
      	gfc_trans_omp_clauses callers.
      
      	* openmp.c (omp_current_do_code): New var.
      	(gfc_resolve_omp_do_blocks): New function.
      	(gfc_resolve_omp_parallel_blocks): Call it.
      	(gfc_resolve_do_iterator): Add CODE argument.  Don't propagate
      	predetermination if argument is !$omp do or !$omp parallel do
      	iteration variable.
      	* resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
      	for EXEC_OMP_DO.  Adjust gfc_resolve_do_iterator caller.
      	* fortran.h (gfc_resolve_omp_do_blocks): New prototype.
      	(gfc_resolve_do_iterator): Add CODE argument.
      
      	* trans.h (gfc_omp_predetermined_sharing,
      	gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
      	prototypes.
      	(GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
      	* trans-openmp.c (gfc_omp_predetermined_sharing,
      	gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
      	functions.
      	* trans-common.c (build_equiv_decl, build_common_decl,
      	create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
      	* trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
      	on the decl.
      	* f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
      	LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
      	LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
      
      	* openmp.c (resolve_omp_clauses): Remove extraneous comma.
      
      	* symbol.c (check_conflict): Add conflict between cray_pointee and
      	threadprivate.
      	* openmp.c (gfc_match_omp_threadprivate): Fail if
      	gfc_add_threadprivate returned FAILURE.
      	(resolve_omp_clauses): Diagnose Cray pointees in SHARED,
      	{,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
      	{FIRST,LAST}PRIVATE and REDUCTION clauses.
      
      	* resolve.c (omp_workshare_flag): New variable.
      	(resolve_function): Diagnose use of non-ELEMENTAL user defined
      	function in WORKSHARE construct.
      	(resolve_code): Cleanup forall_save use.  Make sure omp_workshare_flag
      	is set to correct value in different contexts.
      
      	* openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
      	variable name.
      	(resolve_omp_atomic): Likewise.
      
      	PR fortran/24493
      	* scanner.c (skip_free_comments): Set at_bol at the beginning of the
      	loop, not before it.
      	(skip_fixed_comments): Handle ! comments in the middle of line here
      	as well.
      	(gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
      	not at BOL.
      	(gfc_next_char_literal): Fix expected canonicalized *$omp string.
      
      	* trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
      	initialization to build OMP_FOR instead of build.
      
      	* trans-decl.c (gfc_gimplify_function): Invoke
      	diagnose_omp_structured_block_errors.
      
      	* trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
      	(gfc_trans_omp_ordered): Use OMP_ORDERED.
      
      	* gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
      	gfc_resolve_omp_parallel_blocks): New prototypes.
      	* resolve.c (resolve_blocks): Renamed to...
      	(gfc_resolve_blocks): ... this.  Remove static.
      	(gfc_resolve_forall): Adjust caller.
      	(resolve_code): Only call gfc_resolve_blocks if code->block != 0
      	and not for EXEC_OMP_PARALLEL* directives.  Call
      	gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
      	Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
      	iterator.
      	* openmp.c: Include pointer-set.h.
      	(omp_current_ctx): New variable.
      	(gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
      	functions.
      	* Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
      
      	* openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
      	look up symbol if it exists, use its name instead and, if it is not
      	INTRINSIC, issue diagnostics.
      
      	* parse.c (parse_omp_do): Handle implied end do properly.
      	(parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
      	return it instead of continuing.
      
      	* trans-openmp.c (gfc_trans_omp_critical): Update for changed
      	operand numbering.
      	(gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
      	gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
      	gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
      
      	* trans.h (gfc_omp_privatize_by_reference): New prototype.
      	* f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
      	to gfc_omp_privatize_by_reference.
      	* trans-openmp.c (gfc_omp_privatize_by_reference): New function.
      
      	* trans-stmt.h (gfc_trans_omp_directive): Add comment.
      
      	* openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
      	Disallow COMMON matching if it is set.
      	(gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
      	(resolve_omp_clauses): Show locus in error messages.  Check that
      	variable types in reduction clauses are appropriate for reduction
      	operators.
      
      	* resolve.c (resolve_symbol): Don't error if a threadprivate module
      	variable isn't SAVEd.
      
      	* trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
      	Fix typo in condition.  Fix DOVAR initialization.
      
      	* openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
      	rather than .min. etc.
      
      	* trans-openmpc.c (omp_not_yet): Remove.
      	(gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
      	Force creation of BIND_EXPR around the workshare construct.
      	(gfc_trans_omp_parallel_sections): Likewise.
      	(gfc_trans_omp_parallel_workshare): Likewise.
      
      	* types.def (BT_I16, BT_FN_I16_VPTR_I16,
      	BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
      	(gfc_trans_omp_code): New function.
      	(gfc_trans_omp_do): Use it, remove omp_not_yet uses.
      	(gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
      	(gfc_trans_omp_sections): Likewise.  Only treat empty last section
      	specially if lastprivate clause is present.
      	* f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
      	builtin.
      
      	* trans-openmp.c (gfc_trans_omp_variable_list): Update for
      	OMP_CLAUSE_DECL name change.
      	(gfc_trans_omp_do): Likewise.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
      	clauses.
      	(gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
      	sync builtins directly.
      	(gfc_trans_omp_single): Build OMP_SINGLE statement.
      
      	* trans-openmp.c (gfc_trans_add_clause): New.
      	(gfc_trans_omp_variable_list): Take a tree code and build the clause
      	node here.  Link it to the head of a list.
      	(gfc_trans_omp_clauses): Update to match.
      	(gfc_trans_omp_do): Use gfc_trans_add_clause.
      
      	* trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
      	gfc_omp_clauses *.  Use gfc_evaluate_now instead of creating
      	temporaries by hand.
      	(gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
      	(gfc_trans_omp_do): New function.
      	(gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
      	(gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
      	Use buildN_v macros.
      	(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
      	gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
      	gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
      	(gfc_trans_omp_directive): Use them.
      	* parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
      	* openmp.c (resolve_omp_clauses): Check for list items present
      	in multiple clauses.
      	(resolve_omp_do): Check that iteration variable is not THREADPRIVATE
      	and is not present in any clause variable lists other than PRIVATE
      	or LASTPRIVATE.
      
      	* gfortran.h (symbol_attribute): Add threadprivate bit.
      	(gfc_common_head): Add threadprivate member, change use_assoc
      	and saved into char to save space.
      	(gfc_add_threadprivate): New prototype.
      	* symbol.c (check_conflict): Handle threadprivate.
      	(gfc_add_threadprivate): New function.
      	(gfc_copy_attr): Copy threadprivate.
      	* trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
      	if IF or NUM_THREADS is constant.  Create OMP_CLAUSE_SCHEDULE and
      	OMP_CLAUSE_ORDERED.
      	* resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
      	outside a module and not in COMMON has is not SAVEd.
      	(resolve_equivalence): Ensure THREADPRIVATE objects don't get
      	EQUIVALENCEd.
      	* trans-common.c: Include target.h and rtl.h.
      	(build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
      	* trans-decl.c: Include rtl.h.
      	(gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
      	* dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
      	* Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
      	(fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
      	* openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
      	is from current namespace.
      	(gfc_match_omp_threadprivate): Rewrite.
      	(resolve_omp_clauses): Check some clause restrictions.
      	* module.c (ab_attribute): Add AB_THREADPRIVATE.
      	(attr_bits): Add THREADPRIVATE.
      	(mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
      	(load_commons, write_common, write_blank_common): Adjust for type
      	change of saved, store/load threadprivate bit from the integer
      	as well.
      
      	* types.def (BT_FN_UINT_UINT): New.
      	(BT_FN_VOID_UINT_UINT): Remove.
      
      	* trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
      	gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
      	gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
      	(gfc_trans_omp_directive): Use them.
      
      	* openmp.c (expr_references_sym): Add SE argument, don't look
      	into SE tree.
      	(is_conversion): New function.
      	(resolve_omp_atomic): Adjust expr_references_sym callers.  Handle
      	promoted expressions.
      	* trans-openmp.c (gfc_trans_omp_atomic): New function.
      	(gfc_trans_omp_directive): Call it.
      
      	* f95-lang.c (builtin_type_for_size): New function.
      	(gfc_init_builtin_functions): Initialize synchronization and
      	OpenMP builtins.
      	* types.def: New file.
      	* Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
      	fortran/types.def.
      
      	* trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
      
      	* dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
      	is NULL.
      
      	* dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
      	functions.
      	(gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
      
      	* parse.c (parse_omp_do): Call pop_state before next_statement.
      	* openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
      	New functions.
      	(gfc_resolve_omp_directive): Call them.
      	* match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
      	leaves an OpenMP structured block or if EXIT terminates !$omp do
      	loop.
      
      	* Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
      	(F95_OBJS): Add fortran/trans-openmp.o.
      	(fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
      	* lang.opt: Add -fopenmp option.
      	* options.c (gfc_init_options): Initialize it.
      	(gfc_handle_option): Handle it.
      	* gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
      	ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
      	ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
      	ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
      	ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
      	ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
      	ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
      	ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
      	ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
      	statement codes.
      	(OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
      	OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
      	OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
      	OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
      	OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
      	OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
      	New OpenMP variable list types.
      	(gfc_omp_clauses): New typedef.
      	(gfc_get_omp_clauses): Define.
      	(EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
      	EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
      	EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
      	EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
      	EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
      	EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
      	(struct gfc_code): Add omp_clauses, omp_name, omp_namelist
      	and omp_bool fields to ext union.
      	(flag_openmp): Declare.
      	(gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
      	* scanner.c (openmp_flag, openmp_locus): New variables.
      	(skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
      	Handle OpenMP directive lines and conditional compilation magic
      	comments.
      	* parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
      	* parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
      	parse_omp_structured_block): New functions.
      	(next_free, next_fixed): Parse OpenMP directives.
      	(case_executable, case_exec_markers, case_decl): Add ST_OMP_*
      	codes.
      	(gfc_ascii_statement): Handle ST_OMP_* codes.
      	(parse_executable): Rearrange the loop slightly, so that
      	parse_omp_do can return next_statement.
      	* match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
      	gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
      	gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
      	gfc_match_omp_parallel, gfc_match_omp_parallel_do,
      	gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
      	gfc_match_omp_sections, gfc_match_omp_single,
      	gfc_match_omp_threadprivate, gfc_match_omp_workshare,
      	gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
      	* resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
      	(resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
      	directives.
      	* trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
      	EXEC_OMP_* directives.
      	* st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
      	* trans-stmt.h (gfc_trans_omp_directive): New prototype.
      	* openmp.c: New file.
      	* trans-openmp.c: New file.
      
      gcc/testsuite/
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      	    Diego Novillo  <dnovillo@redhat.com>
      	    Uros Bizjak  <uros@kss-loka.si>
      
      	* gfortran.dg/gomp: New directory.
      
      libgomp/
      2006-02-14  Jakub Jelinek  <jakub@redhat.com>
      
      	* testsuite/libgomp.fortran/vla7.f90: Add -w to options.
      	Remove tests for returning assumed character length arrays.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110984 138bc75d-0d04-0410-961f-82ee72b054a4
      764f1175
  12. 13 Feb, 2006 1 commit
  13. 08 Feb, 2006 1 commit
    • fxcoudert's avatar
      PR libfortran/25425 · 7833ddd7
      fxcoudert authored
      	* trans-decl.c (gfc_generate_function_code): Add new argument,
      	pedantic, to set_std call.
      
      	* libgfortran.h: Add pedantic field to compile_options struct.
      	* io/write.c (calculate_G_format): Depending on the standard,
      	choose E or F format for list-directed output of 0.0.
      	* runtime/error.c (notify_std): Make warning and error dependent
      	on pedanticity.
      	* runtime/compile_options.c (set_std): Use new pedantic argument.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110769 138bc75d-0d04-0410-961f-82ee72b054a4
      7833ddd7
  14. 06 Feb, 2006 2 commits
    • tkoenig's avatar
      2005-02-06 Thomas Koenig <Thomas.Koenig@online.de> · 15774a8b
      tkoenig authored
      	PR libfortran/23815
      	* gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
      	variable.
      	* invoke.texi:  Mention the "Runtime" chapter.
      	Document the -fconvert= option.
      	* gfortran.h:  Add options_convert.
      	* lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
      	fconvert=native and fconvert=swap.
      	* trans-decl.c (top level):  Add gfor_fndecl_set_convert.
      	(gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
      	(gfc_generate_function_code):  If -fconvert was specified,
      	and this is the main program, add a call to set_convert().
      	* options.c:  Handle the -fconvert options.
      
      2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/23815
      	* runtime/environ.c (init_unformatted):  Add GFORTRAN_CONVERT_UNIT
      	environment variable.
      	(top level):  Add defines, type and static variables for
      	GFORTRAN_CONVERT_UNIT handling.
      	(search_unit):  New function.
      	(match_word): New function.
      	(match_integer): New function.
      	(next_token): New function.
      	(push_token): New function.
      	(mark_single): New function.
      	(mark_range): New funciton.
      	(do_parse): New function.
      	(init_unformatted): New function.
      	(get_unformatted_convert): New function.
      	* runtime/compile_options.c:  Add set_convert().
      	* libgfortran.h:  Add convert to compile_options_t.
      	* io/open.c (st_open): Call get_unformatted_convert to get
      	unit default; if CONVERT_NONE is returned, check for
      	the presence of a CONVERT specifier and use it.
      	As default, use compile_options.convert.
      	* io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
      	"nothing has been set".
      	(top level): Add prototype for get_unformatted_convert.
      
      2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/23815
      	* unf_io_convert_4.f90:  New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110664 138bc75d-0d04-0410-961f-82ee72b054a4
      15774a8b
    • jakub's avatar
      Backport from gomp-20050608-branch · d4163395
      jakub authored
      	* trans-decl.c (create_function_arglist): Handle dummy functions.
      
      	* trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of
      	TYPE_SIZE_UNIT.
      	(gfc_trans_vla_type_sizes): Also "gimplify"
      	GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types.
      	* trans-array.c (gfc_trans_deferred_array): Call
      	gfc_trans_vla_type_sizes.
      
      	* trans-decl.c (saved_function_decls, saved_parent_function_decls):
      	Remove unnecessary initialization.
      	(create_function_arglist): Make sure __result has complete type.
      	(gfc_get_fake_result_decl): Change current_fake_result_decl into
      	a tree chain.  For entry master, create a separate variable
      	for each result name.  For BT_CHARACTER results, call
      	gfc_finish_var_decl on length even if it has been already created,
      	but not pushdecl'ed.
      	(gfc_trans_vla_type_sizes): For function/entry result, adjust
      	result value type, not the FUNCTION_TYPE.
      	(gfc_generate_function_code): Adjust for current_fake_result_decl
      	changes.
      	(gfc_trans_deferred_vars): Likewise.  Call gfc_trans_vla_type_sizes
      	even on result if it is assumed-length character.
      
      	* trans-decl.c (gfc_trans_dummy_character): Add SYM argument.
      	Call gfc_trans_vla_type_sizes.
      	(gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes.
      	(gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1,
      	gfc_trans_vla_type_sizes): New functions.
      	(gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character
      	callers.  Call gfc_trans_vla_type_sizes on assumed-length
      	character parameters.
      	* trans-array.c (gfc_trans_array_bounds,
      	gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call
      	gfc_trans_vla_type_sizes.
      	* trans.h (gfc_trans_vla_type_sizes): New prototype.
      
      	* trans-decl.c (gfc_build_qualified_array): For non-assumed-size
      	arrays without constant size, create also an index var for
      	GFC_TYPE_ARRAY_SIZE (type).  If the type is incomplete, complete
      	it as 0..size-1.
      	(gfc_create_string_length): Don't call gfc_defer_symbol_init
      	if just creating DECL_ARGUMENTS.
      	(gfc_get_symbol_decl): Call gfc_finish_var_decl and
      	gfc_defer_symbol_init even if ts.cl->backend_decl is already
      	set to a VAR_DECL that doesn't have DECL_CONTEXT yet.
      	(create_function_arglist): Rework, so that hidden length
      	arguments for CHARACTER parameters are created together with
      	the parameters.  Resolve ts.cl->backend_decl for CHARACTER
      	parameters.  If the argument is a non-constant length array
      	or CHARACTER, ensure PARM_DECL has different type than
      	its DECL_ARG_TYPE.
      	(generate_local_decl): Call gfc_get_symbol_decl even
      	for non-referenced non-constant length CHARACTER parameters
      	after optionally issuing warnings.
      	* trans-array.c (gfc_trans_array_bounds): Set last stride
      	to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well.
      	(gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type)
      	variable as well.
      
      	* trans-expr.c (gfc_conv_expr_val): Fix comment typo.
      
      	* trans-stmt.c (gfc_trans_simple_do): Fix comment.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110653 138bc75d-0d04-0410-961f-82ee72b054a4
      d4163395
  15. 19 Jan, 2006 1 commit
  16. 09 Jan, 2006 1 commit
  17. 30 Dec, 2005 1 commit
    • eedelman's avatar
      fortran/ · 4d4b9f0e
      eedelman authored
      2005-12-30  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * trans-decl.c(gfc_get_extern_function_decl): Don't set
              DECL_IS_PURE (fndecl) = 1 for return-by-reference
              functions.
      
              fortran/PR 25396
              * interface.c (gfc_extend_expr): Initialize
              e->value.function.name to NULL.
      
      
      
      testsuite/
      2005-12-30  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * gfortran-dg/pure_byref_3.f90: New.
      
              fortran/PR 25396
              * gfortran.dg/userdef_operator_1.f90: New.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109171 138bc75d-0d04-0410-961f-82ee72b054a4
      4d4b9f0e
  18. 16 Dec, 2005 2 commits
    • rguenth's avatar
      2005-12-16 Richard Guenther <rguenther@suse.de> · ac47d547
      rguenth authored
      	* trans.h (tree): Remove declaration of gfc_build_function_call.
      	* trans.c (gfc_build_function_call): Remove.
      	(gfc_build_array_ref): Use build_function_call_expr.
      	(gfc_trans_runtime_check): Likewise.
      	* trans-array.c (gfc_trans_allocate_array_storage): Likewise.
      	(gfc_grow_array): Likewise.
      	(gfc_trans_array_ctor_element): Likewise.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_array_allocate): Likewise.
      	(gfc_array_deallocate): Likewise.
      	(gfc_trans_auto_array_allocation): Likewise.
      	(gfc_trans_dummy_array_bias): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	* trans-expr.c (gfc_conv_power_op): Likewise.
      	(gfc_conv_string_tmp): Likewise.
      	(gfc_conv_concat_op): Likewise.
      	(gfc_conv_expr_op): Likewise.
      	(gfc_trans_string_copy): Likewise.
      	* trans-decl.c (build_entry_thunks): Likewise.
      	(gfc_generate_function_code): Likewise.
      	(gfc_generate_constructors): Likewise.
      	* trans-io.c (gfc_trans_open): Likewise.
      	(gfc_trans_close): Likewise.
      	(build_filepos): Likewise.
      	(gfc_trans_inquire): Likewise.
      	(transfer_namelist_element): Likewise.
      	(build_dt): Likewise.
      	(gfc_trans_dt_end): Likewise.
      	(transfer_expr): Likewise.
      	(transfer_array_desc): Likewise.
      	* trans-stmt.c (gfc_trans_pause): Likewise.
      	(gfc_trans_stop): Likewise.
      	(gfc_trans_character_select): Likewise.
      	(gfc_do_allocate): Likewise.
      	(gfc_trans_assign_need_temp): Likewise.
      	(gfc_trans_pointer_assign_need_temp): Likewise.
      	(gfc_trans_forall_1): Likewise.
      	(gfc_trans_where): Likewise.
      	(gfc_trans_allocate): Likewise.
      	(gfc_trans_deallocate): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_aint): Likewise.
      	(gfc_conv_intrinsic_lib_function): Likewise.
      	(gfc_conv_intrinsic_exponent): Likewise.
      	(gfc_conv_intrinsic_abs): Likewise.
      	(gfc_conv_intrinsic_sign): Likewise.
      	(gfc_conv_intrinsic_ctime): Likewise.
      	(gfc_conv_intrinsic_fdate): Likewise.
      	(gfc_conv_intrinsic_ttynam): Likewise.
      	(gfc_conv_intrinsic_ishftc): Likewise.
      	(gfc_conv_intrinsic_len_trim): Likewise.
      	(gfc_conv_intrinsic_index): Likewise.
      	(gfc_conv_intrinsic_size): Likewise.
      	(gfc_conv_intrinsic_strcmp): Likewise.
      	(gfc_conv_intrinsic_adjust): Likewise.
      	(gfc_conv_associated): Likewise.
      	(gfc_conv_intrinsic_scan): Likewise.
      	(gfc_conv_intrinsic_verify): Likewise.
      	(call_builtin_clz): Likewise.
      	(gfc_conv_intrinsic_si_kind): Likewise.
      	(gfc_conv_intrinsic_sr_kind): Likewise.
      	(gfc_conv_intrinsic_trim): Likewise.
      	(gfc_conv_intrinsic_repeat): Likewise.
      	(gfc_conv_intrinsic_iargc): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108687 138bc75d-0d04-0410-961f-82ee72b054a4
      ac47d547
    • rguenth's avatar
      2005-12-16 Richard Guenther <rguenther@suse.de> · 4fa2c167
      rguenth authored
      	* trans.h (gfc_build_indirect_ref): Remove declaration.
      	* trans.c (gfc_build_indirect_ref): Remove.
      	* trans-array.c (gfc_trans_array_ctor_element): Use
      	build_fold_indirect_ref instead of gfc_build_indirect_ref.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_conv_array_index_offset): Likewise.
      	(gfc_conv_scalarized_array_ref): Likewise.
      	(gfc_conv_array_ref): Likewise.
      	(gfc_trans_dummy_array_bias): Likewise.
      	(gfc_conv_expr_descriptor): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	* trans-decl.c (gfc_finish_cray_pointee): Likewise.
      	(gfc_get_symbol_decl): Likewise.
      	* trans-expr.c (gfc_conv_substring): Likewise.
      	(gfc_conv_component_ref): Likewise.
      	(gfc_conv_variable): Likewise.
      	(gfc_add_interface_mapping): Likewise.
      	(gfc_conv_function_call): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_ichar): Likewise.
      	(gfc_conv_intrinsic_transfer): Likewise.
      	* trans-io.c (nml_get_addr_expr): Likewise.
      	(transfer_namelist_element): Likewise.
      	(transfer_expr): Likewise.
      	* trans-stmt.c (gfc_trans_nested_forall_loop): Likewise.
      	(allocate_temp_for_forall_nest_1): Likewise.
      	(gfc_trans_forall_1): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108678 138bc75d-0d04-0410-961f-82ee72b054a4
      4fa2c167
  19. 01 Dec, 2005 1 commit
    • pault's avatar
      2005-12-01 Paul Thomas <pault@gcc.gnu.org> · e8ff3944
      pault authored
      	PR fortran/24789
      	* trans-decl.c (gfc_get_symbol_decl):  Move the expression for
      	unit size of automatic character length, dummy pointer array
      	elements down a few lines from the version that fixed PR15809.
      
      2005-12-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/24789
      	*  gfortran.dg/auto_char_dummy_array_2.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107805 138bc75d-0d04-0410-961f-82ee72b054a4
      e8ff3944
  20. 30 Nov, 2005 1 commit
    • pault's avatar
      2005-11-30 Paul Thomas <pault@gcc.gnu.org> · 0b044e59
      pault authored
      	PR fortran/15809
      	* trans-decl.c (gfc_get_symbol_decl):  In the case of automatic
      	character length, dummy pointer arrays, build an expression for
      	unit size of the array elements, to be picked up and used in the
      	descriptor dtype.
      	* trans-io.c (gfc_trans_transfer):  Modify the detection of
      	components of derived type arrays to use the gfc_expr references
      	instead of the array descriptor dtype.  This allows the latter
      	to contain expressions.
      
      2005-11-30  Erik Edelmann  <erik.edelmann@iki.fi>
      
      	PR fortran/15809
      	* trans-array.c (gfc_trans_deferred_array):  Allow PARM_DECLs past
      	in addition to VAR_DECLs.
      
      2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/15809
      	*  gfortran.dg/auto_char_dummy_array.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107727 138bc75d-0d04-0410-961f-82ee72b054a4
      0b044e59
  21. 21 Nov, 2005 1 commit
    • pault's avatar
      2005-11-21 Paul Thomas <pault@gcc.gnu.org> · 976d903a
      pault authored
      	PR fortran/24223
      	* resolve.c (resolve_contained_fntype) Error if an internal
      	function is assumed character length.
      
      	PR fortran/24705
      	* trans-decl.c (gfc_create_module_variable) Skip ICE in
      	when backend decl has been built and the symbol is marked
      	as being in an equivalence statement.
      
      2005-11-21  Paul Thomas  <pault@gcc.gnu.org
      
      	PR fortran/24223
      	* gfortran.dg/substring_equivalence.f90: New test.
      
      	PR fortran/24705
      	* gfortran.dg/auto_internal_assumed.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107310 138bc75d-0d04-0410-961f-82ee72b054a4
      976d903a
  22. 09 Nov, 2005 1 commit
    • eedelman's avatar
      fortran/ · 4c319962
      eedelman authored
      2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * trans-decl.c(build_function_decl): Don't set
              DECL_IS_PURE (fndecl) = 1 for return-by-reference
              functions.
      
      testsuite/
      2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * gfortran-dg/pure_byref_1.f90: New.
              * gfortran-dg/pure_byref_2.f90: New.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106683 138bc75d-0d04-0410-961f-82ee72b054a4
      4c319962
  23. 06 Nov, 2005 1 commit
    • fxcoudert's avatar
      * intrinsic.c (add_functions): Add ctime and fdate intrinsics. · b902b078
      fxcoudert authored
      	(add_subroutines): Likewise.
      	* intrinsic.h: Prototypes for gfc_check_ctime,
      	gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime,
      	gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub.
      	* gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE.
      	* iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate,
      	gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions.
      	* trans-decl.c (gfc_build_intrinsic_function_decls): Add
      	gfor_fndecl_fdate and gfor_fndecl_ctime.
      	* check.c (gfc_check_ctime, gfc_check_ctime_sub,
      	gfc_check_fdate_sub): New functions.
      	* trans-intrinsic.c (gfc_conv_intrinsic_ctime,
      	gfc_conv_intrinsic_fdate): New functions.
      	(gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME
      	and GFC_ISYM_FDATE.
      	* intrinsic.texi: Documentation for the new CTIME and FDATE
      	intrinsics.
      	* trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate.
      
      	* intrinsics/ctime.c: New file.
      	* configure.ac: Add check for ctime.
      	* M...
      b902b078
  24. 05 Nov, 2005 2 commits
  25. 30 Oct, 2005 1 commit
    • eedelman's avatar
      fortran/ · 7af6a4af
      eedelman authored
      2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/18883
              * trans-decl.c (gfc_finish_var_decl): Add decl to the
              current function, rather than the parent.  Make
              assertion accept fake result variables.
              * trans-expr.c (gfc_conv_variable): If the character
              length of an ENTRY isn't set, get the length from
              the master function instead.
      
      testsuite
      2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/18883
              * gfortran.dg/char_result_9.f90: New.
              * gfortran.dg/char_result_10.f90: New.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106254 138bc75d-0d04-0410-961f-82ee72b054a4
      7af6a4af
  26. 25 Oct, 2005 2 commits
    • jakub's avatar
      * trans.h (gfc_conv_cray_pointee): Remove. · b7bf3f81
      jakub authored
      	* trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change.
      	* trans-array.c (gfc_conv_array_parameter): Likewise.
      	* trans-decl.c (gfc_conv_cray_pointee): Remove.
      	(gfc_finish_cray_pointee): New function.
      	(gfc_finish_var_decl): Use it.  Don't return early for Cray
      	pointees.
      	(gfc_create_module_variable): Revert 2005-10-24 change.
      	* decl.c (cray_pointer_decl): Update comment.
      	* gfortran.texi: Don't mention Cray pointees aren't visible in the
      	debugger.
      
      	* symbol.c (check_conflict): Add conflict between cray_pointee
      	and in_common resp. in_equivalence.
      	* resolve.c (resolve_equivalence): Revert 2005-10-24 change.
      testsuite/
      	* gfortran.dg/cray_pointers_4.f90: New test.
      
      	* module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE.
      	(attr_bits): Likewise.
      	(mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes.
      	(mio_symbol): For cray_pointee write/read cp_pointer reference.
      testsuite/
      	* gfortran.dg/cray_pointers_5.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105891 138bc75d-0d04-0410-961f-82ee72b054a4
      b7bf3f81
    • fengwang's avatar
      · c8f1568f
      fengwang authored
      2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>
      
      	PR fortran/22290
      	* trans-decl.c (gfc_add_assign_aux_vars): New function. Add two
      	auxiliary variables.
      	(gfc_get_symbol_decl): Use it when a variable, including dummy
      	argument, is assigned a label.
      	(gfc_trans_assign_aux_var): New function. Set initial value of
      	the auxiliary variable explicitly.
      	(gfc_trans_deferred_vars): Use it.
      	* trans-stmt.c (gfc_conv_label_variable): Handle dummy argument.
      
      2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>
      
      	PR fortran/22290
      	* gfortran.dg/assign_5.f90: New test.
      	* gfortran.dg/assign_6.f: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105887 138bc75d-0d04-0410-961f-82ee72b054a4
      c8f1568f
  27. 24 Oct, 2005 1 commit
    • steven's avatar
      Commit for Asher Langton · b549d2a5
      steven authored
      	PR fortran/17031
      	PR fortran/22282
      
      fortran/
      	* check.c (gfc_check_loc) : New function
      	* decl.c (variable_decl): New variables cp_as and sym. Added a
      	check for variables that have already been declared as Cray
      	Pointers, so we can get the necessary attributes without adding
      	a new symbol.
      	(attr_decl1): Added code to catch pointee symbols and "fix"
      	their array specs.
      	(cray_pointer_decl): New method.
      	(gfc_match_pointer): Added Cray pointer parsing code.
      	(gfc_mod_pointee_as): New method.
      	* expr.c (gfc_check_assign): added a check to catch vector-type
      	assignments to pointees with an unspecified final dimension.
      	* gfortran.h: (GFC_ISYM_LOC): New.
      	(symbol_attribute): Added cray_pointer and cray_pointee bits.
      	(gfc_array_spec): Added cray_pointee and cp_was_assumed bools.
      	(gfc_symbol): Added gfc_symbol *cp_pointer.
      	(gfc_option): Added flag_cray_pointer.
      	(gfc_add_cray_pointee): Declare.
      	(gfc_add_cray_pointer ): Declare.
      	(gfc_mod_pointee_as): Declare.
      	* intrinsic.c (add_functions): Add code for loc() intrinsic.
      	* intrinsic.h (gfc_check_loc): Declare.
      	(gfc_resolve_loc): Declare.
      	* iresolve.c (gfc_resolve_loc): New.
      	* lang.opt: Added fcray-pointer flag.
      	* options.c (gfc_init_options): Intialized
      	gfc_match_option.flag_cray_pointer.
      	(gfc_handle_option): Deal with -fcray-pointer.
      	* parse.c:(resolve_equivalence): Added code prohibiting Cray
      	pointees in equivalence statements.
      	* resolve.c (resolve_array_ref): Added code to prevent bounds
      	checking for Cray Pointee arrays.
      	(resolve_equivalence): Prohibited pointees in equivalence
      	statements.
      	* symbol.c (check_conflict): Added Cray pointer/pointee
      	attribute checking.
      	(gfc_add_cray_pointer): New
      	(gfc_add_cray_pointee): New
      	(gfc_copy_attr): New code for Cray pointers and pointees
      	* trans-array.c (gfc_trans_auto_array_allocation): Added code to
      	prevent space from being allocated for pointees.
      	(gfc_conv_array_parameter): Added code to catch pointees and
      	correctly set their base address.
      	* trans-decl.c (gfc_finish_var_decl): Added code to prevent
      	pointee declarations from making it to the back end.
      	(gfc_create_module_variable): Same.
      	* trans-expr.c (gfc_conv_variable): added code to detect and
      	translate pointees.
      	(gfc_conv_cray_pointee): New.
      	* trans-intrinsic.c (gfc_conv_intrinsic_loc): New.
      	(gfc_conv_intrinsic_function): added entry point for loc
      	translation.
      	* trans.h (gfc_conv_cray_pointee): Declare.
      
      	* gfortran.texi: Added section on Cray pointers, removed Cray
      	pointers from list of proposed extensions
      	* intrinsic.texi: Added documentation for loc intrinsic.
      	* invoke.texi: Documented -fcray-pointer flag
      
      testsuite/
      	PR fortran/17031
      	PR fortran/22282
      	* gfortran.dg/cray_pointers_1.f90: New test.
      	* gfortran.dg/cray_pointers_2.f90: New test.
      	* gfortran.dg/cray_pointers_3.f90: New test.
      	* gfortran.dg/loc_1.f90: New test.
      	* gfortran.dg/loc_2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105859 138bc75d-0d04-0410-961f-82ee72b054a4
      b549d2a5
  28. 12 Oct, 2005 1 commit
    • fxcoudert's avatar
      * gfortran.h: Add bitmasks for different FPE traps. Add fpe · 8c84a5de
      fxcoudert authored
      	member to options_t.
      	* invoke.texi: Document the new -ffpe-trap option.
      	* lang.opt: Add -ffpe-trap option.
      	* options.c (gfc_init_options): Initialize the FPE option.
      	(gfc_handle_fpe_trap_option): New function to parse the argument
      	of the -ffpe-trap option.
      	(gfc_handle_option): Add case for -ffpe-trap.
      	* trans-decl.c: Declare a tree for the set_fpe library function.
      	(gfc_build_builtin_function_decls): Build this tree.
      	(gfc_generate_function_code): Generate a call to set_fpe at
      	the beginning of the main program.
      	* trans.h: New tree for the set_fpe library function.
      
      	* Makefile.am: Add fpu.c to the build process, and
      	target-dependent code as fpu-target.h.
      	* Makefile.in: Regenerate.
      	* configure.ac: Add call to configure.host to set
      	FPU_HOST_HEADER.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure.host: New script to determine which host-dependent
      	code should go in.
      	* libgfortran.h: Add fpe option, remove previous fpu_ options.
      	Add bitmasks for different FPE traps. Add prototype for set_fpu.
      	* runtime/environ.c: Remove environment variables to control
      	fpu behaviour.
      	* runtime/fpu.c (set_fpe): New function for the front-end.
      	* runtime/main.c (init): Set FPU state.
      	* config: New directory to store host-dependent code.
      	* config/fpu-387.h: New file with code handling the i387 FPU.
      	* config/fpu-glibc.h: New file with code for glibc systems.
      	* config/fpu-generic.h: Fallback for the most generic host. Issue
      	warnings.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105328 138bc75d-0d04-0410-961f-82ee72b054a4
      8c84a5de
  29. 03 Oct, 2005 1 commit
    • fxcoudert's avatar
      PR libfortran/19308 · 920e54ef
      fxcoudert authored
      	PR fortran/20120
      	PR libfortran/22437
      
      	* Makefile.am: Add generated files for large real and integers
      	kinds. Add a rule to create the kinds.inc c99_protos.inc files.
      	Use kinds.inc to preprocess Fortran generated files.
      	* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
      	GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
      	gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
      	gfc_array_l16.
      	* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
      	HAVE_GFC_COMPLEX_* when these types are available.
      	* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
      	* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
      	m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
      	m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
      	m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
      	m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
      	m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
      	m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
      	m4/sum.m4, m4/transpose.m4: Protect generated functions with
      	appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
      	* Makefile.in: Regenerate.
      	* all files in generated/: Regenerate.
      
      	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
      	double builtin function.
      	(gfc_init_builtin_functions): Add mfunc_longdouble,
      	mfunc_clongdouble and func_clongdouble_longdouble trees. Build
      	them for round, trunc, cabs, copysign and pow functions.
      	* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
      	case for kind 10 and 16.
      	* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
      	exponent10 and exponent16.
      	(gfc_build_intrinsic_function_decls): Build nodes for int16,
      	real10, real16, complex10 and complex16 types. Build all possible
      	combinations for function _gfortran_pow_?n_?n. Build function
      	calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
      	* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
      	real(10) and real(16).
      	* trans-intrinsic.c: Add suppport for long double builtin
      	functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
      	macros.
      	(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
      	real(16) kinds.
      	(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
      	and real16_decl in library functions.
      	(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
      	kinds 10 and 16.
      	(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
      	kinds.
      	(gfc_conv_intrinsic_sign): Likewise.
      	(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
      	* trans-types.c (gfc_get_int_type, gfc_get_real_type,
      	gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
      	the case of kinds not available.
      	* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
      	exponent10 and exponent16.
      
      	* gfortran.dg/large_real_kind_2.F90: New test.
      	* gfortran.dg/large_integer_kind_2.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104889 138bc75d-0d04-0410-961f-82ee72b054a4
      920e54ef
  30. 09 Sep, 2005 2 commits
    • rsandifo's avatar
      PR fortran/12840 · 9e1839e2
      rsandifo authored
      	* trans.h (gfor_fndecl_internal_realloc): Declare.
      	(gfor_fndecl_internal_realloc64): Declare.
      	* trans-decl.c (gfor_fndecl_internal_realloc): New variable.
      	(gfor_fndecl_internal_realloc64): New variable.
      	(gfc_build_builtin_function_decls): Initialize them.
      	* trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
      	* trans-array.c (gfc_trans_allocate_array_storage): Add an argument
      	to say whether the array can grow later.  Don't allocate the array
      	on the stack if so.  Don't call malloc for zero-sized arrays.
      	(gfc_trans_allocate_temp_array): Add a similar argument here.
      	Pass it along to gfc_trans_allocate_array_storage.
      	(gfc_get_iteration_count, gfc_grow_array): New functions.
      	(gfc_iterator_has_dynamic_bounds): New function.
      	(gfc_get_array_constructor_element_size): New function.
      	(gfc_get_array_constructor_size): New function.
      	(gfc_trans_array_ctor_element): Replace pointer argument with
      	a descriptor tree.
      	(gfc_trans_array_constructor_subarray): Likewise.  Take an extra
      	argument to say whether the variable-sized part of the constructor
      	must be allocated using realloc.  Grow the array when this
      	argument is true.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_get_array_cons_size): Delete.
      	(gfc_trans_array_constructor): If the loop bound has not been set,
      	split the allocation into a static part and a dynamic part.  Set
      	loop->to to the bounds for static part before allocating the
      	temporary.  Adjust call to gfc_trans_array_constructor_value.
      	(gfc_conv_loop_setup): Allow any constructor to determine the
      	loop bounds.  Check whether the constructor has a dynamic size
      	and prefer to use something else if so.  Expect the loop bound
      	to be set later.  Adjust call to gfc_trans_allocate_temp_array.
      	* trans-expr.c (gfc_conv_function_call): Adjust another call here.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104073 138bc75d-0d04-0410-961f-82ee72b054a4
      9e1839e2
    • pault's avatar
      2005-09-09 Paul Thomas <pault@gcc.gnu.org> · 2b685f8e
      pault authored
      	PR fortran/18878
      	* module.c (find_use_name_n): Based on original
      	find_use_name. Either counts number of use names for a
      	given real name or returns use name n.
      	(find_use_name, number_use_names): Interfaces to the
      	function find_use_name_n.
      	(read_module): Add the logic and calls to these functions,
      	so that mutiple reuses of the same real name are loaded.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/22304
      	PR fortran/23270
      	PR fortran/18870
      	PR fortran/16511
      	PR fortran/17917
      	* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
      	common.c so that it is accessible to module.c. Add common_head
      	field to gfc_symbol structure. Add field for the equivalence
      	name AND new attr field, in_equivalence.
      	* match.c (gfc_match_common, gfc_match_equivalence): In loops
      	that flag common block equivalences, emit an error if the
      	common blocks are different, using sym->common_head as the
      	common block identifier. Ensure that symbols that are equivalence
      	associated with a common block are marked as being in_common.
      	* module.c (write_blank_common): New.
      	(write_common): Use unmangled common block name.
      	(load_equiv): New function ported from g95.
      	(read_module): Call load_equiv.
      	(write_equiv): New function ported from g95. Correct
      	string referencing for gfc functions. Give module
      	equivalences a unique name.
      	(write_module): Call write_equiv and write_blank_common.
      	* primary.c (match_variable) Old gfc_match_variable, made
      	static and third argument provided to indicate if parent
      	namespace to be visited or not.
      	(gfc_match_variable) New. Interface to match_variable.
      	(gfc_match_equiv_variable) New. Interface to match_variable.
      	* trans-common.c (finish_equivalences): Provide the call
      	to create_common with a gfc_common_header so that
      	module equivalences are made external, rather than local.
      	(find_equivalences): Ensure that all members in common block
      	equivalences are marked as used. This prevents the subsequent
      	call to this function from making local unions.
      	* trans-decl.c (gfc_generate_function_code): Move the call to
      	gfc_generate_contained_functions to after the call to
      	gfc_trans_common so the use-associated, contained common
      	blocks produce the correct references.
      	(gfc_create_module_variable): Return for equivalenced symbols
      	with existing backend declaration.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/18878
      	* gfortran.dg/module_double_reuse.f90: New.
      
      2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/23270
      	PR fortran/22304
      	PR fortran/18870
      	PR fortran/17917
      	PR fortran/16511
      	* gfortran.dg/common_equivalence_1.f: New.
      	* gfortran.dg/common_equivalence_2.f: New.
      	* gfortran.dg/common_equivalence_3.f: New.
      	* gfortran.dg/contained_equivalence_1.f90: New.
      	* gfortran.dg/module_blank_common.f90: New.
      	* gfortran.dg/module_commons_1.f90: New.
      	* gfortran.dg/module_equivalence_1.f90: New.
      	* gfortran.dg/nested_modules_1.f90: New.
      	* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
      	equivalences and add comment to connect the test with
      	the PR.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104060 138bc75d-0d04-0410-961f-82ee72b054a4
      2b685f8e
  31. 24 Aug, 2005 1 commit
    • tkoenig's avatar
      2005-08-24 Thomas Koenig <Thomas.Koenig@online.de> · 6e27d773
      tkoenig authored
      	PR fortran/17758
      	* gfortran.h (symbol_attribute):  Add noreturn to the structure.
      	(gfc_intrinsic_sym):  Add noreturn to the structure.
      	* intrinsic.c (make_noreturn):  New function.
      	(add_subroutines):  Mark subroutines abort and exit as noreturn.
      	(gfc_intrinsic_sub_interface):  Copy noreturn attribute from
      	isym to the resolved symbol.
      	* trans-decl.c (gfc_get_extern_function_decl): Set function
      	as VOLATILE (== noreturn) if the noreturn attribute is set.
      
      2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR fortran/17758
      	gfortran.dg/nonreturning_statements.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103449 138bc75d-0d04-0410-961f-82ee72b054a4
      6e27d773
  32. 11 Aug, 2005 1 commit
    • fxcoudert's avatar
      PR libfortran/20006 · 64fc3c4c
      fxcoudert authored
      	* gfortran.h: Add is_main_program member to symbol_attribute.
      	* trans-decl: Add a gfor_fndecl_set_std tree.
      	(gfc_build_builtin_function_decls): Create it.
      	(gfc_generate_function_code): Add this call at the beginning of
      	the main program.
      	* trans.c (gfc_generate_code): Move main_program and attr.
      	* trans.h: Add declaration for gfor_fndecl_set_std.
      
      	* Makefile.am: Add file runtime/compile_options.c.
      	* Makefile.in: Regenerate.
      	* libgfortran.h: Create structure compile_options_t. Define the
      	compile_options variable and GFC_STD_ macros.
      	* runtime/compile_options.c: New file.
      	* runtime/error.c (notify_std): New function.
      	* runtime/main.c (init): Call init_compile_options during
      	initialization.
      	* io/format.c: Use the new notify_std function for the $
      	descriptor extension.
      
      	* gfortran.dg/runtime_warning_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102990 138bc75d-0d04-0410-961f-82ee72b054a4
      64fc3c4c
  33. 05 Aug, 2005 1 commit
  34. 31 Jul, 2005 1 commit
  35. 08 Jul, 2005 1 commit
    • dberlin's avatar
      2005-07-08 Daniel Berlin <dberlin@dberlin.org> · 5ded8c6f
      dberlin authored
      	* Makefile.in (TREE_H): Add treestruct.def.
      	(c-decl.o): Add pointer-set.h
      	* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
      	visibility on regular DECL's.
      	(merge_decls): Fix the copying of decl nodes of various types for
      	the new structures.  Don't update RTL, section name, weak status,
      	etc, on DECL's without RTL.
      	(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
      	Don't check volatile on non-variable types.
      	(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
      	to check whether we have seen arguments.
      	* c-objc-common.c (c_tree_printer): Reverse order of tests so that
      	flag is checked before field (flag is common, field is not).
      	* dwarf2out.c (decl_ultimate_origin):  Only DECL's with
      	TS_DECL_COMMON could have an origin.
      	(add_location_or_const_value_attribute): Don't check section name
      	on non-var/function decls.
      	(dwarf2out_var_location): Reverse order of tests.
      	* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
      	with DECL_WRTL_CHECK.
      	* expmed.c (make_tree): rtl is now in decl_with_rtl.
      	* fold-const.c (fold_binary): Don't check weakness on
      	non-var/function decls.
      	(tree_expr_nonzero_p): Ditto.
      	(fold_checksum_tree): Use tree_decl_extra as sizeof
      	buffer.
      	* ggc-page.c (extra_order_size_table): Add sizes for
      	tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
      	tree_field_decl.
      	* gimplify.c (gimplify_bind_expr): Only set
      	DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
      	* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
      	without RTL.
      	* langhooks-def.h (LANG_HOOK_INIT_TS): New.
      	* langhooks.h (init_ts). New langhook.
      	* passes.c (rest_of_decl_compilation): Reverse order of tests.
      	* print-tree.c (print_node): Update to only print fields that
      	exist in the structures the passed decl has.
      	* toplev.c (wrapup_global_declarations): Don't reset
      	DECL_DEFER_OUTPUT on DECL's that don't contain it.
      	* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
      	* tree-inline.c (remap_decl): Ditto.
      	* tree-outof-ssa.c (create_temp): Reverse order of tests.
      	* tree-pretty-print.c (print_declaration): Don't print
      	DECL_REGISTER on things that don't contain it.
      	* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
      	non-var/function decls.
      	* tree.c (tree_contains_struct): New structure.
      	(init_priority_for_decl): New hashtable.
      	(tree_int_map): New structure.
      	(tree_int_map_eq): New function.
      	(tree_int_map_marked_p): Ditto.
      	(tree_int_map_hash): Ditto.
      	(tree_map): Move to tree.h.
      	(tree_map_eq): Externalize.
      	(tree_map_hash): Ditto.
      	(tree_map_marked_p): Ditto.
      	(init_ttree): Set up tree_contains_struct and call langhook.
      	(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
      	(tree_code_size): Update for new structures.
      	(tree_node_structure): Update for new structures.
      	(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
      	without the field.
      	(copy_node_stat):  Copy init priority.
      	(build_decl_stat): Ditto for visibility.
      	(ts_enum_names): New.
      	(tree_contains_struct_check_failed): New function.
      	(decl_init_priority_lookup): Ditto.
      	(decl_init_priority_insert): Ditto.
      	* treestruct.def: New file.
      	* tree.h (CODE_CONTAINS_STRUCT): New macro.
      	(CONTAINS_STRUCT_CHECK): Ditto.
      	(tree_contains_struct_check_failed): New prototype.
      	(DECL_CHECK): Removed.
      	(DECL_MINIMAL_CHECK): New.
      	(DECL_COMMON_CHECK): Ditto.
      	(DECL_WRTL_CHECK): Ditto.
      	(DECL_NON_COMMON_CHECK): Ditto.
      	(DECL_WITH_VIS_CHECK): Ditto.
      	(VAR_OR_FUNCTION_DECL_P): Ditto
      	(struct tree_decl_minimal): New structure.
      	(struct tree_decl_common): Ditto.
      	(struct tree_decl_with_rtl): Ditto.
      	(struct tree_decl_with_vis): Ditto.
      	(struct tree_decl_non_common): Ditto.
      	(struct tree_field_decl): Ditto.
      	(struct tree_parm_decl): Ditto.
      	(struct tree_var_decl): Ditto.
      	(struct tree_function_decl): Ditto.
      	(struct tree_const_decl): Ditto.
      	(struct tree_result_decl): Ditto.
      	(union tree_node): Add new structures.
      	* var-tracking.c (track_expr_p): Reverse order of tests.
      
      	* doc/c-tree.texi: Add documentation on DECL node internal structure.
      
      
      2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
      
      	* utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
      	removed.
      
      2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
      
      	* Make-lang.in: Add gt-cp-lang.h.
      	(cp-lang.o): Ditto.
      	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
      	the field.
      	* config-lang.in: Add cp-lang.c to gtfiles.
      	* cp-lang.c: Include hashtab.h.
      	(cp_init_ts): New function.
      	(LANG_HOOK_INIT_TS): Use macro.
      	(decl_shadowed_for_var_lookup): New function.
      	(decl_shadowed_for_var_insert): Ditto.
      	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
      	(NON_THUNK_FUNCTION_CHECK): Ditto.
      	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
      	(DECL_INIT_PRIORITY): Ditto.
      	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
      	(DECL_SHADOWED_FOR_VAR): Use hashtable.
      	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
      	* decl.c (duplicate_decls): Update for new/updated structures.
      	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
      	* decl2.c (start_static_initialization_or_destruction): Deal with
      	priority.
      	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
      	SET_DECL_RTL.
      	* tree.c (handle_init_priority_attribute): Handle priority.
      
      2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
      
      	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
      	removed.
      	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
      	(KEYWORD_KEY_NAME): Use decl_minimal.
      	(METHOD_SEL_NAME): Ditto..
      	(METHOD_SEL_ARGS): Use decl_non_common.
      	(METHOD_ADD_ARGS): Ditto.
      	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
      	(METHOD_DEFINITION): Ditto.
      	(METHOD_ENCODING): Ditto.
      	* objc-lang.c: (objc_init_ts): New function.
      
      2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
      
      	* trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
      	is removed.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101799 138bc75d-0d04-0410-961f-82ee72b054a4
      5ded8c6f