This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Fortran-Experiments]: patch


hi all,

here is another patch for the fortran-experiments branch. it primarily contains:

   - error checking of binding labels for bind(c) common blocks.
   - implementation of c_funloc
   - fixes for c_null_ptr and c_null_funptr
   - allowing for NAME=""
   - improved error checking for c_loc and c_funloc
   - test cases

there are some other changes that i think were more minor, but the above are the main ones. bootstrapped and regtested on x86 with no new failures.

ChangeLog entry:

2007-03-05  Christopher D. Rickett  <crickett@lanl.gov>
	* gfortran.dg/c_funloc_tests_2.f03: New test case.
	* gfortran.dg/c_funloc_tests.f03: Ditto.
	* gfortran.dg/c_loc_tests_2.f03: Updated test case.
	* gfortran.dg/c_assoc_2.f03: New test case.
	* gfortran.dg/c_loc_tests_3.f03: Ditto.
	* gfortran.dg/c_loc_tests_4.f03: Ditto.
	* gfortran.dg/c_loc_tests_5.f03: Ditto.
	* gfortran.dg/test_common_binding_labels.f03: Ditto.
	* gfortran.dg/binding_label_tests_13_main.f03: Ditto.  Used with
	binding_label_tests_13.
	* gfortran.dg/binding_label_tests_12.f03: New test case.
	* gfortran.dg/bind_c_coms.f90: Updated test case.
	* gfortran.dg/binding_label_tests_13.f03: New test case.
	* gfortran.dg/test_common_binding_labels_2.f03: Ditto.
	* gfortran.dg/test_common_binding_labels_3.f03: Ditto.
	* gfortran.dg/test_common_binding_labels_2_main.f03: Ditto.  Used
	with test_common_binding_labels_2.
	* gfortran.dg/bind_c_procs.f03: New test case.
	* gfortran.dg/c_loc_test.f90: Updated test case.
	* gfortran.dg/test_common_binding_labels_3_main.f03: New test
	case. Used with test_common_binding_labels_3.
	* gfortran.dg/bind_c_coms_driver.c: Updated.
	* symbol.c (gen_special_c_interop_ptrs): Renamed to
	gen_special_c_interop_ptr and changed arguments.
	(generate_iso_c_binding_symbol): Added ISOCBINDING_NULL_PTR,
	ISOCBINDING_NULL_FUNPTR, and ISOCBINDING_FUNLOC.
	* decl.c (verify_c_interop_param): Added check for procedures.
	(set_binding_label): Allow for NAME="".
	(gfc_match_bind_c): Ditto.
	(match_proc_decl): Updated for NAME="".
	* trans-common.c (gfc_sym_mangled_common_id): Allow for NAME="".
	* gfortran.h: Added binding label field to gfc_gsymbol.
	(gfc_check_any_c_kind): Added prototype.
	* iso-c-binding.def: Added ISOCBINDING_NULL_PTR,
	ISOCBINDING_NULL_FUNPTR, and ISOCBINDING_FUNLOC.
	* module.c (write_common): Allow for NAME="".
	(write_symbol): Ditto.
	(sort_iso_c_rename_list): New function to sort iso_c_binding
	rename list to meet dependencies between symbols.
	(import_iso_c_binding_module): Call sort_iso_c_rename_list.
	* trans-types.c (gfc_check_any_c_kind): New function that returns
	SUCCESS if any C kind is interoperable with given Fortran type.
	* resolve.c (resolve_contained_functions): Removed verification of
	BIND(C) procedures.
	(is_scalar_expr_ptr): Determine if parameter to C_LOC is a scalar
	expr.
	(gfc_iso_c_func_interface): Changed return type to
	SUCCESS/FAILURE.  Added code for ISOCBINDING_FUNLOC.  Added error
	checking for ISOCBINDING_LOC.
	(resolve_function): Moved call to gfc_iso_c_func_interface until
	after resolving the argument(s).
	(resolve_bind_c_comms): Verify binding labels for BIND(C) common
	blocks.
	(gfc_verify_binding_labels): Updated error checks.
	(resolve_fl_procedure): Added verification for BIND(C)
	procedures.
	(resolve_symbol): Removed C interoperability checking for dummy
	arguments to a BIND(C) procedure (now done in
	resolve_fl_procedure).
	(resolve_types): Added calls to traverse namespace and verify
	binding labels for BIND(C) global symbols and common blocks.
	* primary.c (gfc_match_rvalue): Removed most of the error checking
	for ISOCBINDING_LOC, ISOCBINDING_FUNLOC, and
	ISOCBINDING_ASSOCIATED (now done in gfc_iso_c_func_interface).
	* iso_c_generated_procs.c (c_f_pointer_i1, c_f_pointer_i2,
	c_f_pointer_i16): Added prototypes and function definitions.
	* iso_c_binding.c (c_funloc): Added function definition.
	* iso_c_binding.h (c_funloc): Added prototype.

Attachment: svn_diff_ws.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]