Commit Graph

90 Commits

Author SHA1 Message Date
Jerry DeLisle
be9c3c6e93 re PR libfortran/34209 (run-time lib: NEAREST(0.0_8, -1.0) produces wrong numbers)
2007-11-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/34209
	* iresolve.c (gfc_resolve_nearest): If sign variable kind does not match
	kind of input variable, convert it to match.

	PR fortran/33317
	* trans.h: Modify prototype for gfc_conv_missing_dummy.
	* trans-expr.c (gfc_conv_missing_dummy): Modify to pass an integer kind
	parameter in.  Set the type of the dummy to the kind given.
	(gfc_conv_function_call): Pass representation.length to
	gfc_conv_missing_dummy.
	* iresolve.c (gfc_resolve_cshift): Determine the correct kind to use and
	if appropriate set representation.length to this kind value.
	(gfc_resolve_eoshift): Likewise.
	* check.c (gfc_check_cshift): Enable dim_check to allow DIM as an
	optional argument. (gfc_check_eoshift): Likewise.
	* trans_intrinsic.c (gfc_conv_intrinsic_function_args): Update call to
	gfc_conv_missing_dummy.

From-SVN: r130391
2007-11-24 00:25:01 +00:00
Jerry DeLisle
e76e6ce3ff re PR fortran/33317 (CSHIFT/EOSHIFT: Rejects optional dummy for DIM=)
2007-11-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33317
	* trans-expr.c (gfc_conv_missing_dummy): Revert.
	* iresolve.c (gfc_resolve_cshift): Revert.
	(gfc_resolve_eoshift): Likewise.
	* check.c (gfc_check_cshift): Revert.
	(gfc_check_eoshift): Likewise.

From-SVN: r130304
2007-11-20 01:37:43 +00:00
Jerry DeLisle
33717d596b trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy argument to default integer if flagged to do so.
2007-11-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy
	argument to default integer if flagged to do so. Fix typo in comment.
	* resolve.c (gfc_resolve_dim_arg): Whitespace cleanup.
	* iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute
	for converting the DIM type appropriately in trans-expr.c.
	(gfc_resolve_eoshift): Likewise.
	* check.c (dim_check): Remove pre-existing dead code.
	(gfc_check_cshift): Enable dim_check to allow DIM as an optional.
	(gfc_check_eoshift): Likewise.
	* trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace.

From-SVN: r130276
2007-11-18 20:53:16 +00:00
Jerry DeLisle
15ead8598a re PR fortran/33162 (INTRINSIC functions as ACTUAL argument)
2007-10-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/33162
	* intrinsic.h: Add prototypes for four new functions, gfc_check_datan2,
	gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd.
	* intrinsic.c (add_functions): Add double precision checks for dabs,
	dacos, dacosh, dasin, dasinh, datan, datanh, datan2, dbesj0, dbesj1,
	dbesy0, dbesy1, dcos, dcosh, ddim, derf, derfc, dexp, dgamma,
	dlgama, dlog, dlog10, dmod, dsign, dsin, dsinh, dsqrt, dtan, and dtanh.
	Add real check dprod.
	* check.c (gfc_check_datan2): New function to check for double precision
	argumants. (gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd): Ditto.

From-SVN: r129673
2007-10-27 00:54:20 +00:00
Tobias Schlüter
7e49f96537 arith.c (reduce_binary_aa): Fix capitalization.
fortran/
* arith.c (reduce_binary_aa): Fix capitalization.
* check.c (gfc_check_dot_product): Likewise.
(gfc_check_matmul): Likewise.
* expr.c (gfc_check_conformance): Likewise.
(gfc_check_assign): Likewise.
(gfc_default_initializer): Simplify logic.
* trans.c (gfc_msg_bounds): Make const.
(gfc_msg_fault): Likewise.
(gfc_msg_wrong_return): Likewise.
* trans.h: Add const to corresponding extern declarations.
testsuite/
* gfortran.dg/array_initializer_3.f90: Adapt error annotations for
fixed capitalizations.
* gfortran.dg/compliant_elemental_intrinsics_1.f90: Likewise.
* gfortran.dg/compliant_elemental_intrinsics_2.f90: Likewise.
* gfortran.dg/elemental_subroutine_4.f90: Likewise.
* gfortran.dg/intrinsic_argument_conformance_1.f90: Likewise.
* gfortran.dg/maxloc_shape_1.f90: Likewise.
* gfortran.dg/maxval_maxloc_conformance_1.f90: Likewise.
* gfortran.dg/min_max_conformance.f90: Likewise.

From-SVN: r128849
2007-09-27 23:27:51 +02:00
Tobias Burnus
90d3112688 re PR fortran/33455 (MERGE intrinsic: Check for same string lengths)
2007-09-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/33455
        * check.c (check_same_strlen): New function.
        (gfc_check_merge): Use it.

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

        PR fortran/33455
        * gfortran.dg/merge_char_3.f90: New.

From-SVN: r128647
2007-09-21 12:44:20 +02:00
Tobias Burnus
7ab8865432 re PR fortran/33297 (SIZE intrinsic crashes gfortran on invalid usage)
2007-09-12  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33297
	* check.c (scalar_check): Move up in the file.
	(kind_check): Call scalar_check.
	(dim_check): If optional, do not call nonoptional_check; use
	bool for optional.
	(gfc_check_all_any,gfc_check_count,gfc_check_cshift,gfc_check_eoshift,
	gfc_check_lbound,gfc_check_minloc_maxloc,check_reduction,
	gfc_check_spread,gfc_check_ubound): Use true/false instead of 0/1
	for dim_check; honor changed meaning of optional.
	(gfc_check_int): Replace checks by kind_check.
	(gfc_check_size): Replace checks by dim_check.

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

	PR fortran/33297
	* gfortran.dg/intrinsic_size.f90: New.

From-SVN: r128424
2007-09-12 12:30:22 +02:00
Francois-Xavier Coudert
ed8315d5fc re PR libfortran/32989 (GETARG intrinsic)
PR fortran/32989

	* iresolve.c (gfc_resolve_getarg): Handle non-default integer
	kinds.
	* check.c (gfc_check_getarg): New function
	* intrinsic.h: Add prototype for gfc_check_getarg.
	* intrinsic.c (add_subroutines): Add reference to gfc_check_getarg.
	* intrinsic.texi (GETARG): Adjust documentation.

	* gfortran.fortran-torture/execute/getarg_1.f90: Add check for
	non-default integer kind arguments.

From-SVN: r127905
2007-08-29 15:22:55 +00:00
Francois-Xavier Coudert
719e72fb6f re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
PR fortran/29600

	* intrinsic.c (add_functions): Add optional KIND argument to ACHAR.
	* iresolve.c (gfc_resolve_achar): Handle the KIND argument.
	* check.c (gfc_check_achar): Check for the optional KIND argument.
	* simplify.c (gfc_simplify_achar): Use KIND argument.
	* intrinsic.h (gfc_check_achar, gfc_simplify_achar,
	gfc_resolve_achar): Adjust prototypes.

	* gfortran.dg/intrinsics_kind_argument_1.f90: Add test for ACHAR
	intrinsic.

From-SVN: r127385
2007-08-12 21:21:08 +00:00
Francois-Xavier Coudert
34b4bc5c61 re PR fortran/30964 (optional arguments to random_seed)
PR fortran/30964
	PR fortran/33054

	* trans-expr.c (gfc_conv_function_call): When no formal argument
	list is available, we still substitute missing optional arguments.
	* check.c (gfc_check_random_seed): Correct the check on the
	number of arguments to RANDOM_SEED.
	* intrinsic.c (add_subroutines): Add a resolution function to
	RANDOM_SEED.
	* iresolve.c (gfc_resolve_random_seed): New function.
	* intrinsic.h (gfc_resolve_random_seed): New prototype.

	* intrinsics/random.c (random_seed): Rename into random_seed_i4.
	(random_seed_i8): New function.
	* gfortran.map (GFORTRAN_1.0): Remove _gfortran_random_seed,
	add _gfortran_random_seed_i4 and _gfortran_random_seed_i8.
	* libgfortran.h (iexport_proto): Replace random_seed by
	random_seed_i4 and random_seed_i8.
	* runtime/main.c (init): Call the new random_seed_i4.

	* gfortran.dg/random_4.f90: New test.
	* gfortran.dg/random_5.f90: New test.
	* gfortran.dg/random_6.f90: New test.
	* gfortran.dg/random_7.f90: New test.

From-SVN: r127383
2007-08-12 20:45:29 +00:00
Francois-Xavier Coudert
5cda509805 re PR fortran/29600 ([F03] MINLOC and MAXLOC take an optional KIND argument)
PR fortran/29600

	* intrinsic.c (add_functions): Add KIND arguments to COUNT,
	IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND
	and VERIFY.
	* iresolve.c (gfc_resolve_count): Add kind argument.
	(gfc_resolve_iachar): New function.
	(gfc_resolve_ichar): Add kind argument.
	(gfc_resolve_index_func): Likewise.
	(gfc_resolve_lbound): Likewise.
	(gfc_resolve_len): Likewise.
	(gfc_resolve_len_trim): Likewise.
	(gfc_resolve_scan): Likewise.
	(gfc_resolve_size): New function.
	(gfc_resolve_ubound): Add kind argument.
	(gfc_resolve_verify): Likewise.
	* trans-decl.c (gfc_get_extern_function_decl): Allow specific
	intrinsics to have 4 arguments.
	* check.c (gfc_check_count): Add kind argument.
	(gfc_check_ichar_iachar): Likewise.
	(gfc_check_index): Likewise.
	(gfc_check_lbound): Likewise.
	(gfc_check_len_lentrim): New function.
	(gfc_check_scan): Add kind argument.
	(gfc_check_size): Likewise.
	(gfc_check_ubound): Likewise.
	(gfc_check_verify): Likewise.
	* intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR,
	INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY.
	* simplify.c (get_kind): Whitespace fix.
	(int_expr_with_kind): New function.
	(gfc_simplify_iachar): Add kind argument.
	(gfc_simplify_iachar): Likewise.
	(gfc_simplify_ichar): Likewise.
	(gfc_simplify_index): Likewise.
	(simplify_bound_dim): Likewise.
	(simplify_bound): Likewise.
	(gfc_simplify_lbound): Likewise.
	(gfc_simplify_len): Likewise.
	(gfc_simplify_len_trim): Likewise.
	(gfc_simplify_scan): Likewise.
	(gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size.
	(gfc_simplify_size): Add kind argument.
	(gfc_simplify_ubound): Likewise.
	(gfc_simplify_verify): Likewise.
	* intrinsic.h: Update prototypes and add new ones.
	* trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into
	gfc_conv_intrinsic_index_scan_verify.
	(gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove.
	(gfc_conv_intrinsic_function): Call
	gfc_conv_intrinsic_index_scan_verify to translate the INDEX,
	SCAN and VERIFY intrinsics.

	* gfortran.dg/intrinsics_kind_argument_1.f90: New test.
	* gfortran.dg/pure_dummy_length_1.f90: Adapt to new error wording.

From-SVN: r127380
2007-08-12 19:57:01 +00:00
Francois-Xavier Coudert
2263c77558 re PR fortran/29828 ([F2003] MIN and MAX with character variables)
PR fortran/29828

	* trans.h (gfor_fndecl_string_minmax): New prototype.
	* trans-decl.c (gfor_fndecl_string_minmax): New variable.
	(gfc_build_intrinsic_function_decls): Create gfor_fndecl_string_minmax.
	* check.c (gfc_check_min_max): Allow for character arguments.
	* trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): New function.
	(gfc_conv_intrinsic_function): Add special case for MIN and MAX
	intrinsics with character arguments.
	* simplify.c (simplify_min_max): Add simplification for character
	arguments.

	* intrinsics/string_intrinsics.c (string_minmax): New function
	and prototype.
	* gfortran.map (GFORTRAN_1.0): Add _gfortran_string_minmax

	* gfortran.dg/minmax_char_1.f90: New test.
	* gfortran.dg/minmax_char_2.f90: New test.
	* gfortran.dg/min_max_optional_4.f90: New test.

From-SVN: r127252
2007-08-06 20:47:17 +00:00
Francois-Xavier Coudert
3d97b1af3f re PR fortran/32979 (Implement vendor-specific ISNAN() intrinsic function)
PR fortran/32979

        * intrinsic.h (gfc_check_isnan): Add prototype.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN.
        * intrinsic.c (add_functions): Add ISNAN intrinsic.
        * check.c (gfc_check_isnan): New function.
        * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function.
        (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan
        to translate ISNAN.
        * intrinsic.texi: Document ISNAN.

        * gfortran.dg/isnan_1.f90: New test.

Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>

From-SVN: r127224
2007-08-05 10:18:38 +00:00
Tobias Burnus
b8a0d3cfd7 re PR fortran/32936 (ALLOCATE: "STAT expression ... must be a variable" - but it is one)
2007-08-01  Tobias Burnus  <burnus@net-b.de>

       PR fortran/32936
       * match.c (gfc_match_allocate): Better check that STAT is
       a variable.

       * check.c (gfc_check_allocated): Reorder checks to improve
       error message.

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

       PR fortran/32936
       * gfortran.dg/allocate_stat.f90: New.

From-SVN: r127135
2007-08-01 19:55:24 +02: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
Daniel Franke
e1633d825d re PR fortran/29962 (Initialization expressions)
gcc/fortran:
2007-07-22  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/29962
	PR fortran/31253
	PR fortran/31265
	PR fortran/31639
	* gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure,
	generic, specific, actual_ok, noreturn into bits of a bitfield, 
	added bits for inquiry, transformational, conversion.
	* check.c (non_init_transformational): Removed, removed all callers.
	* intrinsic.c (enum class): New.
	(add_sym*): Replaced argument elemetal by enum class. Changed all
	callers.
	(add_functions): Assign appropriate classes to intrinsic functions.
	(add_subroutines): Assign appropriate classes to intrinsic subroutines.
	(add_conv): Set conversion attribute.
	(gfc_init_expr_extensions): Removed, removed all callers.
	(gfc_intrinsic_func_interface): Reimplemented check for non-standard
	initializatione expressions.
	* expr.c (check_specification_function): New.
	(gfc_is_constant_expr): Added check for specification functions.
	(check_init_expr_arguments): New.
	(check_inquiry): Changed return value to MATCH, added checks for
	inquiry functions defined by F2003.
	(check_transformational): New.
	(check_null): New.
	(check_elemental): New.
	(check_conversion): New.
	(check_init_expr): Call new check functions, add more specific error
	messages.

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

	PR fortran/29962
	* gfortran.dg/array_initializer_1.f90: Removed warning.
	* gfortran.dg/initialization_1.f90: Adjusted messages.
	* gfortran.dg/nested_modules_6.f90: Removed warning.

	PR fortran/31253
	* gfortran.dg/initialization_7.f90: New test.

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

From-SVN: r126826
2007-07-22 12:31:11 -04:00
Tobias Schlüter
fd2157ce09 gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF.
2007-05-28  Tobias Schlter  <tobi@gcc.gnu.org>
fortran/
* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF.
* intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic.
* intrinsic.h (gfc_check_sizeof): Add prototype of ...
* check.c (gfc_check_sizeof): .. new function.
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function.
(gfc_conv_intrinsic_strcmp): Whitespace fix.
(gfc_conv_intrinsic_array_transfer): Remove double initialization,
use fold_build. where appropriate.
(gfc_conv_intrinsic_function): Add case for SIZEOF.
* intrinsic.texi: Add documentation for SIZEOF.
testsuite/
* gfortran.dg/sizeof.f90: New.

From-SVN: r125161
2007-05-29 11:03:03 +02:00
Brooks Moses
3b45d6c489 PR 31972/fortran
PR 31972/fortran
* target-memory.c (gfc_target_expr_size): Add handling
for size of BT_HOLLERITH variables.
* check.c (gfc_check_transfer): Reject BT_HOLLERITH
variables in MOLD argument of TRANSFER.

From-SVN: r125141
2007-05-28 13:53:09 -07:00
Daniel Franke
6495bc0b8d re PR fortran/32001 (MAX intrinsic with large number of arguments)
gcc/fortran:
2007-05-20  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/32001
        * check.c (check_rest): Improved argument conformance check and
        fixed error message generation.


gcc/testsuite:
2007-05-20  Daniel Franke  <franke.daniel@gmail.org>

	PR fortran/32001
	* gfortran.dg/min_max_conformance.f90: Added more testcases.

From-SVN: r124869
2007-05-20 06:22:15 -04:00
Daniel Franke
0881653ce2 re PR fortran/31919 ([4.1/4.2 only] min/max do not check array conformance)
gcc/fortran:
2007-05-15  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/31919
        PR fortran/31929
        PR fortran/31930
        * intrinsic.c (check_specific): Check elemental intrinsics for
        rank and shape.
        (add_functions): Fixed dummy argument names of BESJN and BESYN.
        Fixed elemental status of MCLOCK and MCLOCK8.
        * check.c (check_rest): Added check for array conformance.
        (gfc_check_merge): Removed check for array conformance.
        (gfc_check_besn): Removed check for scalarity.
        * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos.
        (BESJN, BESYN): Clarified documentation.

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

        PR fortran/31919
        * gfortran.dg/min_max_conformance.f90: New test.

From-SVN: r124794
2007-05-17 08:37:24 -04:00
Daniel Franke
640afd95c0 re PR libfortran/31760 (missing elemental applicability)
gcc/fortran:
2007-05-04  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/31760
        * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
        by gfc_check_fn_r to avoid checks for scalarity.
        * check.c (gfc_check_besn): Removed check for scalarity.
        (gfc_check_g77_math1): Removed.
        * intrinsic.h (gfc_check_g77_math1): Removed.

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

        PR fortran/31760
        * gfortran.dg/erf.f90: New test.
        * gfortran.dg/besxy.f90: New test.


[gcc/fortran/ChangeLog was already committed in r124441 by accident]

From-SVN: r124446
2007-05-04 15:24:43 -04:00
Daniel Franke
ec3785669d check.c (gfc_check_fseek_sub): Fixed typo.
2007-05-04  Daniel Franke  <franke.daniel@gmail.com>

	* check.c (gfc_check_fseek_sub): Fixed typo.

From-SVN: r124440
2007-05-04 14:08:42 -04:00
Daniel Franke
dcdc26dfd5 re PR target/22539 (Internal compiler error with maximum sized array)
gcc/fortran:
2007-05-04  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/22539
	* intrinsic.c (add_subroutines): Added FSEEK.
	* intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
	* iresolve.c (gfc_resolve_fseek_sub): New.
	* check.c (gfc_check_fseek_sub): New.
	* intrinsic.texi (FSEEK): Updated.

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

	PR fortran/22539
	* gfortran.dg/fseek.f90: New test.

libgfortran:
2007-05-04  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/22539
	* io/intrinsics.c (fseek_sub): New.
	* io/unix.c (fd_fseek): Change logical and physical offsets only
	if seek succeeds.
	* gfortran.map (fseek_sub): New.

From-SVN: r124437
2007-05-04 14:02:18 -04:00
Paul Thomas
909a3e38aa re PR fortran/31222 (Rejected: implicitly-typed dummys used in initialization expressions)
2007-04-07  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/31222
	* check.c (numeric_check): If an expresson has not got a type,
	see if it is a symbol for which a default type applies.

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

	PR fortran/31222
	* gfortran.dg/default_numeric_type_1.f90: New test.

From-SVN: r123643
2007-04-07 20:20:49 +00:00
Daniel Franke
32af37843c re PR fortran/30947 (intrinsic: ALARM)
2007-03-08  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/30947
	* check.c (gfc_check_alarm_sub): Added check for default integer 
	kind of status argument.
	* iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
	status argument.
	* intrinsic.texi (ALARM): Extended documentation.

From-SVN: r122715
2007-03-08 16:45:22 -05:00
Paul Thomas
93a12e361d re PR fortran/30882 ([4.1 and 4.2 only] size with initialization expression value for dim= is rejected)
2007-03-03  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/30882
	* check.c (dim_rank_check): The shape of subsections of
	assumed-size arrays is known.

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

        PR fortran/30882
	* gfortran.dg/size_dim.f90: New test.

--         Diese und die folgenden Zeilen werden ignoriert --

M    gcc/testsuite/ChangeLog
A    gcc/testsuite/gfortran.dg/size_dim.f90
M    gcc/fortran/ChangeLog
M    gcc/fortran/check.c

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

From-SVN: r122503
2007-03-03 11:43:25 +01:00
Steven G. Kargl
65f8144a80 [multiple changes]
2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>

        * array.c, bbt.c, check.c:  Update copyright years.  Whitespace.


2006-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>

        * gfortran.dg/present_1.f90:  Update error message.

From-SVN: r120542
2007-01-07 00:28:29 +00:00
Brooks Moses
c79441520f re PR fortran/30371 (kill suboutine accepts (invalid) array arguments.)
PR 30371
* check.c (gfc_check_kill_sub): Add checks for non-scalar
arguments.

From-SVN: r120468
2007-01-04 17:40:06 -08:00
Paul Thomas
d8d8121add re PR fortran/29758 (Runtime segfault in RESHAPE with insufficient elements in SOURCE)
2006-11-10 Paul Thomas <pault@gcc.gnu.org>

   PR fortran/29758
   * check.c (gfc_check_reshape): Check that there are enough
   elements in the source array as to be able to fill an array
   defined by shape, when pad is absent.


2006-11-10 Paul Thomas <pault@gcc.gnu.org>

   PR fortran/29758
   * gfortran.dg/reshape_source_size_1.f90: New test.

From-SVN: r118664
2006-11-10 21:06:42 +00:00
Brooks Moses
f5bf550c9d * check.c (same_type_check): Typo fix in comment.
From-SVN: r118647
2006-11-09 19:38:43 -08:00
Paul Thomas
5046aff56b [multiple changes]
2006-10-05  Erik Edelmann <edelmann@gcc.gnu.org>
	    Paul Thomas <pault@gcc.gnu.org>

	PR fortran/20541
	* interface.c (gfc_compare_derived_types): Add comparison of
	the allocatable field.
	* intrinsic.c (add_subroutines): Add MOVE_ALLOC.
	* trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign,
	gfc_trans_subcomponent_assign, gfc_conv_string_parameter,
	gfc_trans_scalar_assign): Add extra arguments l_is_temp
	and r_is_var to references to latter function.
	(gfc_conv_function_call): Add enum for types of argument and
	an associated variable parm_kind. Deallocate components of
	INTENT(OUT) and non-variable arrays.
	(gfc_trans_subcomponent_assign): Add block to assign arrays
	to allocatable components.
	(gfc_trans_scalar_assign): Add block to handle assignments of
	derived types with allocatable components, using the above new
	arguments to control allocation/deallocation of memory and the
	copying of allocated arrays.
	* trans-array.c (gfc_array_allocate): Remove old identification 
	of pointer and replace with that of an allocatable array. Add
	nullify of structures with allocatable components. 
	(gfc_conv_array_initializer): Treat EXPR_NULL.
	(gfc_conv_array_parameter): Deallocate allocatable components
	of non-variable structures.
	(gfc_trans_dealloc_allocated): Use second argument of library
	deallocate to inhibit, without error, freeing NULL pointers.
	(get_full_array_size): New function to return the size of a
	full array.
	(gfc_duplicate_allocatable): New function to allocate and copy
	allocated data.
	(structure_alloc_comps): New recursive function to deallocate,
	nullify or copy allocatable components.
	(gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp,
	gfc_copy_alloc_comp): New interface functions to call previous.
	(gfc_trans_deferred_array): Add the code to nullify allocatable
	components, when entering scope, and to deallocate them on
	leaving. Do not call gfc_trans_static_array_pointer and return
	for structures with allocatable components and default
	initializers.
	* symbol.c (gfc_set_component_attr): Set allocatable field.
	(gfc_get_component_attr): Set the allocatable attribute.
	* intrinsic.h : Prototype for gfc_check_move_alloc.
	* decl.c (build_struct): Apply TR15581 constraints for
	allocatable components.
	(variable_decl): Default initializer is always NULL for
	allocatable components.
	(match_attr_spec): Allow, or not, allocatable components,
	according to the standard in force.
	* trans-array.h : Prototypes for gfc_nullify_alloc_comp,
	gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and
	gfc_duplicate_allocatable.
	* gfortran.texi : Add mention of TR15581 extensions.
	* gfortran.h : Add attribute alloc_comp, add
	gfc_components field allocatable and add the prototype
	for gfc_expr_to_initialize.
	* trans-stmt.c (generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp, gfc_trans_where_assign,
	gfc_trans_where_3): Add extra arguments to calls to
	gfc_trans_scalar_assign and set appropriately.
	(gfc_trans_allocate): Nullify allocatable components.
	(gfc_trans_deallocate): Deallocate to ultimate allocatable
	components but stop at ultimate pointer components.
	* module.c (mio_symbol_attribute, mio_symbol_attribute,
	mio_component): Add module support for allocatable
	components.
	* trans-types.c (gfc_get_derived_type): Treat allocatable
	components.
	* trans.h : Add two boolean arguments to
	gfc_trans_scalar_assign.
	* resolve.c (resolve_structure_cons): Check conformance of
	constructor element and the component.
	(resolve_allocate_expr): Add expression to nullify the
	constructor expression for allocatable components.
	(resolve_transfer): Inhibit I/O of derived types with
	allocatable components.
	(resolve_fl_derived): Skip check of bounds of allocatable
	components.
	* trans-decl.c (gfc_get_symbol_decl): Add derived types
	with allocatable components to deferred variable.
	(gfc_trans_deferred_vars): Make calls for derived types
	with allocatable components to gfc_trans_deferred_array.
	(gfc_generate_function_code): Nullify allocatable
	component function result on entry.
	* parse.c (parse_derived): Set symbol attr.allocatable if
	allocatable components are present.
	* check.c (gfc_check_allocated): Enforce attr.allocatable
	for intrinsic arguments.
	(gfc_check_move_alloc): Check arguments of move_alloc.
	* primary.c (gfc_variable_attr): Set allocatable attribute.
	* intrinsic.texi : Add index entry and section for
	for move_alloc.

	PR fortran/29115
	* resolve.c (resolve_structure_cons): It is an error if the
	pointer component elements of a derived type constructor are
	not pointer or target.


	PR fortran/29211
	* trans-stmt.c (generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp): Provide a string length for
	the temporary by copying that of the other side of the scalar
	assignment.


2006-10-05  Paul Thomas  <pault@gcc.gnu.org>
	    Erik Edelmann  <edelmann@gcc.gnu.org>

	PR libgfortran/20541
	* Makefile.in : Add move_alloc.
	* intrinsics/move_alloc.c: New function.
	* Makefile.am : Add move_alloc.



2006-10-05  Erik Edelmann  <edelmann@gcc.gnu.org>
	    Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20541
	* gfortran.dg/alloc_comp_basics_1.f90: New test.
	* gfortran.dg/alloc_comp_basics_2.f90: New test.
	* gfortran.dg/alloc_comp_assign_1.f90: New test.
	* gfortran.dg/alloc_comp_assign_2.f90: New test.
	* gfortran.dg/alloc_comp_assign_3.f90: New test.
	* gfortran.dg/alloc_comp_assign_4.f90: New test.
	* gfortran.dg/alloc_comp_constraint_1.f90: New test.
	* gfortran.dg/alloc_comp_constraint_2.f90: New test.
	* gfortran.dg/alloc_comp_constraint_3.f90: New test.
	* gfortran.dg/alloc_comp_constructor_1.f90: New test.
	* gfortran.dg/alloc_comp_constructor_2.f90: New test.
	* gfortran.dg/alloc_comp_initializer_1.f90: New test.
	* gfortran.dg/alloc_comp_std.f90: New test.
	* gfortran.dg/move_alloc.f90: New test.

	PR fortran/29115
	* gfortran.dg/derived_constructor_comps_2.f90: New test.

	PR fortran/29211
	* gfortran.dg/forall_char_dependencies_1.f90: New test.

From-SVN: r117558
2006-10-08 16:21:55 +00:00
Tobias Burnus
bec93d7937 re PR fortran/28585 (Fortran 2003: Support NEW_LINE intrinsic)
PR fortran/28585

	* intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic.
	* intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line
	prototypes.
	* check.c (gfc_check_new_line): New function.
	* simplify.c (gfc_simplify_new_line): New function.
	* intrinsic.texi: Document new_line intrinsic.

	* gfortran.dg/new_line.f90: New test.

From-SVN: r117555
2006-10-08 13:21:42 +00:00
Francois-Xavier Coudert
a119fc1ca8 intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
* intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
	(add_subroutines): Add LTIME, GMTIME and CHMOD.
	* intrinsic.h (gfc_check_access_func, gfc_check_chmod,
	gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift,
	gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod,
	gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
	gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS,
	GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT.
	* iresolve.c (gfc_resolve_access, gfc_resolve_chmod,
	gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
	gfc_resolve_gmtime, gfc_resolve_ltime): New functions.
	* check.c (gfc_check_access_func, gfc_check_chmod,
	gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function.
	(gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*.

	* intrinsics/date_and_time.c: Add functions for GMTIME and LTIME.
	* intrinsics/access.c: New file.
	* intrinsics/chmod.c: New file.
	* configure.ac: Add checks for <sys/wait.h>, access, fork,execl
	and wait.
	* Makefile.am: Add new files intrinsics/access.c and
	intrinsics/chmod.c.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

	* gcc/testsuite/gfortran.dg/chmod_3.f90: New test.
	* gcc/testsuite/gfortran.dg/ltime_gmtime_1.f90: New test.
	* gcc/testsuite/gfortran.dg/ltime_gmtime_2.f90: New test.
	* gcc/testsuite/gfortran.dg/lrshift_1.f90: New test.
	* gcc/testsuite/gfortran.dg/chmod_1.f90: New test.
	* gcc/testsuite/gfortran.dg/chmod_2.f90: New test.

From-SVN: r115825
2006-07-30 20:48:00 +00:00
François-Xavier Coudert
bf3fb7e43c intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG, LSTAT, MCLOCK and MCLOCK8 intrinsic functions.
* intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG,
	LSTAT, MCLOCK and MCLOCK8 intrinsic functions.
	(add_subroutines): Add LSTAT intrinsic subroutine.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2,
	GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK
	and GFC_ISYM_MCLOCK8.
	* iresolve.c (gfc_resolve_int2, gfc_resolve_int8,
	gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock,
	gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions.
	* check.c (gfc_check_intconv): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
	the added GFC_ISYM_*.
	* simplify.c (gfc_simplify_intconv, gfc_simplify_int2,
	gfc_simplify_int8, gfc_simplify_long): New functions.
	* intrinsic.h (gfc_check_intconv, gfc_simplify_int2,
	gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2,
	gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat,
	gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub):
	Add prototypes.

	* gfortran.dg/mclock.f90: New test.
	* gfortran.dg/int_conv_1.f90: New test.
	* gfortran.dg/stat_1.f90: New test.
	* gfortran.dg/stat_2.f90: New test.

	* configure.ac: Check for function clock.
	* Makefile.am: Compile new file intrinsics/clock.c.
	* intrinsics/clock.c: New file.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* intrinsics/stat.c: Rename the old stat_i?_sub functions to
	helper functions stat_i?_sub_0, and use them for both STAT and
	LSTAT.

From-SVN: r115754
2006-07-26 11:58:48 +00:00
Paul Thomas
72af9f0b51 re PR fortran/28174 (Corruption of multiple character arrays when passing array sections)
2006-07-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/28174
	* trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means
	that intent is INOUT (fixes regression).

	PR fortran/25097
	* check.c (check_present): The only permitted reference is a
	full array reference.

	PR fortran/20903
	* decl.c (variable_decl): Add error if a derived type is not
	from the current namespace if the namespace is an interface
	body.

2006-07-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25097
	* gfortran.dg/present_1.f90: New test.

	PR fortran/20903
	* gfortran.dg/interface_derived_type_1.f90: New test.

From-SVN: r115410
2006-07-13 05:07:35 +00:00
Francois-Xavier Coudert
12197210b4 intrinsic.c (add_subroutines): Add ITIME and IDATE.
* intrinsic.c (add_subroutines): Add ITIME and IDATE.
	* intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate,
	fc_resolve_itime): New protos.
	* iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions.
	* check.c (gfc_check_itime_idate): New function.
	* intrinsic.texi: Document the new intrinsics.

	* intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
	idate_i4,idate_i8): New functions.

	* gfortran.dg/itime_idate_1.f: New test.
	* gfortran.dg/itime_idate_2.f: New test.

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

From-SVN: r115173
2006-07-04 11:39:46 +00:00
Kazu Hirata
490060701c * check.c: Fix a comment typo.
From-SVN: r115101
2006-06-30 19:38:26 +00:00
Paul Thomas
a4a11197f9 re PR fortran/25049 (TRANSPOSE not allowed in initialisation expression)
2006-06-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25049
	PR fortran/25050
	* check.c (non_init_transformational): New function.
	(find_substring_ref): New function to signal use of disallowed
	transformational intrinsic in an initialization expression.
	(gfc_check_all_any): Call previous if initialization expr.
	(gfc_check_count): The same.
	(gfc_check_cshift): The same.
	(gfc_check_dot_product): The same.
	(gfc_check_eoshift): The same.
	(gfc_check_minloc_maxloc): The same.
	(gfc_check_minval_maxval): The same.
	(gfc_check_gfc_check_product_sum): The same.
	(gfc_check_pack): The same.
	(gfc_check_spread): The same.
	(gfc_check_transpose): The same.
	(gfc_check_unpack): The same.

	PR fortran/18769
	*intrinsic.c (add_functions): Add gfc_simplify_transfer.
	*intrinsic.h : Add prototype for gfc_simplify_transfer.
	*simplify.c (gfc_simplify_transfer) : New function to act as
	placeholder for eventual implementation.  Emit error for now.

	PR fortran/16206
	* expr.c (find_array_element): Eliminate condition on length of
	offset. Add bounds checking. Rearrange exit. Return try and
	put gfc_constructor result as an argument.
	(find_array_section): New function.
	(find_substring_ref): New function.
	(simplify_const_ref): Add calls to previous.
	(simplify_parameter_variable): Return on NULL expr.
	(gfc_simplify_expr): Only call gfc_expand_constructor for full
	arrays.

	PR fortran/20876
	* match.c (gfc_match_forall): Add missing locus to gfc_code.

2006-06-20  Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/28005
	* m4/matmul.m4: aystride = 1 does not uniquely detect the
	presence of a temporary transpose; an array element in the
	first dimension produces the same signature.  Detect this
	using the rank of a and add specific code.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.

2006-06-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16206
	* gfortran.dg/array_initializer_1.f90: New test.

	PR fortran/28005
	* gfortran.dg/matmul_3.f90: New test.

From-SVN: r114802
2006-06-20 04:30:48 +00:00
Paul Thomas
6690a9e079 re PR fortran/14067 (no warning when character data statement overflows declared size)
2006-06-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/14067
	* data.c (create_character_intializer): Add warning message
	for truncated string.

	PR fortran/16943
	* symbol.c : Include flags.h.
	(gfc_add_type): If a procedure and types are the same do not
	throw an error unless standard is less than gnu or pedantic.

	PR fortran/20838
	* parse.c (parse_do_block): Error if named block do construct
	does not have a named enddo.

	PR fortran/27655
	* check.c (gfc_check_associated): Pick up EXPR_NULL for pointer
	as well as target and put error return at end of function.

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

	PR fortran/14067
	* gfortran.dg/data_char_1.f90: Add messages for truncated
	strings.

	PR fortran/16943
	* gfortran.dg/func_decl_2.f90: New test.

	PR fortran/20838
	* gfortran.dg/do_2.f90: New test.

	PR fortran/27655
	* gfortran.dg/associated_3.f90: New test.

From-SVN: r114385
2006-06-05 07:45:03 +00:00
Kazu Hirata
e2ae1407d3 check.c, [...]: Fix comment typos.
* check.c, expr.c, resolve.c, trans-common.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos.

From-SVN: r114170
2006-05-28 17:56:58 +00:00
Paul Thomas
476220e7ee re PR fortran/25746 (Elemental assignment gives wrong result)
2006-05-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25746
	* interface.c (gfc_extend_assign): Use new code EXEC_ASSIGN_CALL.
	* gfortran.h : Put EXEC_ASSIGN_CALL in enum.
	* trans-stmt.c (gfc_conv_elemental_dependencies): New function.
	(gfc_trans_call): Call it.  Add new boolian argument to flag
	need for dependency checking. Assert intent OUT and IN for arg1
	and arg2.
	(gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL.
	trans-stmt.h : Modify prototype of gfc_trans_call.
	trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL.
	st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL.
	* dependency.c (gfc_check_fncall_dependency): Don't check other
	against itself.

	PR fortran/25090
	* resolve.c : Remove resolving_index_expr.
	(entry_parameter): Remove.
	(gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Remove
	calls to entry_parameter and references to resolving_index_expr.

	PR fortran/27584
	* check.c (gfc_check_associated): Replace NULL assert with an
	error message, since it is possible to generate bad code that
	has us fall through to here..

	PR fortran/19015
	* iresolve.c (maxloc, minloc): If DIM is not present, pass the
	rank of ARRAY as the shape of the result.  Otherwise, pass the
	shape of ARRAY, less the dimension DIM.
	(maxval, minval): The same, when DIM is present, otherwise no
	change.

2006-05-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25746
	* gfortran.dg/elemental_subroutine_3.f90: New test.

	PR fortran/25090
	* gfortran.dg/entry_dummy_ref_1.f90: Remove.

	PR fortran/27584
	* gfortran.dg/associated_target_1.f90: New test.

	PR fortran/19015
	* gfortran.dg/maxloc_shape_1.f90: New test.

From-SVN: r113949
2006-05-21 07:35:05 +00:00
Tobias Schlüter
8f320bb097 check.c: Update copyright years.
* check.c: Update copyright years.

From-SVN: r111110
2006-02-15 13:42:16 +01:00
Tobias Schlüter
b98e315984 check.c (gfc_check_minloc_maxloc, [...]): Don't call dim_range_check on not-present optional dim argument.
* check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
	dim_range_check on not-present optional dim argument.

From-SVN: r111108
2006-02-15 12:02:21 +01:00
Thomas Koenig
ce99d59440 re PR fortran/25045 ([4.1 only] DIM argument of PRODUCT is not optional)
2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>

        PR fortran/25045
        * check.c (dim_check):  Perform all checks if dim is optional.
        (gfc_check_minloc_maxloc):  Use dim_check and dim_rank_check
        to check dim argument.
        (check_reduction):  Likewise.

2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>

        PR fortran/25045
        * optional_dim.f90:  New test.

From-SVN: r110994
2006-02-14 19:25:36 +00:00
Thomas Koenig
a89992356b re PR fortran/25075 ([4.1 only] array size mismatch in DOT_PRODUCT)
2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25075
	check.c (identical_dimen_shape):  New function.
	(check_dot_product):  Use identical_dimen_shape() to check sizes
	for dot_product.
	(gfc_check_matmul):  Likewise.
	(gfc_check_merge):  Check conformance between tsource and fsource
	and between tsource and mask.
	(gfc_check_pack):  Check conformance between array and mask.

2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25075
	intrinsic_argument_conformance_1.f90:  New test.

From-SVN: r110596
2006-02-04 22:11:57 +00:00
Thomas Koenig
17d761bbc8 re PR fortran/26039 (ICE with maxval)
2006-01-31  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/26039
	expr.c (gfc_check_conformance):  Reorder error message
	to avoid plural.
	check.c(gfc_check_minloc_maxloc):  Call gfc_check_conformance
	for checking arguments array and mask.
	(check_reduction):  Likewise.

2006-01-31  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/26039
	maxval_maxloc_conformance_1.f90:  New test.

From-SVN: r110453
2006-01-31 22:52:49 +00:00
Erik Edelmann
58c0774f29 re PR fortran/25292 (ASSOCIATED( func() ) rejected ?)
fortran/
2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25292
        * check.c (gfc_check_associated): Allow function results
        as actual arguments to ASSOCIATED.  Moved a misplaced
        comment.


testsuite/
2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/25292
        * gfortran.dg/associated_1.f90: New.

From-SVN: r108238
2005-12-08 16:56:10 +00:00
Francois-Xavier Coudert
991bb83249 re PR fortran/23912 (MOD function requires same kind arguments)
PR fortran/23912

	* iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
	gfc_resolve_modulo): When arguments have different kinds, fold
	the lower one to the largest kind.
	* check.c (gfc_check_a_p): Arguments of different kinds is not
	a hard error, but an extension.
	* simplify.c (gfc_simplify_dim, gfc_simplify_mod,
	gfc_simplify_modulo): When arguments have different kinds, fold
        the lower one to the largest kind.

	* gfortran.dg/modulo_1.f90: New test.

From-SVN: r107566
2005-11-27 14:01:36 +00:00
Francois-Xavier Coudert
5d723e5434 fget.c: New file.
* intrinsics/fget.c: New file.
	* intrinsics/ftell.c: New file.
	* io/unix.c (stream_offset): New function.
	* io/io.h: Add prototype for stream_offset.
	* Makefile.am: Add intrinsics/fget.c and intrinsics/ftell.c.
	* Makefile.in: Regenerate.

	* intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET,
	FPUTC, FPUT, AND, XOR and OR intrinsic functions.
	(add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic
	subroutines.
	* gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET,
	GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL,
	GFC_ISYM_OR, GFC_ISYM_XOR.
	* iresolve.c (gfc_resolve_and, gfc_resolve_complex,
	gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget,
	gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell,
	gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub,
	gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub):
	New functions.
	* check.c (gfc_check_complex, gfc_check_fgetputc_sub,
	gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput,
	gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions.
	* simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or,
	gfc_simplify_xor): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
	GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC,
	GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and
	GFC_ISYM_XOR.
	* intrinsic.h: Add prototypes for all functions added to iresolve.c,
	simplify.c and check.c.

	* gfortran.dg/complex_intrinsic_1.f90: New test.
	* gfortran.dg/complex_intrinsic_2.f90: New test.
	* gfortran.dg/fgetc_1.f90: New test.
	* gfortran.dg/fgetc_2.f90: New test.
	* gfortran.dg/fgetc_3.f90: New test.
	* gfortran.dg/ftell_1.f90: New test.
	* gfortran.dg/ftell_2.f90: New test.
	* gfortran.dg/gnu_logical_1.F: New test.
	* gfortran.dg/gnu_logical_2.f90: New test.

From-SVN: r106859
2005-11-13 09:33:19 +00:00
Francois-Xavier Coudert
3505981152 intrinsic.c (add_functions): Add ctime and fdate intrinsics.
* intrinsic.c (add_functions): Add ctime and fdate intrinsics.
	(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.
	* Makefile.am: Add ctime.c
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r106558
2005-11-06 10:17:04 +00:00