Commit Graph

236 Commits

Author SHA1 Message Date
Tobias Burnus
a08a5751bb re PR fortran/33106 (Access of components of public entities of private types wrongly allowed)
2007-09-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33106
	* resolve.c (resolve_symbol): Reject public variable of
	private derived-types for Fortran 95.

2007-09-17  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33106
	* gfortran.dg/private_type_9.f90: New.

From-SVN: r128550
2007-09-17 17:55:22 +02:00
Tobias Burnus
0ab7816b23 resolve.c (resolve_fl_procedure): Allow private dummies for Fortran 2003.
2007-09-17  Tobias Burnus  <burnus@net-b.de>

	* resolve.c (resolve_fl_procedure): Allow private dummies
	for Fortran 2003.

2007-09-17  Tobias Burnus  <burnus@net-b.de>

	* gfortran.dg/interface_15.f90: Compile with -std=f95.
	* gfortran.dg/private_type_1.f90: Ditto
	* gfortran.dg/interface_18.f90: New.
	* gfortran.dg/private_type_8.f90: New.

From-SVN: r128541
2007-09-17 12:12:06 +02:00
Tobias Burnus
3c7b91d3dc re PR fortran/33343 (ICE (segfault) on invalid code with wrongly shaped arguments to elemental procedures)
2007-09-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33343
	* expr.c (gfc_check_conformance): Print ranks in the error message.
	* resolve.c (resolve_elemental_actual): Check also conformance of
	the actual arguments for elemental functions.

2007-09-13  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33343
	* gfortran.dg/elemental_args_check_1.f90: New.
	* gfortran.dg/assumed_size_refs_1.f90: Update error message.
	* gfortran.dg/elemental_subroutine_4.f90: Ditto.

From-SVN: r128473
2007-09-13 20:08:04 +02:00
Janus Weil
6977374226 decl.c (match_procedure_decl,match_procedure_in_interface, [...]): Handle PROCEDURE statements.
2007-09-04  Janus Weil  <jaydub66@gmail.com>
	    Paul Thomas  <pault@gcc.gnu.org>

	* decl.c (match_procedure_decl,match_procedure_in_interface,
	gfc_match_procedure): Handle PROCEDURE statements.
	* gfortran.h (struct gfc_symbol): New member "gfc_symbol *interface".
	(enum gfc_statement): New element "ST_PROCEDURE".
	(strcut symbol_attribute): New member "unsigned procedure".
	* interface.c (check_interface0): Extended error checking.
	* match.h: Add gfc_match_procedure prototype.
	* parse.c (decode_statement,next_statement,gfc_ascii_statement,
	parse_derived,parse_interface): Implement PROCEDURE statements.
	* resolve.c (resolve_symbol): Ditto.
	* symbol.c (check_conflict): Ditto.
	(gfc_add_proc): New function for setting the procedure attribute.
	(copy_formal_args): New function for copying formal argument lists.


2007-09-04  Janus Weil  <jaydub66@gmail.com>
	    Tobias Burnus  <burnus@net-b.de>

	* gfortran.dg/proc_decl_1.f90: New.
	* gfortran.dg/proc_decl_2.f90: New.
	* gfortran.dg/proc_decl_3.f90: New.
	* gfortran.dg/proc_decl_4.f90: New.


Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r128081
2007-09-04 15:50:35 +02:00
Paul Thomas
07368af083 re PR fortran/31879 (ICE with function having array of character variables argument)
2007-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31879
	PR fortran/31197
	PR fortran/31258
	PR fortran/32703
	* gfortran.h : Add prototype for gfc_resolve_substring_charlen.
	* resolve.c (gfc_resolve_substring_charlen): New function.
	(resolve_ref): Call gfc_resolve_substring_charlen.
	(gfc_resolve_character_operator): New function.
	(gfc_resolve_expr): Call the new functions in cases where the
	character length is missing.
	* iresolve.c (cshift, eoshift, merge, pack, reshape, spread,
	transpose, unpack): Call gfc_resolve_substring_charlen for
	source expressions that are character and have a reference.
	* trans.h (gfc_trans_init_string_length) Change name to
	gfc_conv_string_length; modify references in trans-expr.c,
	trans-array.c and trans-decl.c.
	* trans-expr.c (gfc_trans_string_length): Handle case of no
	backend_decl.
	(gfc_conv_aliased_arg): Remove code for treating substrings
	and replace with call to gfc_trans_string_length.
	* trans-array.c (gfc_conv_expr_descriptor): Remove code for
	treating strings and call gfc_trans_string_length instead.

2007-08-31  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31879
	* gfortran.dg/char_length_7.f90: New test.
	* gfortran.dg/char_length_9.f90: New test.
	* gfortran.dg/char_assign_1.f90: Add extra warning.

	PR fortran/31197
	PR fortran/31258
	* gfortran.dg/char_length_8.f90: New test.

From-SVN: r127939
2007-08-30 22:10:55 +00:00
Tobias Burnus
041cf9874e re PR fortran/32985 (COMMON checking: TYPE with(out) SEQUENCE/bind(C), ALLOCATABLE)
2007-08-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32985
	* match.c (gfc_match_common): Remove SEQUENCE diagnostics.
	* resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics;
	fix walking through the tree.

2007-08-26  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32985
	* gfortran.dg/namelist_14.f90: Make test case valid.
	* gfortran.dg/common_10.f90: New.

From-SVN: r127811
2007-08-26 20:29:45 +02:00
Christopher D. Rickett
aa2f6edbf7 re PR fortran/33020 (Bind(C): c_f_pointer: type/rank mismatch error with integer(8) SHAPE)
2007-08-22  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/33020
	* resolve.c (gfc_iso_c_sub_interface): Remove setting of type and
	kind for optional SHAPE parameter of C_F_POINTER.

2007-08-22  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/33020
	* gfortran.dg/c_f_pointer_shape_tests_2.f03: Update test to
	include multiple kinds for SHAPE parameter within a single
	namespace.
	* gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Ditto.
	* gfortran.dg/c_f_pointer_shape_tests_3.f03: New test case.

From-SVN: r127719
2007-08-22 23:28:08 +02:00
Tobias Burnus
9e1d712c40 [multiple changes]
2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
	    Janus Weil  <jaydub66@gmail.com>

	* interface.c (gfc_match_interface,gfc_match_abstract_interface,
	gfc_match_end_interface,gfc_add_interface): Add abstract interface.
	* dump-parse-tree.c (gfc_show_attr): Ditto.
	* gfortran.h (interface_type,symbol_attribute): Ditto.
	* module.c (gfc_match_use,ab_attribute,attr_bits,
	mio_symbol_attribute): Ditto.
	* resolve.c (resolve_function): Ditto.
	* match.h: Ditto.
	* parse.c (decode_statement): Ditto.
	(parse_interface): Ditto, check for C1203 (name of abstract interface
	cannot be the same as an intrinsic type).
	* decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces.
	(access_attr_decl): Handle Abstract interfaces.


2007-08-17  Tobias Burnus  <burnus@net-b.de>

	* gfortran.dg/interface_abstract_1.f90: New.

From-SVN: r127612
2007-08-18 16:57:21 +02:00
Daniel Franke
3dbf65382c resolve.c (derived_pointer): Removed, replaced callers by access to appropiate attribute bit.
2007-08-06  Daniel Franke  <franke.daniel@gmail.com>

	* resolve.c (derived_pointer): Removed, replaced callers by access 
	to appropiate attribute bit.
	(derived_inaccessable): Shortcut recursion depth.
	(resolve_fl_namelist): Fixed checks for private components in namelists.

From-SVN: r127253
2007-08-06 16:53:19 -04:00
Nick Clifton
d234d78859 arith.c: Change copyright header to refer to version 3 of the GNU General Public...
* arith.c: Change copyright header to refer to version 3 of the GNU General 
  Public License and to point readers at the COPYING3 file and the FSF's 
  license web page.
* openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c, symbol.c, 
  iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h, matchexp.c, 
  dump-parse-tree.c, trans-common.c, array.c, Make-lang.in, trans-openmp.c, 
  gfortran.h, error.c, iso-c-binding.def, lang.opt, data.c, trans-const.c, 
  trans-stmt.c, expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, 
  scanner.c, trans-types.c, trans.h, gfortranspec.c, trans-types.h, 
  lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c, iresolve.c, match.c,
  trans-decl.c, trans-io.c, target-memory.c, match.h, target-memory.h, parse.c,
  arith.h, check.c, dependency.c, parse.h, types.def, convert.c, dependency.h,
  primary.c, trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise.

From-SVN: r127129
2007-08-01 16:29:36 +00:00
Paul Thomas
08ee9e8569 re PR fortran/31609 (module that calls a contained function with an ENTRY point)
2007-08-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31609
	* resolve.c (resolve_entries): Entries declared to be module
	procedures must point to the function namespace.

2007-08-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31609
	* gfortran.dg/entry_12.f90: New test.

From-SVN: r127108
2007-07-31 22:14:29 +00:00
Daniel Franke
c317bc4076 re PR fortran/32906 (Error: Parameter array ... cannot be automatic or assumed shape)
gcc/fortran:
2007-07-29  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32906
	* resolve.c (resolve_fl_parameter): Check for constant shape arrays,
	adjusted error message.

gcc/testsuite:
2007-07-29  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32906
	* gfortran.dg/shape_1.f90: Adjust error message.
	* gfortran.dg/parameter_array_ref_1.f90: New test.

From-SVN: r127043
2007-07-29 10:17:59 -04:00
Kazu Hirata
1207ac677d gfortran.h, [...]: Fix comment typos.
* gfortran.h, interface.c, resolve.c, symbol.c: Fix comment
	typos.
	* intrinsic.texi, invoke.texi: Fix typos.

From-SVN: r127029
2007-07-28 23:46:26 +00:00
Jerry DeLisle
6d023ec55b re PR fortran/31609 (module that calls a contained function with an ENTRY point)
2007-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/31609
	* resolve.c (generic_sym): Check for a same symbol and if so, return to
	avoid infinite recursion.

From-SVN: r127026
2007-07-28 21:17:20 +00:00
Daniel Franke
5cca320dca re PR fortran/31818 (Wrongly accepts namelists with assumed-shape arrays)
gcc/fortran:
2007-07-28  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31818
	PR fortran/32876
	PR fortran/32905
	* gfortran.h (symbol_attribute): Added bits for pointer_comp, private_comp.
	* parse.c (parse_derived): Set pointer_comp/private_comp bits if the derived
	type ultimately contains pointer components or private components.
	* module.c (ab_attribute): New values AB_POINTER_COMP, AB_PRIVATE_COMP.
	(attr_bits): Added names for new ab_attributes.
	(mio_symbol_attribute): Save/restore new attribute bits in modules.
	* match.c (gfc_match_namelist): Removed check for namelist objects of assumed
	shape.
	* resolve.c (resolve_fl_namelist): Added check for pointer or private
	components in nested types. Added check for namelist objects of assumed
	shape.

gcc/testsuite:
2007-07-28  Daniel Franke  <franke.daniel@gmail.com>

	* gfortran.dg/namelist_5.f90: Adjusted error message.
	* gfortran.dg/assumed_shape_nml.f90: Renamed to ...
	* gfortran.dg/namelist_31.f90: ... this. Removed dg-warning directive.
	* gfortran.dg/assumed_size_nml.f90: Renamed to ...
	* gfortran.dg/namelist_32.f90: ... this.

	PR fortran/32876
	* gfortran.dg/namelist_33.f90: New test.

	PR fortran/32905
	* gfortran.dg/namelist_34.f90: New test.

	PR fortran/31818
	* gfortran.dg/namelist_35.f90: New test.

From-SVN: r127014
2007-07-28 04:51:06 -04:00
Steven G. Kargl
b8475dd604 re PR fortran/32899 (Broken diagnostic for invalid use of .eq. for logicals)
2007-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/32899
	* resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison.

2007-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/32899
	* gfortran.dg/logical_comp.f90: Update dg-error strings.

From-SVN: r126985
2007-07-27 16:59:32 +00:00
Paul Thomas
08113c7398 re PR fortran/31205 (aliased operator assignment produces wrong result)
2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	PR fortran/32842
	* trans-expr.c (gfc_conv_function_call): Remove the default
	initialization of intent(out) derived types.
	* symbol.c (gfc_lval_expr_from_sym): New function.
	* matchexp.c (gfc_get_parentheses): Return argument, if it is
	character and posseses a ref.
	* gfortran.h : Add prototype for gfc_lval_expr_from_sym.
	* resolve.c (has_default_initializer): Move higher up in file.
	(resolve_code): On detecting an interface assignment, check
	if the rhs and the lhs are the same symbol.  If this is so,
	enclose the rhs in parenetheses to generate a temporary and
	prevent any possible aliasing.
	(apply_default_init): Remove code making the lval and call
	gfc_lval_expr_from_sym instead.
	(resolve_operator): Give a parentheses expression a type-
	spec if it has no type.
	* trans-decl.c (gfc_trans_deferred_vars): Apply the a default
	initializer, if any, to an intent(out) derived type, using
	gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
	the dummy is present.


2007-07-24 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/31205
	* gfortran.dg/alloc_comp_basics_1.f90 : Restore number of
	"deallocates" to 24, since patch has code rid of much spurious
	code.
	* gfortran.dg/interface_assignment_1.f90 : New test.

	PR fortran/32842
	* gfortran.dg/interface_assignment_2.f90 : New test.

From-SVN: r126885
2007-07-24 19:15:27 +00:00
Christopher D. Rickett
d8fa96e089 re PR fortran/32797 ([ISO C Binding] Internal Error: gfc_basic_typename(): Undefined type)
2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32797
        PR fortran/32800
        * decl.c (verify_bind_c_sym): Use the result symbol for functions
        with a result clause.  Warn if implicitly typed.  Verify the type
        and rank of the SHAPE argument, if given.
        * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to
        check the actual args against the formal, sorting them if
        necessary.
        * symbol.c (gen_shape_param): Initialize type of SHAPE param to
        BT_VOID.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32797
        PR fortran/32800
        * gfortran.dg/bind_c_usage_8.f03: New test case.
        * gfortran.dg/c_f_pointer_tests_2.f03: Ditto.
        * gfortran.dg/c_ptr_tests_5.f03: Updated expected error message.

From-SVN: r126856
2007-07-23 19:47:16 +02:00
Christopher D. Rickett
089db47df6 re PR fortran/32600 ([ISO Bind C] C_F_POINTER w/o SHAPE should not be a library function)
2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32600
	* trans-expr.c (gfc_conv_function_call): Handle c_funloc.
	* trans-types.c: Add pfunc_type_node.
	(gfc_init_types,gfc_typenode_for_spec): Use it.
	* resolve.c (gfc_iso_c_func_interface): Fix whitespace and
	improve error message.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* intrinsics/iso_c_binding.c (c_funloc): Remove.
	* intrinsics/iso_c_binding.h: Remove c_funloc.
	* gfortran.map: Ditto.

2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32600
	* gfortran.dg/c_funloc_tests_5.f03: New.
	* gfortran.dg/c_funloc_tests_5.f04: New.
	* gfortran.dg/c_funloc_tests_4_driver.c: New.


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r126835
2007-07-23 08:03:33 +02:00
Christopher D. Rickett
6ad5cf725f re PR fortran/32627 ([ISO Bind C] Accept c_f_pointer for TYPE)
2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * resolve.c (set_name_and_label): Set kind number for character
        version of c_f_pointer.
        (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to
        that of the actual SHAPE arg.
        * symbol.c (gen_shape_param): Initialize kind for SHAPE arg.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * libgfortran/intrinsics/iso_c_generated_procs.c: Add c_f_pointer
        for character/string arguments.
        * libgfortran/intrinsic/iso_c_binding.c (c_f_pointer_u0): Allow
        the optional SHAPE arg to be any valid integer kind.
        * libgfortran/gfortran.map: Add c_f_pointer_s0.
        * libgfortran/mk-kinds-h.sh: Save smallest integer kind as default
        character kind.
        * libgfortran/intrinsics/iso_c_generated_procs.c: Add versions of
        c_f_pointer for complex and logical types.
        * libgfortran/gfortran.map: Add c_f_pointer versions for logical
        and complex types.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32627
        * gfortran.dg/pr32627_driver.c: Driver for pr32627.
        * gfortran.dg/pr32627.f03: New test case.
        * gfortran.dg/c_f_pointer_logical.f03: New test case.
        * gfortran.dg/c_f_pointer_logical_driver.c: Driver for
        c_f_pointer_logical.
        * gfortran.dg/c_f_pointer_complex_driver.c: Driver for
        c_f_pointer_complex.
        * gfortran.dg/c_f_pointer_complex.f03: New test case.
        * gfortran.dg/c_f_pointer_shape_tests_2_driver.c: Driver for
        c_f_pointer_shape_tests_2.
        * gfortran.dg/c_f_pointer_shape_tests_2.f03: New test case.

From-SVN: r126817
2007-07-21 23:45:44 +00:00
Christopher D. Rickett
21a7722788 re PR fortran/32801 (USE of ISO_C_BINDING, ONLY: C_LOC causes compiler seg fault)
2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32801
        * symbol.c (generate_isocbinding_symbol): Remove unnecessary
        conditional.

        PR fortran/32804
        * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and
        deferred-shape arrays as args to C_LOC.  Fix bug in testing
        character args to C_LOC.

2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>

        PR fortran/32804
        * gfortran.dg/c_loc_tests_9.f03: New test case.
        * gfortran.dg/c_loc_tests_10.f03: Ditto.

From-SVN: r126812
2007-07-21 20:31:17 +00:00
Janus Weil
4665abc46c re PR fortran/32535 (namelist with private items contained in sub-sub-procedure of a module rejected)
2007-07-17  Janus Weil  <jaydub66@gmail.com>

	PR fortran/32535
	* resolve.c (resolve_fl_namelist): Check for namelist private
	components in contained subprograms.

2007-07-17  Janus Weil  <jaydub66@gmail.com>

	PR fortran/32535
	* gfortran.dg/pr32535.f90: New test.

From-SVN: r126706
2007-07-17 23:33:34 +02:00
Daniel Franke
f8faa85e29 re PR fortran/31639 ([4.1/4.2/4.3] ICE in gfc_conv_constant, at fortran/trans-const.c:348 with len)
gcc/fortran:
2007-07-12  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31639
	* decl.c (gfc_match_suffix): Removed surplus general error that hides
	a more specific message.
	* resolve.c (resolve_fl_variable): Reject illegal initializiers only
	if not already done.
	(resolve_fl_procedure): Added check for initializers of functions.

gcc/testsuite:
2007-07-12  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31639
	* gfortran.dg/func_decl_4.f90: New test.

From-SVN: r126605
2007-07-12 18:15:11 -04:00
Christopher D. Rickett
aa5e22f000 re PR fortran/32599 ([ISO C Binding] Accepts character with len /= 1)
2007-07-12  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32599
	* decl.c (verify_c_interop_param): Require character string dummy
	args to BIND(C) procedures to have length 1.
	* resolve.c (resolve_fl_procedure): Modify parameter checking for
	BIND(C) procedures.

	PR fortran/32601
	* resolve.c (gfc_iso_c_func_interface): Verify that a valid
	expression is given as an argument to C_LOC and C_ASSOCIATED.
	* trans-io.c (transfer_expr): Add argument for code block.  Add
	standards check to determine if an error message should be
	reported for printing C_PTR or C_FUNPTR.
	(transfer_array_component): Update arguments to transfer_expr.
	(gfc_trans_transfer): Ditto.

	* symbol.c (gen_cptr_param): Fix whitespace.


2007-07-12  Christopher D. Rickett  <crickett@lanl.gov>

	PR fortran/32599
	* gfortran.dg/32599.f03: New test case.

	PR fortran/32601
	* gfortran.dg/32601.f03: New test case.
	* gfortran.dg/32601_1.f03: Ditto.
	* gfortran.dg/c_ptr_tests_9.f03: Updated dg-options.
	* gfortran.dg/c_ptr_tests_10.f03: Ditto.

From-SVN: r126598
2007-07-12 21:52:03 +02:00
Paul Thomas
e7c8ff569c re PR fortran/32157 (intrinsic function name conflicts with subroutine if present in the same file)
2007-07-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32157
	* resolve.c (is_external_proc): New function.  Adds test that
	the symbol is not an intrinsic procedure.
	* (resolve_function, resolve_call): Replace logical statements
	with call to is_external_proc.

	PR fortran/32689
	* simplify.c (gfc_simplify_transfer): If mold has rank, the
	result is an array.

	PR fortran/32634
	* module.c (write_generic): Write the local name of the
	interface. 


2007-07-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32157
	* gfortran.dg/overload_2.f90: New test.

	PR fortran/32689
	* gfortran.dg/transfer_simplify_5.f90

	PR fortran/32634
	* gfortran.dg/interface_15.f90: New test.

From-SVN: r126509
2007-07-10 05:11:00 +00:00
Daniel Franke
3bed9dd023 re PR fortran/17711 (Wrong operator name in error message)
gcc/fortran:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
	    Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/17711
	* gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS,
	INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, 
	INTRINSIC_LT_OS and INTRINSIC_LE_OS.
	* arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise.
	* arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le):
	Added gfc_intrinsic_op as third argument type.
	* dump-parse-tree.c (gfc_show_expr): Account for new enum values.
	* expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise.
	* interface.c (check_operator_interface): Likewise.
	(gfc_check_interfaces): Added cross-checks for FORTRAN 77 and 
	Fortran 90 style operators using new enum values.
	(gfc_extend_expr): Likewise.
	(gfc_add_interface): Likewise.
	* match.c (intrinsic_operators): Distinguish FORTRAN 77 style
	operators from Fortran 90 style operators using new enum values.
	* matchexp.c (match_level_4): Account for new enum values.
	* module.c (mio_expr): Likewise.
	* resolve.c (resolve_operator): Deal with new enum values, fix
	inconsistent error messages.
	* trans-expr.c (gfc_conv_expr_op): Account for new enum values.

gcc/testsuite:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/17711
	* gfortran.dg/operator_4.f90: New test.
	* gfortran.dg/operator_5.f90: New test.
	* gfortran.dg/logical_comp.f90: Adjusted error messages.
	* gfortran.dg/module_md5_1.f90: Adjusted MD5 sum.


Co-Authored-By: Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>

From-SVN: r126468
2007-07-08 17:08:52 -04:00
Daniel Franke
83b2e4e821 re PR fortran/25094 (Procedure with public generic identifier allowed to have argument of private type)
gcc/fortran:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/25094
	* resolve.c (resolve_fl_procedure): Added check for PRIVATE types
	in PUBLIC interfaces.

gcc/testsuite:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/25094
	* gfortran.dg/interface_15.f90: New test.

From-SVN: r126466
2007-07-08 16:38:58 -04:00
Kazu Hirata
86bf520d74 decl.c, [...]: Fix comment typos.
* decl.c, gfortran.h, interface.c, module.c, resolve.c,
	trans-array.c, trans-decl.c: Fix comment typos.  Follow
	spelling conventions.
	* intrinsic.texi: Fix typos.  Follow spelling conventions.

From-SVN: r126440
2007-07-07 13:15:40 +00:00
Tobias Burnus
5349080dd3 re PR fortran/32359 (incorrect error: Threadprivate isn't SAVEd (implicit save attribute undefined))
gcc/fortran/
2007-07-05  Daniel Franke  <franke.daniel@gmail.com>
	    Tobias Burnus  <burnus@net-b.de>

	PR fortran/32359
	* gfortran.h (symbol_attribute): Change save attribute into an enum.
	* decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT.
	* symbol.c (gfc_add_save): Check for SAVE_EXPLICIT.
	* resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT.
	(resolve_symbol): Allow OMP threadprivate with
	initialization SAVEd and save_all variable.
	* trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check.


libgomp/
2007-07-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32359
	* testsuite/libgomp.fortran/pr32359.f90: New.

gcc/testsuite/
2007-07-05  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32359
	* gfortran.dg/module_md5_1.f90: Update MD5 number.

From-SVN: r126366
2007-07-05 14:51:51 +02:00
Jerry DeLisle
a24668a34f re PR fortran/32432 (SEGV/endless loop after: "ERROR: ... already is initialized")
2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/32432
	* gfortran.h: Change type of gfc_assign_data_value from void to try.
	* data.c (gfc_assign_data_value): Return FAILURE if error found.
	* resolve.c (check_data_variable): If gfc_assign_data_value returns
	failure, break out of loop and return failure.

From-SVN: r126282
2007-07-03 22:14:55 +00:00
Tobias Burnus
ad22b1ff95 re PR fortran/25062 (same name for parameter and common block)
2007-07-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/25062
	* resolve.c (resolve_common_blocks): New check function.
	(resolve_types): Use it.

2007-07-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/25062
	* common_7.f90: New.
	* common_8.f90: New.
	* common_9.f90: New.

From-SVN: r126279
2007-07-03 23:41:34 +02:00
Tobias Burnus
bb9e683e79 re PR fortran/20888 (dereferencing NULL still accepted)
2007-07-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/20888
	* resolve.c (resolve_operator): Check for NULL as operand.

2007-07-03  Tobias Burnus  <burnus@net-b.de>

	PR fortran/20888
	* gfortran.dg/null_2.f90: New.

From-SVN: r126247
2007-07-03 10:02:08 +02:00
Christopher D. Rickett
a8b3b0b633 [multiple changes]
2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>

	* interface.c (gfc_compare_derived_types): Special case for comparing
	derived types across namespaces.
	(gfc_compare_types): Deal with BT_VOID.
	(compare_parameter): Use BT_VOID to accept ISO C Binding pointers.
	* trans-expr.c (gfc_conv_function_call): Remove setting parm_kind
	to SCALAR
	(gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and 
	NULL_FUNPTR.
	(gfc_conv_expr): Convert expressions for ISO C Binding derived types.
	* symbol.c (gfc_set_default_type): BIND(C) variables should not be
	implicitly declared.
	(check_conflict): Add BIND(C) and check for conflicts.
	(gfc_add_explicit_interface): Whitespace.	
	(gfc_add_is_bind_c): New function.  
	(gfc_copy_attr): Use it.
	(gfc_new_symbol): Initialize ISO C Binding objects.
	(get_iso_c_binding_dt):  New function.
	(verify_bind_c_derived_type): Ditto.
	(gen_special_c_interop_ptr): Ditto.
	(add_formal_arg): Ditto.
	(gen_cptr_param): Ditto.
	(gen_fptr_param): Ditto.
	(gen_shape_param): Ditto.
	(add_proc_interface): Ditto.
	(build_formal_args): Ditto.
	(generate_isocbinding_symbol):  Ditto.
	(get_iso_c_sym):  Ditto.
	* decl.c (num_idents_on_line, has_name_equals): New variables.
	(verify_c_interop_param): New function.
	(build_sym): Finish binding labels and deal with COMMON blocks.
	(add_init_expr_to_sym): Check if the initialized expression is
	an iso_c_binding named constants
	(variable_decl): Set ISO C Binding type_spec components.
	(gfc_match_kind_spec): Check match for C interoperable kind.
	(match_char_spec): Fix comment. Chnage gfc_match_small_int
	to gfc_match_small_int_expr.  Check for C interoperable kind.
	(match_type_spec): Clear the current binding label.
	(match_attr_spec): Add DECL_IS_BIND_C.  If BIND(C) is found, use it
	to set attributes.
	(set_binding_label): New function.
	(set_com_block_bind_c): Ditto.
	(verify_c_interop): Ditto.
	(verify_com_block_vars_c_interop): Ditto.
	(verify_bind_c_sym): Ditto.
	(set_verify_bind_c_sym): Ditto.
	(set_verify_bind_c_com_block): Ditto.
	(get_bind_c_idents): Ditto.
	(gfc_match_bind_c_stmt): Ditto.
	(gfc_match_data_decl): Use num_idents_on_line.
	(match_result): Deal with right paren in BIND(C).
	(gfc_match_suffix): New function.
	(gfc_match_function_decl): Use it.  Code is re-arranged to deal with
	ISO C Binding result clauses.
	(gfc_match_subroutine):  Deal with BIND(C).
 	(gfc_match_bind_c): New function.
	(gfc_get_type_attr_spec): New function.  Code is re-arranged in and
	taken from gfc_match_derived_decl.
	(gfc_match_derived_decl): Add check for BIND(C).
	* trans-common.c: Forward declare gfc_get_common.
	(gfc_sym_mangled_common_id): Change arg from 'const char *name' to
	'gfc_common_head *com'.  Check for ISO C Binding of the common block.
	(build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME.
	* gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN
	(bt): Add BT_VOID
	(sym_flavor): Add FL_VOID.
 	(iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum
	(CInteropKind_t): New struct.
	(c_interop_kinds_table): Use it.  Declare an array of structs.
	(symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c
	bitfields.
	(gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members.
	(gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and
	common_block members.
	(gfc_common_head): Add binding_label and is_bind_c members.
	(gfc_gsymbol): Add sym_name, mod_name, and binding_label members.
	Add prototypes for get_c_kind, gfc_validate_c_kind, 
	gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value,
	verify_c_interop, verify_c_interop_param, verify_bind_c_sym,
	verify_bind_c_derived_type, verify_com_block_vars_c_interop,
	generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface
	* iso-c-binding.def: New file. This file contains the definitions
	of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic
	module.
	* trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR
	 or C_NULL_FUNPTR expressions.
	* expr.c (gfc_copy_expr): Add BT_VOID case.  For BT_CHARACTER, the
	ISO C Binding requires a minimum string length of 1 for '\0'.  
	* module.c (intmod_sym): New struct.
	(pointer_info): Add binding_label member.
	(write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p.
	(ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C.
	(attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C".
	(mio_symbol_attribute): Deal with ISO C Binding attributes.
	(bt_types): Add "VOID".
	(mio_typespec): Deal with ISO C Binding components.
	(mio_namespace_ref): Add intmod variable. 
	(mio_symbol): Check for symbols from an intrinsic module.
	(load_commons): Check for BIND(C) common block.
	(read_module): Read binding_label and use it.
	(write_common): Add label.  Write BIND(C) info.
	(write_blank_common): Blank commons are not BIND(C).  Explicitly
	set is_bind_c=0.
	(write_symbol): Deal with binding_label.
	(sort_iso_c_rename_list): New function.
	(import_iso_c_binding_module): Ditto.
	(create_int_parameter): Add to args.
	(use_iso_fortran_env_module): Adjust to deal with iso_c_binding
	intrinsic module.
	* trans-types.c (c_interop_kinds_table): new array of structs. 
	(gfc_validate_c_kind): New function.
	(gfc_check_any_c_kind): Ditto.
	(get_real_kind_from_node): Ditto.
	(get_int_kind_from_node): Ditto.
	(get_int_kind_from_width): Ditto.
	(get_int_kind_from_minimal_width): Ditto.
	(init_c_interop_kinds): Ditto.
	(gfc_init_kinds): call init_c_interop_kinds.
	(gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers.
	Adjust handling of BT_DERIVED.
	(gfc_sym_type): Whitespace.
	(gfc_get_derived_type):  Account for iso_c_binding derived types
	* resolve.c (is_scalar_expr_ptr): New function.
	(gfc_iso_c_func_interface): Ditto.
	(resolve_function): Use gfc_iso_c_func_interface. 
	(set_name_and_label): New function.
	(gfc_iso_c_sub_interface): Ditto.
	(resolve_specific_s0): Use gfc_iso_c_sub_interface.
	(resolve_bind_c_comms): New function.
	(resolve_bind_c_derived_types): Ditto.
	(gfc_verify_binding_labels): Ditto.
	(resolve_fl_procedure): Check for ISO C interoperability.
	(resolve_symbol): Check C interoperability.
	(resolve_types): Walk the namespace.  Check COMMON blocks.
	* trans-decl.c (gfc_sym_mangled_identifier):  Prevent the mangling
	of identifiers that have an assigned binding label.
	(gfc_sym_mangled_function_id): Use the binding label rather than
	the mangled name.
	(gfc_finish_var_decl): Put variables that are BIND(C) into a common
	segment of the object file, because this is what C would do.
	(gfc_create_module_variable): Conver to proper types
	(set_tree_decl_type_code): New function.
	(generate_local_decl): Check dummy variables and derived types for
	ISO C Binding attributes.
	* match.c (gfc_match_small_int_expr): New function.
	(gfc_match_name_C): Ditto.
	(match_common_name): Deal with ISO C Binding in COMMON blocks
	* trans-io.c (transfer_expr):  Deal with C_NULL_PTR or C_NULL_FUNPTR
	expressions
	* match.h: Add prototypes for gfc_match_small_int_expr,
	gfc_match_name_C, match_common_name, set_com_block_bind_c,
	set_binding_label, set_verify_bind_c_sym,
	set_verify_bind_c_com_block, get_bind_c_idents,
	gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c,
	gfc_get_type_attr_spec
	* parse.c (decode_statement): Use gfc_match_bind_c_stmt
	(parse_derived): Init *derived_sym = NULL, and gfc_current_block
	later for valiadation.
	* primary.c (got_delim): Set ISO C Binding components of ts.
	(match_logical_constant): Ditto.
	(match_complex_constant): Ditto.
	(match_complex_constant): Ditto.
	(gfc_match_rvalue): Check for existence of at least one arg for
	C_LOC, C_FUNLOC, and C_ASSOCIATED.
	* misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts.
	(get_c_kind): New function.

2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>

	* Makefile.in: Add support for iso_c_generated_procs.c and
	iso_c_binding.c.
	* Makefile.am: Ditto.
	* intrinsics/iso_c_generated_procs.c: New file containing helper
	functions.
	* intrinsics/iso_c_binding.c: Ditto.
	* intrinsics/iso_c_binding.h: New file
	* gfortran.map: Include the __iso_c_binding_c_* functions.
	* libgfortran.h: define GFC_NUM_RANK_BITS.

2007-06-23  Christopher D. Rickett  <crickett@lanl.gov>

	* bind_c_array_params.f03: New files for Fortran 2003 ISO C Binding.
	* bind_c_coms.f90: Ditto.
	* bind_c_coms_driver.c: Ditto.
	* bind_c_dts.f90: Ditto.
	* bind_c_dts_2.f03: Ditto.
	* bind_c_dts_2_driver.c: Ditto.
	* bind_c_dts_3.f03: Ditto.
	* bind_c_dts_4.f03: Ditto.
	* bind_c_dts_driver.c: Ditto.
	* bind_c_implicit_vars.f03: Ditto.
	* bind_c_procs.f03: Ditto.
	* bind_c_usage_2.f03: Ditto.
	* bind_c_usage_3.f03: Ditto.
	* bind_c_usage_5.f03: Ditto.
	* bind_c_usage_6.f03: Ditto.
	* bind_c_usage_7.f03: Ditto.
	* bind_c_vars.f90: Ditto.
	* bind_c_vars_driver.c: Ditto.
	* binding_c_table_15_1.f03: Ditto.
	* binding_label_tests.f03: Ditto.
	* binding_label_tests_10.f03: Ditto.
	* binding_label_tests_10_main.f03: Ditto.
	* binding_label_tests_11.f03: Ditto.
	* binding_label_tests_11_main.f03: Ditto.
	* binding_label_tests_12.f03: Ditto.
	* binding_label_tests_13.f03: Ditto.
	* binding_label_tests_13_main.f03: Ditto.
	* binding_label_tests_14.f03: Ditto.
	* binding_label_tests_2.f03: Ditto.
	* binding_label_tests_3.f03: Ditto.
	* binding_label_tests_4.f03: Ditto.
	* binding_label_tests_5.f03: Ditto.
	* binding_label_tests_6.f03: Ditto.
	* binding_label_tests_7.f03: Ditto.
	* binding_label_tests_8.f03: Ditto.
	* binding_label_tests_9.f03: Ditto.
	* c_assoc.f90: Ditto.
	* c_assoc_2.f03: Ditto.
	* c_f_pointer_shape_test.f90: Ditto.
	* c_f_pointer_tests.f90: Ditto.
	* c_f_tests_driver.c: Ditto.
	* c_funloc_tests.f03: Ditto.
	* c_funloc_tests_2.f03: Ditto.
	* c_funloc_tests_3.f03: Ditto.
	* c_funloc_tests_3_funcs.c: Ditto.
	* c_kind_params.f90: Ditto.
	* c_kind_tests_2.f03: Ditto.
	* c_kinds.c: Ditto.
	* c_loc_driver.c: Ditto.
	* c_loc_test.f90: Ditto.
	* c_loc_tests_2.f03: Ditto.
	* c_loc_tests_2_funcs.c: Ditto.
	* c_loc_tests_3.f03: Ditto.
	* c_loc_tests_4.f03: Ditto.
	* c_loc_tests_5.f03: Ditto.
	* c_loc_tests_6.f03: Ditto.
	* c_loc_tests_7.f03: Ditto.
	* c_loc_tests_8.f03: Ditto.
	* c_ptr_tests.f03: Ditto.
	* c_ptr_tests_10.f03: Ditto.
	* c_ptr_tests_5.f03: Ditto.
	* c_ptr_tests_7.f03: Ditto.
	* c_ptr_tests_7_driver.c: Ditto.
	* c_ptr_tests_8.f03: Ditto.
	* c_ptr_tests_8_funcs.c: Ditto.
	* c_ptr_tests_9.f03: Ditto.
	* c_ptr_tests_driver.c: Ditto.
	* c_size_t_driver.c: Ditto.
	* c_size_t_test.f03: Ditto.
	* com_block_driver.f90: Ditto.
	* global_vars_c_init.f90: Ditto.
	* global_vars_c_init_driver.c: Ditto.
	* global_vars_f90_init.f90: Ditto.
	* global_vars_f90_init_driver.c: Ditto.
	* interop_params.f03: Ditto.
	* iso_c_binding_only.f03: Ditto.
	* iso_c_binding_rename_1.f03: Ditto.
	* iso_c_binding_rename_1_driver.c: Ditto.
	* iso_c_binding_rename_2.f03: Ditto.
	* iso_c_binding_rename_2_driver.c: Ditto.
	* kind_tests_2.f03: Ditto.
	* kind_tests_3.f03: Ditto.
	* module_md5_1.f90: Ditto.
	* only_clause_main.c: Ditto.
	* print_c_kinds.f90: Ditto.
	* test_bind_c_parens.f03: Ditto.
	* test_c_assoc.c: Ditto.
	* test_com_block.f90: Ditto.
	* test_common_binding_labels.f03: Ditto.
	* test_common_binding_labels_2.f03: Ditto.
	* test_common_binding_labels_2_main.f03: Ditto.
	* test_common_binding_labels_3.f03: Ditto.
	* test_common_binding_labels_3_main.f03: Ditto.
	* test_only_clause.f90: Ditto.
	* use_iso_c_binding.f90: Ditto.
	* value_5.f90: Ditto.
	* value_test.f90: Ditto.
	* value_tests_f03.f90: Ditto.

From-SVN: r126185
2007-07-02 02:47:21 +00:00
Daniel Franke
eb2c598d55 re PR fortran/20373 (INTRINSIC symbols can be given the wrong type)
gcc/fortran:
2007-06-30  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/20373
	* intrinsic.c (add_functions): Additional function types.
	(gfc_convert_type_warn): Remove intrinsic-flag from conversion
	functions.
	* resolve.c (resolve_symbol): Added type checks to explicitly defined
	intrinsics.

gcc/testsuite:
2007-06-28  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/20373
	* gfortran.dg/intrinsic.f90: New test.

From-SVN: r126153
2007-06-30 12:26:55 -04:00
Daniel Franke
622af87fc8 re PR fortran/31580 (Better error message for not-found operator)
gcc/fortran:
2007-06-29  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/31580
        * resolve.c (resolve_operator): Added check whether a user 
	defined operator is available.

gcc/testsuite:
2007-06-29  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/31580
	* gfortran.dg/operator_3.f90: New test.

From-SVN: r126117
2007-06-29 15:05:58 -04:00
Paul Thomas
8de10a622a re PR fortran/32464 (ICE: USE in contained subroutine)
2007-06-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32464
	* resolve.c (check_host_association): Return if the old symbol
	is use associated.  Introduce retval to reduce the number of
	evaluations of the first-order return value.

	PR fortran/31494
	* match.c (gfc_match_call): If a host associated symbol is not
	a subroutine, build a new symtree/symbol in the current name
	space.


2007-06-25  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/32464
	* gfortran.dg/host_assoc_function_2.f90: New test.

	PR fortran/31494
	* gfortran.dg/host_assoc_call_1.f90: New test.

From-SVN: r126000
2007-06-25 18:27:59 +00:00
Jerry DeLisle
79e7840d22 re PR fortran/31162 (missing warning for real do-loops with implicit typed variables)
2007-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/31162
	* resolve.c (gfc_resolve_iterator_expr): Add check for REAL using
	gfc_notify_standard. (gfc_resolve_iterator): Remove check.
	(resolve_branch): Change "Obsolete" to "Deleted feature".
	* io.c (resolve_tag): Ditto.
	* match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto.

From-SVN: r125938
2007-06-22 01:50:09 +00:00
Paul Thomas
d2088bb6d4 re PR fortran/20863 ([4.2 only] Pointer problems in PURE procedures)
2007-06-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20863
	PR fortran/20082
	* resolve.c (resolve_code): Use gfc_impure_variable as a
	condition for rejecting derived types with pointers, in pure
	procedures.
	(gfc_impure_variable): Add test for dummy arguments of pure
	procedures; any for functions and INTENT_IN for subroutines.

	PR fortran/32236
	* data.c (gfc_assign_data_value): Change the ICE on an array
	reference initializer not being an array into an error and
	clear init to prevent a repetition of the error.

2007-06-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20863
	PR fortran/20082
	* gfortran.dg/impure_assignment_2.f90 : New test.

	PR fortran/32236
	* gfortran.dg/data_initialized_2.f90 : New test.

	* gfortran.dg/equiv_7.f90 : Test for endianess and call the
	appropriate version of 'dmach'.

From-SVN: r125831
2007-06-18 23:04:28 +00:00
Paul Thomas
9d99ee7be4 re PR fortran/29786 (Initialization of overlapping variables: Not implemented)
2007-06-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29786
	PR fortran/30875
	* trans-common.c (get_init_field): New function.
	(create_common): Call get_init_field for overlapping
	initializers in equivalence blocks.
	* resolve.c (resolve_equivalence_derived, resolve_equivalence):
	Remove constraints on initializers in equivalence blocks.
	* target-memory.c (expr_to_char, gfc_merge_initializers):
	New functions.
	(encode_derived): Add the bit offset to the byte offset to get
	the total offset to the field.
	* target-memory.h : Add prototype for gfc_merge_initializers.


2007-06-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/29786
	* gfortran.dg/equiv_7.f90: New test.
	* gfortran.dg/equiv_constraint_7.f90: Change error message.


	PR fortran/30875
	* gfortran.dg/equiv_constraint_5.f90: Correct code and error.

From-SVN: r125628
2007-06-11 22:39:21 +00:00
Steven G. Kargl
66e4ab3127 decl.c: Miscellaneous whitespace fixes.
* decl.c: Miscellaneous whitespace fixes.
* expr.c: Likewise.
* gfortran.h: Likewise.
* interface.c : Likewise.
* io.c: Likewise.
* match.c: Likewise.
* match.h: Likewise.
* module.c: Likewise.
* parse.c: Likewise.
* resolve.c: Likewise.
* symbol.c: Likewise.
* trans-array.c: Likewise.
* trans-common.c: Likewise.
* trans-decl.c: Likewise.
* trans-intrinsic.c: Likewise.
* trans-io.c: Likewise.
* trans-stmt.c: Likewise.
* trans-types.c: Likewise.

From-SVN: r125533
2007-06-07 11:10:31 -07:00
Daniel Franke
cd5ecab6a7 gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id'...
2007-05-29  Daniel Franke  <franke.daniel@gmail.com>

        * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id',
        added missing GFC_ISYM_* enumerators, ordered alphabetically.
        (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'.
        (gfc_find_subroutine): New prototype.
        * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers.
        (find_subroutine): Renamed to 'gfc_find_subroutine', removed static.
        * dependency.c: Changed usage of isym->generic_id to isym->id.
        * openmp.c: Likewise.
        * resolve.c: Likewise.
        * trans-array.c: Likewise.
        * trans-expr.c: Likewise.
        * trans-intrinsic.c: Likewise.
        * trans-openmp.c: Likewise.

From-SVN: r125168
2007-05-29 17:10:48 -04:00
Tobias Burnus
c2de0c194e re PR fortran/32088 (ICE (doesn't occur if given function standalone instead on internal))
fortran/
2007-05-27 Paul Thomas  <pault@gcc.gnu.org>
	   Tobias Burnus  <burnus@net-b.de>

	PR fortran/32088
	* symbol.c (gfc_check_function_type): Copy dimensions of
	  result variable.
	* resolve.c (resolve_contained_fntype): Improve symbol output in
 	  the error message.

testsuite/
2007-05-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/32088
	* gfortran.dg/func_result_3.f90: New.

-- Diese und die falgenden Zeilen werden ignoriert --

M    gcc/testsuite/ChangeLog
A    gcc/testsuite/gfortran.dg/func_result_3.f90
M    gcc/fortran/symbol.c
M    gcc/fortran/ChangeLog
M    gcc/fortran/resolve.c

From-SVN: r125118
2007-05-27 23:24:48 +02:00
Jerry DeLisle
24016fdb16 re PR fortran/18923 (segfault after subroutine name confusion)
2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/18923
	* resolve.c (resolve_function): Don't call resolve_global_procedure if
	there is no name. Delete duplicated statement in ELSE clause.

Co-Authored-By: Daniel Franke <franke.daniel@gmail.com>

From-SVN: r124979
2007-05-23 04:15:25 +00:00
Daniel Franke
1b35264fab re PR fortran/32002 (insufficient conformance check when assigning the result of an elemental function to an array)
gcc/fortran:
2005-05-21  Jerry DeLisle  <jvdelisle@verizon.net>
            Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32002
        * resolve.c (resolve_actual_arglist): Resolve actual argument after
        being identified as variable.


gcc/testsuite:
2005-05-21  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/32002
        * gfortran.dg/compliant_elemental_intrinsics_2.f90: New test.

From-SVN: r124924
2007-05-21 18:24:55 -04:00
Paul Thomas
eb77cddf42 re PR fortran/30746 (50th Anniversary Bug - Forward reference to contained function)
2007-05-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/30746
	* resolve.c (check_host_association): New function that detects
	incorrect host association and corrects it.
	(gfc_resolve_expr): Call the new function for variables and
	functions.
	* match.h : Remove prototype for gfc_match_rvalue.
	* gfortran.h : Add prototype for gfc_match_rvalue.

2007-05-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/30746
	* gfortran.dg/host_assoc_function_1.f90: New test.

From-SVN: r124633
2007-05-12 06:19:43 +00:00
Paul Thomas
847b053dd2 re PR fortran/30878 (Rejects function f1; namelist /nml/ f1)
2007-05-11 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/30878
	* resolve.c (resolve_fl_namelist): It is not an error if the
	namelist element is the result variable of the enclosing
	function.  Search for the symbol in current and all parent
	namespaces for a potential conflict.
	* symbol.c (check_conflict): Remove the conflict between
	'in_namelist' and 'FL_PROCEDURE' because the symbol info
	is not available to exclude function result variables.
	* trans-io.c (nml_get_addr_expr): Use the fake result decl
	if the symbol is an implicit result variable.

2007-05-11 Paul Thomas <pault@gcc.gnu.org>

	PR fortran/30878
	* gfortran.dg/namelist_29.f90: New test.

From-SVN: r124615
2007-05-11 11:42:56 +00:00
Paul Thomas
a34437a1da re PR fortran/31630 (ICE on nasty derived types code)
2007-05-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31630
	* resolve.c (resolve_symbol): Remove the flagging mechanism from the
	formal namespace resolution and instead check that the formal
	namespace is not the current namespace.

From-SVN: r124550
2007-05-08 14:40:58 +00:00
Paul Thomas
8111a921e9 re PR fortran/31540 ([Regression 4.2 only] character((constant expression)) for external function)
2007-05-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31540
	* resolve.c (resolve_fl_procedure): Resolve constant character
	lengths.

2007-05-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31540
	* gfortran.dg/char_result_4.f90: New test.

From-SVN: r124475
2007-05-06 15:12:01 +00:00
Tobias Burnus
29ea08dac3 re PR fortran/31668 (%VAL rejected for PROC_MODULE and PROC_INTERNAL procedures)
fortran/
2007-04-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/31668
	* error.c (error_print): Fix %% support.
	* intrinsic.c (sort_actual): Improve error message.
	* resolve.c (resolve_actual_arglist): Allow %VAL for
	interfaces defined in the module declaration part.

testsuite/
2007-04-25  Tobias Burnus  <burnus@net-b.de>

	PR fortran/31668
	* gfortran.dg/c_by_val_2.f90: Add rejection test of %VAL with
	statement functions.
	* gfortran.dg/c_by_val_5.f90: New test.

From-SVN: r124147
2007-04-25 10:32:21 +02:00
Paul Thomas
6e0d7c6e0d re PR fortran/31630 (ICE on nasty derived types code)
2007-04-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31630
	* resolve.c (resolve_symbol): Allow resolution of formal
	namespaces nested within formal namespaces coming from modules.

	PR fortran/31620
	* trans-expr.c (gfc_trans_assignment): Make the call to
	gfc_trans_zero_assign conditional on the lhs array ref being
	the only reference.

2007-04-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31630
	* gfortran.dg/used_types_17.f90: New test.

	PR fortran/31620
	* gfortran.dg/zero_array_components_1.f90: New test.

From-SVN: r124069
2007-04-23 15:13:48 +00:00