Commit Graph

1174 Commits

Author SHA1 Message Date
Alan Modra
c69cb92fa0 re PR fortran/24096 (huge() returns infinity for long doubles)
PR fortran/24096
	* trans-types.c (gfc_init_kinds): Use one less for max_exponent
	of IBM extended double format.

From-SVN: r107041
2005-11-16 07:03:48 +10:30
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
Paul Thomas
a5df14d4e5 re PR fortran/15976 (ICE: assertion failure in trans-array.c)
PR fortran/15976
* resolve.c (resolve_symbol): Disallow automatic arrays in module scope.
* gfortran.dg/automatic_module_variable.f90: New test.



Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r106777
2005-11-11 04:44:16 +00:00
Paul Thomas
9081e356a1 re PR fortran/24655 (ICE with statement function)
2005-11-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24655
	PR fortran/24755
	* match.c (recursive_stmt_fcn): Add checks that symtree exists
	for the expression to weed out inline intrinsic functions and
	parameters.

	PR fortran/24409
	* module.c (mio_symtree_ref): Correct the patch of 0923 so that
	a symbol is not substituted for by a the symbol for the module
	itself and to prevent the promotion of a formal argument.

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

	PR fortran/24655
	PR fortran/24755
	* gfortran.dg/recursive_statement_functions.f90: Add statement 
	functions using inline intrinsic functions and parameters to test
	that they no longer seg-fault.

	PR fortran/24409
	gfortran.dg/nested_modules_4.f90: New test.
	gfortran.dg/nested_modules_5.f90: New test.

From-SVN: r106756
2005-11-10 22:24:28 +00:00
Tobias Schlüter
c040ffff75 re PR fortran/24643 (Unclassifiable statement on implicitly typed character substring)
fortran/
PR fortran/24643
* primary.c (match_varspec): Check for implicitly typed CHARACTER
variables before matching substrings.

testsuite/
PR fortran/24643
* gfortran.dg/implicit_6.f90, gfortran.dg/implicit_7.f90: New.

From-SVN: r106753
2005-11-10 22:49:29 +01:00
Steven G. Kargl
378e957760 Fix typo in comment.
From-SVN: r106709
2005-11-09 21:40:11 +00:00
Erik Edelmann
a01db3bf1a re PR fortran/22607 (Elemental character functions don't work)
fortran/
2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/22607
        * trans-decl.c(build_function_decl): Don't set
        DECL_IS_PURE (fndecl) = 1 for return-by-reference
        functions.

testsuite/
2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/22607
        * gfortran-dg/pure_byref_1.f90: New.
        * gfortran-dg/pure_byref_2.f90: New.

From-SVN: r106683
2005-11-09 11:27:56 +00:00
Tobias Schlüter
30c0559542 dump-parse-tree.c: Fix comment typo, add a few blank lines.
* dump-parse-tree.c: Fix comment typo, add a few blank lines.
Also, reformat previous ChangeLog entry.

From-SVN: r106652
2005-11-08 21:01:50 +01:00
Steven G. Kargl
7accf123b2 * Update ChangeLog with the missing entry from my previous commit.
From-SVN: r106611
2005-11-07 20:44:38 +00:00
Steven G. Kargl
b3ae6c0f6b error.c: Use flag_fatal_error.
*error.c: Use flag_fatal_error.
    *invoke.texi:  Remove -Werror from list of options.

From-SVN: r106595
2005-11-07 16:37:10 +00:00
Paul Thomas
4075a94ef5 re PR fortran/24534 (PUBLIC derived types with private components)
2005-11-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24534
	* resolve.c (resolve_symbol): Exclude case of PRIVATE declared
	within derived type from error associated with PRIVATE type
	components within derived type.

	PR fortran/20838
	PR fortran/20840
	* gfortran.h: Add prototype for gfc_has_vector_index.
	* io.c (gfc_resolve_dt): Error if internal unit has a vector index.
	* expr.c (gfc_has_vector_index): New function to check if any of
	the array references of an expression have vector inidices.
	(gfc_check_pointer_assign): Error if internal unit has a vector index.

	PR fortran/17737
	* data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
	and replace by a standard dependent warning/error if overwriting an
	existing initialization.
	* decl.c (gfc_data_variable): Remove old error for already initialized
	variable and the unused error check for common block variables.  Add
	error for hots associated variable and standard dependent error for
	common block variables, outside of blockdata.
	* symbol.c (check_conflict): Add constraints for DATA statement.

2005-11-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24534
	gfortran.dg/private_type_2.f90: Modified to check that case with
	PRIVATE declaration within derived type is accepted.

	PR fortran/20838
	gfortran.dg/pointer_assign_1.f90: New test.

	PR fortran/20840
	* gfortran.dg/arrayio_0.f90: New test.

	PR fortran/17737
	gfortran.dg/data_initialized.f90: New test.
	gfortran.dg/data_constraints_1.f90: New test.
	gfortran.dg/data_constraints_2.f90: New test.

From-SVN: r106567
2005-11-06 20:05:12 +00:00
Janne Blomqvist
e5ef4b3bcb gfortran ChangeLog
2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind
	argument to transfer_array.
	(transfer_array_desc): Add kind argument.

testsuite ChangeLog:

2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* testsuite/gfortran.dg/large_real_kind_form_io_1.f90: New file.

libgfortran Changelog:

2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* io/io.h: Add argument to prototypes, add prototypes for
	size_from_*_kind functions.
	* io/list_read.c (read_complex): Add size argument, use
	it. 
	(list_formatted_read): Add size argument, cleanup.
	(list_formatted_read_scalar): Add size argument.
	(nml_read_obj): Fix for padding.
	* io/transfer.c: Add argument to transfer function pointer.
	(unformatted_read): Add size argument.
	(unformatted_write): Likewise.
	(formatted_transfer_scalar): Fix for padding with complex(10).
	(formatted_transfer): Add size argument, cleanup.
	(transfer_integer): Add size argument to transfer call.
	(transfer_real): Likewise.
	(transfer_logical): Likewise.
	(transfer_character): Likewise.
	(transfer_complex): Likewise.
	(transfer_array): New kind argument, use it.
	(data_transfer_init): Add size argument to formatted_transfer
	call.
	(iolength_transfer): Add size argument, cleanup.
	* io/write.c (write_complex): Add size argument, fix for padding
	with complex(10).
	(list_formatted_write): Add size argument, cleanup.
	(list_formatted_write_scalar): Add size argument, use it.
	(nml_write_obj): Fix for size vs. kind issue.
	* io/size_from_kind.c: New file.
	* Makefile.am: Add io/size_from_kind.c.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r106563
2005-11-06 20:28:22 +02: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
Kazu Hirata
831d781380 decl.c, [...]: Fix comment typos.
* decl.c, trans-decl.c: Fix comment typos.
	* gfortran.texi: Fix a typo.

From-SVN: r106534
2005-11-05 20:43:15 +00:00
Francois-Xavier Coudert
25fc05eb62 intrinsic.c (add_functions): Add function version of TTYNAM.
* intrinsic.c (add_functions): Add function version of TTYNAM.
	* intrinsic.h: Add prototypes for gfc_check_ttynam and
	gfc_resolve_ttynam.
	* gfortran.h: Add case for GFC_ISYM_TTYNAM.
	* iresolve.c (gfc_resolve_ttynam): New function.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
	for function call to library ttynam.
	* check.c (gfc_check_ttynam): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
	(): Call gfc_conv_intrinsic_ttynam.
	* trans.h: Add prototype for gfor_fndecl_ttynam.

	* intrinsics/tty.c (ttynam): New function.

From-SVN: r106522
2005-11-05 08:34:07 +00:00
Steven G. Kargl
33de49ea9f re PR fortran/24636 (gfortran: STOP without stop-code too noisy, regression w.r.t. g77)
PR fortran/24636
	* match.c (gfc_match_stopcode):  Set stop_code = -1.
	* runtime/stop.c (stop_numeric): Use stop_code = -1.

From-SVN: r106509
2005-11-04 22:18:22 +00:00
Francois-Xavier Coudert
a67ec6ab99 re PR fortran/18452 (Fortran options induces warning for fortran that needs preprocessing)
PR fortran/18452

	* gcc/fortran/lang-specs.h: Pass -lang-fortran to the preprocessor.

	* gcc/c.opt: Add a -lang-fortran option.
	* gcc/c-opts.c: Add a lang_fortran flag.
	(c_common_init_options): Handling the -lang-fortran option.
	(c_common_handle_option): Add a case for Fortran options in
	preprocessing. Remove cases for -ffixed-form and
	-ffixed-line-length. Add a case for -lang-fortran.

From-SVN: r106483
2005-11-04 08:29:16 +00:00
Andrew Pinski
eca18fb4b6 re PR fortran/18157 (ice-on-valid code, pointer to user-defined type, fold-struct.c)
2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/18157
        * gfortran.fortran-torture/compile/defined_type_1.f90: New test.
        * gfortran.fortran-torture/compile/defined_type_2.f90: New
        test.   
        * gfortran.fortran-torture/compile/defined_type_3.f90:
        New test.

2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/18157
        * trans-array.c (gfc_conv_resolve_dependencies): Use the correct
        type for the temporary array.
        * trans-expr.c (gfc_trans_assignment): Pass lss
        instead of lss_section
        to gfc_conv_resolve_dependencies to get the
        correct type.

From-SVN: r106396
2005-11-02 13:01:54 -08:00
Tobias Schlüter
c96cfa49c2 decl.c (gfc_match_entry): Function entries don't need an argument list if there's no RESULT clause.
fortran/
	* decl.c (gfc_match_entry): Function entries don't need an argument
	list if there's no RESULT clause.
testsuite/
	* gfortran.fortran-torture/execute/entry_9.f90: Revert previous
	change (r106358).

From-SVN: r106361
2005-11-02 01:04:28 +01:00
Tobias Schlüter
0be8cb80ee re PR fortran/24008 (gfortran too permissive about ENTRY syntax)
fortran/
	PR fortran/24008
	* decl.c (gfc_match_entry): Function entries need an argument list.
testsuite/
	PR fortran/24008
	* gfortran.dg/entry_5.f90: New.
	* gfortran.fortran-torture/execute/entry_9.f90: Fix syntax error.

From-SVN: r106358
2005-11-01 22:55:02 +01:00
Erik Edelmann
6a8697062c re PR fortran/24245 (-fdump-parse-tree gives ICE for CONTAINED functions)
fortran/
2005-11-01  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR 24245
        * trans.c (gfc_generate_code): Move code to create a main
        program symbol from here ...
        * parse.c (main_program_symbol): ... to this new
        function, setting the locus from gfc_current_locus
        instead of ns->code->loc.
        (gfc_parse_file):  Call main_program_symbol for main programs.

From-SVN: r106353
2005-11-01 21:40:06 +00:00
Tobias Schlüter
92119f26f7 re PR fortran/24404 (Poor Error Description, bad error order)
PR fortran/24404
	* resolve.c (resolve_symbol): Output symbol names in more error
	messages, clarify error message.

From-SVN: r106346
2005-11-01 21:05:54 +01:00
Tobias Schlüter
2e71c2a06e dump-parse-tree.c (show_symtree): Revert change unintentionally committed in r106246.
* dump-parse-tree.c (show_symtree): Revert change unintentionally
	committed in r106246.

From-SVN: r106341
2005-11-01 20:05:34 +01:00
Paul Thomas
53096259e6 re PR fortran/21565 (namelist in block data is illegal)
2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21565
	* symbol.c (check_conflict): An object cannot be in a namelist and in
	block data.

	PR fortran/18737
	* resolve.c (resolve_symbol): Set the error flag to
	gfc_set_default_type, in the case of an external symbol, so that
	an error message is emitted if IMPLICIT NONE is set.

	PR fortran/14994
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum.
	* check.c (gfc_check_secnds): New function.
	* intrinsic.c (add_functions): Add call to secnds.
	* iresolve.c (gfc_resolve_secnds): New function.
	* trans-intrinsic (gfc_conv_intrinsic_function): Add call to
	secnds via case GFC_ISYM_SECNDS.
	* intrinsic.texi: Add documentation for secnds.

2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/14994
	* libgfortran/intrinsics/date_and_time.c: Add interface to
	the functions date_and_time for the intrinsic function secnds.

2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21565
	gfortran.dg/namelist_blockdata.f90: New test.

	PR fortran/18737
	gfortran.dg/external_implicit_none.f90: New test.

	PR fortran/14994
	* gfortran.dg/secnds.f: New test.

From-SVN: r106317
2005-11-01 05:53:29 +00:00
Andreas Schwab
def6f17006 Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define.
* Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define.
	(GFORTRAN_CROSS_NAME): Remove.
	(fortran.install-common): Correctly install a cross compiler.
	(fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of
	GFORTRAN_CROSS_NAME.

From-SVN: r106256
2005-10-30 23:18:07 +00:00
Erik Edelmann
1367913544 gfortran.texi: Update contributors.
fortran/
2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>

        * gfortran.texi: Update contributors.

From-SVN: r106255
2005-10-30 22:48:26 +00:00
Erik Edelmann
d48734ef20 re PR fortran/18883 (ICE in gfc_finish_var_decl)
fortran/
2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/18883
        * trans-decl.c (gfc_finish_var_decl): Add decl to the
        current function, rather than the parent.  Make
        assertion accept fake result variables.
        * trans-expr.c (gfc_conv_variable): If the character
        length of an ENTRY isn't set, get the length from
        the master function instead.

testsuite
2005-10-30  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/18883
        * gfortran.dg/char_result_9.f90: New.
        * gfortran.dg/char_result_10.f90: New.

From-SVN: r106254
2005-10-30 22:43:45 +00:00
Thomas Koenig
ed146156e0 gfortran.texi: Remove reservations about I/O usability.
2005-10-30  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.texi:  Remove reservations about I/O usability.  Document
	that array intrinsics mostly work.

From-SVN: r106252
2005-10-30 21:38:25 +00:00
Tobias Schlüter
dda0f76478 Remove .cvsignore
From-SVN: r106250
2005-10-30 22:15:36 +01:00
Tobias Schlüter
a63dad5b08 gfortran.texi: Move license stuff to back.
* gfortran.texi: Move license stuff to back.  Add information
on ENUM and ENUMERATOR.
* invoke.texi: Document -fshort-enums.

From-SVN: r106249
2005-10-30 21:54:43 +01:00
Tobias Schlüter
25d8f0a283 arith.c (gfc_enum_initializer): New function.
fortran/
2005-10-30  Gaurav Gautam  <gauravga@noida.hcltech.com>
	    Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* arith.c (gfc_enum_initializer): New function.
	(gfc_check_integer_range): Made extern.
	* decl.c (enumerator_history): New typedef.
	(last_initializer, enum_history, max_enum): New variables.
	(create_enum_history, gfc_free_enum_history): New functions.
	(add_init_expr_to_sym): Call create_enum_history if parsing ENUM.
	(variable_decl): Modified to parse enumerator definition.
	(match_attr_spec): Add PARAMETER attribute to ENUMERATORs.
	(gfc_match_data_decl): Issues error, if match_type_spec do not
	return desired return values.
	(set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New
	functions.
	(gfc_match_end): Deal with END ENUM.
	* gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM
	added.
	(symbol_attribute): Bit field for enumerator added.
	(gfc_options): Add fshort_enums.
	(gfc_enum_initializer, gfc_check_integer_range): Add prototypes.
	* options.c: Include target.h
	(gfc_init_options): Initialize fshort_enums.
	(gfc_handle_option): Deal with fshort_enums.
	* parse.c (decode_statement): Match ENUM and ENUMERATOR statement.
	(gfc_ascii_statement): Deal with the enumerator statements.
	(parse_enum): New function to parse enum construct.
	(parse_spec): Added case ST_ENUM.
	* parse.h (gfc_compile_state): COMP_ENUM added.
	(gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history):
	Prototype added.
	* symbol.c (gfc_copy_attr): Copy enumeration attribute.
	* lang.opt (fshort-enums): Option added.

testsuite/
2005-10-30  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.dg/enum_10.f90, gfortran.dg/enum_10.c: New test.

2005-10-30  Gaurav Gautam  <gauravga@noida.hcltech.com>

	* gfortran.dg/enum_1.f90, gfortran.dg/enum_2.f90,
	gfortran.dg/enum_3.f90, gfortran.dg/enum_4.f90,
	gfortran.dg/enum_5.f90, gfortran.dg/enum_6.f90,
	gfortran.dg/enum_7.f90, gfortran.dg/enum_8.f90,
	gfortran.dg/enum_9.f90,
	gfortran.fortran-torture/compile/enum_1.f90,
	gfortran.fortran-torture/execute/enum_1.f90,
	gfortran.fortran-torture/execute/enum_2.f90,
	gfortran.fortran-torture/execute/enum_3.f90,
	gfortran.fortran-torture/execute/enum_4.f90: New tests.

From-SVN: r106246
2005-10-30 19:09:55 +01:00
Francois-Xavier Coudert
0d519038a0 check.c (gfc_check_malloc, [...]): New functions.
* check.c (gfc_check_malloc, gfc_check_free): New functions.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC.
	* intrinsic.c (add_functions): Add symbols for MALLOC function.
	(add_subroutines): Add symbol for FREE subroutine.
	* intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free,
	gfc_resolve_malloc and gfc_resolve_free.
	* intrinsic.texi: Add doc for FREE and MALLOC intrinsics.
	* iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New
	functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for
	GFC_ISYM_MALLOC.

	* Makefile.am: Add intrinsics/malloc.c file.
	* Makefile.in: Regenerate.
	* intrinsics/malloc.c: New file, with implementations for free
	and malloc library functions.

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

From-SVN: r106016
2005-10-30 12:17:48 +00:00
Steven Bosscher
cf6ae9554d * gfortran.texi: Update contributors.
From-SVN: r106015
2005-10-30 11:15:27 +00:00
Steven Bosscher
55898b2c1b interface.c: Fix previous checkin (an incomplete patch was commited for me).
* interface.c: Fix previous checkin (an incomplete patch
	was commited for me).

From-SVN: r105992
2005-10-29 13:08:33 +00:00
Joseph Myers
318a2182fc * intrinsic.texi: Remove empty @cindex line.
From-SVN: r105986
2005-10-29 02:06:58 +01:00
Francois-Xavier Coudert
185d7d9750 check.c (gfc_check_alarm_sub, [...]): New functions.
* check.c (gfc_check_alarm_sub, gfc_check_signal,
	gfc_check_signal_sub): New functions.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL.
	* intrinsic.c (add_functions): Add signal intrinsic.
	(add_subroutines): Add signal and alarm intrinsics.
	* intrinsic.texi: Document the new intrinsics.
	* iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub,
	gfc_resolve_signal_sub): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add case
	for GFC_ISYM_SIGNAL.
	* intrinsic.h: Add prototypes for gfc_check_alarm_sub,
	gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal,
	gfc_resolve_alarm_sub, gfc_resolve_signal_sub.

	* Makefile.am (intrinsics): Add signal.c.
	* Makefile.in: Regenerate.
	* configure.ac: Checks for signal and alarm.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* intrinsics/signal.c: New file for SIGNAL and ALARM intrinsics.

From-SVN: r105967
2005-10-28 21:16:17 +00:00
Steven G. Kargl
9b46f94ffa re PR fortran/24545 (gfortran bug regarding interface block with named END INTERFACE statements)
PR fortran/24545
* interface.c (gfc_match_end_interface): Fix typo in INTERFACE_USER_OP case.

From-SVN: r105953
2005-10-28 20:05:56 +00:00
Francois-Xavier Coudert
4f8725d4e6 re PR fortran/15586 (gfortran should support i18n in its compiler messages)
PR fortran/15586
	* resolve.c (resolve_symbol): Remove the use of whynot, so that
	error messages are not built from pieces.

From-SVN: r105921
2005-10-26 11:02:00 +00:00
Paul Thomas
976e21f673 re PR fortran/24158 (ICE in f951 with nested, recursive derived types)
2005-10-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24158
	* decl.c (gfc_match_data_decl): Correct broken bit of code
	that prevents undefined derived types from being used as
	components of another derived type.
	* resolve.c (resolve_symbol): Add backstop error when derived
	type variables arrive here with a type that has no components.

2005-10-26  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24158
	gfortran.dg/derived_recursion.f90: New test.
	gfortran.dg/implicit_actual.f90: New test.

From-SVN: r105913
2005-10-26 05:20:19 +00:00
Jakub Jelinek
b122dc6a9a trans.h (gfc_conv_cray_pointee): Remove.
* trans.h (gfc_conv_cray_pointee): Remove.
	* trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change.
	* trans-array.c (gfc_conv_array_parameter): Likewise.
	* trans-decl.c (gfc_conv_cray_pointee): Remove.
	(gfc_finish_cray_pointee): New function.
	(gfc_finish_var_decl): Use it.  Don't return early for Cray
	pointees.
	(gfc_create_module_variable): Revert 2005-10-24 change.
	* decl.c (cray_pointer_decl): Update comment.
	* gfortran.texi: Don't mention Cray pointees aren't visible in the
	debugger.

	* symbol.c (check_conflict): Add conflict between cray_pointee
	and in_common resp. in_equivalence.
	* resolve.c (resolve_equivalence): Revert 2005-10-24 change.
testsuite/
	* gfortran.dg/cray_pointers_4.f90: New test.

	* module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE.
	(attr_bits): Likewise.
	(mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes.
	(mio_symbol): For cray_pointee write/read cp_pointer reference.
testsuite/
	* gfortran.dg/cray_pointers_5.f90: New test.

From-SVN: r105891
2005-10-25 20:43:22 +02:00
Feng Wang
910450c13f re PR fortran/22290 (Optimize Assigned GOTO to cause error with -O1 or higher)
2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/22290
	* trans-decl.c (gfc_add_assign_aux_vars): New function. Add two
	auxiliary variables.
	(gfc_get_symbol_decl): Use it when a variable, including dummy
	argument, is assigned a label.
	(gfc_trans_assign_aux_var): New function. Set initial value of
	the auxiliary variable explicitly.
	(gfc_trans_deferred_vars): Use it.
	* trans-stmt.c (gfc_conv_label_variable): Handle dummy argument.

2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/22290
	* gfortran.dg/assign_5.f90: New test.
	* gfortran.dg/assign_6.f: New test.

From-SVN: r105887
2005-10-25 14:06:22 +00:00
Asher Langton
83d890b9ba Commit for Asher Langton
PR fortran/17031
	PR fortran/22282

fortran/
	* check.c (gfc_check_loc) : New function
	* decl.c (variable_decl): New variables cp_as and sym. Added a
	check for variables that have already been declared as Cray
	Pointers, so we can get the necessary attributes without adding
	a new symbol.
	(attr_decl1): Added code to catch pointee symbols and "fix"
	their array specs.
	(cray_pointer_decl): New method.
	(gfc_match_pointer): Added Cray pointer parsing code.
	(gfc_mod_pointee_as): New method.
	* expr.c (gfc_check_assign): added a check to catch vector-type
	assignments to pointees with an unspecified final dimension.
	* gfortran.h: (GFC_ISYM_LOC): New.
	(symbol_attribute): Added cray_pointer and cray_pointee bits.
	(gfc_array_spec): Added cray_pointee and cp_was_assumed bools.
	(gfc_symbol): Added gfc_symbol *cp_pointer.
	(gfc_option): Added flag_cray_pointer.
	(gfc_add_cray_pointee): Declare.
	(gfc_add_cray_pointer ): Declare.
	(gfc_mod_pointee_as): Declare.
	* intrinsic.c (add_functions): Add code for loc() intrinsic.
	* intrinsic.h (gfc_check_loc): Declare.
	(gfc_resolve_loc): Declare.
	* iresolve.c (gfc_resolve_loc): New.
	* lang.opt: Added fcray-pointer flag.
	* options.c (gfc_init_options): Intialized
	gfc_match_option.flag_cray_pointer.
	(gfc_handle_option): Deal with -fcray-pointer.
	* parse.c:(resolve_equivalence): Added code prohibiting Cray
	pointees in equivalence statements.
	* resolve.c (resolve_array_ref): Added code to prevent bounds
	checking for Cray Pointee arrays.
	(resolve_equivalence): Prohibited pointees in equivalence
	statements.
	* symbol.c (check_conflict): Added Cray pointer/pointee
	attribute checking.
	(gfc_add_cray_pointer): New
	(gfc_add_cray_pointee): New
	(gfc_copy_attr): New code for Cray pointers and pointees
	* trans-array.c (gfc_trans_auto_array_allocation): Added code to
	prevent space from being allocated for pointees.
	(gfc_conv_array_parameter): Added code to catch pointees and
	correctly set their base address.
	* trans-decl.c (gfc_finish_var_decl): Added code to prevent
	pointee declarations from making it to the back end.
	(gfc_create_module_variable): Same.
	* trans-expr.c (gfc_conv_variable): added code to detect and
	translate pointees.
	(gfc_conv_cray_pointee): New.
	* trans-intrinsic.c (gfc_conv_intrinsic_loc): New.
	(gfc_conv_intrinsic_function): added entry point for loc
	translation.
	* trans.h (gfc_conv_cray_pointee): Declare.

	* gfortran.texi: Added section on Cray pointers, removed Cray
	pointers from list of proposed extensions
	* intrinsic.texi: Added documentation for loc intrinsic.
	* invoke.texi: Documented -fcray-pointer flag

testsuite/
	PR fortran/17031
	PR fortran/22282
	* gfortran.dg/cray_pointers_1.f90: New test.
	* gfortran.dg/cray_pointers_2.f90: New test.
	* gfortran.dg/cray_pointers_3.f90: New test.
	* gfortran.dg/loc_1.f90: New test.
	* gfortran.dg/loc_2.f90: New test.

From-SVN: r105859
2005-10-24 19:28:18 +00:00
Asher Langton
09e87839d4 Commit for Asher Langton <langton2@llnl.gov>
fortran/
        * decl.c (gfc_match_save): Changed duplicate SAVE errors to
        warnings in the absence of strict standard conformance
        * symbol.c (gfc_add_save): Same.

testsuite/
	* gfortran.dg/dup_save_1.f90: New test.
	* gfortran.dg/dup_save_2.f90: New test.

From-SVN: r105850
2005-10-24 14:50:18 +00:00
Francois-Xavier Coudert
4c93c95ac5 re PR fortran/15586 (gfortran should support i18n in its compiler messages)
PR fortran/15586
	* arith.c (gfc_arith_error): Change message to include locus.
	(check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
	gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
	the new gfc_arith_error.
	(arith_error): Rewrite full error messages instead of building
	them from pieces.
	* check.c (must_be): Removed.
	(type_check, numeric_check, int_or_real_check, real_or_complex_check,
	kind_check, double_check, logical_array_check, array_check,
	scalar_check, same_type_check, rank_check, kind_value_check,
	variable_check, gfc_check_allocated, gfc_check_associated,
	gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
	gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
	gfc_check_pack, gfc_check_precision, gfc_check_present,
	gfc_check_spread): Rewrite full error messages instead of
	building them from pieces.
	* decl.c (gfc_match_entry): Rewrite full error messages instead
	of building them from pieces.
	* parse.c (gfc_state_name): Remove.
	* parse.h: Remove prototype for gfc_state_name.

From-SVN: r105844
2005-10-24 09:11:51 +00:00
Andrew Pinski
78bd27f62c re PR fortran/23635 (Argument of ichar at (1) must be of length one)
2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/23635
        * gfortran.dg/ichar_1.f90: Add tests for derived types.


2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/23635
        * check.c (gfc_check_ichar_iachar): Move the code around so
        that the check on the length is after check for
        references.

From-SVN: r105829
2005-10-23 15:16:38 -07:00
Asher Langton
5f700e6de0 Commit for Asher Langton <langton2@llnl.gov>
gcc/
	* decl.c (match_type_spec): Add a BYTE type as an extension.

testsuite/
	* gfortran.dg/byte_1.f90: New test.
	* gfortran.dg/byte_2.f90: New test.

From-SVN: r105823
2005-10-23 20:42:27 +00:00
Paul Thomas
2853e5127d re PR fortran/18022 (problem with structure and calling a function)
2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18022
	* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
	if there is a component ref during an array ref to force
	use of temporary in assignment.

	PR fortran/24311
	PR fortran/24384
	* fortran/iresolve.c (check_charlen_present): New function to
	add a charlen to the typespec, in the case of constant
	expressions.
	(gfc_resolve_merge, gfc_resolve_spread): Call.the above.
	(gfc_resolve_spread): Make calls to library functions that
	handle the case of the spread intrinsic with a scalar source.
	* libgfortran/intrinsics/spread_generic.c (spread_internal
	_scalar): New function that handles the special case of spread
	with a scalar source. This has interface functions -
	(spread_scalar, spread_char_scalar): New functions to interface
	with the calls specified in gfc_resolve_spread.

2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18022
	gfortran.dg/assign_func_dtcomp_1.f90: New test.

	PR fortran/24311
	gfortran.dg/merge_char_const.f90: New test.

	PR fortran/24384
	gfortran.dg/spread_scalar_source.f90: New test.

From-SVN: r105810
2005-10-23 06:59:17 +00:00
Erik Edelmann
6019a1a447 re PR fortran/24426 (gfortran ICE for valid derived type definition with default initialization)
2005-10-22  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/24426
        * decl.c (variable_decl): Don't assign default initializers to
                    pointers.


2005-10-22  Erik Edelmann  <eedelman@gcc.gnu.org>

        PR fortran/24426
        * gfortran.dg/der_pointer_4.f90: New.

From-SVN: r105792
2005-10-22 17:02:42 +00:00
Jakub Jelinek
bf9d2177bf interface.c (compare_actual_formal): Issue error when attempting to pass an assumed-size array as assumed-shape...
* interface.c (compare_actual_formal): Issue error when attempting
	to pass an assumed-size array as assumed-shape array argument.

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

From-SVN: r105765
2005-10-21 20:50:52 +02:00
Erik Edelmann
68577e5685 re PR fortran/21625 ([4.0 only] Nested derived type pointer component not initialized on ALLOCATE)
PR fortran/21625
	* resolve.c (expr_to_initialize): New function.
	(resolve_allocate_expr): Take current statement as new
	argument. Add default initializers to variables of
	derived types, if they need it.
	(resolve_code): Provide current statement as argument to
	resolve_allocate_expr().

From-SVN: r105642
2005-10-19 22:18:07 +00:00
Paul Thomas
78c5725962 re PR fortran/24440 (gfortran failed to build 187.facerec)
2005-10-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24440
	* resolve.c (resolve_symbol): Correct error in check for
	assumed size array with default initializer by testing
	for arrayspec before dereferencing it.

From-SVN: r105596
2005-10-19 05:33:32 +00:00
Paul Thomas
4213f93b6a re PR fortran/23446 (Valid internal subprogram array argument declaration is not accepted.)
2005-10-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/23446
	* gfortran.h: Primitive for gfc_is_formal_arg.
	* resolve.c(gfc_is_formal_arg): New function to signal across
	several function calls that formal argument lists are being
	processed.
	(resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg.
	*expr.c(check_restricted): Add check, via gfc_is_formal_arg, if
	symbol is part of an formal argument declaration.

	PR fortran/21459
	* decl.c (add_init_expr_to_sym): Make a new character
	length for each variable, when the expression is NULL
	and link to cl_list.

	PR fortran/20866
	* match.c (recursive_stmt_fcn): New function that tests if
	a statement function resurses through itself or other other
	statement functions.
	(gfc_match_st_function): Call recursive_stmt_fcn to check
	if this is recursive and to raise error if so.

	PR fortran/20849
	PR fortran/20853
	* resolve.c (resolve_symbol): Errors for assumed size arrays
	with default initializer and for external objects with an
	initializer.

	PR fortran/20837
	* decl.c (match_attr_spec): Prevent PUBLIC from being used
	outside a module.

2005-10-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/23446
	* gfortran.dg/host_dummy_index_1.f90: New test.

	PR fortran/21459
	gfortran.dg/automatic_char_len_2.f90: New test.

	PR fortran/20866
	gfortran.dg/recursive_statement_functions.f90: New test.

	PR fortran/20853
	gfortran.dg/assumed_size_dt_dummy.f90: New test.

	PR fortran/20849
	gfortran.dg/external_initializer.f90: New test.

	PR fortran/20837
	non_module_public.f90: New test.

From-SVN: r105518
2005-10-17 20:52:37 +00:00
Erik Edelmann
c2b27658fe re PR fortran/22273 (problem to declare a character variable link to an intent(out) object)
2005-10-16  Erik Edelmann  <erik.edelmann@iki.fi>
fortran/
	PR 22273
	* expr.c (check_inquiry): Add "len" to inquiry_function.
testsuite/
	PR fortran/22273
	* gfortran.dg/spec_expr_2.f90: New.

From-SVN: r105460
2005-10-16 15:59:36 +02:00
Jakub Jelinek
21dac32c3c primary.c (match_boz_constant): Add missing break after gfc_error.
* primary.c (match_boz_constant): Add missing break after gfc_error.

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

From-SVN: r105420
2005-10-14 21:40:29 +02:00
Paul Thomas
bce7137612 [multiple changes]
2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24092
	* trans-types.c (gfc_get_derived_type): Insert code to obtain backend
	declaration for derived types, building if necessary.  Return the
	derived type if the fields have been built by this process.  Otherwise,
	continue as before but using the already obtained backend_decls for the
	derived type components.  Change the gcc_assert to act on the field.

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

	PR fortran/24092
	* gfortran.dg/derived_pointer_recursion.f90: New test.

From-SVN: r105331
2005-10-12 20:41:28 +00:00
Paul Thomas
949d5b72e2 re PR fortran/18082 (Infinite loop with automatic length character objects)
2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18082
	* decl.c (variable_decl): Make a new copy of the character
	length for each variable, when the expression is not a
	constant.

2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18082
	gfortran.dg/automatic_char_len_1.f90: New test.

From-SVN: r105329
2005-10-12 20:29:21 +00:00
François-Xavier Coudert
944b8b35a9 gfortran.h: Add bitmasks for different FPE traps.
* gfortran.h: Add bitmasks for different FPE traps. Add fpe
	member to options_t.
	* invoke.texi: Document the new -ffpe-trap option.
	* lang.opt: Add -ffpe-trap option.
	* options.c (gfc_init_options): Initialize the FPE option.
	(gfc_handle_fpe_trap_option): New function to parse the argument
	of the -ffpe-trap option.
	(gfc_handle_option): Add case for -ffpe-trap.
	* trans-decl.c: Declare a tree for the set_fpe library function.
	(gfc_build_builtin_function_decls): Build this tree.
	(gfc_generate_function_code): Generate a call to set_fpe at
	the beginning of the main program.
	* trans.h: New tree for the set_fpe library function.

	* Makefile.am: Add fpu.c to the build process, and
	target-dependent code as fpu-target.h.
	* Makefile.in: Regenerate.
	* configure.ac: Add call to configure.host to set
	FPU_HOST_HEADER.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure.host: New script to determine which host-dependent
	code should go in.
	* libgfortran.h: Add fpe option, remove previous fpu_ options.
	Add bitmasks for different FPE traps. Add prototype for set_fpu.
	* runtime/environ.c: Remove environment variables to control
	fpu behaviour.
	* runtime/fpu.c (set_fpe): New function for the front-end.
	* runtime/main.c (init): Set FPU state.
	* config: New directory to store host-dependent code.
	* config/fpu-387.h: New file with code handling the i387 FPU.
	* config/fpu-glibc.h: New file with code for glibc systems.
	* config/fpu-generic.h: Fallback for the most generic host. Issue
	warnings.

From-SVN: r105328
2005-10-12 20:21:31 +00:00
Paul Thomas
96b9572550 re PR fortran/20847 (common block object may not have save attribute)
2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20847
	PR fortran/20856
	* symbol.c (check_conflict): Prevent common variables and
	function results from having the SAVE attribute,as required
	by the standard.

2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/20847
	gfortran.dg/save_common.f90: New test.

	PR fortran/20856
	gfortran.dg/save_result.f90: New test.

From-SVN: r105325
2005-10-12 20:05:04 +00:00
Paul Thomas
0f9d970d60 re PR fortran/24207 (PRIVATE/PUBLIC attribute confusion screws NAMELIST)
2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24207
	* resolve.c (resolve_symbol): Exclude use and host associated
	symbols from the test for private objects in a public namelist.

2005-10-12  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24207
	gfortran.dg/private_type_3.f90: New test.

From-SVN: r105289
2005-10-12 07:19:56 +00:00
Jakub Jelinek
81871c2a05 trans-common.c (build_field): Fix comment typo.
* trans-common.c (build_field): Fix comment typo.
	(create_common): Set backend_decl of COMMON or EQUIVALENCEd
	variables to a VAR_DECL with the COMPONENT_REF in
	DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly.
	* f95-lang.c (gfc_expand_function): Emit debug info for
	EQUIVALENCEd variables if the equiv union is going to be output.

From-SVN: r105288
2005-10-12 08:18:12 +02:00
Steven G. Kargl
5dd17af574 re PR fortran/20786 (Can't use AINT intrinsic with KIND parameter)
PR fortran/20786
* iresolve.c (gfc_resolve_aint, gfc_resolve_anint ): Type conversion
  of the argument.

gfortran.dg/aint_anint_1.f90: New test.

From-SVN: r105276
2005-10-11 23:58:17 +00:00
Jakub Jelinek
24cc11935c f95-lang.c (gfc_init_decl_processing): Initialize void_list_node.
* f95-lang.c (gfc_init_decl_processing): Initialize
	void_list_node.

From-SVN: r105265
2005-10-12 00:01:02 +02:00
Erik Edelmann
3b138408de re PR fortran/18568 (pointers in derived data types do not transmit shape of pointed to arrays - bug or non-standard feature?)
2005-10-07  Erik Edelmann  <erik.edelmann@iki.fi>
fortran/
        PR 18568
	* resolve.c (find_array_spec): Search through the list of
	components in the symbol of the type instead of the symbol of the
	variable.
testsuite/
	PR 18568
	* gfortran.dg/der_pointer_3.f90: New test.

From-SVN: r105039
2005-10-06 17:44:01 +02:00
Richard Guenther
c82cdb5dfc re PR fortran/24176 (gfortran segfaults on empty source)
2005-10-05  Richard Guenther  <rguenther@suse.de>

	PR fortran/24176
	* parse.c (gfc_parse_file): Exit early for empty files.

	* gfortran.fortran-torture/compile/empty.f90: New testcase.

From-SVN: r104984
2005-10-05 09:38:29 +00:00
Steve Ellcey
216ac520d4 trans-types.c (gfc_init_kinds): Only pass float...
* fortran/trans-types.c (gfc_init_kinds): Only pass float, double,
	and long double floating point types through to Fortran compiler.

From-SVN: r104892
2005-10-03 15:29:30 +00:00
François-Xavier Coudert
644cb69f80 re PR libfortran/19308 (I/O library should support more real and integer kinds)
PR libfortran/19308
	PR fortran/20120
	PR libfortran/22437

	* Makefile.am: Add generated files for large real and integers
	kinds. Add a rule to create the kinds.inc c99_protos.inc files.
	Use kinds.inc to preprocess Fortran generated files.
	* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
	GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
	gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
	gfc_array_l16.
	* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
	HAVE_GFC_COMPLEX_* when these types are available.
	* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
	* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
	m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
	m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
	m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
	m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
	m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
	m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
	m4/sum.m4, m4/transpose.m4: Protect generated functions with
	appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
	* Makefile.in: Regenerate.
	* all files in generated/: Regenerate.

	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
	double builtin function.
	(gfc_init_builtin_functions): Add mfunc_longdouble,
	mfunc_clongdouble and func_clongdouble_longdouble trees. Build
	them for round, trunc, cabs, copysign and pow functions.
	* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
	case for kind 10 and 16.
	* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.
	(gfc_build_intrinsic_function_decls): Build nodes for int16,
	real10, real16, complex10 and complex16 types. Build all possible
	combinations for function _gfortran_pow_?n_?n. Build function
	calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
	* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
	real(10) and real(16).
	* trans-intrinsic.c: Add suppport for long double builtin
	functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
	macros.
	(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
	real(16) kinds.
	(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
	and real16_decl in library functions.
	(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
	kinds 10 and 16.
	(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
	kinds.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
	* trans-types.c (gfc_get_int_type, gfc_get_real_type,
	gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
	the case of kinds not available.
	* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.

	* gfortran.dg/large_real_kind_2.F90: New test.
	* gfortran.dg/large_integer_kind_2.f90: New test.

From-SVN: r104889
2005-10-03 07:22:20 +00:00
Paul Thomas
e8ec07e1ec re PR fortran/16404 (should reject invalid code with -pedantic -std=f95 ? (x8))
2005-10-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16404
	PR fortran/20835
	PR fortran/20890
	PR fortran/20899
	PR fortran/20900
	PR fortran/20901
	PR fortran/20902
	* gfortran.h: Prototype for gfc_add_in_equivalence.
	* match.c (gfc_match_equivalence): Make a structure component
	an explicit,rather than a syntax, error in an equivalence
	group.  Call gfc_add_in_equivalence to add the constraints
	imposed in check_conflict.
	* resolve.c (resolve_symbol): Add constraints: No public
	structures with private-type components and no public
	procedures with private-type dummy arguments.
	(resolve_equivalence_derived): Add constraint that prevents
	a structure equivalence member from having a default
	initializer.
	(sequence_type): New static function to determine whether an
	object is default numeric, default character, non-default
	or mixed sequence. Add corresponding enum typespec.
	(resolve_equivalence): Add constraints to equivalence groups
	or their members: No more than one initialized member and
	that different types are not equivalenced for std=f95.  All
	the simple constraints have been moved to check_conflict.
	* symbol.c (check_conflict): Simple equivalence constraints
	added, including those removed from resolve_symbol.
	(gfc_add_in_equivalence): New function to interface calls
	match_equivalence to check_conflict.

2005-10-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16404
	PR fortran/20835
	PR fortran/20890
	PR fortran/20899
	PR fortran/20900
	PR fortran/20901
	PR fortran/20902
	gfortran.dg/equiv_constraint_1.f90: New test.
	gfortran.dg/equiv_constraint_2.f90: New test.
	gfortran.dg/equiv_constraint_3.f90: New test.
	gfortran.dg/equiv_constraint_4.f90: New test.
	gfortran.dg/equiv_constraint_5.f90: New test.
	gfortran.dg/equiv_constraint_6.f90: New test.
	gfortran.dg/equiv_constraint_7.f90: New test.
	gfortran.dg/equiv_constraint_8.f90: New test.
	gfortran.dg/private_type_1.f90: New test.
	gfortran.dg/private_type_2.f90: New test.
	gfortran.dg/g77/980628-2.f, 980628-3.f, 980628-9.f,
	980628-10.f: Assert std=gnu to permit mixing of
	types in equivalence statements.

From-SVN: r104850
2005-10-01 07:39:08 +00:00
Jakub Jelinek
57f0d086d5 re PR fortran/18518 (equivalenced variables are not saved)
PR fortran/18518
	* trans-common.c (build_equiv_decl): Add IS_SAVED argument.
	If it is true, set TREE_STATIC on the decl.
	(create_common): If any symbol in equivalence has SAVE attribute,
	pass true as last argument to build_equiv_decl.

	* gfortran.fortran-torture/execute/save_2.f90: New decl.

From-SVN: r104712
2005-09-27 23:46:14 +02:00
David Edelsohn
f660281695 Correct ChangeLog formatting.
From-SVN: r104683
2005-09-27 00:04:30 -04:00
Janne Blomqvist
18623faed1 [multiple changes]
2005-09-24  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* trans-io.c (gfc_build_io_library_fndecls): Add entry
	iocall_x_array for transfer_array. (transfer_array_desc): New
	function. (gfc_trans_transfer): Add code to call
	transfer_array_desc.

2005-09-24  Janne Blomqvist <jblomqvi@cc.hut.fi>

	* io.h: Changed prototypes of list_formatted_{read|write}.
	* list_read.c (list_formatted_read): Renamed to
	list_formatted_read_scalar and made static. (list_formatted_read):
	New function.
	* transfer.c: Prototype for transfer_array. Changed transfer
	function pointer. (unformatted_read): Add nelems argument, use
	it. (unformatted_write): Likewise. (formatted_transfer): Changed
	name to formatted_transfer_scalar. (formatted_transfer): New
	function. (transfer_integer): Add nelems argument to transfer
	call, move updating item count to transfer
	functions. (transfer_real): Likewise. (transfer_logical):
	Likewise. (transfer_character): Likewise. (transfer_complex):
	Likewise. (transfer_array): New function. (data_transfer_init):
	Call formatted_transfer with new argument. (iolength_transfer):
	New argument, use it.
	* write.c (list_formatted_write): Renamed to
	list_formatted_write_scalar, made static. (list_formatted_write):
	New function.

From-SVN: r104662
2005-09-26 20:24:45 +00:00
Jakub Jelinek
d05d9ac771 re PR fortran/23677 (-fno-automatic does not accept legal save statements)
PR fortran/23677
	* symbol.c (gfc_is_var_automatic): Return true if character length
	is non-constant rather than constant.
	* resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
	here.
	* options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
	to 0 for -fno-automatic.

	* gfortran.fortran-torture/execute/save_1.f90: New test.
	* gfortran.dg/save_1.f90: New test.

From-SVN: r104661
2005-09-26 22:06:37 +02:00
Paul Thomas
acff2da93c re PR fortran/16861 ([4.0 only] segfault with doubly used module)
2005-09-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16861
	* module.c (mio_component_ref): Return if the symbol is NULL
	and wait for another iteration during module reads.
	(mio_symtree_ref): Suppress the writing of contained symbols,
	when a symbol is available in the main namespace.
	(read_module): Restrict scope of special treatment of contained
	symbols to variables only and suppress redundant call to
	find_true_name.

2005-09-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16861
	* gfortran.dg/nested_modules_3.f90: New.

From-SVN: r104574
2005-09-23 17:16:07 +00:00
Steven G. Kargl
312ae8f402 re PR fortran/24005 (Ambiguous INTERFACE leads to seg fault)
PR fortran/24005
* interface.c (check_interface1): Fix NULL dereference.

From-SVN: r104544
2005-09-22 22:45:40 +00:00
Erik Edelmann
8451584a84 re PR fortran/23843 (Access restrictions on derived types in modules too strict.)
fortran/
2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>

	PR fortran/23843
	* resolve.c (derived_inaccessible): New function.
	(resolve_transfer): Use it to check for private
	components.
testsuite/
2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>
	Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/23843
	* gfortran.dg/der_io_2.f90, gfortran.dg/der_io_3.f90: New test.

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

From-SVN: r104542
2005-09-22 23:52:09 +02:00
Steven G. Kargl
6970fcc83e re PR fortran/23516 (IMAG is not a generic function when implicit none is declared)
PR fortran/23516
* intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
  intrinsics.
* intrinsic.h: Prototypes for gfc_simplify_realpart and
  gfc_resolve_realpart.
* intrinsic.texi: Document intrinsic procedures.
* simplify.c (gfc_simplify_realpart): New function.
* irseolve.c (gfc_resolve_realpart): New function.

From-SVN: r104537
2005-09-22 19:00:24 +00:00
Erik Edelmann
4c46bf2eba re PR fortran/19929 (Deallocation of an allocated derived type component causes failure)
2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>

	PR fortran/19929
	* trans-stmt.c (gfc_trans_deallocate): Check if the
	object to be deallocated is an array by looking at
	expr->rank instead of expr->symtree->n.sym->attr.dimension.

2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>

	PR fortran/19929
	* gfortran.dg/der_ptr_component_1.f90: New test.

From-SVN: r104495
2005-09-21 17:05:16 +00:00
Tobias Schlüter
7fd4d3123d re PR fortran/23420 (ICE on invalid print statement)
fortran/
	PR fortran/23420
	* io.c (resolve_tag): Don't allow non-CHARACTER constants as formats.
	(match_io): Fix usage of gfc_find_symbol.
testsuite/
	PR fortran/23420
	* gfortran.dg/print_fmt_4.f: New.

From-SVN: r104454
2005-09-20 17:05:32 +02:00
Jakub Jelinek
7a4ef45bf4 re PR fortran/23663 (rejects entry point as a value)
PR fortran/23663
	* primary.c (match_actual_arg): Handle ENTRY the same way
	as FUNCTION.

	* gfortran.fortran-torture/execute/entry_11.f90: New test.

From-SVN: r104453
2005-09-20 16:37:44 +02:00
Francois-Xavier Coudert
2c05c0dad5 * Make-lang.in: Make check-fortran alias for check-gfortran.
From-SVN: r104406
2005-09-18 17:33:40 +00:00
Andreas Jaeger
1ed09f0225 module.c (read_module): Add missed line from last patch.
2005-09-18  Andreas Jaeger  <aj@suse.de>

	* module.c (read_module): Add missed line from last patch.

From-SVN: r104391
2005-09-18 09:51:04 +02:00
Erik Edelmann
630b708642 re PR fortran/15975 ([4.0 only] ICE in trans-array.c pointer array initialization stuff)
2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>

	PR fortran/15975
	* resolve.c (resolve_symbol): Don't assign default
	initializer to pointers.

2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>

	PR fortran/15975
	* gfortran.dg/der_pointer_2.f90: New test.

From-SVN: r104389
2005-09-18 05:50:04 +00:00
Paul Thomas
6cda231ed9 re PR fortran/16861 ([4.0 only] segfault with doubly used module)
2005-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16861
	* module.c (read_module): Give symbols from module procedures
	different true_name entries to those from the module proper.

2005-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16861
	* gfortran.dg/nested_modules_2.f90: New test.

From-SVN: r104388
2005-09-18 05:18:54 +00:00
Francois-Xavier Coudert
31043f6cfc re PR fortran/15586 (gfortran should support i18n in its compiler messages)
PR fortran/15586

	* arith.c (gfc_arith_error): Add translation support
	for error messages.
	* array.c (gfc_match_array_ref): Likewise.
	(gfc_match_array_spec): Likewise.
	* check.c (must_be): Add msgid convention to third argument.
	(same_type_check): Add translation support for error message.
	(rank_check): Likewise.
	(kind_value_check): Likewise.
	(gfc_check_associated): Correct typo.
	(gfc_check_reshape): Add translation support for error message.
	(gfc_check_spread): Likewise.
	* error.c (error_printf): Add nocmsgid convention to argument.
	(gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
	(gfc_error, gfc_error_now): Likewise.
	(gfc_status): Add cmsgid convention to argument.
	* expr.c (gfc_extract_int): Add translation support
        for error messages.
	(gfc_check_conformance): Add msgid convention to argument.
	(gfc_check_pointer_assign): Correct tabbing.
	* gfortran.h: Include intl.h header. Remove prototype
	for gfc_article.
	* gfortranspec.c: Include intl.h header.
	(lang_specific_driver): Add translation support for --version.
	* io.c (check_format): Add translation support for
	error message.
	(format_item_1): Likewise.
	(data_desc): Likewise.
	* matchexp.c: Likewise.
	* misc.c (gfc_article): Remove function.
	* module.c (bad_module): Use msgid convention. Add
	translation support for error messages.
	(require_atom): Add translation support for error messages.
	* parse.c (gfc_ascii_statement): Likewise.
	(gfc_state_name): Likewise.
	* primary.c (match_boz_constant): Reorganise error
	messages for translations.
	* resolve.c (resolve_entries): Likewise.
	(resolve_operator): Add translation support for error messages.
	(gfc_resolve_expr): Use msgid convention. Reorganise error
        messages for translations.
	(resolve_symbol): Add translation support for error messages.
	* symbol.c (gfc_add_procedure): Remove use of gfc_article function.
	* trans-const.c (gfc_build_string_const): Use msgid convention.

	* exgettext: Add a new nocmsgid convention for arguments
	that should be marked as no-c-format.
	* gcc.pot: Regenerate.

From-SVN: r104372
2005-09-17 18:58:01 +00:00
Paul Brook
07af06f6a3 re PR fortran/23906 (inappropriate branch condition in function "transform_sections" in "dependency.c")
2005-09-16  Paul Brook  <paul@codesourcery.com>

	PR fortran/23906
fortran/
	* dependency.c (transform_sections): Divide by correct value.
	Elaborate comment.
testsuite/
	* gfortran.dg/dependency_1.f90: New test.

From-SVN: r104339
2005-09-16 03:26:37 +00:00
Paul Thomas
109b0ac2a8 PR fortran/21875 Internal Unit Array I/O, NIST
2005-09-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21875 Internal Unit Array I/O, NIST
	* fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for
	array descriptor to IOPARM structure.
	* fortran/trans-io.c (set_internal_unit): New function to generate code
	to store the character (array) and the character length for an internal
	unit.
	* fortran/trans-io (build_dt): Use the new function set_internal_unit.

From-SVN: r104277
2005-09-14 20:19:37 +00:00
Paul Thomas
0df3cf7f04 re PR fortran/19358 ([gfortran] Segfault with missing upper bound)
2005-09-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/19358
	* trans-array.c (gfc_trans_dummy_array_bias): correct the typo
	which uses dim[i].upper for lbound, rather than dim[i].lower.

2005-09-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/19358
	* gfortran.fortran-torture/assumed_dummy_1.f90: New test.

From-SVN: r104259
2005-09-14 05:12:04 +00:00
Erik Edelmann
c4abe01049 re PR fortran/17740 (ICE in gfc_trans_arrayfunc_assign, at fortran/trans-expr.c:2011)
2005-09-13  Erik Edelmann  <erik.edelmann@iki.fi>
fortran/
	PR fortran/17740
	* trans-expr.c (gfc_trans_arrayfunc_assign): Check value
	of attr.elemental for specific function instead of generic name.
testsuite/
	PR fortran/17740
	* gfortran.dg/generic_4.f90: New test.

From-SVN: r104240
2005-09-13 23:46:04 +02:00
Richard Sandiford
4fd9a81345 re PR fortran/18899 ([gfortran] ubound wrongly calculated for passed array)
PR fortran/18899
	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
	of argse.  Remove now-redundant want_pointer assignment.
	* trans-array.c (gfc_conv_expr_descriptor): When not assigning to
	a pointer, keep the original bounds of a full array reference.

From-SVN: r104219
2005-09-13 08:07:15 +00:00
Richard Sandiford
7823229bc3 re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
gcc/fortran/
	PR target/19269
	* iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
	(gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
	(gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
	for character-based operations.
	(gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
	(gfc_resolve_unpack): Copy the whole typespec from the vector.
	* trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
	case, get the string length from the scalarization state.

libgfortran/
	PR target/19269
	* intrinsics/cshift0.c (cshift0): Add an extra size argument.
	(cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
	implementations with...
	(DEFINE_CSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/eoshift0.c (zeros): Delete.
	(eoshift0): Add extra size and filler arguments.  Use memset if no
	bound is provided.
	(eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
	implementations with...
	(DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/eoshift2.c (zeros): Delete.
	(eoshift2): Add extra size and filler arguments.  Use memset if no
	bound is provided.
	(eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
	implementations with...
	(DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/pack.c (pack_internal): New static function, reusing
	the contents of pack and adding an extra size argument.  Change
	"mptr" rather than "m" when calculating the array size.
	(pack): Redefine as a forwarder to pack_internal.
	(pack_s_internal): New static function, reusing the contents of
	pack_s and adding an extra size argument.
	(pack_s): Redefine as a forwarder to pack_s_internal.
	(pack_char, pack_s_char): New functions.
	* intrinsics/reshape.c (reshape_internal): New static function,
	reusing the contents of reshape and adding an extra size argument.
	(reshape): Redefine as a forwarder to reshape_internal.
	(reshape_char): New function.
	* intrinsics/spread.c (spread_internal): New static function,
	reusing the contents of spread and adding an extra size argument.
	(spread): Redefine as a forwarder to spread_internal.
	(spread_char): New function.
	* intrinsics/transpose.c (transpose_internal): New static function,
	reusing the contents of transpose and adding an extra size argument.
	(transpose): Redefine as a forwarder to transpose_internal.
	(transpose_char): New function.
	* intrinsics/unpack.c (unpack_internal): New static function, reusing
	the contents of unpack1 and adding extra size and fsize arguments.
	(unpack1): Redefine as a forwarder to unpack_internal.
	(unpack0): Call unpack_internal instead of unpack1.
	(unpack1_char, unpack0_char): New functions.
	* m4/cshift1.m4 (cshift1): New static function, reusing the contents
	of cshift1_<kind> and adding an extra size argument.
	(cshift1_<kind>): Redefine as a forwarder to cshift1.
	(cshift1_<kind>_char): New function.
	* m4/eoshift1.m4 (zeros): Delete.
	(eoshift1): New static function, reusing the contents of
	eoshift1_<kind> and adding extra size and filler arguments.
	Fix calculation of hstride.  Use memset if no bound is provided.
	(eoshift1_<kind>): Redefine as a forwarder to eoshift1.
	(eoshift1_<kind>_char): New function.
	* m4/eoshift3.m4 (zeros): Delete.
	(eoshift3): New static function, reusing the contents of
	eoshift3_<kind> and adding extra size and filler arguments.
	Use memset if no bound is provided.
	(eoshift3_<kind>): Redefine as a forwarder to eoshift3.
	(eoshift3_<kind>_char): New function.
	* generated/cshift1_4.c, generated/cshift1_8.c,
	* generated/eoshift1_4.c, generated/eoshift1_8.c,
	* generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.

From-SVN: r104217
2005-09-13 07:15:01 +00:00
Francois-Xavier Coudert
7f26dfa379 configure.in: Recognize f95 in the --enable-languages option...
* configure.in: Recognize f95 in the --enable-languages option,
	and substitute it for fortran, issuing a warning.
	* configure: Regenerate.
	* Make-lang.in: Change targets prefixes from f95 to fortran.
	* config-lang.in: Change language name to "fortran".
	* lang.opt: Change language name to "fortran".
	* options.c: Change CL_F95 to CL_Fortran.

From-SVN: r104215
2005-09-13 06:24:18 +00:00
Thomas Koenig
e27edcd452 2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
gfortran.texi:  Document IOSTAT= specifier.

From-SVN: r104104
2005-09-09 19:20:52 +00:00
Thomas Koenig
7aba8abebf gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, gfc_inquire and gfc_dt.
2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
	gfc_inquire and gfc_dt.
	* dump-parse-tree.c (gfc_show_code_node):  Add iomsg
	for open, close, file positioning, inquire and namelist.
	* io.c (io_tag):  Add tag_iomsg.
	(resolve_tag): Add standards warning for iomsg.
	(match_open_element):  Add iomsg.
	(gfc_free_open):  Add iomsg.
	(gfc_resolve_open):  Add iomsg.
	(gfc_free_close):  Add iomsg.
	(match_close_element):  Add iomsg.
	(gfc_resolve_close):  Add iomsg.
	(gfc_free_filepos):  Add iomsg.
	(match_file_element):  Add iomsg.
	(gfc_resolve_filepos):  Add iostat and iomsg.
	(match-dt_element):  Add iomsg.
	(gfc_free_dt):  Add iomsg.
	(gfc_resolve_dt):  Add iomsg.
	(gfc_free_inquire):  Add iomsg.
	(match_inquire_element):  Add iomsg.
	(gfc_resolve_inquire):  Add iomsg.
	* trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
	(gfc_build_io_library_fndecls):  Add iomsg as last field.
	(gfc_trans_open):  Add iomsg.
	(gfc_trans_close):  Add iomsg.
	(build_fileos):  Call set_string for iomsg.
	(gfc_trans_inquire):  Add iomsg.
	(build_dt):  Add iomsg.

2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* io/io.h:  Add iomsg as last field of st_parameter.
	* runtime/error.c (generate_error):  If iomsg is present, copy
	the message there.

2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.dg/iomsg_1.f90:  New test case.

From-SVN: r104102
2005-09-09 18:21:45 +00:00
Richard Sandiford
a174b2f8ec * match.h (gfc_match_equiv_variable): Declare.
From-SVN: r104080
2005-09-09 06:45:15 +00:00
Richard Sandiford
7a70c12d9b re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions)
PR fortran/19239
	* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
	* dependency.h (gfc_ref_needs_temporary_p): Declare.
	* dependency.c (gfc_ref_needs_temporary_p): New function.
	(gfc_check_fncall_dependency): Use it instead of inlined check.
	By so doing, take advantage of the fact that character substrings
	within an array reference also need a temporary.
	* trans.h (GFC_SS_VECTOR): Adjust comment.
	* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
	(gfc_set_vector_loop_bounds): New function.
	(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
	a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
	the vector expression and caching its descriptor for use within
	the loop.
	(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
	(gfc_conv_array_index_offset): Handle scalar, vector and range
	dimensions as separate cases of a switch statement.  In the vector
	case, use the loop variable to calculate a vector index and use the
	referenced element as the dimension's index.  Perform bounds checking
	on this final index.
	(gfc_conv_section_upper_bound): Return null for vector indexes.
	(gfc_conv_section_startstride): Give vector indexes a start value
	of 0 and a stride of 1.
	(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
	(gfc_conv_expr_descriptor): Expand comments.  Generalize the
	handling of the !want_pointer && !direct_byref case.  Use
	gfc_ref_needs_temporary_p to decide whether the variable case
	needs a temporary.
	(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
	GFC_SS_VECTOR index.
	* trans-expr.c: Include dependency.h.
	(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.

2005-09-09  Richard Sandiford  <richard@codesourcery.com>

	PR fortran/21104
	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
	from trans-expr.c.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Declare.
	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
	(gfc_trans_allocate_array_storage): Replace loop argument with
	separate pre and post blocks.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	Update call to gfc_trans_allocate_array_storage.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
	interface to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
	Moved to trans.h.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Make extern.
	(gfc_conv_function_call): Build an interface mapping for array
	return values too.  Call gfc_set_loop_bounds_from_array_spec.
	Adjust call to gfc_trans_allocate_temp_array so that code is
	added to SE rather than LOOP.

From-SVN: r104077
2005-09-09 06:34:08 +00:00
Richard Sandiford
62ab4a5499 re PR fortran/21104 (Segmentation fault on correct code)
PR fortran/21104
	* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
	from trans-expr.c.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Declare.
	* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
	(gfc_trans_allocate_array_storage): Replace loop argument with
	separate pre and post blocks.
	(gfc_trans_allocate_temp_array): Add pre and post block arguments.
	Update call to gfc_trans_allocate_array_storage.
	(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
	interface to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
	Moved to trans.h.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_add_interface_mapping, gfc_finish_interface_mapping)
	(gfc_apply_interface_mapping): Make extern.
	(gfc_conv_function_call): Build an interface mapping for array
	return values too.  Call gfc_set_loop_bounds_from_array_spec.
	Adjust call to gfc_trans_allocate_temp_array so that code is
	added to SE rather than LOOP.

From-SVN: r104075
2005-09-09 06:22:28 +00:00
Richard Sandiford
ec25720ba3 re PR fortran/12840 ([4.0 only] Unable to find scalarization loop specifier)
PR fortran/12840
	* trans.h (gfor_fndecl_internal_realloc): Declare.
	(gfor_fndecl_internal_realloc64): Declare.
	* trans-decl.c (gfor_fndecl_internal_realloc): New variable.
	(gfor_fndecl_internal_realloc64): New variable.
	(gfc_build_builtin_function_decls): Initialize them.
	* trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
	* trans-array.c (gfc_trans_allocate_array_storage): Add an argument
	to say whether the array can grow later.  Don't allocate the array
	on the stack if so.  Don't call malloc for zero-sized arrays.
	(gfc_trans_allocate_temp_array): Add a similar argument here.
	Pass it along to gfc_trans_allocate_array_storage.
	(gfc_get_iteration_count, gfc_grow_array): New functions.
	(gfc_iterator_has_dynamic_bounds): New function.
	(gfc_get_array_constructor_element_size): New function.
	(gfc_get_array_constructor_size): New function.
	(gfc_trans_array_ctor_element): Replace pointer argument with
	a descriptor tree.
	(gfc_trans_array_constructor_subarray): Likewise.  Take an extra
	argument to say whether the variable-sized part of the constructor
	must be allocated using realloc.  Grow the array when this
	argument is true.
	(gfc_trans_array_constructor_value): Likewise.
	(gfc_get_array_cons_size): Delete.
	(gfc_trans_array_constructor): If the loop bound has not been set,
	split the allocation into a static part and a dynamic part.  Set
	loop->to to the bounds for static part before allocating the
	temporary.  Adjust call to gfc_trans_array_constructor_value.
	(gfc_conv_loop_setup): Allow any constructor to determine the
	loop bounds.  Check whether the constructor has a dynamic size
	and prefer to use something else if so.  Expect the loop bound
	to be set later.  Adjust call to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_conv_function_call): Adjust another call here.

From-SVN: r104073
2005-09-09 06:00:40 +00:00
Paul Thomas
30aabb86ef re PR fortran/18878 ([4.0 only] erronous error message on vaild USE statement)
2005-09-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18878
	* module.c (find_use_name_n): Based on original
	find_use_name. Either counts number of use names for a
	given real name or returns use name n.
	(find_use_name, number_use_names): Interfaces to the
	function find_use_name_n.
	(read_module): Add the logic and calls to these functions,
	so that mutiple reuses of the same real name are loaded.

2005-09-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/22304
	PR fortran/23270
	PR fortran/18870
	PR fortran/16511
	PR fortran/17917
	* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
	common.c so that it is accessible to module.c. Add common_head
	field to gfc_symbol structure. Add field for the equivalence
	name AND new attr field, in_equivalence.
	* match.c (gfc_match_common, gfc_match_equivalence): In loops
	that flag common block equivalences, emit an error if the
	common blocks are different, using sym->common_head as the
	common block identifier. Ensure that symbols that are equivalence
	associated with a common block are marked as being in_common.
	* module.c (write_blank_common): New.
	(write_common): Use unmangled common block name.
	(load_equiv): New function ported from g95.
	(read_module): Call load_equiv.
	(write_equiv): New function ported from g95. Correct
	string referencing for gfc functions. Give module
	equivalences a unique name.
	(write_module): Call write_equiv and write_blank_common.
	* primary.c (match_variable) Old gfc_match_variable, made
	static and third argument provided to indicate if parent
	namespace to be visited or not.
	(gfc_match_variable) New. Interface to match_variable.
	(gfc_match_equiv_variable) New. Interface to match_variable.
	* trans-common.c (finish_equivalences): Provide the call
	to create_common with a gfc_common_header so that
	module equivalences are made external, rather than local.
	(find_equivalences): Ensure that all members in common block
	equivalences are marked as used. This prevents the subsequent
	call to this function from making local unions.
	* trans-decl.c (gfc_generate_function_code): Move the call to
	gfc_generate_contained_functions to after the call to
	gfc_trans_common so the use-associated, contained common
	blocks produce the correct references.
	(gfc_create_module_variable): Return for equivalenced symbols
	with existing backend declaration.

2005-09-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18878
	* gfortran.dg/module_double_reuse.f90: New.

2005-09-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/23270
	PR fortran/22304
	PR fortran/18870
	PR fortran/17917
	PR fortran/16511
	* gfortran.dg/common_equivalence_1.f: New.
	* gfortran.dg/common_equivalence_2.f: New.
	* gfortran.dg/common_equivalence_3.f: New.
	* gfortran.dg/contained_equivalence_1.f90: New.
	* gfortran.dg/module_blank_common.f90: New.
	* gfortran.dg/module_commons_1.f90: New.
	* gfortran.dg/module_equivalence_1.f90: New.
	* gfortran.dg/nested_modules_1.f90: New.
	* gfortran.dg/g77/19990905-0.f: Remove XFAIL, rearrange
	equivalences and add comment to connect the test with
	the PR.

From-SVN: r104060
2005-09-09 00:23:09 +00:00
Tobias Schlüter
6d2ae4727d re PR fortran/23765 (segfault with syntactically wrong common declaration)
fortran/
	PR fortran/23765
	* match.c (gfc_match_common): Remove unnecessary / wrong special
	cases for end-of-statement.
testsuite/
	PR fortran/23765
	* gfortran.dg/common_6.f90: New test.

From-SVN: r104046
2005-09-08 23:55:59 +02:00
Janne Blomqvist
e014df900d gfortran.texi: Add section about implemented F2003 features.
2005-09-08  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* gfortran.texi: Add section about implemented F2003 features.

From-SVN: r104043
2005-09-08 21:42:59 +02:00
Richard Sandiford
0348d6fd85 re PR fortran/15326 ([4.0 only] ICE with assumed length character strings)
PR fortran/15326
	* trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in
	the GFC_SS_FUNCTION case too.
	* trans-expr.c (gfc_conv_function_val): Allow symbols to be bound
	to function pointers as well as function decls.
	(gfc_interface_sym_mapping, gfc_interface_mapping): New structures.
	(gfc_init_interface_mapping, gfc_free_interface_mapping)
	(gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array)
	(gfc_set_interface_mapping_bounds, gfc_add_interface_mapping)
	(gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons)
	(gfc_apply_interface_mapping_to_ref)
	(gfc_apply_interface_mapping_to_expr)
	(gfc_apply_interface_mapping): New functions.
	(gfc_conv_function_call): Evaluate the arguments before working
	out where the result should go.  Make the null pointer case provide
	the string length in parmse.string_length.  Cope with non-constant
	string lengths, using the above functions to evaluate such lengths.
	Use a temporary typespec; don't assign to sym->cl->backend_decl.
	Don't assign to se->string_length when returning a cached array
	descriptor.

From-SVN: r104040
2005-09-08 18:46:06 +00:00
Richard Sandiford
068e733886 re PR fortran/19928 (Reference of constant derived type component causes failure)
PR fortran/19928
	* trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain
	after handling scalarized references.  Make "indexse" inherit from
	"se" when handling AR_ELEMENTs.
	(gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each
	substring or scalar reference that follows an array section.
	* trans-expr.c (gfc_conv_variable): When called from within a
	scalarization loop, start out with "ref" pointing to the scalarized
	part of the reference.  Don't call gfc_advance_se_ss_chain here.

From-SVN: r104035
2005-09-08 16:06:54 +00:00
Richard Sandiford
8aeca7fda0 re PR fortran/23373 ([4.0 only] Functions returning pointers with pointer argument)
PR fortran/23373
	* trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary
	descriptor if the rhs is not a null pointer or variable.

From-SVN: r104029
2005-09-08 09:20:07 +00:00
Thomas Koenig
2a0abeaf55 re PR fortran/20848 (PARAMETER and SAVE attribute conflict)
2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/20848
	* symbol.c(check_conflict):  Add conflict for parameter/save,

2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/20848
	* gfortran.dg/parameter+save.f90:  New test case.

From-SVN: r104005
2005-09-07 21:08:24 +00:00
Richard Sandiford
d1d26ecf9f re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
PR fortran/19269
	* simplify.c (gfc_simplify_transpose): Set the result's typespec from
	the source, not the first element of the return value.

From-SVN: r103982
2005-09-07 07:36:12 +00:00
Tobias Schlüter
08e1fe9e0f re PR fortran/23661 ('print fmt' is unclassifiable statement in gfortran)
fortran/
	PR fortran/23661
	* io.c (match_io): Correctly backup if PRINT followed by
	symbol which is not a namelist.  Force blank between PRINT
	and namelist in free form.
testsuite/
	PR fortran/23661
	* gfortran.dg/print_fmt_1.f90, gfortran.dg/print_fmt_2.f90
	gfortran.dg/print_fmt_3.f90: New test.

From-SVN: r103824
2005-09-04 14:08:53 +02:00
Francois-Xavier Coudert
ee5426a488 re PR fortran/20592 (-fno-automatic (g77 option) is missing from gfortran.)
PR fortran/20592
	* gfortran.h (gfc_option_t): Add flag_automatic.
	* invoke.texi: Document the -fno-automatic option.
	* lang.opt: Add a -fautomatic option.
	* options.c (gfc_init_options): Default for -fautomatic is on.
	(gfc_handle_option): Add handling of -fautomatic option.
	* resolve.c (gfc_resolve): When -fno-automatic is used, mark
	needed variables as SAVE.

From-SVN: r103671
2005-08-31 12:31:30 +00:00
Tobias Schlüter
4f8ea09e0b [multiple changes]
2005-08-27  Erik Edelmann  <erik.edelmann@iki.fi>

	* trans-array.c (gfc_trans_deferred_array): Fix comments.

2005-08-27  Erik Schnetter  <schnetter@aei.mpg.de>

	* primary.c (match_charkind_name): Fix typo in comment leading to
	function.

From-SVN: r103558
2005-08-27 13:28:51 +02:00
Erik Edelmann
9e35b3869c re PR fortran/20363 (interface body has incorrect scope)
2005-08-25  Erik Edelmann  <eedelman@acclab.helsinki.fi>
fortran/
	PR fortran/20363
	* symbol.c (find_special): Remove.
	(build_sym, add_init_expr, attr_decl1): Remove calls to
	find_special in favor of calls to gfc_get_symbol.
testsuite/
	PR fortran/20363
	* gfortran.dg/named_interface.f90: New.

From-SVN: r103486
2005-08-25 13:57:36 +02:00
Thomas Koenig
fe58e07668 re PR fortran/17758 (gfortran_abort and some others should be marked as noreturn)
2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/17758
	* gfortran.h (symbol_attribute):  Add noreturn to the structure.
	(gfc_intrinsic_sym):  Add noreturn to the structure.
	* intrinsic.c (make_noreturn):  New function.
	(add_subroutines):  Mark subroutines abort and exit as noreturn.
	(gfc_intrinsic_sub_interface):  Copy noreturn attribute from
	isym to the resolved symbol.
	* trans-decl.c (gfc_get_extern_function_decl): Set function
	as VOLATILE (== noreturn) if the noreturn attribute is set.

2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/17758
	gfortran.dg/nonreturning_statements.f90: New test.

From-SVN: r103449
2005-08-24 20:04:20 +00:00
Steven G. Kargl
46fa431d51 * decl.c: Typo in comment.
From-SVN: r103330
2005-08-22 00:21:40 +00:00
Steven G. Kargl
beb6ae889f * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535.
From-SVN: r103323
2005-08-21 22:04:35 +00:00
Tobias Schlüter
e0bcf78cc8 gfortran.h (gfc_option_t): Remove source field.
fortran/
	* gfortran.h (gfc_option_t): Remove source field.  Add
	flag_d_lines field.
	(gfc_new_file): Remove arguments in prototype.
	(gfc_source_file): Make 'const char *'.
	* f95-lang.c (gfc_init): Use gfc_source_file instead of
	gfc_option.source.  Call gfc_new_file without arguments.
	* invoke.texi: Document new options '-fd-lines-as-code' and
	'-fd-lines-as-comment'.
	* lang.opt: Add new options.  Alphabetize.
	* options.c (gfc_init_options): Initialize gfc_source_file instead
	of gfc_option.source.  Initialize gfc_option.flag_d_lines.
	(form_from_filename): Move here from scanner.c.  Make
	'filename' argument 'const'.
	(gfc_post_options): Set gfc_source_file.  Determine source form.
	Warn if 'd-lines*' are used in free form.
	* scanner.c (gfc_source_file): Constify.
	(skip_fixed_comments): Deal with d-lines.
	(get_file): Constify argument 'name'.
	(load_file): Constify argument 'filename'.
	(form_from_filename): Moved to options.c.
	(gfc_new_file): Remove arguments.  Don't initialize
	gfc_source_file, don't determine source form.
	* trans-const.c (gfc_init_constants): Use gfc_source_file instead
	of gfc_option.source.

testsuite/
	* d_lines_1.f, d_lines_2.f, d_lines_3.f, d_lines_4.f,
	d_lines_5.f: New.

From-SVN: r103322
2005-08-21 17:28:27 +02:00
Tobias Schlüter
156afe1308 Fix changeLog typo
From-SVN: r103272
2005-08-19 11:05:36 +02:00
Steven G. Kargl
200cfbe7b9 re PR fortran/23065 (MAXPATHLEN usage in fortran/{scanner,module}.c)
2005-08-19  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/23065
	* gfortran.h: Remove PATH_MAX definition.
	* module.c (write_module, gfc_dump_module): Use alloca to allocate
	buffers.
	* scanner.s (gfc_release_include_path, form_from_filename): Ditto.

From-SVN: r103271
2005-08-19 11:05:03 +02:00
Steven Bosscher
f2dd440f45 re PR target/23376 (ICE on GCC 4.x with -O1 -funroll-loops -fvariable-expansion-in-unroller)
PR target/23376
	* loop-unroll.c (analyze_insn_to_expand_var): Make sure that
	force_operand will work later on using have_insn_for.

From-SVN: r103181
2005-08-16 22:24:30 +00:00
Feng Wang
20fe2233a7 [multiple changes]
2004-08-16  Huang Chun  <chunhuang73@hotmail.com>

	* trans-expr.c (gfc_conv_power_op): Evaluate the expression before
	expand.

2005-08-16  Feng Wang  <fengwang@nudt.edu.cn>

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

From-SVN: r103155
2005-08-16 12:58:46 +00:00
Tobias Schlüter
2b22401b5a parse.c (match): Enclosed macro in do...while(0) and braces.
2005-08-14  Asher Langton  <langton2@llnl.gov>

        * parse.c (match): Enclosed macro in do...while(0) and braces.

Also fix formatting of a few previous ChangeLog entries

From-SVN: r103086
2005-08-14 23:45:03 +02:00
Paul Thomas
21d7d31f71 re PR fortran/21432 (gfortran does not support printing of namelists)
2005-08-14 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21432.
	* gfortran.texi: Document PRINT namelist.

From-SVN: r103085
2005-08-14 21:43:12 +00:00
Paul Thomas
7af8f00c54 re PR fortran/21432 (gfortran does not support printing of namelists)
2005-08-14 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21432.
	* io.c (match_io): Add code to implement PRINT namelist.


2005-08-14 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21432.
	* gfortran.dg/namelist_print_1.f: New test of functionality of
	PRINT namelist.
	* gfortran.dg/namelist_print_2.f: New test to check that PRINT
	namelist generates error with -std=f95.

From-SVN: r103079
2005-08-14 16:15:40 +00:00
Canqun Yang
442c1644c7 trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal labels.
* trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal
	labels.

From-SVN: r103074
2005-08-14 10:06:06 +08:00
Francois-Xavier Coudert
8b67b708f1 re PR libfortran/20006 ($ format extension doesn't work)
PR libfortran/20006
	* gfortran.h: Add is_main_program member to symbol_attribute.
	* trans-decl: Add a gfor_fndecl_set_std tree.
	(gfc_build_builtin_function_decls): Create it.
	(gfc_generate_function_code): Add this call at the beginning of
	the main program.
	* trans.c (gfc_generate_code): Move main_program and attr.
	* trans.h: Add declaration for gfor_fndecl_set_std.

	* Makefile.am: Add file runtime/compile_options.c.
	* Makefile.in: Regenerate.
	* libgfortran.h: Create structure compile_options_t. Define the
	compile_options variable and GFC_STD_ macros.
	* runtime/compile_options.c: New file.
	* runtime/error.c (notify_std): New function.
	* runtime/main.c (init): Call init_compile_options during
	initialization.
	* io/format.c: Use the new notify_std function for the $
	descriptor extension.

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

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r102990
2005-08-11 13:50:13 +00:00
Thomas Koenig
bf30222095 re PR libfortran/22143 (missing kinds 1 and 2 for eoshift and cshift)
2005-08-10  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22143
	gfortran.h:  Declare new function gfc_resolve_dim_arg.
	resolve.c:  New function gfc_resolve_dim_arg.
	iresolve.c (gfc_resolve_all):  Use gfc_resolve_dim_arg.
	(gfc_resolve_any):  Likewise.
	(gfc_resolve_count):  Likewise.
	(gfc_resolve_cshift):  Likewise.  If the kind of shift is less
	gfc_default_integer_kind, convert it to default integer type.
	(gfc_resolve_eoshift):  Likewise.
	(gfc_resolve_maxloc):  Use gfc_resolve_dim_arg.
	(gfc_resolve_maxval):  Likewise.
	(gfc_resolve_minloc):  Likewise.
	(gfc_resolve_minval):  Likewise.
	(gfc_resolve_product):  Likewise.
	(gfc_resolve_spread):  Likewise.
	(gfc_resolve_sum):  Likewise.

2005-08-10  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22143
	gfortran.dg/shift-kind.f90:  New testcase.

From-SVN: r102957
2005-08-10 20:16:29 +00:00
François-Xavier Coudert
ae8b87895f check.c (gfc_check_ttynam_sub, [...]): Add check functions for new intrinsics TTYNAM and ISATTY.
* check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check
	functions for new intrinsics TTYNAM and ISATTY.
	* intrinsic.c (add_functions, add_subroutines): Add new
	intrinsics.
	* intrinsic.h: Add prototypes for new check and resolve
	functions.
	* iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New
	resolve functions for intrinsics TTYNAM and ISATTY.
	* gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY.
	* trans-intrinsic.c: Add case for GFC_ISYM_ISATTY.
	* Makefile.am: Add file intrinsics/tty.c to Makefile process.
	* Makefile.in: Regenerate.
	* io/io.h: Prototypes for new functions stream_isatty and
	stream_ttyname.
	* io/unix (stream_isatty, stream_ttyname): New functions to call
	isatty() and ttyname() on a given unit.
	* intrinsics/tty.c: New file to implement g77 intrinsics TTYNAM
	and ISATTY.

From-SVN: r102915
2005-08-09 17:33:17 +00:00
Jakub Jelinek
1e39a15138 scanner.c (preprocessor_line): Don't write beyond the end of flag buffer.
* scanner.c (preprocessor_line): Don't write beyond the end of flag
	buffer.

From-SVN: r102902
2005-08-09 10:08:28 +02:00
Janne Blomqvist
6403ec5ff6 [multiple changes]
2005-08-07   Janne Blomqvist <jblomqvi@cc.hut.fi>

        PR fortran/22390
        * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
        * gfortran.h: Add enums for FLUSH.
        * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
        comment appropriately.  (gfc_match_flush): New function.
        * match.c (gfc_match_if): Add match for flush.
        * match.h: Add prototype.
        * parse.c (decode_statement): Add flush to 'f' case.
        (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
        * resolve.c (resolve_code): Add flush case.
        * st.c (gfc_free_statement): Add flush case.
        * trans-io.c: Add prototype for flush.
        (gfc_build_io_library_fndecls): Build fndecl for flush.
        (gfc_trans_flush): New function.
        * trans-stmt.h: Add prototype.
        * trans.c (gfc_trans_code): Add case for flush.

2005-08-07  Janne Blomqvist  <jblomqvi@cc.hut.fi>

        PR fortran/22390
        * io/backspace.c: File removed, contents moved to ...
        * io/endfile.c: Ditto.
        * io/rewind.c: Ditto.
        * io/file_pos.c: New file, ... here.
        * Makefile.am: Add file_pos.c to list, remove obsolete files.
        * Makefile.in: Regenerated.

2005-08-07  Janne Blomqvist <jblomqvi@cc.hut.fi>
            Steven G. Kargl <kargls@comcast.net>

        PR fortran/22390
        * gfortran.dg/flush_1.f90: New test.

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r102835
2005-08-07 22:56:19 +00:00
Francois-Xavier Coudert
9da375252f * primary.c (match_hollerith_constant): Fix typo.
From-SVN: r102814
2005-08-06 19:18:45 +00:00
Kazu Hirata
49de9e7395 decl.c, [...]: Fix comment/doc typos.
* decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi,
	invoke.texi, resolve.c, trans-array.c, trans-array.h,
	trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix
	comment/doc typos.  Follow spelling conventions.

From-SVN: r102806
2005-08-06 12:56:19 +00:00
Jakub Jelinek
a8006d0933 re PR fortran/18833 (ICE 'missing spec' on integer/char equivalence)
PR fortran/18833
	PR fortran/20850
	* primary.c (match_varspec): If equiv_flag, don't look at sym's
	attributes, call gfc_match_array_ref up to twice and don't do any
	substring or component processing.
	* resolve.c (resolve_equivalence): Transform REF_ARRAY into
	REF_SUBSTRING or nothing if needed.  Check that substrings
	don't have zero length.

	* gfortran.dg/equiv_1.f90: New test.
	* gfortran.dg/equiv_2.f90: New test.
	* gfortran.fortran-torture/execute/equiv_2.f90: New test.
	* gfortran.fortran-torture/execute/equiv_3.f90: New test.
	* gfortran.fortran-torture/execute/equiv_4.f90: New test.

From-SVN: r102801
2005-08-06 12:00:53 +02:00
Thomas Koenig
eed61baa40 trans-expr.c (gfc_build_builtin_function_decls): Mark stop_numeric and stop_string as non-returning.
2005-08-05  Thomas Koenig  <Thomas.Koenig@online.de>

        * trans-expr.c  (gfc_build_builtin_function_decls):  Mark
        stop_numeric and stop_string as non-returning.

From-SVN: r102782
2005-08-05 20:37:07 +00:00
Paul Brook
a4f5cd4441 trans-expr.c (gfc_conv_expr, [...]): Update comments.
2005-08-04  Paul Brook  <paul@codesourcery.com>

	* trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
	(gfc_conv_expr_lhs): Fix assertion.
	(gfc_conv_expr_val): Merge post block.  Set se.expr to new value.
	* trans.h: Move and update comments.

From-SVN: r102729
2005-08-04 03:06:12 +00:00
David Edelsohn
c2fee3de3b re PR fortran/22491 (character array parameters do not reduce)
PR fortran/22491
	* expr.c (simplify_parameter_variable): Do not copy the subobject
	references if the expression value is a constant.

	* expr.c (gfc_simplify_expr): Evaluate constant substrings.

From-SVN: r102676
2005-08-02 21:55:37 -04:00
François-Xavier Coudert
5e9d09007d re PR libfortran/23178 (Undefined symbol: __gfortran_flush_i8)
PR libfortran/23178
	* intrinsics/flush.c (flush_i8): Add function flush_i8. Update
	copyright years.

From-SVN: r102641
2005-08-01 21:13:39 +00:00
Jerry DeLisle
ee2242a25a intrinsic.texi: Add documentation for exponent...
2005-07-31  Jerry DeLisle  <jvdelisle@verizon.net>

        * intrinsic.texi: Add documentation for exponent, floor, and fnum and
        fix description of ceiling in index.

From-SVN: r102622
2005-08-01 05:13:08 +00:00
Steven Bosscher
16275f18ff trans-decl.c (gfc_build_builtin_function_decls): Give the internal malloc functions the 'malloc' attribute.
* trans-decl.c (gfc_build_builtin_function_decls): Give the internal
	malloc functions the 'malloc' attribute.  Give runtime_error the
	'noreturn' attribute.

From-SVN: r102609
2005-07-31 21:41:39 +00:00
Steven Bosscher
75d2cf695f trans-stmt.c (gfc_trans_goto): Jump to the known label instead of the assigned goto variable.
* trans-stmt.c (gfc_trans_goto): Jump to the known label instead
	of the assigned goto variable.

From-SVN: r102607
2005-07-31 20:36:47 +00:00
Steven Bosscher
7e6de2a590 * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
From-SVN: r102529
2005-07-29 00:02:38 +00:00
Andrew Pinski
b8039bde3e f95-lang.c (language_function): Remove named_labels...
2005-07-28  Andrew Pinski  <pinskia@physics.uc.edu>

        * fortran/f95-lang.c (language_function): Remove
        named_labels, shadowed_labels, returns_value, returns_abnormally,
        warn_about_return_type, and extern_inline fields.
        (named_labels): Remove variable.
        (gfc_init_decl_processing): Remove setting of named_labels.

From-SVN: r102460
2005-07-27 21:47:23 -07:00
Volker Reichelt
6a28f513f1 re PR fortran/22503 (Suggest to use .EQV. when comparing logicals with .EQ.)
PR fortran/22503
	* resolve.c (resolve_operator): Improve diagnostic for comparison
	of logicals with invalid operator.

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

From-SVN: r102417
2005-07-27 08:30:46 +00:00
Jakub Jelinek
31f74accb2 re PR fortran/20063 (n*'xxxx' disables padding)
PR fortran/20063
	* data.c (gfc_assign_data_value_range): Call
	create_character_initializer if last_ts is a character type.

	* gfortran.fortran-torture/execute/data_4.f90: New test.

From-SVN: r102349
2005-07-25 09:51:12 +02:00
Manfred Hollstein
32cafd7366 tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised warnings.
gcc/ChangeLog:

	* tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised
	warnings.
	(int_add_graph_edge): Likewise.
	(collapse_nodes): Likewise.
	(process_unification_queue): Likewise.

gcc/cp/ChangeLog:

	* parser.c (cp_parser_declaration): Fix unitialised warnings.

gcc/fortran/ChangeLog:

	* match.c (gfc_match_symbol): Fix uninitialised warnings.
	* matchexp.c (gfc_match_expr): Likewise.

gcc/java/ChangeLog:

	* verify-impl.c (check_class_constant): Fix uninitialised warnings.
	(check_constant): Likewise.
	(check_wide_constant): Likewise.

From-SVN: r102273
2005-07-22 07:31:32 +00:00
Giovanni Bajo
4038c495fc Make CONSTRUCTOR use VEC to store initializers.
* c-common.c (complete_array_type): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
	(pp_c_constructor_elts): New function.
	* c-pretty-print.h (pp_c_constructor_elts): Declare.
	* c-typeck.c (build_function_call, build_c_cast, digest_init,
	struct constructor_stack, struct initializer_stack,
	constructor_elements, push_init_level, pop_init_level,
	add_pending_init, find_init_member, output_init_element): Update to
	cope with VEC in CONSTRUCTOR_ELTS.
	* coverage.c (build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* expr.c (categorize_ctor_elements_1, store_constructor,
	expand_expr_real_1): Likewise.
	* fold-const.c (fold_ternary): Likewise.
	* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
	gimplify_init_constructor, gimplify_expr): Likewise.
	* tree-dump.c (dequeue_and_dump): Likewise.
	* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
	node.
	* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* tree-sra.c (generate_element_init_1): Likewise.
	* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-vect-generic.c (expand_vector_piecewise): Likewise.
	* tree-vect-transform.c (vect_get_vec_def_for_operand):
	(get_initial_def_for_reduction): Likewise.
	* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
	value handle in annotations.
	* tree.c (tree_node_kind, tree_code_size, make_node_stat,
	tree_node_structure): Add support for constr_kind.
	(build_vector_from_ctor, build_constructor_single,
	build_constructor_from_list): New functions.
	(build_constructor): Update to take a VEC instead of a TREE_LIST.
	(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
	* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
	CONSTRUCTOR_APPEND_ELT): New macros.
	(struct constructor_elt, struct	tree_constructor): New data types.
	(union tree_node): Add tree_constructor field.
	* treestruct.def: Define TS_CONSTRUCTOR.
	* varasm.c (const_hash_1, compare_constant, copy_constant,
	compute_reloc_for_constant, output_addressed_constants,
	initializer_constant_valid_p, output_constant,
	array_size_for_constructor, output_constructor): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* vec.h (VEC_empty, VEC_copy): New macros.

ada/
	Make CONSTRUCTOR use VEC to store initializers.
	* decl.c (gnat_to_gnu_entity): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* trans.c (extract_values): Likewise.
	* utils.c (convert, remove_conversions): Likewise.
	* utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
	gnat_build_constructor): Likewise.

cp/
	Make CONSTRUCTOR use VEC to store initializers.
	* call.c (convert_default_arg): Update call to digest_init.
	* class.c (dump_class_hierarchy, dump_array): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
	(finish_compound_literal, digest_init): Update declaration.
	* decl.c (struct reshape_iter): New data type.
	(reshape_init_array): Rename to...
	(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
	(reshape_init): Rewrite from scratch. Split parts into...
	(reshape_init_array, reshape_init_vector, reshape_init_class,
	reshape_init_r): New functions.
	(check_initializer): Update call to reshape_init. Remove obsolete
	code.
	(initialize_artificial_var, cp_complete_array_type): Update to cope
	with VEC in CONSTRUCTOR_ELTS.
	* decl2.c (grokfield): Update calls to digest_init.
	(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
	* error.c (dump_expr_init_vec): New function.
	(dump_expr): Use dump_expr_init_vec.
	* init.c (build_zero_init, build_vec_init): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	(expand_default_init): Update call to digest_init.
	* parser.c  (cp_parser_postfix_expression): Use a VEC for the
	initializers.
	(cp_parser_initializer_list): Build a VEC of initializers.
	* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
	in CONSTRUCTOR_ELTS.
	* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
	ptm_initializer, class_initializer, get_pseudo_ti_init): Use
	build_constructor_from_list instead of build_constructor.
	* semantics.c (finish_compound_literal): Update call to digest_init.
	* tree.c (stabilize_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* typeck.c (build_ptrmemfunc1): Likewise.
	* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
	Likewise.
	(store_init_value): Use build_constructor_from_list and update call
	to digest_init.
	(digest_init): Rewrite.
	(process_init_constructor): Rewrite from scratch. Split into...
	(process_init_constructor_array, picflag_from_initializer,
	process_init_constructor_record, process_init_constructor_union):
	New functions.
	(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
	New macros.
	(build_functional_cast): Use build_constructor_from_list instead of
	build_constructor.

fortran/
	Make CONSTRUCTOR use VEC to store initializers.
	* trans-array.c (gfc_build_null_descriptor,
	gfc_trans_array_constructor_value, gfc_conv_array_initializer):
	Update to cope with VEC in CONSTRUCTOR_ELTS.
	* trans-common.c (create_common): Likewise.
	* trans-expr.c (gfc_conv_structure): Likewise.
	* trans-stmt.c (gfc_trans_character_select): Use
	build_constructor_from_list instead of build_constructor.

java/
	Make CONSTRUCTOR use VEC to store initializers.
	* check-init.c (check_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* class.c (make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table,
	emit_assertion_table): Use build_constructor_from_list instead of
	build_constructor.
	* constants.c (build_constants_constructor): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Update to cope with
	VEC in CONSTRUCTOR_ELTS.
	* java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
	PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
	of a TREE_LIST.
	* jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	* parse.y (build_new_array_init): Use build_constructor_from_list
	instead of build_constructor.
	(patch_new_array_init): Update to cope with VEC in
	CONSTRUCTOR_ELTS.
	(array_constructor_check_entry): Likewise.

objc/
	Make CONSTRUCTOR use VEC to store initializers.
	* objc-act.c (objc_build_constructor): Use build_constructor_from_list
	instead of build_constructor.

testsuite/
	Make CONSTRUCTOR use VEC to store initializers.
	* g++.dg/ext/complit3.C: Check for specific error messages.
	* g++.dg/init/brace2.C: Update error message.
	* g++.dg/warn/Wbraces2.C: Likewise.

From-SVN: r102182
2005-07-20 01:19:59 +00:00
Paul Thomas
24d36d28c4 re PR fortran/16940 (Failure to perform host association correctly)
2005-07-19 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16940
	* resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
	is matched against interfaces in parent namespaces. If there
	the symtree is set to point to the interface.

2005-07-19 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16940
	* gfortran.dg/module_interface_1.f90: New test.

From-SVN: r102167
2005-07-19 20:13:53 +00:00
David Edelsohn
7e2eba4bf9 re PR fortran/21730 ([4.0 only] Character length incorrect.)
PR fortran/21730
        * decl.c (do_parm): Adjust character initializer to character length
        of symbol before assigning.

From-SVN: r102104
2005-07-16 20:48:46 -04:00
Steve Ellcey
e8f35d4dc7 * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
From-SVN: r102034
2005-07-14 21:13:18 +00:00
Jakub Jelinek
d71b89ca60 gfortran.h (MAX_ERROR_MESSAGE): Remove.
* gfortran.h (MAX_ERROR_MESSAGE): Remove.
	(gfc_error_buf): Add allocated and index fields.  Change message
	field from array to a pointer.
	* error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
	(cur_error_buffer): New variable.
	(error_char): Use cur_error_buffer->{message,index} instead of
	{warning,error}_{buffer.message,ptr}.  Reallocate message buffer
	if too small.
	(gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
	cur_error_buffer and its index rather than {warning,error}_ptr
	and use_warning_buffer.
	(gfc_warning_check, gfc_error_check): Don't print anything if
	message is NULL.
	(gfc_push_error): Allocate saved message with xstrdup.
	(gfc_pop_error): Free saved message with gfc_free.
	(gfc_free_error): New function.
	* primary.c (match_complex_constant): Call gfc_free_error if
	gfc_pop_error will not be called.
	* match.c (gfc_match_st_function): Likewise.

	* gfortran.dg/g77/cpp6.f: New test.

From-SVN: r102015
2005-07-14 12:12:17 +02:00
Jakub Jelinek
94b00ee4e1 re PR fortran/22417 (gfortran preprocessing regression: nonsense warning about file left but not entered)
PR fortran/22417
	* scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
	file.  Fix file left but not entered warning.

	* gfortran.dg/g77/cpp5.F: New test.
	* gfortran.dg/g77/cpp5.h: New file.
	* gfortran.dg/g77/cpp5inc.h: New file.

From-SVN: r102010
2005-07-14 09:15:00 +02:00
Feng Wang
4a90ae54a0 [multiple changes]
2005-07-14  Steven G. Kargl  <kargls@comcast.net>

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

2005-07-14  Feng Wang  <fengwang@nudt.edu.cn>
	Steven G. Kargl  <kargls@comcast.net>

	* array.c (resolve_character_array_constructor): Allocate gfc_charlen
	for the array and attach to namespace list for automatic deallocation.

From-SVN: r102002
2005-07-14 01:37:41 +00:00
Andreas Schwab
d1f3352f2f Make-lang.in (fortran/dependency.o): Depend on $(GFORTRAN_TRANS_DEPS).
* Make-lang.in (fortran/dependency.o): Depend on
	$(GFORTRAN_TRANS_DEPS).

From-SVN: r101965
2005-07-13 13:33:31 +00:00
Jakub Jelinek
fcf3be37e2 trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before the outermost loop.
* trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
	the outermost loop.
	(gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
	gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
	Don't clear maskindexes here.

	* gfortran.fortran-torture/execute/forall_7.f90: New test.

From-SVN: r101865
2005-07-11 09:34:33 +02:00
Daniel Berlin
820cc88fbd Makefile.in (TREE_H): Add treestruct.def.
2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in (TREE_H): Add treestruct.def.
	(c-decl.o): Add pointer-set.h
	* c-decl.c (diagnose_mismatched_decls): Don't attempt to look at
	visibility on regular DECL's.
	(merge_decls): Fix the copying of decl nodes of various types for
	the new structures.  Don't update RTL, section name, weak status,
	etc, on DECL's without RTL.
	(grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone.
	Don't check volatile on non-variable types.
	(store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK
	to check whether we have seen arguments.
	* c-objc-common.c (c_tree_printer): Reverse order of tests so that
	flag is checked before field (flag is common, field is not).
	* dwarf2out.c (decl_ultimate_origin):  Only DECL's with
	TS_DECL_COMMON could have an origin.
	(add_location_or_const_value_attribute): Don't check section name
	on non-var/function decls.
	(dwarf2out_var_location): Reverse order of tests.
	* emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace
	with DECL_WRTL_CHECK.
	* expmed.c (make_tree): rtl is now in decl_with_rtl.
	* fold-const.c (fold_binary): Don't check weakness on
	non-var/function decls.
	(tree_expr_nonzero_p): Ditto.
	(fold_checksum_tree): Use tree_decl_extra as sizeof
	buffer.
	* ggc-page.c (extra_order_size_table): Add sizes for
	tree_decl_non_common, tree_parm_decl,  tree_var_decl, and
	tree_field_decl.
	* gimplify.c (gimplify_bind_expr): Only set
	DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL.
	* integrate.c (copy_decl_for_inlining): Don't set RTL on decl's
	without RTL.
	* langhooks-def.h (LANG_HOOK_INIT_TS): New.
	* langhooks.h (init_ts). New langhook.
	* passes.c (rest_of_decl_compilation): Reverse order of tests.
	* print-tree.c (print_node): Update to only print fields that
	exist in the structures the passed decl has.
	* toplev.c (wrapup_global_declarations): Don't reset
	DECL_DEFER_OUTPUT on DECL's that don't contain it.
	* tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed.
	* tree-inline.c (remap_decl): Ditto.
	* tree-outof-ssa.c (create_temp): Reverse order of tests.
	* tree-pretty-print.c (print_declaration): Don't print
	DECL_REGISTER on things that don't contain it.
	* tree-vrp.c (expr_computes_nonzero): Don't check weakness on
	non-var/function decls.
	* tree.c (tree_contains_struct): New structure.
	(init_priority_for_decl): New hashtable.
	(tree_int_map): New structure.
	(tree_int_map_eq): New function.
	(tree_int_map_marked_p): Ditto.
	(tree_int_map_hash): Ditto.
	(tree_map): Move to tree.h.
	(tree_map_eq): Externalize.
	(tree_map_hash): Ditto.
	(tree_map_marked_p): Ditto.
	(init_ttree): Set up tree_contains_struct and call langhook.
	(decl_assembler_name): Use DECL_NON_COMMON_CHECK..
	(tree_code_size): Update for new structures.
	(tree_node_structure): Update for new structures.
	(make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls
	without the field.
	(copy_node_stat):  Copy init priority.
	(build_decl_stat): Ditto for visibility.
	(ts_enum_names): New.
	(tree_contains_struct_check_failed): New function.
	(decl_init_priority_lookup): Ditto.
	(decl_init_priority_insert): Ditto.
	* treestruct.def: New file.
	* tree.h (CODE_CONTAINS_STRUCT): New macro.
	(CONTAINS_STRUCT_CHECK): Ditto.
	(tree_contains_struct_check_failed): New prototype.
	(DECL_CHECK): Removed.
	(DECL_MINIMAL_CHECK): New.
	(DECL_COMMON_CHECK): Ditto.
	(DECL_WRTL_CHECK): Ditto.
	(DECL_NON_COMMON_CHECK): Ditto.
	(DECL_WITH_VIS_CHECK): Ditto.
	(VAR_OR_FUNCTION_DECL_P): Ditto
	(struct tree_decl_minimal): New structure.
	(struct tree_decl_common): Ditto.
	(struct tree_decl_with_rtl): Ditto.
	(struct tree_decl_with_vis): Ditto.
	(struct tree_decl_non_common): Ditto.
	(struct tree_field_decl): Ditto.
	(struct tree_parm_decl): Ditto.
	(struct tree_var_decl): Ditto.
	(struct tree_function_decl): Ditto.
	(struct tree_const_decl): Ditto.
	(struct tree_result_decl): Ditto.
	(union tree_node): Add new structures.
	* var-tracking.c (track_expr_p): Reverse order of tests.

	* doc/c-tree.texi: Add documentation on DECL node internal structure.


2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
	removed.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* Make-lang.in: Add gt-cp-lang.h.
	(cp-lang.o): Ditto.
	* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
	the field.
	* config-lang.in: Add cp-lang.c to gtfiles.
	* cp-lang.c: Include hashtab.h.
	(cp_init_ts): New function.
	(LANG_HOOK_INIT_TS): Use macro.
	(decl_shadowed_for_var_lookup): New function.
	(decl_shadowed_for_var_insert): Ditto.
	* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
	(NON_THUNK_FUNCTION_CHECK): Ditto.
	(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
	(DECL_INIT_PRIORITY): Ditto.
	(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
	(DECL_SHADOWED_FOR_VAR): Use hashtable.
	(SET_DECL_SHADOWED_FOR_VAR): Ditto.
	* decl.c (duplicate_decls): Update for new/updated structures.
	(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
	* decl2.c (start_static_initialization_or_destruction): Deal with
	priority.
	* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
	SET_DECL_RTL.
	* tree.c (handle_init_priority_attribute): Handle priority.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* objc-act.c (objc_push_parm): DECL_ARG_TYPE_AS_WRITTEN is
	removed.
	* objc-act.h (KEYWORD_ARG_NAME): Use decl_non_common.
	(KEYWORD_KEY_NAME): Use decl_minimal.
	(METHOD_SEL_NAME): Ditto..
	(METHOD_SEL_ARGS): Use decl_non_common.
	(METHOD_ADD_ARGS): Ditto.
	(METHOD_ADD_ARGS_ELLIPSIS_P): Use decl_common.
	(METHOD_DEFINITION): Ditto.
	(METHOD_ENCODING): Ditto.
	* objc-lang.c: (objc_init_ts): New function.

2005-07-08  Daniel Berlin  <dberlin@dberlin.org>

	* trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
	is removed.

From-SVN: r101799
2005-07-08 23:37:11 +00:00
Jakub Jelinek
0921bc44f7 primary.c (gfc_match_rvalue): Handle ENTRY the same way as FUNCTION.
* primary.c (gfc_match_rvalue): Handle ENTRY the same way
	as FUNCTION.

	* gfortran.fortran-torture/execute/entry_10.f90: New test.

From-SVN: r101758
2005-07-08 12:06:57 +02:00
Jakub Jelinek
d1e3d6ae11 scanner.c (load_line): Add pbuflen argument, don't make buflen static.
* scanner.c (load_line): Add pbuflen argument, don't make
	buflen static.  If maxlen == 0 or preprocessor_flag,
	don't truncate at buflen, but at maxlen.  In xrealloc add
	1 byte at the end for the terminating '\0'.  Don't fill
	with spaces up to buflen, but gfc_option.fixed_line_length.
	(load_file): Adjust load_line caller.  Add line_len variable.

	* gfortran.dg/longline.f: New test.

From-SVN: r101718
2005-07-07 17:58:16 +02:00
Jakub Jelinek
4c3a6ca189 scanner.c (preprocessor_line): Only set current_file->line when errors have not been encountered.
* scanner.c (preprocessor_line): Only set current_file->line when errors
	have not been encountered.  Warn and don't crash if a file leave
	preprocessor line has no corresponding entering line.  Formatting.

	* gfortran.dg/badline.f: New test.

From-SVN: r101717
2005-07-07 17:55:53 +02:00
Steven Bosscher
24bce1fd23 primary.c (match_hollerith_constant): Use int, not unsigned int, for the hollerith length.
* primary.c (match_hollerith_constant): Use int, not unsigned int,
	for the hollerith length.  Fix indentation.

From-SVN: r101707
2005-07-07 11:59:29 +00:00
Feng Wang
bc192c773e Real commit for Hollerith constants.
From-SVN: r101689
2005-07-07 07:56:46 +00:00
Feng Wang
d3642f893a For the 60th anniversary of Chinese people��s Anti-Japan war victory.
2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* arith.c (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	New functions.
	(eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
	* arith.h (gfc_hollerith2int, gfc_hollerith2real,
	gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
	Add prototypes.
	* expr.c (free_expr0): Free memery allocated for Hollerith constant.
	(gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
	(gfc_check_assign): Enable conversion from Hollerith to other.
	* gfortran.h (bt): Add BT_HOLLERITH.
	(gfc_expr): Add from_H flag.
	* intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
	(add_conversions): Add conversions from Hollerith constant to other.
	(do_simplify): Don't simplify if  Hollerith constant arguments exist.
	* io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
	* misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
	(gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
	* primary.c (match_hollerith_constant): New function.
	(gfc_match_literal_constant): Add match Hollerith before Integer.
	* simplify.c (gfc_convert_constant): Add conversion from Hollerith
	to other.
	* trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
	convert Hollerith constant to tree.
	* trans-io.c (gfc_convert_array_to_string): Get array's address and
	length to set string expr.
	(set_string): Deal with array assigned Hollerith constant and character
	array.
	* gfortran.texi: Document Hollerith constants as extention support.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/16531
	PR fortran/15966
	PR fortran/18781
	* gfortran.dg/hollerith.f90: New.
	* gfortran.dg/hollerith2.f90: New.
	* gfortran.dg/hollerith3.f90: New.
	* gfortran.dg/hollerith4.f90: New.
	* gfortran.dg/hollerith_f95.f90: New.
	* gfortran.dg/hollerith_legacy.f90: New.
	* gfortran.dg/g77/cpp4.F: New. Port from g77.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/16531
	* io/transfer.c (formatted_transfer): Enable FMT_A on other types to
	support Hollerith constants.

From-SVN: r101688
2005-07-07 07:54:58 +00:00
Feng Wang
378f73afe0 re PR fortran/16531 ([4.0 only, gfortran] Hollerith Data not supported)
2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/16531
        PR fortran/15966
        PR fortran/18781
        * arith.c (gfc_hollerith2int, gfc_hollerith2real,
        gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
        New functions.
        (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
        * arith.h (gfc_hollerith2int, gfc_hollerith2real,
        gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
        Add prototypes.
        * expr.c (free_expr0): Free memery allocated for Hollerith constant.
        (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
        (gfc_check_assign): Enable conversion from Hollerith to other.
        * gfortran.h (bt): Add BT_HOLLERITH.
        (gfc_expr): Add from_H flag.
        * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
        (add_conversions): Add conversions from Hollerith constant to other.
        (do_simplify): Don't simplify if  Hollerith constant arguments exist.
        * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
        * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
        (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
        * primary.c (match_hollerith_constant): New function.
        (gfc_match_literal_constant): Add match Hollerith before Integer.
        * simplify.c (gfc_convert_constant): Add conversion from Hollerith
        to other.
        * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
        convert Hollerith constant to tree.
        * trans-io.c (gfc_convert_array_to_string): Get array's address and
        length to set string expr.
        (set_string): Deal with array assigned Hollerith constant and character
        array.
        * gfortran.texi: Document Hollerith constants as extention support.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/16531
        PR fortran/15966
        PR fortran/18781
        * gfortran.dg/hollerith.f90: New.
        * gfortran.dg/hollerith2.f90: New.
        * gfortran.dg/hollerith3.f90: New.
        * gfortran.dg/hollerith4.f90: New.
        * gfortran.dg/hollerith_f95.f90: New.
        * gfortran.dg/hollerith_legacy.f90: New.
        * gfortran.dg/g77/cpp4.F: New. Port from g77.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/16531
        * io/transfer.c (formatted_transfer): Enable FMT_A on other types to
        support Hollerith constants.

From-SVN: r101687
2005-07-07 07:54:40 +00:00
Feng Wang
9f9d4c5f50 re PR fortran/22327 ([4.0 only] Wrong code in array constructor)
2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/22327
	* trans-array.c (gfc_trans_array_constructor_value): Fix index of data.

2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/22327
	* gfortran.dg/array_constructor_5.f90: New test.

From-SVN: r101682
2005-07-07 01:56:04 +00:00
Jakub Jelinek
3c2d01f108 decl.c (gfc_match_entry): Allow ENTRY without parentheses even in FUNCTIONs.
* decl.c (gfc_match_entry): Allow ENTRY without parentheses
	even in FUNCTIONs.

	* gfortran.fortran-torture/execute/entry_9.f90: New test.

From-SVN: r101672
2005-07-07 00:12:25 +02:00
Kazu Hirata
9bce667ce5 gfortran.texi, [...]: Fix typos.
* gfortran.texi, intrinsic.texi: Fix typos.
	* symbol.c: Fix a comment typo.

From-SVN: r101560
2005-07-03 18:40:25 +00:00
Kazu Hirata
5189dd41d8 gfortran.texi, [...]: Fix typo.
* gfortran.texi, intrinsic.texi: Fix typo.
	* symbol.c: Fix a comment typo.

From-SVN: r101559
2005-07-03 18:39:20 +00:00
Kaveh R. Ghazi
0ce0154c40 c-format.c (gcc_gfc_format_type, [...]): New.
* c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
	gcc_gfc_char_table, init_dynamic_gfc_info): New.
	(format_types_orig, handle_format_attribute): Add support for
	format "gcc_gfc".

fortran:
	* error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
	* gfortran.h (ATTRIBUTE_GCC_GFC): New.
	(gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
	gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
	ATTRIBUTE_GCC_GFC.

testsuite:
	* gcc.dg/format/gcc_gfc-1.c: New.

From-SVN: r101552
2005-07-03 14:28:03 +00:00
François-Xavier Coudert
365ff3b926 re PR fortran/20842 (can't use 'END=' in output statement)
PR fortran/20842
	* io.c (match_dt_element): Do not allow END tag in PRINT or
	WRITE statement.
	* gfortran.dg/io_invalid_1.f90: New test.

From-SVN: r101545
2005-07-03 01:46:12 +00:00
Joseph Myers
c85ce869e7 c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
	config/rs6000/rs6000.opt, params.def: Remove "." from end of help
	texts.
	* config/avr/avr.c: Do not use '`' as left quote.
	* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
	Remove "." from end of diagnostics.  Make diagnostics start with
	lowercase letter.

cp:
	* name-lookup.c, parser.c: Use %q, %< and %> to quote in
	diagnostics.

fortran:
	* lang.opt: Remove "." from end of help texts.

objc:
	* objc-act.c: Use %q to quote in diagnostics.

From-SVN: r101533
2005-07-02 14:19:59 +01:00
Jerry DeLisle
f60d648137 intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and exit.
2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>

    * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and exit.
    Fixed alignment of text for dtime syntax. Fixed a few line lengths.

From-SVN: r101530
2005-07-02 03:17:55 +00:00
Jerry DeLisle
5724da632f gfortran.texi: Fixed typos and grammar.
2005-07-01  Jerry DeLisle <jvdelisle@verizon.net>

    * gfortran.texi: Fixed typos and grammar.
    * invoke.texi: Fixed typos and grammar.

From-SVN: r101527
2005-07-02 00:45:55 +00:00
Jerry DeLisle
ce5d6962f8 ChangeLog: Cleaned up changelog from 2005-06-24.
2005-06-26  Jerry DeLisle <jvdelisle@verizon.net>

    * fortran/ChangeLog: Cleaned up changelog from 2005-06-24.

From-SVN: r101345
2005-06-27 00:43:26 +00:00
Jakub Jelinek
7a1df4e2d7 trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical type than boolean_type_node.
* trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
	type than boolean_type_node.

From-SVN: r101331
2005-06-26 07:21:25 +02:00
Jakub Jelinek
60df4c1cd5 Move misplaced ChangeLog entry.
From-SVN: r101323
2005-06-25 23:06:46 +02:00
Kelley Cook
ab57747bb0 Update FSF address.
From-SVN: r101310
2005-06-25 00:40:37 +00:00
Jerry DeLisle
1e399e2331 re PR fortran/21915 ([4.0 only] Would like atanh etc. as intrinsics)
2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>

    PR fortran/21915
    * gfortran.h: Add symbols for new intrinsics
    * intrinsic.c: Add acosh, asinh, and atanh
    * intrinsic.h: Add prototypes
    * iresolve.c (gfc_resolve_acosh): New function
    (gfc_resolve_asinh): New
    (gfc_resolve_atanh): New
    * mathbuiltins.def: Add defines
    * simplify.c (gfc_simplify_acosh): New function
    (gfc_simplify_asinh): New
    (gfc_simplify_atanh): New

From-SVN: r101304
2005-06-24 23:12:32 +00:00
Feng Wang
a3504e64ab simplify.c (gfc_simplify_modulo): Don't clear before get result.
2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>

        * simplify.c (gfc_simplify_modulo): Don't clear before get result.


2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>

        * gfortran.dg/simplify_modulo.f90: New.

From-SVN: r101288
2005-06-24 03:23:04 +00:00
Paul Brook
bd83e6142d re PR fortran/21034 ([4.0 only] internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036)
2005-06-22 Paul Brook  <paul@codesourcery.com>

	PR fortran/21034
	* symbol.c (gfc_is_var_automatic): New function.
	(save_symbol): Use it.
testsuite/
	* gfortran.dg/auto_save_1.f90: New test.

From-SVN: r101250
2005-06-22 15:34:02 +00:00
Tobias Schlüter
15f9ce2980 namelist_use_1.msg
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>

From-SVN: r101233
2005-06-21 20:48:20 +00:00
François-Xavier Coudert
131c66cd15 gfortran.h: Add flag_backslash compile-time option.
* gfortran.h: Add flag_backslash compile-time option.
	* lang.opt: Add support for -fbackslash option.
	* options.c: Likewise.
	* primary.c: Implement behavior for -fno-backslash.
	* invoke.texi: Add doc for -fbackslash option.
	* gfortran.texi: Remove mention of -fno-backslash as a
	possible extension.
	* gfortran.dg/backslash_1.f90: New test.
	* gfortran.dg/backslash_2.f90: New test.

From-SVN: r101216
2005-06-20 20:14:20 +00:00
Steven G. Kargl
cb1d4dce15 re PR fortran/21257 ([4.0 only] Duplicate use of construct name)
PR fortran/21257
	(Ported from g95)
	* match.c (gfc_match_label): Detect duplicate labels.

From-SVN: r101214
2005-06-20 19:17:32 +00:00
Erik Edelmann
b376133b7f intrinsic.c (check_intrinsic_standard): Fix spelling error in a warning message.
* intrinsic.c (check_intrinsic_standard): Fix spelling error
	in a warning message.

From-SVN: r101207
2005-06-20 13:02:51 +00:00
Erik Edelmann
b7263e8f2f re PR fortran/19926 ([4.0 only] Incorrect rank with PARAMETER and array element.)
PR fortran/19926
* primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
  for an array; check that sym->as is NULL.

Co-Authored-By: Steven G. Kargl <kargls@comast.net>

From-SVN: r101161
2005-06-18 18:16:22 +00:00
Steven G. Kargl
14ceeb3258 intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic functions whose simplification routine return FAILURE.
* intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
  functions whose simplification routine return FAILURE.

From-SVN: r101160
2005-06-18 17:59:31 +00:00
Geoffrey Keating
7bfb5cccd7 Index: ChangeLog
2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Makefile.in (install-man): Doesn't really depend on installdirs.
	(various rules for installing manpages): Do depend on installdirs.

Index: cp/ChangeLog
2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
	(rule for installing g++.1 manpage): Does depend on installdirs.

Index: fortran/ChangeLog
2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
	(rule for installing f95.1 manpage): Does depend on installdirs.

Index: java/ChangeLog
2005-06-13  Geoffrey Keating  <geoffk@apple.com>

	* Make-lang.in (rule for installing gcj.1): Depends on installdirs.

From-SVN: r100928
2005-06-14 09:03:46 +00:00
Tobias Schlüter
a8e12e4d75 re PR fortran/22038 (Forall with mask broken)
fortran/
2005-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/22038
	* trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
	in the innermost loop.

testsuite/
2005-06-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/22038
	* gfortran.dg/forall_1.f90: Un-XFAIL.

From-SVN: r100887
2005-06-13 20:23:46 +02:00
Jakub Jelinek
dda895f9c6 trans-expr.c (gfc_conv_function_call): Return int instead of void.
* trans-expr.c (gfc_conv_function_call): Return int instead of
	void.  Use a local variable for has_alternate_specifier and
	return it.  Avoid modification of function type's return value
	in place, since it may be shared.
	* trans.h (has_alternate_specifier): Remove.
	(gfc_conv_function_call): Change return type.
	* trans-stmt.c (has_alternate_specifier): Remove.
	(gfc_trans_call): Add a local has_alternate_specifier variable,
	set it from gfc_conv_function_call return value.

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

From-SVN: r100878
2005-06-13 17:24:54 +02:00
Richard Henderson
4c73896d18 trans-array.c (gfc_conv_descriptor_data_get): Rename from gfc_conv_descriptor_data.
* trans-array.c (gfc_conv_descriptor_data_get): Rename from
        gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
        (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
        (gfc_trans_allocate_array_storage): Use them.
        (gfc_array_allocate, gfc_array_deallocate): Likewise.
        (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
        (gfc_trans_deferred_array): Likewise.
        * trans-expr.c (gfc_conv_function_call): Likewise.
        (gfc_trans_subcomponent_assign): Likewise.
        (gfc_trans_pointer_assignment): Likewise.
        * trans-intrinsic.c (gfc_conv_allocated): Likewise.
        * trans-types.c (gfc_array_descriptor_base): New.
        (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
        (gfc_get_array_descriptor_base): Break out from ...
        (gfc_get_array_type_bounds): ... here.  Create type variants.
        * trans-array.h (gfc_conv_descriptor_data_get): Declare.
        (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.

From-SVN: r100872
2005-06-12 23:18:15 -07:00
Tobias Schlüter
b49a3de743 trans-expr.c (gfc_conv_variable): POINTER results don't need f2c calling conventions.
fortran/
	* trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
	calling conventions.  Look at sym instead of sym->result.
	* trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
	Remove condition which is always false with workaround removed.
	(gfc_return_by_reference): Always look at sym, never at sym->result.
testsuite/
	* gfortran.dg/f2c_7.f90: New test.

From-SVN: r100857
2005-06-12 17:21:12 +02:00
Steven G. Kargl
364667a1ca re PR fortran/17792 ([4.0 only] deallocate does not return stat)
PR fortran/17792
PR fortran/21375
* trans-array.c (gfc_array_deallocate): pstat is new argument
  (gfc_array_allocate): update gfc_array_deallocate() call.
  (gfc_trans_deferred_array): ditto.
* trans-array.h: update gfc_array_deallocate() prototype.
* trans-decl.c (gfc_build_builtin_function_decls): update declaration
* trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.

From-SVN: r100845
2005-06-11 22:29:17 +00:00
Jerry DeLisle
ce677da7bc ChangeLog: Fix date on last commit.
2005-06-07  Jerry DeLisle <jvdelisle@verizon.net>

	* ChangeLog: Fix date on last commit.

From-SVN: r100698
2005-06-07 07:27:20 +00:00
Jerry DeLisle
3435a71e72 intrinsic.texi: Add documentation for dcmplx...
2005-06-03  Jerry DeLisle <jvdelisle@verizon.net>

	* intrinsic.texi: Add documentation for	dcmplx, digits,
	dim, idim, ddim, dot_product, dprod, dreal, and dtime.

From-SVN: r100697
2005-06-07 06:56:58 +00:00
Tobias Schlüter
86403f0f32 re PR fortran/21912 (Wrong implied do-loop)
fortran/
	PR fortran/21912
	* trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
	Generate correct exit condition in case of negative steps in
	implied-do loops.
testsuite/
	PR fortran/21912
	* gfortran.dg/array_constructor_4.f90: New test.

From-SVN: r100630
2005-06-05 20:03:47 +02:00
Tobias Schlüter
b4cbcd1a2d invoke.texi: Fix description of flags required for compatibility with g77.
* invoke.texi: Fix description of flags required for compatibility
	with g77.

From-SVN: r100621
2005-06-05 15:13:09 +02:00
Tobias Schlüter
2d6ea0b427 Add PR to ChangeLog
From-SVN: r100604
2005-06-05 00:22:39 +02:00
Tobias Schlüter
8e4005784d re PR fortran/19195 (gfortran: ICE in final_scan_insn, at final.c:1843)
fortran/
2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
	Erik Schnetter  <schnetter@aei.mpg.de>

	PR fortran/19195
	* trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
	remove FIXME comment.

testsuite/
2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/19195
	* gfortran.dg/debug_1.f90: New test.

Co-Authored-By: Erik Schnetter <schnetter@aei.mpg.de>

From-SVN: r100603
2005-06-05 00:20:58 +02:00
Tobias Schlüter
29405f9481 match.c (match_forall_iterator): Don't immediately give error if '=' is not followed by an expression.
fortran/
	* match.c (match_forall_iterator): Don't immediately give error if '='
	is not followed by an expression.
testsuite/
	* gfortran.dg/forall_1.f90: New test.

Co-Authored-By: Erik Edelmann <erik.edelmann@iki.fi>

From-SVN: r100580
2005-06-04 12:35:00 +02:00
Tobias Schlüter
ab21e2722d array.c (gfc_match_array_constructor): Disallow empty array constructor.
fortran/
2005-06-03  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
	Erik Edelmann  <erik.edelmann@iki.fi>

	* array.c (gfc_match_array_constructor): Disallow empty array
	constructor.
testsuite/
2005-06-04  Erik Edelmann  <erik.edelmann@iki.fi>

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

From-SVN: r100579
2005-06-04 12:26:57 +02:00
Jerry DeLisle
323d0f0bf2 intrinsic.texi: Add documentation for command_argument_count...
2005-06-03  Jerry DeLisle <jvdelisle@verizon.net>

	* fortran/intrinsic.texi: Add documentation for
	command_argument_count, conjg, dconjg, count,
	cpu_time, cshift, date_and_time, dble, dfloat.

From-SVN: r100575
2005-06-04 04:31:34 +00:00
Roger Sayle
c3a29423de intrinsic.c (add_conv): No longer take a "simplify" argument as its always gfc_convert_constant...
* intrinsic.c (add_conv): No longer take a "simplify" argument as
	its always gfc_convert_constant, instead take a "standard" argument.
	(add_conversions): Change all existing calls of add_conv to pass
	GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
	extensions support integer-logical and logical-integer conversions.
	(gfc_convert_type_warn): Warn about use the use of these conversions
	as a extension when appropriate, i.e. with -pedantic.
	* simplify.c (gfc_convert_constant): Add support for integer to
	logical and logical to integer conversions, using gfc_int2log and
	gfc_log2int.
	* arith.c (gfc_log2int, gfc_int2log): New functions.
	* arith.h (gfc_log2int, gfc_int2log): Prototype here.
	* gfortran.texi: Document this new GNU extension.

	* gfortran.dg/logint-1.f: New test case.
	* gfortran.dg/logint-2.f: Likewise.
	* gfortran.dg/logint-3.f: Likewise.

From-SVN: r100461
2005-06-01 19:17:37 +00:00
Paul Thomas
f7f7ac5a61 Changelog: Entry for this morning's patch.
2005-06-01  Paul Thomas  <pault@gcc.gnu.org>

	* fortran/Changelog: Entry for this morning's patch.

From-SVN: r100450
2005-06-01 14:27:46 +00:00
Jakub Jelinek
cf4d246bce re PR fortran/21729 (ICE in gfc_typenode_for_spec)
PR fortran/21729
	* resolve.c (resolve_contained_fntype): Use sym->attr.untyped
	to avoid giving error multiple times.
	(resolve_entries): Don't error about BT_UNKNOWN here.
	(resolve_unknown_f): Capitalize IMPLICIT for consistency.
	(resolve_fntype): New function.
	(gfc_resolve): Call resolve_fntype.

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

From-SVN: r100437
2005-06-01 12:00:19 +02:00
Paul Thomas
13a9737c19 trans-expr.c (gfc_conv_variable): Clean up bracketting.
2005-06-01  Paul Thomas  <pault@gcc.gnu.org>

	* fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
	* fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
	Correct comments and replace convert of integer_one_node with
	build_int_cst.

From-SVN: r100433
2005-06-01 07:18:20 +00:00
Feng Wang
bf3ddf8a1f re PR fortran/20883 (unassigned integer used as format)
2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/20883
        * fortran/io.c (resolve_tag): Fix error message.

2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/20883
        * gfortran/assign_4.f90: New test.
        * gfortran/assign_2.f90: Change compile to run.

From-SVN: r100424
2005-06-01 03:44:43 +00:00
Kaveh R. Ghazi
4c714dd4a6 basic-block.h, [...]: Don't include errors.h and include toplev.h if necessary.
* basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
	config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
	lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
	tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
	tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
	tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
	tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
	tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
	tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
	tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
	tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
	tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
	errors.h and include toplev.h if necessary.

	* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
	errors.h otherwise include toplev.h.

	* Makefile.in: Update dependencies.

ada:
	* misc.c: Don't include errors.h.

fortran:
	* fortran/trans-decl.c: Don't include errors.h.
	* fortran/Make-lang.in: Updates dependencies.

java:
	* java/verify-glue.c: Don't include errors.h and include toplev.h.
	* java/Make-lang.in: Updates dependencies.

treelang:
	* treelang/lex.l, treelang/parse.y: Don't include errors.h and
	include toplev.h.
	* treelang/Make-lang.in: Updates dependencies.

From-SVN: r100420
2005-06-01 02:51:18 +00:00
Paul Thomas
2b052ce2f5 re PR fortran/18109 (ICE with explicit array of strings)
2005-05-30  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18109
	PR fortran/18283
	PR fortran/19107
	* fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
	string length from the expression typespec character length value
	and set temp_ss->stringlength and backend_decl. Obtain the
	tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
	Dereference the expression to obtain the character.
	* fortran/trans-expr.c (gfc_conv_component_ref): Remove the
	dereference of scalar character pointer structure components.
	* fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
	string length for the structure component from the component
	expression.

From-SVN: r100400
2005-05-31 17:19:11 +00:00
Roger Sayle
c0309c74ca gfortran.h (GFC_STD_LEGACY): New "standard" macro.
* gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
	* options.c (gfc_init_options): By default, allow legacy extensions
	but warn about them.
	(gfc_post_options): Make -pedantic warn about legacy extensions
	even with -std=legacy.
	(gfc_handle_option): Make -std=gnu follow the default behaviour
	of warning about legacy extensions, but allowing them. Make the
	new -std=legacy accept everything and warn about nothing.
	* lang.opt (std=legacy): New F95 command line option.
	* invoke.texi: Document both -std=f2003 and -std=legacy.
	* gfortran.texi: Explain the two types of extensions and document
	how they are affected by the various -std= command line options.

From-SVN: r100377
2005-05-30 22:16:08 +00:00
Paul Thomas
5b1a826cc7 re PR fortran/16939 (Pointers not passed as subroutine arguments)
2005-05-29 Paul Thomas  <pault@gcc.gnu.org>

	* fortran/Changelog: Make up for my omission
	to update for PR16939 etc patches.

From-SVN: r100372
2005-05-30 19:52:02 +00:00
Kazu Hirata
897f1a8b3c * trans-expr.c: Fix comment typos.
From-SVN: r100362
2005-05-30 15:33:32 +00:00
Kazu Hirata
ec09945c8e * trans-expr.c: Remove trailing ^M.
From-SVN: r100359
2005-05-30 15:03:46 +00:00
Janne Blomqvist
c74a1edd8c Credit Janne for the issue patch.
From-SVN: r100343
2005-05-30 00:27:11 +00:00
Janne Blomqvist
44998b6526 re PR fortran/20846 (inquire(FILE=..., UNIT=...) not flagged as error)
fortran/PR20846
 * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.

From-SVN: r100338
2005-05-30 00:17:03 +00:00
Paul Thomas
72caba17ea re PR fortran/16939 (Pointers not passed as subroutine arguments)
2005-05-29 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/16939
	PR fortran/17192
	PR fortran/17193
	PR fortran/17202
	PR fortran/18689
	PR fortran/18890
	PR fortran/21297
	* fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
	length to temp_ss for character pointer array assignments.
	* fortran/trans-expr.c (gfc_conv_variable): Correct errors in
	dereferencing of characters and character pointers.
	* fortran/trans-expr.c (gfc_conv_function_call): Provide string
	length as return argument for various kinds of handling of return.
	Return a char[]* temporary for character pointer functions and
	dereference the temporary upon return.

From-SVN: r100324
2005-05-29 16:02:09 +00:00
Francois-Xavier Coudert
c9330b0331 re PR libfortran/20006 ($ format extension doesn't work)
PR libfortran/20006
	* io.c (format_item_1): Add check and extension warning for
	$ edit descriptor.
	* io/format.c (parse_format_list): Set repeat count of $ format
	node to 1.
	* io/transfer.c (read_sf): Add g.seen_dollar to the test
	concerning advancing I/O.
	(data_transfer_init): Likewise.
	(finalize_transfer): Likewise.

From-SVN: r100314
2005-05-29 12:22:49 +00:00
Steven G. Kargl
cd66d1a11b arith.c (gfc_arith_init_1): Fix off by one problem;
* arith.c (gfc_arith_init_1): Fix off by one problem;
  (gfc_check_integer_range): Chop extra bits in subnormal numbers.

From-SVN: r100299
2005-05-28 18:28:31 +00:00
Jerry DeLisle
eaef357b0f intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING and CMPLX
* intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
  and CMPLX

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r100297
2005-05-28 16:41:31 +00:00
Steven G. Kargl
4c1dd580b3 trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force like types in comparsion.
* trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
  like types in comparsion.

From-SVN: r100269
2005-05-27 18:20:52 +00:00
Kazu Hirata
aa9c57ecdb data.c, [...]: Fix comment typos.
* data.c, parse.c, trans-array.c, trans-decl.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
	trans.h: Fix comment typos.  Follow spelling conventions.

From-SVN: r100219
2005-05-26 18:36:11 +00:00
Roger Sayle
ec8a19405e * gfortran.texi: Document some more GNU extensions.
From-SVN: r100074
2005-05-23 03:20:19 +00:00
Francois-Xavier Coudert
e88763d1c8 * error.c (gfc_warning): Fix typo in comment.
From-SVN: r100070
2005-05-22 22:12:48 +00:00
Thomas Koenig
8f4dc7afb1 re PR libfortran/21127 (reshape of complex broken)
2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/21127
        * Makefile.am:  Add generated/reshape_c4.c and
        generated/reshape_c8.c.
        * Makefile.in:  Regenerated.
        * m4/iparm.m4:  Define rtype_ccode to be c4 or c8 for
        complex types, 4 or 8 otherwise.
        * m4/reshape.m4:  Use rtype_ccode instead of rtype_kind
        in function name.
        * generated/reshape_c4.c: New file.
        * generated/reshape_c8.c: New file.

2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/21127
        * fortran/iresolve.c (gfc_resolve_reshape): Add
        gfc_type_letter (BT_COMPLEX) for complex to
        to resolved function name.

2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>

        PR libfortran/21127
        * gfortran.dg/reshape-complex.f90:  New test.

From-SVN: r99925
2005-05-18 20:24:32 +00:00
Erik Edelmann
acc75ae36e array.c (gfc_match_array_constructor): Support [ ...
fortran/
	* array.c (gfc_match_array_constructor): Support [ ... ]
	style array constructors.
testsuite/
	* gfortran.dg/array_constructor_1.f90: New test.
	* gfortran.dg/array_constructor_2.f90: New test.

From-SVN: r99919
2005-05-18 21:20:31 +02:00
Tobias Schlüter
e743d142ae f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and...
* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
	and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
	* trans-intrinsic.c (build_fix_expr): Change 'op' argument
	to correct enum type.
	(gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
	function.  Add default case to switch, deal with FIX_TRUNC_EXPR
	instead of FIX_FLOOR_EXPR.

From-SVN: r99900
2005-05-18 15:57:48 +02:00
Feng Wang
1e7d0a6431 re PR fortran/20954 (gfortran - internal compiler error with -fdefault-integer-8)
2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/20954
        * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
        build character length.

2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/20954
        * gfortran.dg/pr20954.f: New test.

From-SVN: r99892
2005-05-18 09:54:21 +00:00
Zdenek Dvorak
b4838d2947 trans-types.c (gfc_array_range_type): New variable.
* trans-types.c (gfc_array_range_type): New variable.
	(gfc_init_types): Initialize gfc_array_range_type.
	(gfc_get_array_type_bounds): Use gfc_array_range_type.

From-SVN: r99854
2005-05-17 20:05:07 +00:00
Jakub Jelinek
8de1f441bb re PR fortran/15080 (Forall bounds not calculated correctly (forall_3.f90))
PR fortran/15080
	* trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
	arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
	of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
	just that as index.
	(generate_loop_for_rhs_to_temp): Likewise.
	(compute_overall_iter_number): Add INNER_SIZE_BODY argument.
	It non-NULL, add it to body.
	(allocate_temp_for_forall_nest_1): New function, split from
	allocate_temp_for_forall_nest.
	(allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
	propagate it down to compute_overall_iter_number.  Use
	allocate_temp_for_forall_nest_1.
	(gfc_trans_assign_need_temp): Remove COUNT2.  Call
	compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
	allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
	and generate_loop_for_temp_to_lhs.
	(gfc_trans_pointer_assign_need_temp): Adjust calls to
	allocate_temp_for_forall_nest.
	(gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
	stmtblock_t.  Call compute_overall_iter_number just once, then
	allocate_temp_for_forall_nest_1 twice with the same size.
	Initialize mask indexes if nested_forall_info != NULL.
	(gfc_trans_where_2): Initialize mask indexes before calling
	gfc_trans_nested_forall_loop.

	* gfortran.fortran-torture/execute/forall_3.f90: Remove comment
	about the test failing.
	* gfortran.fortran-torture/execute/where_7.f90: New test.
	* gfortran.fortran-torture/execute/where_8.f90: New test.

From-SVN: r99812
2005-05-17 08:31:51 +02:00
Feng Wang
b078dfbf39 [multiple changes]
2005-05-15  Feng Wang <fengwang@nudt.edu.cn>
        Jerry DeLisle <jvdelisle@verizon.net>

        PR fortran/17432
        * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
        resolve ICE on assign of format label.
        * trans-io.c (set_string): add fold-convert to properly
        handle assigned format label in write.

2005-05-15  Jerry DeLisle <jvdelisle@verizon.net>

        PR fortran/17432
        * gfortran.dg/assign_4.f: New test.

From-SVN: r99711
2005-05-15 02:45:29 +00:00
Paul Brook
cafa34aa46 trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
2005-05-13  Paul Brook  <paul@codesourcery.com>

	* trans-stmt.c (gfc_trans_forall_1): Fix comment typo.

From-SVN: r99660
2005-05-13 14:34:29 +00:00
Tobias Schlüter
4588b60480 * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
From-SVN: r99621
2005-05-12 20:19:37 +02:00
Tobias Schlüter
b160dd2803 re PR fortran/21260 (Conflict between comment and H edit descriptor)
fortran/
	PR fortran/21260
	* io.c (check_format): Look for literal characters inside
	hollerith constant.
testsuite/
	PR fortran/21260
	* gfortran.dg/hollerith_1.f90: New test.

From-SVN: r99597
2005-05-12 00:32:04 +02:00
Tobias Schlüter
3da7937d88 Fix incomplete ChagneLog from previous checkin.
From-SVN: r99586
2005-05-11 19:04:32 +02:00
Tobias Schlüter
09e7f68631 resolve.c (resolve_symbol): Copy 'pointer' and 'dimension' attribute from result symbol to function symbol.
fortran/
	* resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
	attribute from result symbol to function symbol.
testsuite/
	* gfortran.dg/func_result_2.f90: New test.

From-SVN: r99580
2005-05-11 16:52:51 +02:00
Tobias Schlüter
a226fc2b9c Fix previous buggy checkin to invoke.texi.
From-SVN: r99545
2005-05-11 00:12:04 +02:00
Tobias Schlüter
973ff4c052 re PR fortran/20178 (COMPLEX function returns incompatible with g77)
gcc/fortran/
	PR fortran/20178
	* gfortran.h (gfc_option): Add flag_f2c.
	* invoke.texi: Document '-ff2c' command line option.  Adapt
	documentation for '-fno-second-underscore' and '-fno-underscoring'.
	* lang.opt (ff2c): New entry.
	* options.c (gfc-init_options): Set default calling convention
	to -fno-f2c.  Mark -fsecond-underscore unset.
	(gfc_post_options): Set -fsecond-underscore if not explicitly set
	by user.
	(handle_options): Set gfc_option.flag_f2c according to requested
	calling	convention.
	* trans-decl.c (gfc_get_extern_function_decl): Use special f2c
	intrinsics where necessary.
	(gfc_trans_deferred_vars): Change todo error to	assertion.
	* trans-expr.c (gfc_conv_variable): Dereference access
	to hidden result argument.
	(gfc_conv_function_call): Add hidden result argument to argument
	list if f2c calling conventions requested.  Slightly restructure
	tests.  Convert result of default REAL function to requested type
	if f2c calling conventions are used.  Dereference COMPLEX result
	if f2c cc are used.
	* trans-types.c (gfc_sym_type):  Return double for default REAL
	function if f2c cc are used.
	(gfc_return_by_reference): Slightly restructure logic.  Return
	COMPLEX by reference depending on calling conventions.
	(gfc_get_function_type): Correctly make hidden result argument a
	pass-by-reference argument for COMPLEX.  Remove old code which does
	this for derived types.
libgfortran/
	PR fortran/20178
	* Makefile.am (gfor_specific_src): Add 'intrinsics/f2c_intrinsics.F90'
	to dependencies.
	* Makefile.in: Regenerate.
	* intrinsics/f2c_specific.F90: New file.
gcc/testsuite/
	PR fortran/20178
	* gfortran.dg/f2c_1.f90, gfortran.dg/f2c_2.f90,
	gfortran.dg/f2c_3.f90: New tests.

From-SVN: r99544
2005-05-11 00:06:55 +02:00
Tobias Schlüter
7f42f27f33 match.c (gfc_match_return): Only require space after keyword when it is obligatory.
fortran/
	* match.c (gfc_match_return): Only require space after keyword when
	it is obligatory.  Only give stdwarn to after matching is successful.
	* dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
testsuite/
	* gfortran.dg/return_1.f90: New test.

From-SVN: r99467
2005-05-09 20:26:20 +02:00
Kazu Hirata
357877ed3e * intrinsic.texi: Fix typos.
From-SVN: r99394
2005-05-08 15:30:38 +00:00
Steven G. Kargl
a6334742f2 intrinsic.texi: Document ASSOCIATED and ATAN2.
* intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
  descriptions to include info about scalar arguments.

From-SVN: r99365
2005-05-07 20:37:20 +00:00
Kazu Hirata
aa990c836b Make-lang.in, [...]: Update copyright.
* Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
	match.h, trans-array.h: Update copyright.

From-SVN: r99172
2005-05-03 18:40:36 +00:00
Tom Tromey
22e8617b22 tree.c (build_block): Removed unused 'tags' argument.
gcc:
	* tree.c (build_block): Removed unused 'tags' argument.
	* tree.h (build_block): Removed argument.
gcc/java:
	* expr.c (build_jni_stub): Updated for change to build_block.
gcc/treelang:
	* treetree.c (poplevel): Updated for change to build_block.
gcc/fortran:
	* f95-lang.c (poplevel): Updated for change to build_block.

From-SVN: r99019
2005-04-29 20:27:58 +00:00
Jakub Jelinek
d198b59ab1 [multiple changes]
2005-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/13082
	PR fortran/18824
	* trans-expr.c (gfc_conv_variable): Handle return values in functions
	with alternate entry points.
	* resolve.c (resolve_entries): Remove unnecessary string termination
	after snprintf.  Set result of entry master.
	If all entries have the same type, set entry master's type
	to that common type, otherwise set mixed_entry_master attribute.
	* trans-types.c (gfc_get_mixed_entry_union): New function.
	(gfc_get_function_type): Use it for mixed_entry_master functions.
	* gfortran.h (symbol_attribute): Add mixed_entry_master bit.
	* decl.c (gfc_match_entry): Set entry->result properly for
	function ENTRY.
	* trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
	__entry argument.
	(build_entry_thunks): Handle return values in entry thunks.
	Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
	shared between multiple contexts.
	(gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
	current_function_decl instead of sym->backend_decl.  Skip over
	entry master's entry id argument.  For mixed_entry_master entries or
	their results, return a COMPONENT_REF of the fake result.
	(gfc_trans_deferred_vars): Don't warn about missing return value if
	at least one entry point uses RESULT.
	(gfc_generate_function_code): For entry master returning
	CHARACTER, copy ts.cl->backend_decl to all entry result syms.
	* trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
	values optional just because they are in entry master.

	* gfortran.dg/entry_4.f90: New test.
	* gfortran.fortran-torture/execute/entry_1.f90: New test.
	* gfortran.fortran-torture/execute/entry_2.f90: New test.
	* gfortran.fortran-torture/execute/entry_3.f90: New test.
	* gfortran.fortran-torture/execute/entry_4.f90: New test.
	* gfortran.fortran-torture/execute/entry_5.f90: New test.
	* gfortran.fortran-torture/execute/entry_6.f90: New test.
	* gfortran.fortran-torture/execute/entry_7.f90: New test.

2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.fortran-torture/execute/entry_8.f90: New test.

From-SVN: r98993
2005-04-29 17:31:39 +02:00
Francois-Xavier Coudert
4c1f4f52ed gfortran.h (gfc_namespace): Add seen_implicit_none field, Tobias forgot this in previous commit.
* gfortran.h (gfc_namespace): Add seen_implicit_none field,
	Tobias forgot this in previous commit.

From-SVN: r98980
2005-04-29 07:23:39 +00:00
Paul Brook
1a7bfcc32d trans-expr.c (gfc_conv_expr_present): Fix broken assert.
2005-04-29  Paul Brook   <paul@codesourcery.com>

	* trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
	comment.

From-SVN: r98968
2005-04-29 02:34:11 +00:00
Tobias Schlüter
438e142878 gfortran.h (gfc_namespace): Add seen_implicit_none field.
fortran/
	* gfortran.h (gfc_namespace): Add seen_implicit_none field.
	* symbol.c (gfc_set_implicit_none): Give error if there's a previous
	IMPLICIT NONE, set seen_implicit_none.
	(gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
testsuite/
	* gfortran.dg/implicit_4.f90: New test.

From-SVN: r98952
2005-04-29 02:13:08 +02:00
Tobias Schlüter
973a384d4f gfortran.h (gfc_gsymbol): Make name a const char *.
* gfortran.h (gfc_gsymbol): Make name a const char *.
	* symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
	gfc_get_string.

From-SVN: r98942
2005-04-28 23:09:04 +02:00
Francois-Xavier Coudert
781e1004f3 re PR fortran/20865 (statement function shall not be supplied as procedure argument)
PR fortran/20865
	* resolve.c (resolve_actual_arglist): Issue an error if a statement
	functions is used as actual argument.
	* gfortran.dg/pr20865.f90: New test.

From-SVN: r98919
2005-04-28 11:56:08 +00:00
François-Xavier Coudert
90aeadcb5c re PR fortran/21177 (wrong code with NULL())
PR fortran/21177

	* interface.c (compare_parameter): Ignore type for EXPR_NULL
	only if type is BT_UNKNOWN.

	* gfortran.dg/pr21177.f90: New test

From-SVN: r98837
2005-04-27 15:37:53 +00:00
Paul Brook
860c8f3ba9 re PR fortran/20879 (argument to ICHAR must have length one)
2005-04-25  Paul Brook  <paul@codesourcery.com>
	Steven G. Kargl  <kargls@comcast.net>

	PR fortran/20879
	* check.c (gfc_check_ichar_iachar): New function.
	* instinsic.h (gfc_check_ichar_iachar): Add prototype.
	* intrinsic.c (add_functions): Use it.
	* primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
	character expression lengths.

testsuite/
	* gfortran.dg/ichar_1.f90: New file.

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r98686
2005-04-25 00:09:11 +00:00
Tobias Schlüter
eb83e81102 re PR fortran/20059 (internal compiler error: Segmentation Fault - For common blocks)
fortran/
	PR fortran/20059
	* trans-common.c (translate_common): Cast offset and
	common_segment->offset to type int for warning message.
testsuite/
	PR fortran/20059
	* gfortran.dg/common_5.f: New test.

From-SVN: r98660
2005-04-24 15:51:39 +02:00
DJ Delorie
d4ee4d2525 diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.

* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.

* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.

* ada/misc.c: Adjust warning() callers.

* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.

* fortran/trans-decl.c: Adjust warning() callers.

* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.

* objc/objc-act.c: Adjust warning() callers.

* treelang/parse.y: Adjust warning() callers.

From-SVN: r98633
2005-04-23 17:29:07 -04:00
Paul Thomas
670026fb25 Update of gfortran.info to describe extensions to the standard for namelist io.
From-SVN: r98622
2005-04-23 17:03:07 +00:00
Tobias Schlüter
beceb652c9 Fix comment typo in previous checkin.
From-SVN: r98620
2005-04-23 17:33:33 +02:00
Tobias Schlüter
855a145c55 trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as intermediate representation.
* trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
intermediate representation.

From-SVN: r98619
2005-04-23 17:19:06 +02:00
Steven G. Kargl
c41993e86d trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation; simplify logic; Add a gcc_assert.
* trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
  simplify logic; Add a gcc_assert.

From-SVN: r98587
2005-04-22 20:33:12 +00:00
Steven G. Kargl
6c08eb63c5 trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
From-SVN: r98430
2005-04-20 01:27:31 +00:00
Arnaud Desitter
3010be13ff invoke.texi: Update -Waliasing description.
* invoke.texi:  Update -Waliasing description.

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r98418
2005-04-19 18:56:13 +00:00
Francois-Xavier Coudert
009e94d4e6 re PR fortran/16861 ([4.0 only] segfault with doubly used module)
PR fortran/16861
	* resolve.c (resolve_variable): If e->symtree is not set, this
	ought to be a FAILURE, and not a segfault.
	* gfortran.dg/pr16861.f90: New test.

From-SVN: r98391
2005-04-19 07:10:05 +00:00
Tobias Schlüter
8a731165af Rewrap ChangeLog. I'm listing the affected PRs so that they receive anot about this, even though the commit message for the original patch was empty.
PR fortran/17472
PR fortran/18209
PR fortran/18396
PR fortran/19467
PR fortran/19657

From-SVN: r98350
2005-04-18 23:44:22 +02:00
Paul Thomas
29dc5138c3 re PR fortran/17472 ([4.0 only] namelist does not handle arrays)
-------------------------------------------------------------------

From-SVN: r98287
2005-04-17 20:09:37 +00:00
Richard Guenther
a34938bea3 scanner.c (gfc_next_char_literal): Reset truncation flag for lines ending in a comment for both fixed and free form.
2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>

	* scanner.c (gfc_next_char_literal): Reset truncation flag
	for lines ending in a comment for both fixed and free form.
	(load_line): Do not set truncated flag if only truncating
	the EOL marker.

	* gfortran.dg/wtruncate.f: New testcase.
	* gfortran.dg/wtruncate.f90: New testcase.

From-SVN: r98269
2005-04-17 11:56:30 +00:00
Richard Guenther
ba1defa540 re PR fortran/14569 ([4.0 only] should not warn about truncated comment lines)
2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>

	PR fortran/14569
	* gfortran.h (gfc_linebuf): Add truncated field.
	* parse.c (next_statement): Handle warning for truncated
	lines.
	* scanner.c (load_line): Return if line was truncated.
	No longer warn for truncated lines.  Remove unused parameters.
	(load_file): Store load_line return value to linebuf.
	(gfc_error_recovery): Do not advance line at the end.

From-SVN: r98210
2005-04-15 20:35:26 +00:00
Steven G. Kargl
2d0aa65f1e gfortran.h (gfc_real_info): Add subnormal struct member.
* gfortran.h (gfc_real_info): Add subnormal struct member.
* arith.c (gfc_arith_init_1): Set it.
  (gfc_check_real_range): Use it.
* simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).

From-SVN: r98141
2005-04-14 16:29:31 +00:00
François-Xavier Coudert
907d22fd44 ChangeLog: Added comment on gfc_match_if for the 2005-04-09 entry on match.c.
* ChangeLog: Added comment on gfc_match_if for the
	2005-04-09 entry on match.c.

From-SVN: r98127
2005-04-14 08:09:19 +00:00
Kazu Hirata
c33063e837 * simplify.c: Fix a comment typo.
From-SVN: r98021
2005-04-12 14:10:38 +00:00
Richard Sandiford
0b026622a5 lang.opt: Refer to the GCC internals documentation instead of c.opt.
fortran/
	* lang.opt: Refer to the GCC internals documentation instead of c.opt.

ada/
	* lang.opt: Refer to the GCC internals documentation instead of c.opt.

java/
	* lang.opt: Refer to the GCC internals documentation instead of c.opt.

treelang/
	* lang.opt: Refer to the GCC internals documentation instead of c.opt.

From-SVN: r98012
2005-04-12 08:35:26 +00:00
Tobias Schlüter
9f32d03748 simplify.c (gfc_simplify_nearest): Overhaul.
fortran/
* simplify.c (gfc_simplify_nearest): Overhaul.

testsuite/
* gfortran.dg/fold_nearest.f90: New test.

From-SVN: r97987
2005-04-11 23:48:27 +02:00
Kazu Hirata
6892757cae * interface.c: Fix a comment typo.
From-SVN: r97951
2005-04-10 17:49:46 +00:00
Francois-Xavier Coudert
51c3f0f6d7 match.c (match_arithmetic_if): Arithmetic IF is obsolete in Fortran 95.
* match.c (match_arithmetic_if): Arithmetic IF is obsolete in
	Fortran 95.

	* gfortran.dg/pr17229.f: Take care of the new obsolescence
	warning for arithmetic IF statements.

From-SVN: r97948
2005-04-10 16:01:54 +00:00
Steven G. Kargl
8e1fa5d622 simplify.c (gfc_simplify_anint): Use mpfr_round()
* simplify.c (gfc_simplify_anint): Use mpfr_round()
(gfc_simplify_dnint): ditto.
(gfc_simplify_nint): ditto.

From-SVN: r97930
2005-04-09 22:41:35 +00:00
Andrew Pinski
53d8a8ac22 re PR fortran/13257 ([4.0 only] Error instead of warning for missing comma in format string)
PR fortran/13257

fortran/ChangeLog:
	* io.c (check_format): Allow an optional comma
	between descriptors.

libgfortran/ChangeLog:
	* format.c (parse_format_list): Allow an optional comma
	between descriptors.

testsuite/ChangeLog:
	* comma_format_extension_[1234].f: New tests.

From-SVN: r97919
2005-04-09 11:44:07 -07:00
Francois-Xavier Coudert
835d64ab88 match.c (match_arithmetic_if): Remove gfc_ prefix and correct comment according to GNU coding style.
* match.c (match_arithmetic_if): Remove gfc_ prefix and correct
	comment according to GNU coding style.

From-SVN: r97890
2005-04-09 09:13:53 +00:00
Diego Novillo
f55e72cef7 * match.c (gfc_match_arithmetic_if): Declare static.
From-SVN: r97846
2005-04-08 14:05:38 -04:00
Francois-Xavier Coudert
43e1c5f720 re PR fortran/17229 (parser confused by arithmetic if inside an if)
PR fortran/17229

	* match.c (gfc_match_arithmetic_if): New function to match an
	arithmetic IF statement.
	(gfc_match_if): Use gfc_match_arithmetic_if to match an
	arithmetic IF statement embedded in a simple IF statement.

	* gfortran.dg/pr17229.f: New test.

From-SVN: r97825
2005-04-08 10:56:59 +00:00
Steven G. Kargl
01ae893012 simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
From-SVN: r97792
2005-04-07 18:26:37 +00:00
Steven G. Kargl
53ae8e14b2 Remove documentation of the nonexistent -std=f90 option.
From-SVN: r97749
2005-04-06 21:11:48 +00:00
Tobias Schlüter
ccccdb8d9b expr.c (gfc_check_assign): Don't allow NULL as rhs in a non-pointer assignment.
fortran/
* expr.c (gfc_check_assign): Don't allow NULL as rhs in a
non-pointer assignment.

testsuite/
* gfortran.dg/pr15754.f90: Change annotations to dg-error.

From-SVN: r97740
2005-04-06 20:03:09 +02:00
Feng Wang
bd02474522 Add ChangeLog.
From-SVN: r97701
2005-04-06 07:56:14 +00:00
Feng Wang
df7cc9b576 re PR fortran/15959 (ICE and assertion failure in trans-decl.c with character initialization)
2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>

	PR fortran/15959
	PR fortran/20713

	* array.c (resolve_character_array_constructor): New function. Set
	constant character array's character length.
	(gfc_resolve_array_constructor): Use it.
	* decl.c (add_init_expr_to_sym): Set symbol and initializer character
	length.
	(gfc_set_constant_character_len): New function. Set constant character
	expression according the given length.
	* match.h (gfc_set_constant_character_len): Add prototype.

2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>

	* gfortran.dg/pr15959.f90: New test.
	* gfortran.dg/string_pad_trunc.f90: New test.

From-SVN: r97613
2005-04-05 08:54:50 +00:00
Francois-Xavier Coudert
c6db4d01cb * intrinsic.texi: BES?? functions are not in the f95 standard.
From-SVN: r97538
2005-04-04 12:10:21 +00:00
Francois-Xavier Coudert
a5d58aeb44 * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
From-SVN: r97496
2005-04-03 19:15:41 +00:00
Francois-Xavier Coudert
f7cdcbf1c5 intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1, BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
* intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
	BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.

From-SVN: r97495
2005-04-03 17:46:07 +00:00
Steven G. Kargl
6230d2761a Document ALLOCATED, ANINT, ANY, ASIN; Fix typos.
From-SVN: r97473
2005-04-03 01:20:56 +00:00
Kazu Hirata
69de3b838f decl.c, [...]: Fix comment typos.
* decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
	trans.h: Fix comment typos.

From-SVN: r97364
2005-04-01 04:16:52 +00:00
Steven G. Kargl
3ae9eb270a gfortran.h (option_t): Change d8, i8, r8 to flag_default_double, flag_default_integer, flag_default_real
* gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
  flag_default_integer, flag_default_real
* invoke.texi: Update documentation
* lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
  fdefault-integer-8, and fdefault-real-8 definitions.
* options.c (gfc_init_options): Set option defaults
  (gfc_handle_option): Handle command line options.
* trans-types.c (gfc_init_kinds): Use options.

From-SVN: r97221
2005-03-30 00:30:51 +00:00
Dorit Nuzman
8bb46326fb tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
        (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
        * tree-vect-analyze.c (vect_object_analysis): additional parm
        pass back a "struct ptr_info_def *" with the points-to info.
        (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
        statement using info returned from vect_object_analysis.
        * tree-vect-transform.c (update_vuses_to_preheader): New function.
        (vect_create_data_ref_ptr): Remove updates to vars_to_rename
        for virtual uses and defs when creating a replacement vector
        reference.  Call duplicate_ssa_name_ptr_info to define points-to
        info for vector pointer replacement using STMT_VINFO_PTR_INFO.
        (vectorizable_store): copy_virtual_operands and update
        definition statements.
        (vectorizable_load): copy_virtual_operands.  Remove call to
        mark_call_clobbered_vars_to_rename for call to "const" builtin.
        * tree-vectorizer.c (vectorize_loops): Remove calls to
        rewrite_into_ssa and bitmap_clear (vars_to_rename).
        (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
        * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
        define macro STMT_VINFO_PTR_INFO for use in accessing.
        * tree.h add export of duplicate_ssa_name_ptr_info.
        * rs6000.c (altivec_init_builtins): Declare builtin function
        __builtin_altivec_mask_for_load to be "const".

From-SVN: r97164
2005-03-29 16:10:22 +00:00
Steven G. Kargl
6b32f9fc29 Document AIMAG, AINT, ALL
From-SVN: r97123
2005-03-28 02:52:58 +00:00
Steven G. Kargl
4c54501beb Fix illogical logic.
From-SVN: r97082
2005-03-26 18:33:53 +00:00
Canqun Yang
a312242430 trans-common.c (create_common): Build RECORD_NODE for common blocks contain no equivalence objects.
* trans-common.c (create_common): Build RECORD_NODE for common blocks
	contain no equivalence objects.
	(add_equivalences): New argument saw_equiv.
	(trans_common): New local variable saw_equiv.
	(finish_equivalences): Add a local variable dummy, Always pass true
	for the 3rd parameter to create_common.

From-SVN: r97079
2005-03-26 13:34:58 +08:00
Steven G. Kargl
7b4047a0de Fix "make dvi"
From-SVN: r97065
2005-03-25 20:23:05 +00:00
Steven G. Kargl
8db2ba4032 intrinsic.texi: New file.
gfortran.texi: Include it; white space change; fix typo.

From-SVN: r97000
2005-03-24 18:16:33 +00:00
Joseph Myers
d101034cd8 langhooks.h (truthvalue_conversion): Remove.
* langhooks.h (truthvalue_conversion): Remove.
	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
	LANG_HOOKS_TRUTHVALUE_CONVERSION.
	* system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
	* gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

ada:
	* misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

cp:
	* cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

fortran:
	* f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

java:
	* lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.

treelang:
	* treetree.c (LANG_HOOKS_TRUTHVALUE_CONVERSION,
	tree_lang_truthvalue_conversion): Remove.
	* tree-convert.c: Don't call truthvalue_conversion.

From-SVN: r96947
2005-03-23 19:47:09 +00:00
Steven Bosscher
10c7a96fe6 convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
* convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
	* trans-array.c (gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
	gfc_conv_array_index_ref, gfc_trans_array_bound_check,
	gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
	gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
	gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
	gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
	gfc_conv_expr_descriptor): Likewise.
	* trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
	gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
	* trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
	gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
	gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
	gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
	gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
	gfc_conv_intrinsic_merge, prepare_arg_info,
	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
	* trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
	gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
	generate_loop_for_rhs_to_temp, compute_inner_temp_size,
	allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
	gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
	Likewise.
	* trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
	* trans.c (gfc_add_modify_expr): Likewise.

From-SVN: r96926
2005-03-23 11:09:24 +00:00
François-Xavier Coudert
f77b6ca3da Makefile.am: Added new files.
* Makefile.am: Added new files.
        * Makefile.in: Regenerate.
        * aclocal.m4: Regenerate.
        * configure.ac: add checks for signal.h headers file, as well as
        following functions: chdir, strerror, getlogin, gethostname, kill,
        link, symlink, perror, sleep, time.
        * configure: Regenerate.
        * intrinsics/chdir.c, intrinsics/gerror.c, intrinsics/getlog.c,
        intrinsics/hostnm.c, intrinsics/ierrno.c, intrinsics/kill.c,
        intrinsics/link.c, intrinsics/perror.c, intrinsics/rename.c,
        intrinsics/sleep.c, intrinsics/symlnk.c, intrinsics/time.c: Newly
        implementend g77 intrinsics.

        * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
        gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
        gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
        gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
        gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
        gfc_check_perror): new functions to check newly implemented
        g77 intrinsics.
        * gfortran.h: adding symbols for new intrinsics.
        * intrinsic.c (add_functions): adding new intrinsics.
        (add_subroutines): adding new intrinsics.
        * intrinsic.h: prototype for all checking and resolving
        functions.
        * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
        gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
        gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
        gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
        gfc_resolve_kill_sub, gfc_resolve_link_sub,
        gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
        gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
        gfc_resolve_perror): new functions to resolve intrinsics.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
        for new symbols.

        * g77_intrinsics_funcs.f: New test.
        * g77_intrinsics_sub.f: New test.

From-SVN: r96893
2005-03-22 22:08:22 +00:00
Tobias Schlüter
e76d0ec635 Fix dates on ChangeLog
From-SVN: r96740
2005-03-19 20:46:52 +01:00
Tobias Schlüter
9439ae414f re PR fortran/18525 (ICE on valid code in gfc_get_symbol_decl())
fortran/
* dump-parse-tree.c (gfc_show_expr): Dump name of namespace
in which the variable is declared.

PR fortran/18525
* resolve.c (was_declared): Also check for dummy attribute.

testsuite/
PR fortran/18525
* gfortran.dg/nesting_1.f90: New test.

From-SVN: r96739
2005-03-19 20:45:45 +01:00
Tobias Schlüter
0de27aacb6 gfortran.h (arith): Remove ARITH_0TO0.
* gfortran.h (arith): Remove ARITH_0TO0.
* arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
(gfc_arith_power): Remove special casing of zero to integral
power zero.

From-SVN: r96737
2005-03-19 20:23:04 +01:00
Kaveh R. Ghazi
ffee7efdad Make-lang.in (fortran-warn): Remove -Wno-error.
* Make-lang.in (fortran-warn): Remove -Wno-error.
	(expr.o-warn, resolve.o-warn, simplify.o-warn,
	trans-common.o-warn): Specify -Wno-error.

From-SVN: r96714
2005-03-19 01:48:22 +00:00
Tobias Schlüter
df7df32810 trans-array.c (gfc_trans_static_array_pointer, [...]): Fix comment and formatting typos.
* trans-array.c (gfc_trans_static_array_pointer,
get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
comment and formatting typos.

From-SVN: r96635
2005-03-17 22:55:12 +01:00
François-Xavier Coudert
ffd1953e43 * invoke.texi: Fix typos.
From-SVN: r96630
2005-03-17 19:58:09 +00:00
François-Xavier Coudert
d3ec5cb6e6 * invoke.texi: Fix typos.
From-SVN: r96627
2005-03-17 19:55:51 +00:00
Zack Weinberg
a1286ef574 gcc-version.m4: Delete.
config:
	* gcc-version.m4: Delete.
fastjar:
	* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
	(BASEVER, DEVPHASE): New variables.
	(POD2MAN): Adjust setting of --release option.
	(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
	* Makefile.in: Regenerate.
	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
	* aclocal.m4, configure: Regenerate.
gcc:
	* BASE-VER, DATESTAMP, DEV-PHASE: New files.
	* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
	(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
	(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
	(version): Define using $(BASEVER_c).
	(Makefile, config.status, build/gcov-iov.o): No longer depends on
	version.c.
	(version.o): Depend on version files; add custom generation command.
	(prefix.o): Define BASEVER on command line.
	(s-iov): Depend on version files; adjust command.
	(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
	Add gcc-vers.texi.
	(gcc-vers.texi): New rule.
	(doc/%.info, doc/%.dvi): Add -I . to command line.
	(doc/gccinstall.dvi): Likewise.
	(PACKAGE): Delete.  All uses replaced with "gcc".
	* aclocal.m4: Do not include gcc-version.m4.
	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
	Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
	Set is_release based on contents of DEV-PHASE.
	Set gcc_version based on contents of BASE-VER.
	Define WIN32_REGISTRY_KEY only if the user overrode the default.
	* config.in, configure: Regenerate.
	* gccbug.in: Determine version of GCC in use at runtime.
	* gcov-iov.c: Get version number and development phase from
	command line, not by including version.c.
	* intl.c: Replace all uses of PACKAGE with "gcc".
	* libada-mk.in: Delete unused "gcc_version" variable.
	* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
	* version.c: (VERSUFFIX): New hook for redistributors; adjust
	commentary to match.
	(version_string): Put together from pieces.
	* config/alpha/x-vms: Do not use $(gcc_version).
	* config/i386/t-nwld: Likewise.
	* doc/include/gcc-common.texi: Include gcc-vers.texi for
	version-GCC and DEVELOPMENT.
gcc/ada:
	* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
	(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
	to dependencies.
gcc/fortran:
	* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
	* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
	* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
	* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
	subdirectory.  Generate #define of __GLIBCXX__ from contents of
	that file.
	* include/Makefile.in: Regenerate.
	* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
	* README: Update.
	* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
	of gcc/version.c.
	* update_version: Handle updating gcc/DATESTAMP.
	* update_web_docs: Generate gcc-vers.texi first.

From-SVN: r96549
2005-03-16 06:04:10 +00:00
Feng Wang
223c815892 trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag to zero on label_tree.
2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>

	* trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
        to zero on label_tree.

From-SVN: r96468
2005-03-15 03:26:09 +00:00
Feng Wang
ce2df7c64a re PR fortran/18827 (ICE on assign to common variable)
fortran/
2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/18827
        * io.c (resolve_tag): Add checking on assigned label.
        (match_dt_format): Does not set symbol assign attribute.
        * match.c (gfc_match_goto):Does not set symbol assign attribute.
        * resolve.c (resolve_code): Add checking on assigned label.
        * trans-common.c (build_field): Deals with common variable assigned
        a label.
        * trans-stmt.c (gfc_conv_label_variable): New function.
        (gfc_trans_label_assign): Use it.
        (gfc_trans_goto): Ditto.
        * trans-io.c (set_string): Ditto.
        * trans.h (gfc_conv_label_variable): Add prototype.
testsuite/
2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>

        PR fortran/18827
        * gfortran.dg/assign_2.f90: New test.
        * gfortran.dg/assign_3.f90: New test.
        * gfortran.dg/assign.f90: New test.

From-SVN: r96467
2005-03-15 02:52:38 +00:00
Tobias Schlüter
2bb02bf01b re PR fortran/20467 (Bad fortran code causes ICE)
fortran/
PR fortran/20467
* symbol.c (check_conflict): A dummy argument can't be a statement
function.

testsuite/
PR fortran/20467
* gfortran.dg/stfunc_2.f90: New test.

From-SVN: r96443
2005-03-14 20:55:02 +01:00
Zdenek Dvorak
f1b190625e tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of integer_zerop.
* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
	integer_zerop.
	* tree-gimple.c (is_gimple_min_invariant): Consider overflowed
	constants invariant.

	* fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
	the argument of the shift to the unsigned type.

From-SVN: r96435
2005-03-14 15:23:43 +00:00
Tobias Schlüter
ee9430623a re PR fortran/16907 (Non-integer array indices rejected)
fortran/
PR fortran/16907
* resolve.c (gfc_resolve_index): Allow REAL indices as an extension.

testsuite/
PR fortran/16907
* gfortran.dg/real_index_1.f90: New test.

From-SVN: r96385
2005-03-13 19:46:36 +01:00
Tobias Schlüter
8f9c06ca82 re PR fortran/20323 (optional arguments incorrectly accepted in specification expressions)
fortran/
PR fortran/20323
* resolve.c (gfc_resolve): Check if character lengths are
specification expressions.

testsuite/
PR fortran/20323
* gfortran.dg/spec_expr_1.f90: New test.

From-SVN: r96382
2005-03-13 19:37:17 +01:00
Tobias Schlüter
bae88af67e re PR fortran/20361 (-fmax-stack-var-size=N not working for equivalence)
fortran/
PR fortran/20361
* trans-array.c (gfc_stack_space_left): Remove unused variable.
(gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
code.
* trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
Remove declaration / prototype.
* trans-common.c (build_equiv_decl): Give union a name.  Check if
it can be put on the stack.
* trans-decl.c (gfc_stack_space_left): Move function here.
(gfc_build_qualified_array): Fix comment typo.
* trans.h (gfc_put_var_on_stack): Add prototype.

testsuite/
PR fortran/20361
* gfortran.dg/largeequiv_1.f90: New test.

From-SVN: r96352
2005-03-12 22:44:44 +01:00
Kaveh R. Ghazi
5f42ddb044 Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
* Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
	* decl.c, trans.c: Don't use C++ style comments.
	* gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
	ifsrc): Give names to enums and use ENUM_BITFIELD.
	(gfc_access): Remove trailing comma.

From-SVN: r96323
2005-03-12 02:06:20 +00:00
Tobias Schlüter
2470e6670a Remove spurious blank line.
From-SVN: r96123
2005-03-08 21:16:18 +01:00
Steven G. Kargl
87ebdf2fab re PR fortran/19936 (confused error message about implied do loop)
PR 19936
* primary.c (match_complex_constant): Mangled complex constant may
be an implied do-loop.  Give implied do-loop matcher a chance.

From-SVN: r95951
2005-03-05 23:35:44 +00:00
Steven G. Kargl
2c5ed587af re PR fortran/19754 (Shape conformance not checked)
PR fortran/19754
* resolve.c (compare_shapes):  New function.
(resolve_operator): Use it.

From-SVN: r95945
2005-03-05 22:13:21 +00:00
Tobias Schlüter
19db01bb45 trans-const.c (gfc_conv_constant_to_tree): Use correct tree type for COMPLEX constants.
* trans-const.c (gfc_conv_constant_to_tree): Use correct tree
type for COMPLEX constants.

From-SVN: r95941
2005-03-05 21:14:52 +01:00
Tobias Schlüter
3852e8b8f2 re PR fortran/19673 (pointer function with RESULT specified returns pointer to "ptr" rather than "*ptr")
fortran/
PR fortran/19673
* trans-expr.c (gfc_conv_function_call): Correctly dereference
argument from a pointer function also if it has a result clause.

testsuite/
PR fortran/19673
* gfortran.dg/func_result_1.f90: New test.

From-SVN: r95901
2005-03-04 22:03:46 +01:00
Steven G. Kargl
37e860a298 * expr.c (gfc_copy_shape_excluding): Change && to ||.
From-SVN: r95891
2005-03-04 17:09:18 +00:00
Tobias Schlüter
4b9b6210d6 trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo, clarify comment.
* trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
clarify comment.

From-SVN: r95852
2005-03-04 01:02:22 +01:00
Tobias Schlüter
2a4a783030 re PR fortran/19479 (UBOUND causes ICE)
fortran/
PR fortran/19479
* simplify.c (gfc_simplify_bound): Rename to ...
(simplify_bound): ... this and overhaul.

testsuite/
PR fortran/19479
* gfortran.dg/bound_1.f90: New test.

From-SVN: r95713
2005-03-01 01:41:41 +01:00
Steven G. Kargl
d436d3dea2 trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
* trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
  (gfc_conv_intrinsic_function): update function calls

From-SVN: r95695
2005-02-28 19:59:05 +00:00
Tobias Schlüter
9c6a7ecc6c Fix missing ChangeLog entry:
2005-02-24  Tobias Schlueter  <tobias.schlueter@physik.uni-meunchen.de>

Unrevert previously reverted patch.  Adding this fix:
* module.c (find_true_name): Deal with NULL module.

From-SVN: r95681
2005-02-28 14:52:48 +01:00
Steven G. Kargl
f4e7375a8a re PR fortran/20058 (Error on kind 16 hex data statement)
PR fortran/20058
* trans-types.c (gfc_max_integer_kind): Declare
  (gfc_init_kinds): Initialize it.
* gfortran.h (gfc_max_integer_kind): extern it.
* primary.c (match_boz_constant): Use it; remove gfortran extension
  of kind suffixes on BOZ literal constants

From-SVN: r95643
2005-02-28 00:38:12 +00:00
Steven G. Kargl
5a95dfde57 arith.c (gfc_check_real_range): Remove multiple returns
* arith.c (gfc_check_real_range):  Remove multiple returns
  (check_result): New function.
  (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
  gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.

From-SVN: r95624
2005-02-27 17:32:26 +00:00
Volker Reichelt
2054fc29c2 * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
From-SVN: r95518
2005-02-24 21:59:24 +00:00
Tobias Schlüter
cb9e4f55b0 Unrevert previously reversed patch, adding this patch:
* module.c (find_true_name): Deal with NULL module.

From-SVN: r95506
2005-02-24 19:26:27 +01:00
Tobias Schlüter
f5e9e99c8d Revert yesterday's patch:
2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>

                * gfortran.h (gfc_component, gfc_actual_arglist, ...
                ... argument.  Copy string instead of pointing to it.

From-SVN: r95496
2005-02-24 14:01:44 +01:00
Tobias Schlüter
e9444bd5ee gfortran.h (gfc_component, [...]): Make 'name' a 'const char *'.
* gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
'name' a 'const char *'.
(gfc_symbol): Likewise, also for 'module'.
(gfc_symtree): Make 'name' a 'const char *'.
(gfc_intrinsic_sym): Likewise, also for 'lib_name'.
(gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
'char *' argument.
(gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
initialize 'SYM->module'.
* check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
pointer instead of empty string.
* dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
* interface.c (gfc_compare_types): Adapt check to account for possible
NULL pointer.
(compare_actual_formal): Check for NULL pointer instead of empty
string.
* intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
Add 'const' qualifier.
(conv_name): Return a heap allocated string.
(find_conv): Add 'const' qualifier to 'target'.
(add_sym): Use 'gfc_get_string' instead of 'strcpy'.
(make_generic): Check for NULL pointer instead of emptystring.
(make_alias): Use 'gfc_get_string' instead of 'strcpy'.
(add_conv): No need to strcpy result from 'conv_name'.
(sort_actual): Check for NULL pointer instead of emptystring.
* intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
Adapt prototype.
* module.c (compare_true_names): Compare pointers instead of strings
for 'module' member.
(find_true_name): Initialize string fields with gfc_get_string.
(mio_pool_string): New function.
(mio_internal_string): Adapt comment.
(mio_component_ref, mio_component, mio_actual_arg): Use
'mio_pool_string' instead of 'mio_internal_string'.
(mio_symbol_interface): Add 'const' qualifier to string arguments.
Add level of indirection. Use 'mio_pool_string' instead of
'mio_internal_string'.
(load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
(write_common, write_symbol): Use 'mio_pool_string' instead of
'mio_internal_string'.
(write_symbol0, write_symbol1): Likewise, also check for NULL pointer
instead of empty string.
(write_operator, write_generic): Pass correct type variable to
'mio_symbol_interface'.
(write_symtree): Use 'mio_pool_string' instead of
'mio_internal_string'.
* primary.c (match_keyword_arg): Adapt check to possible
case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
* symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
'strcpy'.
(ambiguous_symbol): Check for NULL pointer instead of empty string.
(gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
arguments.
* trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
pointer instead of empty string.
* trans-decl.c (gfc_sym_mangled_identifier,
gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
gfc_get_symbol_decl): Likewise.
* trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
argument.  Copy string instead of pointing to it.

From-SVN: r95472
2005-02-23 23:14:12 +01:00
Tobias Schlüter
58b03ab29f gfortran.h (gfc_expr): Move 'operator'...
* gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
fields into new struct 'op' inside the 'value' union.
* arith.c (eval_intrinsic): Adapt all users.
* dependency.c (gfc_check_dependency): Likewise.
* dump-parse-tree.c (gfc_show_expr): Likewise.
* expr.c (gfc_get_expr): Don't clear removed fields.
(free_expr0, gfc_copy_expr, gfc_type_convert_binary,
gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
check_intrinsic_op): Adapt to new field names.
* interface.c (gfc_extend_expr): Likewise.  Also explicitly
nullify 'esym' and 'isym' fields of new function call.
* iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
Adapt to renamed structure fields.
* matchexp.c (build_node, match_level_1, match_expr): Likewise.
* module.c (mio_expr): Likewise.
* resolve.c (resolve_operator): Likewise.
(gfc_find_forall_index): Likewise.  Only look through operands
if dealing with EXPR_OP
* trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
* trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
gfc_conv_concat_op, gfc_conv_expr_op): Likewise.

From-SVN: r95471
2005-02-23 22:34:11 +01:00
Tobias Schlüter
d1303acd60 gfortran.h (symbol_attribute): New 'untyped' field, fix comment formatting.
fortran/
* gfortran.h (symbol_attribute): New 'untyped' field, fix comment
formatting.
* symbol.c (gfc_set_default_type): Issue error only once, by setting
and checking 'untyped' attribute.

testsuite/
* gfortran.dg/deftype_1.f90: New test.

From-SVN: r95469
2005-02-23 21:56:58 +01:00
Tobias Schlüter
0366dfe993 gfortran.h (gfc_get_namespace): Add second argument to prototype.
fortran/
* gfortran.h (gfc_get_namespace): Add second argument to prototype.
* intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
gfc_get_namespace.
* module.c (mio_namespace_ref, load_needed): Likewise.
* parse.c (parse_interface, parse_contained): Likewise.  Here the
correct second argument matters.
* symbol.c (gfc_get_namespace): Add parent_types argument, only copy
parent's implicit types if this is set.
(gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
* trans-common.c (build_common_decl): Likewise.

testsuite/
* gfortran.dg/implicit_3.f90: New test.

From-SVN: r95463
2005-02-23 20:02:29 +01:00
Kazu Hirata
f439764ffa genpreds.c: Update copyright.
gcc/
	* genpreds.c: Update copyright.

cp/
	* cp-objcp-common.h, error.c: Update copyright.

fortran/
	* intrinsic.h, st.c: Update copyright.

treelang/
	* parse.y: Update copyright.

From-SVN: r95457
2005-02-23 15:14:47 +00:00
Steven G. Kargl
eebc3ee0cd * symbol.c: Typos in comments.
From-SVN: r95311
2005-02-20 21:59:12 +00:00
Steven G. Kargl
687fcae70c * expr.c (gfc_type_convert_binary): Typo in comment.
From-SVN: r95307
2005-02-20 18:26:19 +00:00
Steven G. Kargl
145cf79b57 check.c (gfc_check_selected_int_kind): New function.
* check.c (gfc_check_selected_int_kind): New function.
	* intrinsic.h: Prototype it.
	* intrinsic.c (add_function): Use it.
	* simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
	  BT_REAL to BT_INTEGER and use gfc_default_integer_kind.

From-SVN: r95291
2005-02-19 20:29:05 +00:00
Steven G. Kargl
c60d77d4db check.c (gfc_check_int): improve checking of optional kind
* check.c (gfc_check_int): improve checking of optional kind
	* simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER

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

From-SVN: r95290
2005-02-19 20:07:47 +00:00
Steven G. Kargl
332e7efe7f check.c (gfc_check_achar): New function
* check.c (gfc_check_achar): New function
	* intrinsic.h: Prototype it.
	* intrinsic.c (add_function): Use it.

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

From-SVN: r95288
2005-02-19 19:16:09 +00:00
Tobias Schlüter
1ac262625d trans-stmt.c (generate_loop_for_temp_to_lhs, [...]): Remove if whose condition is always true.
* trans-stmt.c (generate_loop_for_temp_to_lhs,
generate_loop_for_rhs_to_temp): Remove if whose condition is
always true.

From-SVN: r94985
2005-02-13 16:32:45 +01:00
Tobias Schlüter
1e6283cb21 symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
* symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
(gfc_use_derived): ... this function.

From-SVN: r94942
2005-02-12 16:44:01 +01:00
Richard Henderson
c6a912da40 builtins.c (DEF_BUILTIN): Add COND argument.
* builtins.c (DEF_BUILTIN): Add COND argument.
        * tree.h (DEF_BUILTIN): Likewise.
        * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
        DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
        match.
        (DEF_BUILTIN_STUB): New.
        (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
        BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
        BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
        * c-common.c (DEF_BUILTIN): Add COND argument.
        * tree.c (local_define_builtin): New.
        (build_common_builtin_nodes): New.
ada/
        * utils.c (gnat_define_builtin): Remove.
        (gnat_install_builtins): Use build_common_builtin_nodes.
fortran/
        * f95-lang.c (gfc_init_builtin_functions): Call
        build_common_builtin_nodes; do not define any functions handled
        by it.
java/
        * builtins.c (initialize_builtins): Call build_common_builtin_nodes.
        * decl.c (java_init_decl_processing): Initialize const_ptr_type_node.
treelang/
        * treetree.c (treelang_init_decl_processing): Call
        build_common_builtin_nodes.

From-SVN: r94785
2005-02-09 16:22:25 -08:00
Tobias Schlüter
eac33acc64 expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for EXPR_SUBSTRING.
fortran/
* expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
EXPR_SUBSTRING.
(gfc_is_constant_expr): Check 'ref' to determine if substring
reference is constant.
(gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
(check_init_expr, check_restricted): Check 'ref' instead of 'op1'
and 'op2'.
* module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.

testsuite/
* gfortran.dg/substr_1.f90: New test.

From-SVN: r94735
2005-02-08 14:41:08 +01:00
Tobias Schlüter
231b2fccf5 gfortran.h (gfc_add_dimension, [...]): Add argument.
* gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
gfc_add_procedure): Add argument.
* array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
gfc_match_null, match_type_spec, match_attr_spec,
gfc_match_formal_arglist, match_result, gfc_match_function_decl):
Update callers to match.
(gfc_match_entry) : Likewise, fix comment typo.
(gfc_match_subroutine, attr_decl1, gfc_add_dimension,
access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
gfc_match_derived_decl): Update callers.
* interface.c (gfc_match_interface): Likewise.
* match.c (gfc_match_label, gfc_add_flavor,
gfc_match_call, gfc_match_common, gfc_match_block_data,
gfc_match_namelist, gfc_match_module, gfc_match_st_function):
Likewise.
* parse.c (parse_derived, parse_interface, parse_contained),
primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
* resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
* symbol.c (check_conflict, check_used): Add new 'name' argument,
use when printing error message.
(gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
gfc_add_generic, gfc_add_in_common, gfc_add_data,
gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
gfc_add_procedure): Add new 'name' argument.  Pass along to
check_conflict and check_used.
(gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
gfc_add_pure, gfc_add_recursive, gfc_add_intent,
gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
argument in calls to any of the modified functions.

From-SVN: r94718
2005-02-07 23:16:13 +01:00
Joseph Myers
706bb773ec cpp.texi: Include gcc-common.texi.
* doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
	macro locally.  Don't give last revision date.  Use GCC version
	number from gcc-common.texi.
	* doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
	revision date.  Use GCC version number from gcc-common.texi.
	Describe being a library as current state rather than as 3.x
	history.
	* doc/gcc.texi: Remove last update date.
	* doc/gccint.texi: Likewise.  Update copyright dates.
	* doc/install.texi: Update copyright dates.

fortran:
	* gfortran.texi: Don't give last update date.

java:
	* gcj.texi: Update copyright dates.

treelang:
	* treelang.texi: Don't use local treelang version number.  Don't
	give last update date.

From-SVN: r94683
2005-02-06 20:20:59 +00:00
Richard Henderson
61e067ccd8 * options.c (gfc_init_options): Zero flag_errno_math.
From-SVN: r94447
2005-01-30 10:34:03 -08:00
Paul Brook
985aff9c17 re PR fortran/18565 (gfortran: CONJG: false error message about standard violation)
2005-01-29  Paul Brook  <paul@codesourcery.com>

	PR fortran/18565
	* check.c (real_or_complex_check): New function.
	(gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
	* intrinsic.c (add_functions): Use new check functions.
	* intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
	Add prototypes.
testsuite/
	* gfortran.dg/double_complex_1.f90: New test.

From-SVN: r94412
2005-01-29 17:46:34 +00:00
Steven G. Kargl
f240b8960c re PR fortran/19589 (Regression: Error on Data assignment with LOGICAL*1)
2005-01-29  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/19589
	* expr.c (gfc_check_assign):  Check for conformance of logical operands
testsuite/
	* gfortran.dg/logical_data_1.f90: New test.

From-SVN: r94409
2005-01-29 15:35:50 +00:00
Steven Bosscher
c006df4eec trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and TREE_USED for all labels.
* trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
	TREE_USED for all labels.
	(gfc_trans_entry_master_switch): Use it instead of building a
	label by hand.
	* trans-io.c (add_case): Likewise.
	* trans-stmt.c (gfc_trans_integer_select): Likewise.

From-SVN: r94299
2005-01-27 00:58:11 +00:00
Paul Brook
69029c61aa re PR fortran/17941 (gfortran: parser chokes on complex literal constant)
2004-01-23  Paul Brook  <paul@codesourcery.com>
	Steven G. Kargl  <kargls@comcast.net>

	PR fortran/17941
	* arith.c (gfc_convert_real): Remove sign handling.
	* primary.c (match_digits): Allow whitespace after initial sign.
	(match_real_const): Handle signs here.  Allow whitespace after
	initial sign.  Remove dead code.
	(match_const_complex_part): Remove.
	(match_complex_part): Use match_{real,integer}_const.
	(match_complex_constant): Cross-promote integer types.
testsuite/
	* gfortran.dg/real_const_1.f: New test.
	* gfortran.dg/real_const_2.f90: New test.
	* gfortran.dg/complex_int_1.f90: New test.

From-SVN: r94127
2005-01-23 22:29:41 +00:00
James A. Morrison
587579571d re PR fortran/19294 (intrinsic_transpose.f90 runtime crash)
2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
	Paul Brook  <paul@codesourcery.com>

	PR fortran/19294
	* iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
	transpose_c8 for complex types.
libgfortran/
	* Makefile.am: Add transpose_c4.c and transpose_c8.c.
	* intrinsics/cshift0.c: Use separate optimized loops for complex types.
	* m4/transpose.m4: Include type letter in function name.
	* Makefile.in: Regenerate.
	* generated/transpose_*.c: Regenerate.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r94116
2005-01-23 17:01:00 +00:00
Kazu Hirata
e7dc5b4f22 data.c, [...]: Fix comment typos.
* data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
	trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
	trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
	Follow spelling conventions.

From-SVN: r94111
2005-01-23 14:36:26 +00:00
Bud Davis
dae245345d re PR libfortran/19313 (inquire(pad=) not implemented)
2005-01-22  Bud Davis  <bdavis9659@comcast.net>

        PR fortran/19313
        * trans-io.c (gfc_trans_inquire): Added code to support
        pad.

        PR fortran/19313
        * gfortan.dg/inquire_6.f90: New test.

From-SVN: r94110
2005-01-23 14:19:54 +00:00
Steven G. Kargl
190607885a intrinsic.c (make_alias): Add standard argument.
2005-01-22  Steven G. Kargl  <kargls@comcast.net>

	* intrinsic.c (make_alias):  Add standard argument.
	(add_functions): Update make_alias calls.

From-SVN: r94082
2005-01-22 22:32:06 +00:00
Paul Brook
1438a8c909 * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
From-SVN: r94074
2005-01-22 19:20:01 +00:00
Paul Brook
af30f793c9 gfortran.h (gfc_check_access): Add prototype.
2005-01-22  Paul Brook  <paul@codesourcery.com>

	* gfortran.h (gfc_check_access): Add prototype.
	* match.c (gfc_match_namelist): Remove TODO.
	* module.c (check_access): Rename ...
	(gfc_check_access): ... to this.  Boolify.  Update callers.
	* resolve.c (resolve_symbol): Check for private objects in public
	namelists.
testsuite/
	* namelist_1.f90: New test.

From-SVN: r94073
2005-01-22 18:23:43 +00:00
Paul Brook
0dd973dd97 primary.c (gfc_match_rvalue): Only apply implicit type if variable does not have an explicit type.
2005-01-22  Paul Brook  <paul@codesourcery.com>

	* primary.c (gfc_match_rvalue): Only apply implicit type if variable
	does not have an explicit type.
	(gfc_match_variable): Resolve implicit derived types in all cases.
	Resolve contained function types from their own namespace, not the
	parent.
	* resolve.c (resolve_contained_fntype): Remove duplicate sym->result
	checking.  Resolve from the contained namespace, not the parent.
testsuite/
	* gfortran.dg/implicit_2.f90: New test.

From-SVN: r94066
2005-01-22 15:24:09 +00:00
Tobias Schlüter
b8d5e92646 re PR fortran/19194 (Missing RECL parameter in OPEN statement)
gcc/fortran/
PR fortran/19194
* trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
length parameters.
(gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
pointer fields.

libgfortran/
PR fortran/19194
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
use CHARACTER macro for definition of string valued paramters.

Also fix years in recent ChangeLog entries.

From-SVN: r94065
2005-01-22 15:37:39 +01:00
Tobias Schlüter
6ba692b44c re PR middle-end/19543 ([4.1 only] fortran LOGICAL*8 not consistently distinguished from 32 bit integers)
PR fortran/19543
* trans-const.c (gfc_conv_constant_to_tree): Give logical
constants the correct type.

From-SVN: r94054
2005-01-22 01:29:33 +01:00
Kazu Hirata
ec3781807e arith.c, [...]: Update copyright.
* arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
	gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
	match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
	scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
	trans-io.c, trans-stmt.c, trans.c: Update copyright.

From-SVN: r93830
2005-01-18 12:11:56 +00:00
Steven Bosscher
33d4098dd4 fix ChangeLogs
From-SVN: r93780
2005-01-17 22:04:46 +00:00
Ira Rosen
ef9312c1c7 f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
2005-01-17  Ira Rosen  <irar@il.ibm.com>

        * fortran/f95-lang.c (gfc_init_builtin_functions): Call
        targetm.init_builtins.

From-SVN: r93760
2005-01-17 14:04:11 +00:00
Paul Brook
35e4be358b Update copyright dates.
From-SVN: r93735
2005-01-16 17:53:26 +00:00
Tobias Schlüter
dfbb43185d re PR fortran/19182 (Error messages seem to be printed slower)
2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/19182
	* error.c (error_char): Line-buffer errors / warnings.

From-SVN: r93734
2005-01-16 17:44:17 +00:00
Tobias Schlüter
ef1b6bcd00 * trans-intrinsic.c, trans-types.c: Update copyright years.
From-SVN: r93732
2005-01-16 17:48:16 +01:00
Tobias Schlüter
0da87370fb trans-intrinsic.c (gfc_conv_intrinsic_index, [...]): Remove 'gfc'-prefix from local variable...
* trans-intrinsic.c (gfc_conv_intrinsic_index,
gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
'gfc'-prefix from local variable, remove dead code, use correct
type when inserting argument.

From-SVN: r93731
2005-01-16 17:45:57 +01:00
Tobias Schlüter
e805a59940 trans-intrinsic.c (build_fixbound_expr, [...]): Use 'build_int_cst' instead of converting 'integer_zero_node' or...
* trans-intrinsic.c (build_fixbound_expr,
gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
of converting 'integer_zero_node' or 'integer_one_node'
respectively.
(gfc_conv_intrinsic_ishftc): Same, but store in local variable to
evade re-building.
(gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
'build_int_cst' instead of converting 'integer_zero_node' or
'integer_one_node' respectively.

From-SVN: r93730
2005-01-16 17:16:00 +01:00
Tobias Schlüter
5e3b87274d trans-types.c (gfc_get_character_type_len): : Use gfc_charlen_type_node as basic type for the range field.
* trans-types.c (gfc_get_character_type_len): : Use
gfc_charlen_type_node as basic type for the range field.

From-SVN: r93729
2005-01-16 17:05:46 +01:00
Tobias Schlüter
de46b50562 trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed / unsigned issue.
* trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
unsigned issue.  Use build_int_cst instead of converting
integer_zero_node.  Remove unnecessary conversion.

From-SVN: r93727
2005-01-16 16:38:03 +01:00
Steven G. Kargl
5352b89f60 re PR fortran/19168 (Mismatched KINDs in SELECT CASE constucts is not handled correctly)
2005-01-16  Steven G. Kargl  <kargls@comcast.net>

	PR 19168
	* resolve.c (check_case_overlap): Typo in comment.
	(validate_case_label_expr):  Fix up kinds of case values
	(resolve_select): Properly handle kind mismatches.
testsuite/
	* gfortran.dg/select_5.f90: New test.

From-SVN: r93725
2005-01-16 12:51:04 +00:00
Paul Brook
36c028f675 re PR fortran/17675 ([Regression w.r.t. g77] Alignment constraints not honored in EQUIVALENCE)
2004-01-16  Paul Brook  <paul@codesourcery.com>

	PR fortran/17675
	* trans-common.c (translate_common): Remove duplicate function call.
	(finish_equivalences): Preserve alignment when biasing offsets.
testsuite/
	* gfortran.dg/common_4.f90: New test.

From-SVN: r93724
2005-01-16 12:05:53 +00:00
Tobias Schlüter
da8309c66d primary.c (check_digit): Call 'ISXDIGIT' instead of assuming ASCII-like character encoding.
* primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
ASCII-like character encoding.

From-SVN: r93713
2005-01-15 23:38:01 +01:00
Steven G. Kargl
c224550fb5 resolve.c (compare_case): Cleanup.
2005-01-14  Steven G. Kargl  <kargls@comcast.net>

	* resolve.c (compare_case): Cleanup.
testsuite/
	* gfortran.dg/select_1.f90: New test.
	* gfortran.dg/select_2.f90: New test.
	* gfortran.dg/select_3.f90: New test.
	* gfortran.dg/select_4.f90: New test.

From-SVN: r93640
2005-01-14 11:55:12 +00:00
Steven G. Kargl
6e06dac503 resolve.c (compare_case): Give arguments correct type.
2005-01-14  Steven G. Kargl  <kargls@comcast.net>

	* resolve.c (compare_case): Give arguments correct type.

From-SVN: r93637
2005-01-14 09:28:03 +00:00
Kazu Hirata
43a5ef693f iresolve.c, [...]: Fix comment typos.
* iresolve.c, trans-common.c, trans-types.c: Fix comment
	typos.

From-SVN: r93610
2005-01-13 19:34:37 +00:00
Paul Brook
832ef1ce86 re PR fortran/17675 ([Regression w.r.t. g77] Alignment constraints not honored in EQUIVALENCE)
2005-01-09  Paul Brook  <paul@codesourcery.com>

	PR fortran/17675
	* trans-common.c (current_common, current_offset): Remove.
	(create_common): Add head argument.
	(align_segment): New function.
	(apply_segment_offset): New function.
	(translate_common): Merge code from new_segment.  Handle alignment.
	(new_segment): Remove.
	(finish_equivalences): Ensure proper alignment.
testsuite/
	* gfortran.dg/common_2.f90: New file.
	* gfortran.dg/common_3.f90: New file.

From-SVN: r93122
2005-01-09 22:57:45 +00:00
Tobias Schlüter
e6edaeb2f7 Fix typo
From-SVN: r93095
2005-01-09 00:16:18 +01:00
Tobias Schlüter
27dfc9c46d arith.c (arctangent2, [...]): Fix whitespace issues.
* arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
gfc_constant_result, gfc_range_check, gfc_arith_power,
eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
gfc_real2complex, gfc_complex2int, gfc_complex2real,
gfc_complex2complex): Fix whitespace issues.
check.c (must_be, type_check, numeric_check, int_or_real_check,
logical_array_check, array_check, scalar_check, nonoptional_check,
variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
gfc_check_lbound, gfc_check_logical, min_max_args,
gfc_check_min_max_integer, gfc_check_min_max_real,
gfc_check_min_max_double, gfc_check_matmul,
gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
gfc_check_pack, gfc_check_precision, gfc_check_radix,
gfc_check_range, gfc_check_real, gfc_check_repeat,
gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
gfc_check_set_exponent): Fix formatting issues.
(gfc_check_size, gfc_check_sign): Alphabetize function order,
remove whitespace-only line.
(gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
gfc_check_random_number, gfc_check_random_seed,
gfc_check_second_sub, gfc_check_system_clock,
gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
gfc_check_unlink_sub): Fix formatting issues.

From-SVN: r93093
2005-01-08 23:40:47 +01:00
Tobias Schlüter
b36cd00b1e trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl, [...]): Remove trailing whitespace.
* trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
trailing whitespace.
(prepare_arg_info): Fix formatting, indenting and remove trailing
whitespace.
(gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
trailing whitespace.

From-SVN: r93092
2005-01-08 22:47:36 +01:00
Tobias Schlüter
92574caf72 * trans-const.c: Don't include unused math.h.
From-SVN: r93090
2005-01-08 21:18:53 +01:00
Tobias Schlüter
779fae71d5 gfortran.h: Remove outdated comment.
* gfortran.h: Remove outdated comment.  Don't include stdio.h
explicitly.

From-SVN: r93082
2005-01-08 14:35:18 +01:00
Tobias Schlüter
12d3e34bd5 gcc.c (process_command): Change year in 'gcc --version' to 2005.
* gcc.c (process_command): Change year in 'gcc --version' to 2005.

fortran/
* gfortranspec.c (lang_specific_driver): Change year to 2005 in
output of 'gfortran --version'.

From-SVN: r92995
2005-01-06 17:41:36 +01:00
Steven G. Kargl
d22e48951c arith.c: Add system.h; remove string.h
* arith.c: Add system.h; remove string.h
        * decl.c: Ditto
        * matchexp.c: Ditto
        * parse.c: Ditto
        * resolve.c: Ditto
        * st.c: Ditto
        * check.c: Remove stdlib.h and stdarg.h
        * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
        * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
        * f95-lang.c: Add system.h; remove stdio.h
        * interface.c: Add system.h; remove stdlib.h and string.h
        * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
        * io.c: Remove string.h
        * simplify.c: Ditto
        * match.c: Remove stdarg.h and string.h
        * misc.c: Update copyright; add system.h; remove stdlib.h,
        string.h, and sys/stat.h
        * module.c: Add system.h; remove string.h, stdio.h, errno.h,
        unistd.h, and time.h
        * option.c: Remove string.h and stdlib.h
        * primary.c: Ditto
        * scanner.c: Update copyright; add system.h; remove stdlib.h,
        stdio.h, string.h, and strings.h
        * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
        * trans-array.c: Remove stdio.h and gmp.h
        * trans-const.c: Ditto
        * trans-expr.c: Ditto
        * trans-io.c: Ditto
        * trans-stmt.c: Ditto
        * trans.c: Ditto
        * trans-intrinsic.c: Remove stdio.h and string.h

From-SVN: r92866
2005-01-03 13:43:55 -08:00
Steven G. Kargl
410d1a45e2 gfortran.h (gfc_case): fix typo in comment.
2004-12-29  Steven G. Kargl  <kargls@comcast.net>

* gfortran.h (gfc_case): fix typo in comment.

From-SVN: r92695
2004-12-29 03:48:27 +01:00
Tobias Schlüter
e98a8b5b62 re PR libfortran/19032 (modulo generates wrong result for divisor 1 and -1)
fortran/
PR fortran/19032
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
in front of function to match the standard.  Correct handling
of MODULO.

testsuite/
PR fortran/19032
* gfortran.dg/intrinsic_modulo_1.f90: New.
* gfortran.fortran-torture/execute/intrinsic_mod_ulo.f90: Add
tests with divisor -1.

From-SVN: r92645
2004-12-27 18:13:07 +01:00
Andrew Pinski
201a97b479 trans-expr.c (gfc_conv_cst_int_power): Only check for flag_unsafe_math_optimizations if we have a float type.
2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>

        * trans-expr.c (gfc_conv_cst_int_power): Only check for
        flag_unsafe_math_optimizations if we have a float type.

From-SVN: r92644
2004-12-27 08:56:38 -08:00
Tobias Schlüter
56746a0745 trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to logicalshift.
gcc/fortran/
* trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
logicalshift.  Call fold.  Remove 0-bit shift shortcut.
(gfc_conv_intrinsic_ishftc): Convert first argument to at least
4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
result if width(arg 1) < 4 bytes.  Call fold.

libgfortran/
* libgfortran/libgfortran.h (GFC_UINTEGER_1, GFC_UINTEGER_2):
Define.
* intrinsics/ishftc.c: Update copyright years.
(ishftc8): Change 'shift' and 'size' to GFC_INTEGER_4.
* intrinsics/mvbits.c: Correcty non-ASCII character in my name.
Add implementations for GFC_INTEGER_1 and GFC_INTEGER_2.

gcc/testsuite/
* gfortran.dg/g77/f90-intrinsic-bit.f: New.

From-SVN: r92642
2004-12-27 17:43:25 +01:00
Steven G. Kargl
f300468ade gfortran.texi: Fix typo.
2004-12-23  Steven G. Kargl  <kargls@comcast.net>

     * gfortran.texi: Fix typo.

From-SVN: r92575
2004-12-23 23:14:23 +00:00
Tobias Schlüter
4fdb5c7125 trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix comment typo.
* trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
comment typo.

From-SVN: r92274
2004-12-16 20:10:18 +01:00
Tobias Schlüter
e243549854 scanner.c (skip_fixed_comments): Fix typo in comment preceding function.
* scanner.c (skip_fixed_comments): Fix typo in comment preceding
function.

From-SVN: r92211
2004-12-15 20:15:40 +01:00
Tobias Schlüter
172b87995c re PR fortran/18993 (incorrect parsing in fixed-form)
fortran/
PR fortran/18993
* match.c (gfc_match_if): Don't explicitly skip optional whitespace.
(gfc_match_nullify): Make sure that ')' is in front of the end of
statement.

testsuite/
PR fortran/18993
* gfotran.dg/nullify_1.f: New test.

From-SVN: r92209
2004-12-15 19:55:57 +01:00
Richard Henderson
6b25a558d7 gfortran.h (gfc_expr.function.name): Make const.
* gfortran.h (gfc_expr.function.name): Make const.
        (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        (gfc_get_string): Update prototype.
        * iresolve.c: Include tree.h.
        (string_node, HASH_SIZE, string_head, hash): Remove.
        (gfc_get_string): Use vsnprintf, get_identifier.
        (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
        * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
        (gfc_done_1): Don't call gfc_iresolve_done_1.
        * module.c (mio_allocated_string): Take and return const char *,
        instead of modifying char**.
        (mio_expr): Update to match.
        * resolve.c (pure_function): Constify name argument.
        (resolve_function): Constify name.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.

From-SVN: r92176
2004-12-14 19:56:06 -08:00
Richard Henderson
7f68c75fb3 iresolve.c (gfc_resolve_all, [...]): Use PREFIX.
gcc/fortran/
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
        gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
        gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
        gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
        gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
        gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
        gfc_resolve_unpack: Use PREFIX.
libgfortran/
        * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
        intrinsics/pack_generic.c, intrinsics/reshape_generic.c,
        intrinsics/spread_generic.c, intrinsics/transpose_generic.c,
        intrinsics/unpack_generic.c, m4/cshift1.m4, m4/dotprod.m4,
        m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
        m4/iforeach.m4, m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4,
        m4/reshape.m4, m4/shape.m4, m4/transpose.m4: Use standard prefix
        instead of "__".
        * generated/*: Rebuild.

From-SVN: r92075
2004-12-12 18:47:58 -08:00
Tobias Schlüter
23acf4d411 re PR fortran/18869 (multiple common blocks in a single line rejected)
gcc/
PR fortran/18869
* match.c (gfc_match_common): Skip whitespace.

testsuite/
PR fortran/18869
* gfortran.dg/common_1.f90: New test.

From-SVN: r92064
2004-12-12 22:12:00 +01:00
Steven G. Kargl
c3d003d207 re PR fortran/16581 (gfortran F90 bit intrinsics don't work with integer*{1,2,8})
2004-12-12  Steven G. Kargl  <kargls@comcast.net>

	PR fortran/16581
	* check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
	gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
	integer kind check; Issue error for -std=f95 when needed.
	* intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
	GFC_STD_F95.
	* iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
	Promote arguments to same kind.

From-SVN: r92063
2004-12-12 21:09:09 +00:00
Steven G. Kargl
8d5cfa2765 re PR fortran/16222 (non-integral DO loop variables are unsupported.)
2004-12-12  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

	PR fortran/16222
	* resolve.c (gfc_resolve_iterator_expr): New function.
	(gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
	start, end and stride to correct type.
	(resolve_code): Pass extra argument.
	* array.c (resolve_array_list): Pass extra argument.
	* gfortran.h (gfc_resolve): Add prototype.
	* trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
	Handle real type iterators.
testsuite/
	* gfortran.dg/real_do_1.f90: New test.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r92057
2004-12-12 20:27:02 +00:00
Paul Brook
902c2ed4ea Fix trivial comment typo.
From-SVN: r92050
2004-12-12 16:30:00 +00:00
Tobias Schlüter
6ee42e0124 Fix date on ChangeLog, fix typo in function name
From-SVN: r92041
2004-12-12 01:56:30 +01:00
Tobias Schlüter
49e4d5803e re PR fortran/17175 (set_exponent breaks with integer*8 exponent)
fortran/
PR fortran/17175
* iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
same kind as C's 'int'.
(gfc_resolve_set_eponent): Convert 'I' argument if not of kind 4.

testsuite/
PR fortran/17175
* gfortran.dg/scale_1.f90: New test.

From-SVN: r92029
2004-12-11 12:06:31 +01:00
Richard Henderson
323c74dacc intrinsic.c (gfc_convert_type_warn): Propagate the input shape to the output expression.
* intrinsic.c (gfc_convert_type_warn): Propagate the input shape
        to the output expression.
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
        warning conversion.
        (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
        to index kind.

From-SVN: r91917
2004-12-08 13:17:18 -08:00
Tobias Schlüter
baa8edda03 Add missing PR numbers for previous commit:
fortran/
PR fortran/18826
* resolve.c (resolve_code): Impose correct restrictions on
assigned variable.

testsuite/
PR fortran/18826
* gfortran.dg/assign_1.f90: New test.

From-SVN: r91902
2004-12-08 15:38:24 +01:00
Tobias Schlüter
59ce85b543 * decl.c (gfc_match_end): Use locus of END when eos is an error.
From-SVN: r91899
2004-12-08 13:29:44 +01:00
Tobias Schlüter
40f2165e2d resolve.c (resolve_code): Impose correct restrictions on assigned variable.
fortran/
* resolve.c (resolve_code): Impose correct restrictions on
assigned variable.

testsuite/
* gfortran.dg/assign_1.f90: New test.

From-SVN: r91898
2004-12-08 13:27:54 +01:00
Steven G. Kargl
df65f0938c flush.c: New file.
2004-12-02  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

libgfortran/
	* intrinsics/flush.c: New file.
	* intrinsics/fnum.c: ditto
	* intrinsics/stat.c: ditto
	* io/io.h (unit_to_fd): Add prototype.
	* io/unix.c (unit_to_fd): New function.
	* configure.ac: Add test for members of struct stat.  Check for
	sys/types.h and sys/stat.h
	* Makefile.am: Add intrinsics/{flush.c,fnum.c,stat.c}
	* configure.in: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.
fortran/
	* check.c (gfc_check_flush, gfc_check_fnum): New functions.
	(gfc_check_fstat, gfc_check_fstat_sub): New functions.
	(gfc_check_stat, gfc_check_stat_sub): New functions.
	* gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
	* intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
	fstat, and stat to intrinsics symbol tables.
	* intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
	(gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
	* iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
	(gfc_resolve_stat, gfc_resolve_flush): New functions.
	(gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r91609
2004-12-02 04:10:26 +00:00
Steven G. Kargl
1270d6334a intrinsic.c: Fix and add comments, fix function declarations
2004-12-02  Steven G. Kargl  <kargls@comcast.net>

	* intrinsic.c: Fix and add comments, fix function declarations
	(OPTIONAL,REQUIRED): New symbols
	(add_functions,add_subroutines): Use symbols
	(gmp.h): Remove unused include

From-SVN: r91604
2004-12-02 01:34:26 +00:00
Joseph Myers
597cdf4f43 darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs instead of `%s' in diagnostic.
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
	instead of `%s' in diagnostic.

cp:
	* g++spec.c, lex.c: Avoid ` as left quote in diagnostics.

fortran:
	* f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
	in diagnostics.

java:
	* gjavah.c, jcf-dump.c, jv-scan.c, jvspec.c: Avoid ` as left quote
	in diagnostics.

From-SVN: r91282
2004-11-25 11:13:38 +00:00
Steven Bosscher
39afeb1aad c-opts.c (c_common_post_options): Don't clear flag_inline_functions.
gcc/
	* c-opts.c (c_common_post_options): Don't clear
	flag_inline_functions.
	* dojump.c (clear_pending_stack_adjust): Remove check on
	flag_inline_functions, it's always true.
	* config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
	that can never trigger.
	* config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
	flag_inline_trees, now that flag_inline_functions is never
	cleared.
	* config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
	flag_inline_functions at optimization levels greater than
	or equal to 3.  This is already done by default.

ada/
	* misc.c (gnat_post_options): Don't clear
	flag_inline_functions.

cp/
	* decl.c (cxx_init_decl_processing): Don't clear
	flag_inline_functions.

fortran/
	* options.c (gfc_post_options): Don't clear flag_inline_functions.

java/
	* class.c (make_class_data): Don't check flag_inline_functions.
	* lang.c (flag_really_inline): Remove unused flag.
	(java_handle_option): Don't set it here.  Remove special handling
	of flag_inline_functions for Java.
	(java_init): Don't set flag_inline_trees here.  Already done...
	(java_post_options): ...here.  Don't clear flag_inline_functions.

From-SVN: r91190
2004-11-24 19:45:32 +00:00
Steven G. Kargl
d8fe26b2cd check.c (gfc_check_getcwd_sub): Fix seg fault.
* check.c (gfc_check_getcwd_sub): Fix seg fault.

	* check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
	gfc_check_unlink,gfc_check_unlink_sub): New functions
	* gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
	* intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
	exit to intrinsics symbol tables.
	* intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
	gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
	gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
	gfc_resolve_unlink_sub): Add and sort prototypes.
	* iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
	gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols

libgfortran/
	* Makefile.am: Add intrinsics/{umask.c,unlink.c,exit.c}
	* Makefile.in: Regenerated
	* intrinsics/umask.c: New file
	* intrinsics/unlink.c: ditto
	* intrinsics/exit.c: ditto

From-SVN: r90949
2004-11-20 01:44:49 +00:00
Paul Brook
40b026d890 re PR fortran/13010 (seg fault on valid code)
PR fortran/13010
	* trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
	(gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
	* trans-types.c (gfc_get_dtype): Accept array type rather than element
	type.
	(gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
	(gfc_get_array_type_bounds): Ditto.
	(gfc_get_derived_type): Recurse into derived type pointers.
	* trans-types.h (gfc_get_dtype): Add prototype.
	* trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
testsuite/
	* gfortran.dg/der_pointer_1.f90: New test.

From-SVN: r90714
2004-11-16 02:02:37 +00:00
Paul Brook
c4759ce320 * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
From-SVN: r90676
2004-11-15 16:32:20 +00:00
Mike Stump
9d65c5cb57 Makefile.in: Add html support.
* Makefile.in: Add html support.
        * java/Make-lang.in: Likewise.
        * fortran/Make-lang.in: Likewise.
        * treelang/Make-lang.in: Likewise.
        * doc/install.texi: Likewise.
        * doc/makefile.texi: Likewise.
        * doc/sourcebuild.texi: Likewise.

From-SVN: r90577
2004-11-13 07:35:55 +00:00
Paul Brook
9665466484 re PR fortran/18375 (ICE when compiling spec benchmark fma3d)
PR fortran/18375
	* trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
	* trans-io.c (transfer_array_component): Ditto.

From-SVN: r90449
2004-11-10 20:03:21 +00:00
Paul Brook
851739ea17 * invoke.texi: Fix typo.
From-SVN: r90383
2004-11-10 02:35:05 +00:00
Kazu Hirata
f7b529fae7 arith.c, [...]: Fix comment formatting.
* arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
	gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
	module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
	trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
	trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.

From-SVN: r90266
2004-11-08 14:56:41 +00:00
Tobias Schlüter
c1df75d1a2 re PR fortran/18023 (ice on trying to convert between int and float)
PR fortran/18023
* io.c (resolve_tag): Tighten up exception for assigned FORMAT.

From-SVN: r90169
2004-11-06 13:49:13 +01:00
Kazu Hirata
882f2b8ea9 * gfortranspec.c: Replace GNU CC with GCC.
From-SVN: r90163
2004-11-06 03:49:32 +00:00
Tobias Schlüter
20a209b5be * gfortranspec.c (lang_specific_driver): Change year to 2004.
From-SVN: r90138
2004-11-05 21:01:34 +01:00
Tobias Schlüter
ca0e9281da re PR fortran/18111 (spurious warnings with -W -Wunused)
PR fortran/18111
        *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
        hidden parameters.

From-SVN: r90136
2004-11-05 20:52:06 +01:00
Tobias Schlüter
adf3ed3f38 re PR fortran/15164 (trans-decl.c:411: gfc_finish_var_decl: Assertion failed)
PR fortran/15164
* trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
module procedures as if they were module variables.

From-SVN: r90125
2004-11-05 15:10:35 +01:00
Tobias Schlüter
36f4d1449c re PR fortran/17535 (gfortran with module procedures)
fortran/
PR fortran/17535
PR fortran/17583
PR fortran/17713
* module.c (write_symbol1): Set module_name for dummy arguments.

testsuite/
PR fortran/17535
PR fortran/17583
PR fortran/17713
* gfortran.dg/generic_[123].f90: New testcases.

From-SVN: r90011
2004-11-03 01:54:02 +01:00
Paul Brook
9e660c4932 intrinsic.c (check_intrinsic_standard): Include error locus.
* intrinsic.c (check_intrinsic_standard): Include error locus.
	Remove VLA.
	(gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
	locus to check_intrinsic_standard.

From-SVN: r89971
2004-11-02 00:27:13 +00:00
Janne Blomqvist
b789258287 re PR fortran/17590 (Standard conformance should take intrinsics into account.)
2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	PR fortran/17590
	* gfortran.h: Change GFC_STD_* flags to more appropriate
	ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
	gfc_option_t): Add field for warning about use of nonstandard
	intrinsics.
	* intrinsic.c (add_sym): Add parameter for standard version, check
	this against current standard.
	(add_sym_0): Pass standard parameter to add_sym.
	(add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
	(add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
	(add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
	(make_generic): Add parameter for standard, check this
	against currently selected standard.
	(add_functions, add_subroutines): Add parameter to tell which
	standard an intrinsic belongs to.
	(check_intrinsic_standard): New function.
	(gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
	(gfc_intrinsic_sub_interface): Ditto.
	* lang.opt: Add Wnonstd-intrinsics option.
	* options.c (gfc_init_options): Change to use new GFC_STD_* flags,
	init new warning.
	(set_Wall): Add warning about nonstd intrinsics.
	(gfc_handle_option): Change to use new GFC_STD_* flags,
	handle new warning.
	* invoke.texi: Update manual to include -Wnonstd-intrinsics.

From-SVN: r89907
2004-10-31 01:24:29 +00:00
Andrew Pinski
f88cf205f5 f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>

        * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.

From-SVN: r89889
2004-10-30 07:53:12 -07:00
Tobias Schlüter
b7398e7228 simplify.c (twos_complement): Calculate mask in GMP arithmetic.
2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* simplify.c (twos_complement): Calculate mask in GMP arithmetic.

From-SVN: r89888
2004-10-30 14:42:22 +00:00
Tobias Schlüter
bf737879fa trans.c (gfc_trans_code): Set global locus after recursing.
2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* trans.c (gfc_trans_code): Set global locus after recursing. Fix
	comment typo.

From-SVN: r89887
2004-10-30 14:35:23 +00:00
Canqun Yang
7a003d8e2e check.c (gfc_check_rand): Allow missing optional argument.
2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>

	* check.c (gfc_check_rand): Allow missing optional argument.
	(gfc_check_irand): Ditto.
	* intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
libgfortran/
	* intrinsics/rand.c (irand): Handle NULL argument.

From-SVN: r89886
2004-10-30 14:18:34 +00:00
Scott Robert Ladd
be3a985ea6 Fix for PR fortran/13490, PR fortran/17912
From-SVN: r89790
2004-10-28 22:25:18 +00:00
Scott Robert Ladd
14df574739 Added pedantic_min_int to gfc_integer_info Added ARITH_ASYMMETRIC to arith...
Added pedantic_min_int to gfc_integer_info
Added ARITH_ASYMMETRIC to arith
Added support for an "asymmetric integer" warning when compiling with pedantic
Set minimum integer values to reflect realities of two's complement signed integers

From-SVN: r89785
2004-10-28 21:43:46 +00:00
Andrew Pinski
974ede64c7 Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>

        * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
        (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
        link it in.

From-SVN: r89172
2004-10-17 10:13:38 -07:00
Tobias Schlüter
19e4c59dbf trans-decl.c (generate_local_decl): Simplify logic, fix comment typo.
* trans-decl.c (generate_local_decl): Simplify logic, fix comment
typo.
(gfc_generate_function_code): Fix formatting issue.

From-SVN: r89003
2004-10-14 00:37:12 +02:00
Tobias Schlüter
711f836923 * module.c: Fix formatting issues.
From-SVN: r88846
2004-10-10 16:35:39 +02:00
Tobias Schlüter
5c76089acf module.c (mio_interface_rest): Set where member of interface while loading.
* module.c (mio_interface_rest): Set where member of interface
while loading.

From-SVN: r88819
2004-10-09 18:17:45 +02:00
Andrew Pinski
2d0b4bcd66 re PR fortran/17901 (max-identifier-length problem with -J option)
2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>

        PR fortran/17901
        * options.c (gfc_handle_option): Add break after handing the
        J/M option.

From-SVN: r88797
2004-10-08 15:03:36 -07:00
Tobias Schlüter
268107218c * arith.c: Fix formatting issues.
From-SVN: r88779
2004-10-08 20:53:13 +02:00
Tobias Schlüter
edbfca8fd7 re PR fortran/17676 (Problem with user operator)
PR fortran/17676
* resolve.c (resolve_operator): Use correct operator name in message.

From-SVN: r88726
2004-10-08 02:16:28 +02:00
Tobias Schlüter
5d874166a8 primary.c (match_boz_constant): Allow kind parameter suffixes.
fortran/
* primary.c (match_boz_constant): Allow kind parameter suffixes.
Move standard warning further to the front.

testsuite/
* gfortran.fortran-torture/execute/intrinsic_mvbits.f90,
gfortran.dg/ishft.f90: Add more tests.

From-SVN: r88690
2004-10-07 17:12:06 +02:00
Kazu Hirata
54c2d93172 * trans-stmt.c: Fix a comment typo.
From-SVN: r88685
2004-10-07 13:16:16 +00:00
Paul Brook
2b58638b46 re PR fortran/17678 (USE statement incorrectly initializes allocatable array)
PR fortran/17678
	* trans-array.c (gfc_trans_deferred_array): Leave use associated
	variables alone.
testsuite/
	* gfortran.dg/use_allocated_1.f90: New test.

From-SVN: r88655
2004-10-07 00:43:21 +00:00
Tobias Schlüter
c45abcaf8f * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
From-SVN: r88647
2004-10-07 01:16:43 +02:00
Tobias Schlüter
5d24a9774e re PR fortran/17568 (ISHFT intrinsic: bogus overflow error)
fortran/
PR fortran/17568
* simplify.c (twos_complement): New function.
(gfc_simplify_ishft, gfc_simplify_ishftc): Revise.

testsuite/
PR fortran/17568
* gfortran.dg/ishft.f90: New test.

From-SVN: r88609
2004-10-06 18:21:42 +02:00
Paul Brook
fbdad37d85 trans-stmt.c (gfc_trans_simple_do): New function.
* trans-stmt.c (gfc_trans_simple_do): New function.
	(gfc_trans_do): Use it.  Evaluate iteration bounds before entering
	loop.  Update comments.
testsuite/
	* gfortran.dg/do_1.f90: New test.

From-SVN: r88607
2004-10-06 15:29:25 +00:00
Tobias Schlüter
5b1374e965 re PR fortran/17776 (no subroutine system)
fortran/
PR fortran/17776
* check.c (gfc_check_system_sub): New function.
* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
* intrinsic.c (add_functions): Add 'system'.
(add_subroutines): Add 'system'.
* intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
Move prototypes to other suborutines.
(gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
Add prototype.
(gfc_resolve_system_clock): Fix formatting of prototype.
* iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
functions.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
GFC_ISYM_SYSTEM.

libgfortran/
PR fortran/17776
* intrinsics/system.c: New file.
* Makefile.am: Add dependency for the new file.
* Makefile.in: Regenerate.

From-SVN: r88532
2004-10-04 23:30:32 +02:00
Tobias Schlüter
73a014b549 re PR fortran/17708 (gfortran problem with goto inside loop)
fortran/
PR fortran/17708
* parse.c (accept_statement): Don't treat END DO like END IF and
END SELECT.
(parse_do_block): Generate possible END DO label inside END DO
block.

also, added ChangeLog entry for previous commit.

testsuite/
PR fortran/17708
* gfortran.dg/pr17708.f90: New test.

From-SVN: r88529
2004-10-04 23:05:07 +02:00
Tobias Schlüter
95638988cb trans-const.c (gfc_build_cstring_const): New function.
* trans-const.c (gfc_build_cstring_const): New function.
(gfc_init_cst): Use new function.
* trans-const.h (gfc_build_cstring_const): Add prototype.
* trans-io.c (set_string, set_error_locus): Use new function.
* trans-stmt.c (gfc_trans_goto): Use new function.

From-SVN: r88528
2004-10-04 22:55:49 +02:00
Tobias Schlüter
ee569894e7 re PR libfortran/17631 (libfortran: intrinsic subroutine MVBITS not implemented)
PR fortran/17631
fortran/
* intrinsic.c (add_sym_5): Remove.
(add_subroutines): Add resolution function for MVBITS.
* intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
MVBITS
* iresolve.c (gfc_resolve_mvbits): New function.
(gfc_resolve_random_number): Remove empty line at end of function.
libgfortran/
* Makefile.am (gfor_helper_src): Add intrinsics/mvbits.h.
* intrinsics/mvbits.h: New file.
testsuite/
* gfortran.fortran-torture/execute/intrinsic_mvbits.f90: New test.

From-SVN: r88527
2004-10-04 22:49:39 +02:00
Tobias Schlüter
58c5b409e8 re PR fortran/17283 (UNPACK issues)
PR fortran/17283
fortran/
* iresolve.c (gfc_resolve_pack): Choose function depending if mask is
scalar.
libgfortran/
* intrinsics/pack_generic.c (__pack): Allocate memory for return array
if not done by caller.
(__pack_s): New function.
* runtime/memory.c (internal_malloc, internal_malloc64): Allow
allocating zero memory.
testsuite/
* gfortran.fortran-torture/execute/intrinsic_pack.f90: Add more tests.

From-SVN: r88526
2004-10-04 21:27:29 +02:00
Erik Schnetter
d7d528c8c8 scanner.c (preprocessor_line): Accept preprocessor lines without file names.
2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>

	* scanner.c (preprocessor_line): Accept preprocessor lines without
	file names.  Check file names for closing quotes.  Handle escaped
	quotes in file names.

From-SVN: r88514
2004-10-04 15:47:16 +00:00
Tobias Schlüter
ca2940c3e0 trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
	Paul Brook  <paul@codesourcery.com>

	* trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
	Use gfc_get_expr_charlen.
	* trans-expr.c (gfc_get_expr_charlen): New function.
	* trans.h (gfc_get_expr_charlen): Add prototype.
testsuite/
	* gfortran.dg/pr17612.f90: New test.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r88483
2004-10-04 13:03:43 +00:00
Kazu Hirata
b805ea17e5 * trans-intrinsic.c: Fix a comment typo.
From-SVN: r88481
2004-10-04 12:00:04 +00:00
Tobias Schlüter
03ddaf352f simplify.c (range_check): Remove blank line at beginning of function.
2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* simplify.c (range_check): Remove blank line at beginning of function.
	(gfc_simplify_dint): Same at end of function.
	(gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
	(gfc_simplify_bound): Fix indentation.
	(gfc_simplify_log10): Simplify calculation.
	(gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
	of function.
	(gfc_simplify_nearest): Same at end of function.
	(gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
	function.
	(gfc_simplify_rrspacing, gfc_simplify_set_exponent,
	gfc_simplify_spacing): Simplify calulations.

From-SVN: r88447
2004-10-03 13:30:37 +00:00
Feng Wang
046dcd5764 trans-intrinsic.c: Fix comments on spacing and rrspacing
2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>

	* trans-intrinsic.c: Fix comments on spacing and rrspacing
	(gfc_conv_intrinsic_rrspacing): Add fold on constant trees.

From-SVN: r88446
2004-10-03 13:27:06 +00:00
Jan Hubicka
0f0377f6dd c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
* c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
	* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
	* toplev.h (tree_rest_of_compilation): Update prototype.
	* tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.

	* misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.

	* semantics.c (expand_body): Update call of tree_rest_of_compilation.

	* f95-lang.c (gfc_expand_function): Update call of
	tree_rest_of_compilation.
	* trans-decl.c (gfc_generate_constructors): Likewise.

	* java.c (java_expand_body): Update call of tree_rest_of_compilation.

	* treetree.c (treeland_expand_function): Update call of
	tree_rest_of_compilation.

From-SVN: r88396
2004-10-01 15:11:25 +00:00
Tobias Schlüter
68629d160e * trans-intrinsic.c: Comment fixes.
From-SVN: r88126
2004-09-26 16:24:07 +02:00
Tobias Schlüter
75d17889df * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
From-SVN: r88104
2004-09-25 17:50:00 +02:00
Tobias Schlüter
c0c07d7b82 re PR fortran/17615 (Internal compiler error using interface procedures)
fortran/
PR fortran/17615
* trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
function to determine return type.

testsuite/
PR fortran/17615
* gfortran.dg/pr17615.f90: New test.

From-SVN: r88061
2004-09-24 19:06:57 +02:00
Tobias Schlüter
2124d608c6 intrinsic.h (gfc_resolve_getcwd): Update prototype.
* intrinsic.h (gfc_resolve_getcwd): Update prototype.
* iresolve.c (gfc_resolve_getcwd): Add second argument to function.

From-SVN: r88055
2004-09-24 18:51:25 +02:00
Tobias Schlüter
206fb0a722 trans-types.c (gfc_return_by_reference): Remove superfluous assertion.
* trans-types.c (gfc_return_by_reference): Remove superfluous
assertion.

From-SVN: r88051
2004-09-24 18:26:47 +02:00
Jan Hubicka
8f2353433c re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))
PR middle-end/16460

	* cgraph.c (cgraph_unnest_node): New function.
	(c_finalize): Rename to ....
	(c_warn_unused_result_recursivly): ... this one; do only the warning
	(finish_function): Finalize the toplevel function; do not lower nested tree.
	* cgraph.h (cgraph_unnest_node): Declare.
	* cgraphunit.c (decide_is_function_needed): Do not use cgraph
	nestedness datastructure.
	* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
	* reload1.c (set_label_offsets): Fix call of set_label_offsets.
	* tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.

	* utils.c (gnat_finalize): Remove.
	(end_subprog_body): Directly call cgraph_finalize_function;
	do not lower the nested functions.

	* trans-decl.c (build_entry_thunks): Finalize the function; do not lower
	tree.
	(gfc_generate_function_code): Likewise.

From-SVN: r87770
2004-09-20 20:38:29 +00:00
Tobias Schlüter
da89fba81f re PR fortran/15957 (Error in array assignments; 'shape'-related stuff)
fortran/
PR fortran/15957
* simplify.c (gfc_simplify_reshape): Set shape of return value
correctly.

testsuite/
PR fortran/15957
* gfortran.dg/pr15957.f90: New test.

From-SVN: r87764
2004-09-20 19:22:50 +02:00
Jeffrey D. Oldham
6615c44615 alias.c (find_base_decl): Remove unreachable case '3' block.
2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* alias.c (find_base_decl): Remove unreachable case '3' block.
	* expr.c (safe_from_p): Abort if passed a type.
	* tree-gimple.c (recalculate_side_effects): Abort if passed
	anything other than an expression.
	* tree-ssa-pre.c (phi_translate): Return expr immediately if
	is_gimple_min_invariant is true for it.  Reorder cases for clarity.
	Abort on un-handled tree classes.
	(valid_in_set): Likewise.
	* tree.c (tree_code_class_strings): New static data.

	* tree.h (enum tree_code_class): New.
	(tree_code_class_strings): Declare.
	(TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
	(REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
	(STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
	(TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
	(checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.

	* tree.def, c-common.def, objc/objc-tree.def: Use
	tree_code_class enumeration constants instead of code letters.

	* alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
	* c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
	* emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
	* langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
	* tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
	* tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
	* tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
	* tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
	* tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
	* tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
	* tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
	* config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
	* config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
	Update to match.

	* LANGUAGES: Add note about change.

ada:
	* ada-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
	Update for new tree-class enumeration constants.

cp:
	* cp-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
	* mangle.c, pt.c, semantics.c, tree.c, typeck.c:
	Update for new tree-class enumeration constants.

fortran:
	* f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
	enumeration constants.

java:
	* java-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
	new tree-class enumeration constants.

treelang:
	* treetree.c: Update for new tree-class enumeration constants.

From-SVN: r87675
2004-09-17 21:55:02 +00:00
Paul Brook
4cdf72233b gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
* gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
	(gfc_linebuf_header_size): Define.
	* scanner.c (load_file): Use it.

From-SVN: r87655
2004-09-17 17:07:43 +00:00
Kazu Hirata
1f2959f06e array.c, [...]: Fix comment typos.
* array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
	interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
	resolve.c, scanner.c, trans-array.c, trans-array.h,
	trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
	trans.h: Fix comment typos.  Follow spelling conventions.

From-SVN: r87605
2004-09-16 16:00:45 +00:00
Victor Leikehman
d2ccf6aa09 trans-io.c (transfer_array_component): New function.
2004-09-16  Victor Leikehman  <lei@il.ibm.com>

	PR/15364
	* trans-io.c (transfer_array_component): New function.
	(transfer_expr): For array fields, call transfer_array_component.
testsuite/
	* gfortran.dg/der_array_io_1.f90: New test.
	* gfortran.dg/der_array_io_2.f90: New test.
	* gfortran.dg/der_array_io_3.f90: New test.

From-SVN: r87596
2004-09-16 13:29:56 +00:00
Kazu Hirata
de787a9687 * gfortran.texi: Fix a typo.
From-SVN: r87595
2004-09-16 13:13:39 +00:00
Paul Brook
329bed5eb4 Revert accidental commit of unrelated/unfinished changes.
From-SVN: r87583
2004-09-16 02:10:43 +00:00
Aaron W. LaFramboise
f13ab1ee14 parse.c (eof_buf): Rename eof to eof_buf.
2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>

	* parse.c (eof_buf): Rename eof to eof_buf.
	(unexpected_eof): Same.
	(gfc_parse_file): Same.

From-SVN: r87556
2004-09-15 14:19:12 +00:00
Steven G. Kargl
0110c1ec15 check.c (gfc_check_getcwd_sub): New function.
2004-09-15  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_getcwd_sub): New function.
	* gfortran.h (GFC_ISYM_GETCWD): New symbol.
	* intrinsic.c (add_functions): Add function definition;
	Use symbol.
	* intrinsic.c (add_subroutines): Add subroutine definitions.
	* intrinsic.h: Add prototypes.
	* iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
	New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
libgfortran/
	* intrincics/getcwd.c: New file.
	* Makefile.am: Add getcwd.c.
	* Makefile.in: Regenerated.

From-SVN: r87555
2004-09-15 14:17:26 +00:00
Steven G. Kargl
a8c60d7fff check.c (gfc_check_getcwd_sub): New function.
2004-09-15  Steven G. Kargl  <kargls@comcast.net>

	* check.c (gfc_check_getcwd_sub): New function.
	* gfortran.h (GFC_ISYM_GETCWD): New symbol.
	* intrinsic.c (add_functions): Add function definition;
	Use symbol.
	* intrinsic.c (add_subroutines): Add subroutine definitions.
	* intrinsic.h: Add prototypes.
	* iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
	New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
libgfortran/
	* intrinsics/getcwd.c: New file.
	* Makefile.am: Add getcwd.c.
	* Makefile.in: Regenerated.

From-SVN: r87552
2004-09-15 14:09:17 +00:00
Tobias Schlüter
4672f86ad0 re PR fortran/16485 (Private subroutines from different modules collide during linking.)
2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/16485
	* module.c (write_symbol): Don't fill in module name here.
	(write_symbol0): Fill in here instead.
testsuite/
	* gfortran.dg/same_name_1.f90: New test.

From-SVN: r87551
2004-09-15 13:12:52 +00:00
Kazu Hirata
13795658b5 data.c, [...]: Fix comment typos.
* data.c, decl.c, f95-lang.c, gfortran.h, match.c,
	trans-array.c, trans-common.c, trans-expr.c,
	trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
	comment typos.  Follow spelling conventions.

From-SVN: r87492
2004-09-14 12:37:28 +00:00
Daniel Berlin
0a05048550 Makefile.def: Remove libbanshee.
Toplevel:

2004-09-09  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.def: Remove libbanshee.
	* Makefile.tpl: Ditto.
	* configure.in: Ditto.
	* Makefile.in: Regen.
	* configure: Ditto.

gcc/

2004-09-09  Daniel Berlin  <dberlin@dberlin.org>

	* Makefile.in: Remove libbanshee, tree-alias-*.
	Remove tree-alias-common.h dependencies.
	* common.opt: Remove -ftree-points-to.
	* configure.ac: Remove libbanshee.
	* flags.h: Remove pta_type, flag_tree_points_to.
	* gengtype.c (open_base_files): Remove tree-alias-type.h.
	* opts.c (OPT_ftree_points_to): Remove.
	* toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
	* tree-dfa.c: Remove tree-alias-common.h
	* tree-into-ssa.c: Ditto.
	* tree-outof-ssa.c: Ditto.
	* tree-ssa-copyrename.c: Ditto.
	* tree-ssa-live.c: Ditto.
	* tree-optimize.c: Ditto.
	* tree-ssa.c: Ditto.
	Remove pass_build_pta, pass_del_pta.
	* tree-pass.h: Ditto.
	* tree-ssa-alias.c: Remove tree-alias-common.h.
	(struct alias_stats_d):	Remove pta_queries, pta_resolved.
	(pass_may_alias): Remove PROP_pta requirement.
	(may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
	(get_tmt_for): Ditto.
	(dump_alias_stats): Ditto.
	* doc/passes.texi: Remove blurb about points-to analysis.
	* fortran/Make-lang.in: Remove tree-alias-*.o.

From-SVN: r87253
2004-09-09 20:53:41 +00:00
Paul Brook
4d28e18386 * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
From-SVN: r87207
2004-09-08 23:31:36 +00:00
Paul Brook
6e45f57bf3 array.c: Don't include assert.h.
* array.c: Don't include assert.h.
	* data.c: Don't include assert.h.  Replace assert and abort with
	gcc_assert and gcc_unreachable.
	* dependency.c: Ditto.
	* f95-lang.c: Ditto.
	* iresolve.c: Ditto.
	* resolve.c: Ditto.
	* simplify.c: Ditto.
	* symbol.c: Ditto.
	* trans-array.c: Ditto.
	* trans-common.c: Ditto.
	* trans-const.c: Ditto.
	* trans-decl.c: Ditto.
	* trans-expr.c: Ditto.
	* trans-intrinsic.c: Ditto.
	* trans-io.c: Ditto.
	* trans-stmt.c: Ditto.
	* trans-types.c: Ditto.
	* trans.c: Ditto.

From-SVN: r87187
2004-09-08 14:33:03 +00:00
Per Bothner
c8cc8542fa error.c (show_locus): Handle mapped locations.
2004-09-07  Per Bothner  <per@bothner.com>
	Paul Brook  <paul@codesourcery.com>

	* error.c (show_locus): Handle mapped locations.
	* f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
	* gfortran.h: Include input.h.
	(struct gfc_linebuf): Use source_location.
	* scanner.c (get_file): Initialize linemap.
	(preprocessor_line): Pass extra argument to get_file.
	(load_file): Ditto.  Setup linemap.
	(gfc_new_file): Handle mapped locations.
	* trans-common.c (build_field, build_equiv_decl, build_common_decl):
	Set decl source locations.
	(gfc_trans_common): Set blank common block location.
	* trans-decl.c (gfc_set_decl_location): New function.
	(gfc_get_label_decl, gfc_get_symbol_decl): Use it.
	(trans_function_start): Move call to gfc_set_backend_locus..
	(build_function_decl): ... to here.
	(build_entry_thunks): Set and restore the backend locus.
	(gfc_generate_constructors): Remove excess arguments to
	init_function_start.
	(gfc_generate_block_data): Add comments.  Set the decl locus.
	* trans-io.c (set_error_locus): Handle mapped locations.
	* trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
	(gfc_trans_code): Use SET_EXPR_LOCATION.
	(gfc_generate_code): Override the location of the new symbol.
	* trans.h (gfc_set_decl_location): Add prototype.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r87142
2004-09-07 14:43:37 +00:00
Paul Brook
1a5ffec4eb * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
From-SVN: r86978
2004-09-02 18:44:39 +00:00
Paul Brook
4c97f95a5b * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
From-SVN: r86976
2004-09-02 18:37:16 +00:00
Tobias Schlüter
c3d0559da5 re PR fortran/15327 (ICE when using MERGE on strings)
fortran/
PR fortran/15327
* trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
strings.

testsuite/
PR fortran/15327
* gfortran.dg/merge_char_1.f90: New test.

From-SVN: r86940
2004-09-02 01:29:46 +02:00
Tobias Schlüter
0e6928d853 re PR fortran/16400 (Invalid usage of assumed-size arrays is not rejected)
fortran/
PR fortran/16400
PR fortran/16404
(port from g95)
* resolve.c (resolve_transfer): New function.
(resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.

testsuite/
PR fortran/16404
* gfortran.dg/der_io_1.f90: XFAIL illegal testcase.

From-SVN: r86931
2004-09-01 23:07:39 +02:00
Tobias Schlüter
149a42dd2d re PR fortran/16579 (gfortran: (ICHAR(CHAR(I)) .NE. I) when 128 <= I <= 255)
fortran/
PR fortran/16579
* trans-types.c (gfc_init_types): Make gfc_character1_type_node an
unsigned char.

testsuite/
PR fortran/16579
* gfortran.fortran-torture/execute/intrinsic_i_char.f90: New test.

From-SVN: r86846
2004-08-31 23:54:24 +02:00
Tobias Schlüter
c4dd5a8dd3 * CONTRIB, NEWS, README, TODO: Remove obsolete files.
From-SVN: r86839
2004-08-31 21:41:15 +02:00
Tobias Schlüter
cf73cdac51 re PR fortran/17244 (gfortran fatal error: gfc_todo: Not Implemented: Returning derived types)
fortran/
PR fortran/17244
* trans-types.c (gfc_return_by_reference): Remove TODO error,
add comment pointing out possible issue WRT compatibility with g77.

testsuite/
PR fortran/17244
* gfortran.dg/func_derived_1.f90: New test.

From-SVN: r86832
2004-08-31 18:52:41 +02:00
Tobias Schlüter
d7177ab25e trans-decl.c, [...]: Replace all occurences of 'gfc_strlen_type_node' by 'gfc_charlen_type_node'.
fortran/
* trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
all occurences of 'gfc_strlen_type_node' by
'gfc_charlen_type_node'.
* trans-types.h: Same. Also update comment accordingly.

libgfortran/
* libgfortran.h: Replace 'gfc_strlen_type' by
'gfc_charlen_type'. Update comment accordingly.
* intrinsics/args.c, intrinsics/env.c, io/io.h, io/transfer.c:
Replace all occurences of 'gfc_strlen_type' by 'gfc_charlen_type'.

From-SVN: r86828
2004-08-31 16:06:48 +02:00
Tobias Schlüter
f36327db85 * f95-lang.c: Change initial comment to say gfortran.
From-SVN: r86827
2004-08-31 15:39:40 +02:00
Tobias Schlüter
d1d61a0086 * primary.c: Update copyright boilerplate to say GCC.
From-SVN: r86826
2004-08-31 15:35:01 +02:00
Paul Brook
da17f5599e trans-types.h: Add comments.
* trans-types.h: Add comments.
	(intmax_type_node, string_type_node, const_string_type_node): Remove.
libgfortran/
	* libgfortran.h: Add comments.

From-SVN: r86810
2004-08-30 23:28:56 +00:00
Richard Henderson
e2cad04b28 Make-lang.in (fortran/f95-lang.o): Update dependencies.
* Make-lang.in (fortran/f95-lang.o): Update dependencies.
        (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
        * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
        c_long, c_long_long.
        (gfc_logical_info): Add c_bool.
        (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
        * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
        rather than gfc_int[48]_type_node for allocate choice.
        * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
        local copies of some kind type nodes.
        (gfc_build_builtin_function_decls): Likewise.
        * trans-expr.c (gfc_conv_power_op): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
        * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
        gfc_trans_character_select, gfc_trans_allocate): Likewise.
        * trans-io.c (gfc_pint4_type_node): Move into ...
        (gfc_build_io_library_fndecls): ... here.  Cache local copies of
        some kind type nodes.
        * trans-types.c (gfc_type_nodes): Remove.
        (gfc_character1_type_node, gfc_strlen_type_node): New.
        (gfc_integer_types, gfc_logical_types): New.
        (gfc_real_types, gfc_complex_types): New.
        (gfc_init_kinds): Fill in real mode_precision.
        (gfc_build_int_type, gfc_build_real_type): New.
        (gfc_build_complex_type, gfc_build_logical_type): New.
        (c_size_t_size): New.
        (gfc_init_types): Loop over kinds.
        (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
        (gfc_get_complex_type, gfc_get_logical_type): Likewise.
        (gfc_get_character_type_len): Likewise.
        (gfc_type_for_size): Loop over kinds; use a reduced set of
        unsigned type nodes.
        (gfc_type_for_mode): Loop over kinds.
        (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
        (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
        * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
        F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
        F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
        F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
        F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
        F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
        gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
        gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
        gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
        gfc_complex8_type_node, gfc_complex16_type_node,
        gfc_logical1_type_node, gfc_logical2_type_node,
        gfc_logical4_type_node, gfc_logical8_type_node,
        gfc_logical16_type_node, gfc_strlen_kind): Remove.
        (gfc_character1_type_node): Turn in to a variable.
        (gfc_strlen_type_node): Likewise.

From-SVN: r86806
2004-08-30 14:59:08 -07:00
Tobias Schlüter
0de4325e0b gfortran.h (gfc_namespace): Add new field is_block_data.
fortran/
* gfortran.h (gfc_namespace): Add new field is_block_data.
* parse.c (accept_statement): Remove special handling for BLOCK DATA.
(parse_block_data): Record BLOCK DATA name, set is_block_data field.
* trans.c (gfc_generate_code): Handle BLOCK DATA units.
* trans.h (gfc_generate_block_data): Add prototype.
* trans-decl.c (gfc_generate_block_data): New function.

testsuite/
* gfortran.dg/blockdata_1.f90: New test.

From-SVN: r86796
2004-08-30 21:08:41 +02:00
Richard Henderson
04204c2fbf trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
        * trans-types.c (gfc_init_kinds): Reject integer kinds larger
        than two HOST_WIDE_INT.

From-SVN: r86749
2004-08-29 21:47:49 -07:00
Tobias Schlüter
294fbfc89f re PR fortran/13910 (Cannot initialize variables with declation as allowed by g77)
fortran/
PR fortran/13910
* decl.c (free_variable, free_value, gfc_free_data, var_list,
var_element, top_var_list, match_data_constant, top_val_list,
gfc_match_data): Move here from match.c.
(match_old_style_init): New function.
(variable_decl): Match old-style initialization.
* expr.c (gfc_get_variable_expr): New function.
* gfortran.h (gfc_get_variable_expr): Add prototype.
* gfortran.texi: Start documentation for supported extensions.
* match.c: Remove the functions moved to decl.c.
* match.h (gfc_match_data): Move prototype to under decl.c.
* symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
comments.

testsuite/
PR fortran/13910
* gfortran.dg/oldstyle_1.f90: New test.

From-SVN: r86729
2004-08-29 18:58:39 +02:00
Steven G. Kargl
e8525382d9 check.c (gfc_check_besn, [...]): New functions.
2004-08-29  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

	* check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
	(DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
	(build_builtin_fntypes): New function.
	(gfc_init_builtin_functions): Use it.
	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
	and GFC_ISYM_ERF{,C}.
	(gfc_c_int_kind): Declare.
	* intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
	* intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
	gfc_resolve_g77_math1): Add prototypes.
	* resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
	* mathbuiltins.def: Add comment.  Change third argument.  Use
	DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
	* trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
	(DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
	* trans-types.c (gfc_c_int_kind): Declare.
	(gfc_init_kinds): Set it.
testsuite/
	* gfortran.dg/g77/README: Update.
	* gfortran.dg/g77/erfc.f: Copy from g77.f-torture.
	* gfortran.dg/g77/intrinsic-unix-bessel.f: Ditto.
	* gfortran.dg/g77/intrinsic-unix-erf.f: Ditto.
libgfortran/
	* intrinsics/bessel.c: New file.
	* intrinsics/erf.c: New file.
	* Makefie.am: Add intrinsics/bessel.c and intrinsics/erf.c.
	* configure.ac: Test for C99 Bessel and Error functions.
	* Makefile.in: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r86727
2004-08-29 15:58:16 +00:00
Steven G. Kargl
4c0c6b9f2c gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
2004-08-29  Steven G. Kargl  <kargls@comcast.net>
	Paul Brook  <paul@codesourcery.com>

	* gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
	(gfc_check_f, gfc_simplify_f): Add f0.
	* intrinsic.c (do_check): Call f0.  Flatten.
	(add_sym_0): Fix prototype.  Set f0.
	(add_functions): Add getgid, getgid and getuid.
	(resolve_intrinsic): Remove obsolete comment.
	(do_simplify): Call f0.
	* intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
	gfc_resolve_getuid): Add prototypes.
	* iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
	gfc_resolve_getuid): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
	GFC_ISYM_GET?ID.
libgfortran/
	* Makefile.am: Add intrinsics/getXid.c.
	* configure.ac: Add tests for get{g,p,u}id.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

Co-Authored-By: Paul Brook <paul@codesourcery.com>

From-SVN: r86703
2004-08-28 23:43:41 +00:00
Tobias Schlüter
1f05db639b error.c (gfc_error_init_1): Remove blank line in front of function body.
* error.c (gfc_error_init_1): Remove blank line in front of
function body. Add missing blank.
(gfc_buffer_error, error_char, error_string): Remove blank line in
front of function body.
(show_locus): Add comma in comment.
(gfc_clear_warning, gfc_warning_check, gfc_clear_error,
gfc_push_error, gfc_pop_error): Remove blank line in front of
function body.
(gfc_get_errors): Typo fix in comment in front of function. Remove
blank line in front of function body.

From-SVN: r86691
2004-08-28 16:07:03 +02:00
Tobias Schlüter
9d64df18fd gfortran.h (gfc_default_*_kind): Remove prototypes, add extern variable declaration of same name.
* gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
variable declaration of same name.
* arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
Replace all calls to gfc_default_*_kind with variable accesses.
* trans-types.c: Same as above.
(gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
static qualifier. Replace all occurences.
(gfc_default_*_kind): Remove functions.

From-SVN: r86662
2004-08-27 16:49:35 +02:00
Richard Henderson
5e8e542ff8 arith.c: Include system.h, not real system headers.
* arith.c: Include system.h, not real system headers.
        (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
        DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
        GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
        GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
        (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
        gfc_index_integer_kind, gfc_default_integer_kind,
        gfc_default_real_kind,gfc_default_double_kind,
        gfc_default_character_kind, gfc_default_logical_kind,
        gfc_default_complex_kind, validate_integer, validate_real,
        validate_logical, validate_character,
        gfc_validate_kind): Move to trans-types.c.
        (gfc_set_model_kind): Use gfc_validate_kind.
        (gfc_set_model): Just copy the current precision to default.
        (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
        * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
        * gfortran.h: Update file commentary.
        * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
        (gfc_default_integer_kind_1, gfc_default_real_kind_1,
        gfc_default_double_kind_1, gfc_default_character_kind_1,
        gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
        (gfc_init_kinds): New.
        (gfc_init_types): Don't set gfc_index_integer_kind here.
        * trans-types.h (gfc_init_kinds): Declare.
        * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.

From-SVN: r86637
2004-08-26 15:19:23 -07:00
Tobias Schlüter
a1bab9ea96 check.c (gfc_check_atan2): New function.
* check.c (gfc_check_atan2): New function.
* intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
* intrinsic.h (gfc_check_atan2): Add prototype.

From-SVN: r86628
2004-08-26 19:11:27 +02:00
Richard Henderson
e7a2d5fb77 arith.c (gfc_validate_kind): Add may_fail argument; abort if false and we don't validate the kind.
* arith.c (gfc_validate_kind): Add may_fail argument; abort if
        false and we don't validate the kind.
        (gfc_check_integer_range, gfc_check_real_range): Update to match.
        * check.c (kind_check): Likewise.
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
        (match_char_spec, match_logical_spec): Likewise.
        * gfortran.h (gfc_validate_kind): Likewise.
        * options.c (gfc_handle_option): Likewise.
        * primary.c (match_integer_constant, match_real_constant,
        match_string_constant, match_logical_constant,
        match_const_complex_part): Likewise.
        * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
        gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
        gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
        gfc_simplify_maxexponent, gfc_simplify_minexponent,
        gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
        gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
        gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
        gfc_simplify_tiny): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
        prepare_arg_info): Likewise.

From-SVN: r86608
2004-08-25 23:07:52 -07:00
Tobias Schlüter
6d1c50cce4 expr.c (gfc_check_assign): Add comment.
fortran/
* expr.c (gfc_check_assign): Add comment. Add new warning.
* trans-expr.c (gfc_conv_function_call): Correctly dereference
 result of pointer valued function when not in pointer assignment.

testsuite/
* gfortran.dg/assignment_1.f90: New test.

From-SVN: r86585
2004-08-26 00:07:32 +02:00
Paul Brook
75101febd8 config-lang.in: Remove dead commented line.
* config-lang.in: Remove dead commented line.
	* module.c: Replace g95 with gfortran in comment.

From-SVN: r86582
2004-08-25 21:18:35 +00:00
Paul Brook
9ca2b0db57 re PR fortran/17190 (MPFR semantics for mpfr_get_z_exp changed)
PR fortran/17190
	* arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.

From-SVN: r86581
2004-08-25 21:04:49 +00:00
Paul Brook
40f201864f re PR fortran/17144 (Not Implemented: Character string array constructors / Assignment to char array)
PR fortran/17144
	* trans-array.c (gfc_trans_allocate_temp_array): Remove
	string_length argument.
	(gfc_trans_array_ctor_element): New function.
	(gfc_trans_array_constructor_subarray): Use it.
	(gfc_trans_array_constructor_value): Ditto.  Handle constant
	character arrays.
	(get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
	(gfc_trans_array_constructor): Use them.
	(gfc_add_loop_ss_code): Update to new gfc_ss layout.
	(gfc_conv_ss_descriptor): Remember section string length.
	(gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
	(gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
	(gfc_conv_expr_descriptor): Ditto.
	(gfc_conv_loop_setup): Ditto.  Spelling fixes.
	* trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
	* trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
	* trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
	(gfc_conv_variable): Set string_length from section.
	(gfc_conv_function_call): Remove extra argument.
	(gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
	* trans-types.c (gfc_get_character_type_len): New function.
	(gfc_get_character_type): Use it.
	(gfc_get_dtype): Return zero for internal types.
	* trans-types.h (gfc_get_character_type_len): Add prototype.
	* trans.h (struct gfc_ss): Move string_length out of union.
testsuite/
	* gfortran.dg/string_ctor_1.f90: New test.

From-SVN: r86558
2004-08-25 16:50:13 +00:00
Tobias Schlüter
923ab88cb2 trans.h (build2_v, build3_v): New macros.
* trans.h (build2_v, build3_v): New macros.
(build_v): Remove.
* f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
build.
* trans-array.c (gfc_conv_descriptor_data,
gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
gfc_trans_allocate_temp_array,
gfc_trans_array_constructor_subarray,
gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
gfc_trans_array_bound_check, gfc_conv_array_index_offset,
gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
gfc_conv_array_ref, gfc_trans_preloop_setup,
gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
gfc_conv_loop_setup, gfc_array_init_size,
gfc_conv_array_initializer, gfc_trans_array_bounds,
gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
gfc_conv_expr_descriptor, gfc_conv_array_parameter,
gfc_trans_deferred_array): Use buildN and buildN_v macros instead
of build and build_v as appropriate.
* trans-common.c (create_common): Same.
* trans-decl.c (gfc_trans_auto_character_variable,
gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
* trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
gfc_conv_expr_op, gfc_conv_function_call,
gfc_trans_structure_assign): Same.
* trans-intrinsic.c (build_fixbound_expr, build_round_expr,
gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
gfc_conv_intrinsic_iargc): Same.
* trans-io.c (set_parameter_value, set_parameter_ref, set_string,
set_flag, add_case, io_result, transfer_namelist_element,
transfer_expr): Same.
* trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
gfc_trans_integer_select, gfc_trans_logical_select,
gfc_trans_character_select, gfc_trans_forall_loop,
gfc_trans_nested_forall_loop, gfc_do_allocate,
generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
compute_inner_temp_size, compute_overall_iter_number,
allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
gfc_trans_forall_1, gfc_evaluate_where_mask,
gfc_trans_where_assign, gfc_trans_allocate): Same.
* trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
* trans.c (gfc_add_modify_expr, gfc_finish_block,
gfc_build_array_ref, gfc_build_function_call,
gfc_trans_runtime_check): Same.

From-SVN: r86554
2004-08-25 17:50:36 +02:00
Tobias Schlüter
0cc4be6760 trans-const.c (gfc_conv_mpz_to_tree): Change call to build_int_cst to build_int_cst_wide in accordance to Nathan's...
* trans-const.c (gfc_conv_mpz_to_tree): Change call to
build_int_cst to build_int_cst_wide in accordance to Nathan's
previous patch.

From-SVN: r86549
2004-08-25 16:37:10 +02:00
Nathan Sidwell
7d60be94d6 tree.h (build_int_cst): New, sign extended constant.
* tree.h  (build_int_cst): New, sign extended constant.
	(build_int_cstu): New, zero extended constant.
	(build_int_cst_wide): Renamed from build_int_cst.
	* tree.c (build_int_cst, build_int_cstu): New.
	(build_int_cst_wide): Renamed from build_int_cst.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Adjust build_int_cst calls.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_classify_type,
	fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
	fold_builtin_toascii, fold_builtin_isdigit,
	simplify_builtin_strstr, simplify_builtin_strpbrk,
	fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
	* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
	DEF_ATTR_INT): Likewise.
	* c-decl.c (complete_array_type, check_bitfield_type_and_width):
	Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	convert.c (convert_to_pointer): Likewise.
	coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* except.c (init_eh, assign_filter_values): Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const, round_up,
	round_down): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_case, estimate_case_costs):
	Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv,
	canonicalize_loop_induction_variables): Likewise.
	* tree-vectorizer.c (vect_create_index_for_array_ref,
	vect_transform_loop_bound, vect_compute_data_ref_alignment):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
	alpha_gimplify_va_arg_1): Likewise.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Likewise.

2004-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* cfglayout.c (duplicate_insn_chain): Remove references to
	NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
	* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
	* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
	* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
	* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
	check_dbra_loop, loop_dump_aux): Remove references to removed notes
	and fields.
	* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
	* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
	references to removed notes and fields.
	(subtract_reg_term, ujump_to_loop_cont): Remove.

From-SVN: r86544
2004-08-25 09:52:54 +00:00
Tobias Schlüter
45ede75e36 trans-decl.c, [...]: Add and remove blank lines as required.
* trans-decl.c, trans-types.c: Add and remove blank lines as
required.

From-SVN: r86505
2004-08-24 20:40:32 +02:00
Richard Henderson
0c8eb9985d * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
From-SVN: r86504
2004-08-24 11:23:11 -07:00
Tobias Schlüter
de37af8c4e resolve.c (merge_argument_lists): Revert unintentionally committed change.
* resolve.c (merge_argument_lists): Revert unintentionally
committed change.

From-SVN: r86498
2004-08-24 18:58:33 +02:00
Tobias Schlüter
7be7d41bde * resolve.c (resolve_entries): Fix a bunch of comment typos.
From-SVN: r86497
2004-08-24 18:54:52 +02:00
Tobias Schlüter
ae51017be0 trans-decl.c (build_function_decl): Fix spelling in comment.
* trans-decl.c (build_function_decl): Fix spelling in comment.
(build_entry_thunks): Remove code with no function.
(gfc_build_intrinsic_function_decls): Remove empty line.

From-SVN: r86494
2004-08-24 18:43:26 +02:00
Nathan Sidwell
8c1d6d62a6 c-decl.c (c_init_decl_processing): Adjust build_common_tree_nodes call.
* c-decl.c (c_init_decl_processing): Adjust
	build_common_tree_nodes call.
	* expmed.c (const_mult_add_overflow_p): Use
	build_distinct_type_copy.
	* stor-layout.c (early_type_list): Remove.
	(layout_type): Don't append to early_type_list.
	(initialize_sizetypes): Add signed_p argument.
	(set_sizetype): Overwrite the stub type nodes directly.
	* tree.c (copy_node_stat): Clear a type's value cache here ...
	(build_distinct_type): ... not here.
	(build_common_tree_nodes): Add signed_sizetype argument. Adjust.
	* tree.h (initialize_sizetypes): Add signed_p argument.
	(build_common_tree_nodes): Likewise.

	* ada/utils.c (gnat_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* cp/decl.c (cxx_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* fortran/f95-lang.c (gfc_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* java/decl.c (java_init_decl_processing): Adjust
	initialize_sizetypes call.

	* objc/objc-act.c (get_static_reference): Use
	build_variant_type_copy.
	(get_protocol_reference): Likewise.
	* objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.

	* treelang/treetree.c (treelang_init_decl_processing): Adjust
	build_common_tree_nodes call.

From-SVN: r86493
2004-08-24 16:39:43 +00:00
Tobias Schlüter
436529eae3 * trans-types.c: Spelling and formatting fixes.
From-SVN: r86490
2004-08-24 18:25:16 +02:00
Richard Henderson
5f0ae953a9 trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead of going through an intermediate string.
* trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
        of going through an intermediate string.  Fix 32/64 int/long bug.

From-SVN: r86464
2004-08-23 21:32:10 -07:00
Eric Christopher
f676971a92 defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
2004-08-23  Eric Christopher  <echristo@redhat.com>

	* defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
	* system.h (VECTOR_MODE_SUPPORTED_P): Poison.
	* target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
	* target.h: Ditto.
	* hooks.h: Include machmode.h.
	(hook_bool_mode_false): Declare.
	* hooks.c (hook_bool_mode_false): Define.
	* expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
	* stor-layout.c (layout_type): Ditto.
	* config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
	Define to target macro.
	* config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
	* config/arm/arm.c: Ditto. Use.
	* config/arm/arm.h: Ditto.
	* config/arm/arm-protos.h: Ditto.
	* config/i386/i386.c: Ditto.
	* config/i386/i386.h: Ditto.
	* config/rs6000/rs6000.c: Ditto.
	* config/rs6000/rs6000.h: Ditto.
	* config/sh/sh.c: Ditto.
	* config/sh/sh.h: Ditto.
	* config/sh/sh-protos.h: Ditto.
	* config/sh/sh.md: Use.
	* doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
	to TARGET_VECTOR_MODE_SUPPORTED_P.

2004-08-23  Eric Christopher  <echristo@redhat.com>

	* trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
	usage. Use build_vector_type_for_mode for vector types.

From-SVN: r86453
2004-08-24 00:30:52 +00:00
Richard Henderson
b85024359a re PR fortran/13465 (Data statement for large arrays compiles verrrry slllowwwly and shows quadratic behaviour.)
PR 13465
        * data.c (find_con_by_offset): Search ordered list; handle
        elements with repeat counts.
        (gfc_assign_data_value_range): New.
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
        (gfc_assign_data_value_range): Declare.
        * match.c (top_val_list): Extract repeat count into a temporary.
        * resolve.c (values): Make left unsigned.
        (next_data_value): Don't decrement left.
        (check_data_variable): Use gfc_assign_data_value_range.

From-SVN: r86443
2004-08-23 14:53:14 -07:00
Tobias Schlüter
f8d0aee5c1 * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
From-SVN: r86385
2004-08-22 22:01:22 +02:00
Tobias Schlüter
617097a337 check.c (gfc_check_reduction): Rename to ...
* check.c (gfc_check_reduction): Rename to ...
(check_reduction): ... this. Make static. Don't check type of
first argument.
(gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
* intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
SUM to use new check functions.
(check_specific): Change logic to call new functions.
* intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
Add prototypes.
(gfc_check_reduction): Remove prototype.

From-SVN: r86377
2004-08-22 14:09:26 +02:00
Paul Brook
346d5977dd Trivial spelling typo fix.
From-SVN: r86319
2004-08-20 13:53:21 +00:00
Paul Brook
841b0c1f95 re PR fortran/17077 (adjustable size arrays crash)
2004-08-20  Paul Brook  <paul@codesourcery.com>
	Canqun Yang  <canqun@nudt.edu.cn>

	PR fortran/17077
	* trans-array.c (gfc_conv_array_parameter): Pass correct pointer
	for automatic arrays.
	* trans-types.c (gfc_get_nodesc_array_type): Add comment.
testsuite/
	* gfortran.dg/auto_array_1.f90: New test.

From-SVN: r86315
2004-08-20 13:31:13 +00:00
Tobias Schlüter
c874ae73dd re PR fortran/17074 (Unclassifiable statement in IF-clause / Simple IF followed by WHERE)
fortran/
 PR fortran/17074
* match.c (match_simple_forall, match_simple_where): Forward-declare.
(gfc_match_if): Order statement list alphabetically, add WHERE and
ew functions.
(gfc_match_forall): Use match_forall_header.

testsuite/
PR fortran/17074
* gfortran.dg/simpleif_1.f90: New test.

From-SVN: r86290
2004-08-20 00:35:47 +02:00
Erik Schnetter
292e0d3a8a Commit previously forgotten ChangeLog diffs for this patch:
PR fortran/16946
* check.c (gfc_check_reduction): New function.
(gfc_check_minval_maxval): Removed.
(gfc_check_product): Removed.
(gfc_check_sum): Removed.
* intrinsic.h: Add/remove declarations for these.
* gfortran.h: Add field f3red to union gfc_check_f.
* intrinsic.c (add_sym_3red): New function.
(add_functions): Register maxval, minval, product, and sum intrinsics
through add_sym_3red.
(check_specific): Handle f3red union field.
* iresolve.c: Whitespace change.

From-SVN: r86287
2004-08-20 00:30:01 +02:00
Paul Brook
bbef13dc2b re PR fortran/17091 (gfortran MAIN__ symbol not marked TREE_PUBLIC)
PR fortran/17091
	* gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
	* symbol.c (gfc_clear_attr): Use memset.

From-SVN: r86279
2004-08-19 21:37:58 +00:00
Paul Brook
ec53454bff re PR fortran/14976 (.space is wrong)
PR fortran/14976
	PR fortran/16228
	* data.c (assign_substring_data_value): Remove.
	(create_character_intializer): New function.
	(gfc_assign_data_value): Track the typespec for the current
	subobject.  Use create_character_intializer.
testsuite/
	* gfortran.dg/data_char_1.f90: New test.

From-SVN: r86256
2004-08-19 16:45:21 +00:00
Erik Schnetter
7551270e1b re PR fortran/16946 (sum (array, mask) is not accepted)
fortran/
PR fortran/16946
* check.c (gfc_check_reduction): New function.
(gfc_check_minval_maxval): Removed.
(gfc_check_product): Removed.
(gfc_check_sum): Removed.
* intrinsic.h: Add/remove declarations for these.
* gfortran.h: Add field f3red to union gfc_check_f.
* intrinsic.c (add_sym_3red): New function.
(add_functions): Register maxval, minval, product, and sum intrinsics
through add_sym_3red.
(check_specific): Handle f3red union field.
* iresolve.c: Whitespace change.

testsuite/
PR fortran/16946
* gfortran.dg/reduction.f90: New testcase.

From-SVN: r86255
2004-08-19 17:31:37 +02:00
Paul Brook
1619aa6f3e * trans-types.c (gfc_sym_type): Use pointer types for optional args.
From-SVN: r86182
2004-08-18 13:08:08 +00:00
Victor Leikehman
3bc268e64b re PR fortran/13278 (derived type namelist I/O support missing, causes ICE)
2004-08-18  Victor Leikehman  <lei@il.ibm.com>

	PR fortran/13278
	* trans-io.c (transfer_namelist_element): New. Recursively handle
	derived-type variables.  Pass string lengths.
	(build_dt): Code moved to build_namelist, with some
	changes and additions.
	(gfc_build_io_library_fndecls): Declare the fifth
	argument in st_set_nml_var_char -- string_length.
libgfortran/
	* io/transfer.c (st_set_nml_var)
	* io/write.c (namelist_write): Allow var_name and var_name_len to be
	null. For strings, use string_length field instead of len.
	* io/io.h (struct namelist_type): New field string_length.
	(st_set_nml_var_char): New argument string_length.

From-SVN: r86166
2004-08-18 01:20:06 +00:00
Paul Brook
3d79abbdf8 re PR fortran/13082 (Function entries and entries with alternate returns not implemented)
2004-08-17  Paul Brook  <paul@codesourcery.com>
	Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/13082
	* decl.c (get_proc_name): Update mystery comment.
	(gfc_match_entry): Check for errors earlier.  Add entry point to list.
	* dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
	* gfortran.h (symbol_attribute): Add entry_master.  Document entry.
	(struct gfc_entry_list): Define.
	(gfc_get_entry_list): Define.
	(struct gfc_namespace): Add refs and entries.
	(enum gfc_exec_op): Add EXEC_ENTRY.
	(struct gfc_code): Add ext.entry.
	* module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
	(mio_symbol_attribute): Don't save/reture addr->entry.
	(mio_namespace_ref): Refcount namespaces.
	* parse.c (accept_statement): Handle ST_ENTRY.
	(gfc_fixup_sibling_symbols): Mark symbol as referenced.
	(parse_contained): Fixup sibling references to entry points
	after parsing the procedure body.
	* resolve.c (resolve_contained_fntype): New function.
	(merge_argument_lists, resolve_entries): New functions.
	(resolve_contained_functions): Use them.
	(resolve_code): Handle EXEC_ENTRY.
	(gfc_resolve): Call resolve_entries.
	* st.c (gfc_free_statement): Handle EXEC_ENTRY.
	* symbol.c (gfc_get_namespace): Refcount namespaces.
	(gfc_free_namespace): Ditto.
	* trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
	optional when multiple entry points are present.
	* trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
	(gfc_get_extern_function_decl): Add assertion.  Fix coment.
	(create_function_arglist, trans_function_start, build_entry_thunks):
	New functions.
	(gfc_build_function_decl): Rename ...
	(build_function_decl): ... to this.
	(gfc_create_function_decl): New function.
	(gfc_generate_contained_functions): Use it.
	(gfc_trans_entry_master_switch): New function.
	(gfc_generate_function_code): Use new functions.
	* trans-stmt.c (gfc_trans_entry): New function.
	* trans-stmt.h (gfc_trans_entry): Add prototype.
	* trans-types.c (gfc_get_function_type): Add entry point argument.
	* trans.c (gfc_trans_code): Handle EXEC_ENTRY.
	(gfc_generate_module_code): Call gfc_create_function_decl.
	* trans.h (gfc_build_function_decl): Remove.
	(gfc_create_function_decl): Add prototype.
testsuite/
	* gfortran.dg/entry_1.f90: New test.

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

From-SVN: r86128
2004-08-17 15:34:12 +00:00
Andrew Pinski
ead6d15f70 re PR fortran/17030 (gfortran does not optimize ABS of complex that well)
2004-08-15  Andrew Pinski  <apinski@apple.com>

        PR fortran/17030
        * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
        for cabs{,f} and copysign{,f}.
        * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.
        (gfc_build_intrinsic_function_decls): Remove the
        initializing of cabs{,f} and copysign{,f} functions.
        * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
        instead of the functions definitions.
        (gfc_conv_intrinsic_sign): Likewise.
        * trans.h (gfor_fndecl_math_cabsf): Delete.
        (gfor_fndecl_math_cabs): Delete.
        (gfor_fndecl_math_sign4): Delete.
        (gfor_fndecl_math_sign8): Delete.

From-SVN: r86027
2004-08-15 12:26:32 -07:00
Nathan Sidwell
4a90aeeb51 tree.h (build_int_cst): New.
.:	* tree.h (build_int_cst): New.
	(build_int_2): Remove.
	* tree.c (build_int_2): Remove.
	(build_int_cst): New.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Use build_int_cst.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
	fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
	fold_builtin_isdigit, simplify_builtin_strstr,
	simplify_builtin_strpbrk, fold_builtin_fputs,
	simplify_builtin_sprintf): Use build_int_cst.
	* c-common.c (start_fname_decls, fix_string_type,
	c_common_nodes_and_builtins, c_init_attributes,
	shorten_compare): Likewise.
	* c-decl.c (complete_array_type,
	check_bitfield_type_and_width): Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	* convert.c (convert_to_pointer): Likewise.
	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_ctr_info_value, build_gcov_info):
	Likewise.
	* except.c (init_eh, assign_filter_values, assign_filter_values):
	Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	* fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_end_case_type,
	estimate_case_costs): Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline,
	alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/i860/i860.c (i860_va_start): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Use build_int_cst.
ada:
	* cuintp.c (UI_To_gnu): Use build_int_cst..
	* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
	* utils.c (init_gigi_decls): Likewise.
	* utils2.c (build_call_raise): Likewise.
cp:
	* call.c (convert_class_to_reference,
	build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Use
	build_int_cst.
	* class.c (build_vtbl_initializer): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* except.c (build_throw): Likewise.
	* lex.c (cxx_init): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* search.c (get_dynamic_cast_base_type): Likewise.
	* tree.c (build_shared_int_cst): Likewise.
fortran:
	* trans-array.c (gfc_trans_array_constructor_value): Use
	build_int_cst.
	* trans-const.c (gfc_build_string_const,
	gfc_init_constants, gfc_conv_mpz_to_tree,
	gfc_conv_constant_to_tree): Likewise.
	* trans-decl.c (gfc_get_symbol_decl): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* trans-io.c (add_case, set_error_locus, build_dt,
	transfer_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* trans.c (gfc_trans_runtime_check): Likewise.
java:
	* boehm.c (get_boehm_type_descriptor): Use build_int_cst.
	* class.c (build_utf8_ref, build_static_field_ref,
	make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table): Likewise.
	* constants.c (get_tag_node,  build_ref_from_constant_pool,
	build_constants_constructor): Likewise.
	* decl.c (java_init_decl_processing): Likewise.
	* expr.c (build_java_array_length_access, build_newarray,
	expand_java_multianewarray, expand_java_pushc, expand_iinc,
	build_java_binop, build_field_ref, expand_java_add_case,
	expand_java_call, build_known_method_ref, build_invokevirtual,
	build_invokeinterface, build_jni_stub): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Likewise.
	* jcf-parse.c (get_constant): Likewise.
	* lex.c (do_java_lex): Likewise.
	* parse.y (patch_binop, patch_unaryop, patch_cast,
	build_null_of_type, patch_newarray): Likewise.
	* resource.c (compile_resource_data): Likewise.
	* typeck.c (build_prim_array_type): Likewise.

From-SVN: r86022
2004-08-15 15:45:33 +00:00
Paul Brook
1d75424062 * trans-decl.c (gfc_build_function_decl): Remove dead code.
From-SVN: r85996
2004-08-14 15:35:51 +00:00
Paul Brook
3ef059b4a9 * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
From-SVN: r85994
2004-08-14 13:10:02 +00:00
Tobias Schlüter
4f61394674 gfortran.h: Add comments.
2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h: Add comments.
	* parse.c (parse_contained): Fix comment typo.
	* resolve.c (was_declared): Ditto.
	* symbol.c: Ditto.

From-SVN: r85950
2004-08-13 17:24:09 +00:00
Giovanni Bajo
4ab2db93f7 Fix comment typo
From-SVN: r85830
2004-08-11 23:19:10 +00:00
Paul Brook
3ec0f30209 [multiple changes]
2004-08-11  Paul Brook  <paul@codeourcery.com>

	PR fortran/16917
	* intrinsic.c (add_functions): Add dfloat as an alias for dble.

2004-08-11  Steven G. Kargl  <kargls@comcast.net>

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

From-SVN: r85805
2004-08-11 16:05:14 +00:00
Richard Henderson
1a186ec558 builtins.def (BUILT_IN_STACK_ALLOC): Remove.
* builtins.def (BUILT_IN_STACK_ALLOC): Remove.
        * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
        * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
        (add_location_or_const_value_attribute): ... not here.  Use
        loc_descriptor_from_tree if possible.
        (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
        Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
        values specially.
        (loc_descriptor_from_tree): New.  Update callers.
        * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
        * gimplify.c (gimplify_decl_expr): Lower variable sized types to
        pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
        (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
        and BUILT_IN_STACK_RESTORE.
        (gimplify_expr): Lower DECL_VALUE_EXPR decls.
        * stmt.c (expand_stack_alloc): Remove.
        * tree-mudflap.c (mx_register_decls): Don't look for
        BUILT_IN_STACK_ALLOC.
        * tree-nested.c (convert_local_reference): Likewise.
        * tree.h (DECL_VALUE_EXPR): New.
ada/
        * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
        add __builtin_alloca.
fortran/
        * f95-lang.c (gfc_init_builtin_functions): Remove
         __builtin_stack_alloc, add __builtin_alloca.
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.

From-SVN: r85794
2004-08-10 21:16:07 -07:00
Paul Brook
2bf26ede97 trans-io.c (transfer_expr): Handle pointters.
* trans-io.c (transfer_expr): Handle pointters.
testsuite/
	* gfortran.dg/der_io_1.f90: New test.

From-SVN: r85738
2004-08-10 00:57:22 +00:00
Paul Brook
e9cfef6413 re PR fortran/16919 (ICE with derived type and array constructor)
PR fortran/16919
	* trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
	(gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
	(gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
	Handle GFC_SS_COMPONENT.
	(gfc_conv_ss_startstride): Ditto.  Set ss->shape.
	(gfc_conv_loop_setup): Tweak commends. Remove dead code.
	Use ss->shape.
	(gfc_conv_array_initializer): Call specific initializer routines.
	* trans-expr.c (gfc_trans_structure_assign): New function.
	(gfc_trans_subarray_assign): New function.
	(gfc_trans_subcomponent_assign): New fucntion
	(gfc_conv_structure): Use them.
	* trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
	(gfc_ss): Add shape.
testsuite/
	* gfortran.dg/der_array_1.f90: New test.

From-SVN: r85730
2004-08-09 23:32:59 +00:00
Victor Leikehman
94538bd12a simplify.c (gfc_simplify_shape): Bugfix.
2004-08-08  Victor Leikehman  <lei@il.ibm.com>

	* simplify.c (gfc_simplify_shape): Bugfix.
	* expr.c (gfc_copy_shape_excluding): New function.
	* gfortran.h (gfc_get_shape): Bugfix.
	(gfc_copy_shape_excluding): Added declaration.
	* iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
	gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
	gfc_resolve_ubound, gfc_resolve_transpose): Added compile
	time resolution of shape.

From-SVN: r85685
2004-08-08 12:28:25 +00:00
Janne Blomqvist
aa6fc63508 intrinsic.c (add_subroutines): Add getenv and get_environment_variable.
2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* intrinsic.c (add_subroutines): Add getenv and
	get_environment_variable. (add_sym_5s): New function.
	* intrinsic.h (gfc_resolve_get_environment_variable): Add
	prototype.
	* iresolve.c (gfc_resolve_get_environment_variable): New
	function.
libgfortran/
	* intrinsics/env.c: New file.
	* Makefile.am: Add env.c to build.
	* Makefile.in: Regenerate.
testsuite/
	* gfortran.dg/getenv_1.f90: New test.

From-SVN: r85656
2004-08-06 21:47:03 +00:00
Feng Wang
c7d78bbe0e f95-lang.c (gfc_init_builtin_functions): Fix the number of __builtin_pow[f] arguments.
* f95-lang.c (gfc_init_builtin_functions): Fix the number of
	__builtin_pow[f] arguments.

From-SVN: r85653
2004-08-06 20:45:14 +00:00
Steven G. Kargl
f8e566e525 arith.c: Add #define for model numbers.
2004-08-06  Steven G. Kargl  <kargls@comcast.net>

	* arith.c: Add #define for model numbers.  Remove global GMP variables.
	(natural_logarithm,common_logarithm,exponential,sine,
	cosine,arctangent,hypercos,hypersine ): Remove.
	(gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
	(arctangent2,gfc_arith_init_1,gfc_arith_done_1
	gfc_check_real_range, gfc_constant_result, gfc_range_check,
	gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
	gfc_arith_divide,complex_reciprocal,complex_pow_ui,
	gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
	gfc_convert_complex,gfc_int2real,gfc_int2complex,
	gfc_real2int,gfc_real2real,gfc_real2complex,
	gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
	to MPFR, use new functions.
	* arith.h: Remove extern global variables.
	(natural_logarithm,common_logarithm,exponential, sine, cosine,
	arctangent,hypercos,hypersine): Remove prototypes.
	(arctangent2): Update prototype from GMP to MPFR.
	(gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
	* dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
	* expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
	* gfortran.h (GFC_REAL_BITS): Remove.
	(arith): Add ARITH_NAN.
	Include mpfr.h.  Define GFC_RND_MODE.
	Rename GCC_GFORTRAN_H GFC_GFC_H.
	(gfc_expr): Convert GMP to MPFR.
	* module.c: Add arith.h, correct type in comment.
	(mio_gmp_real): Convert GMP to MPFR.
	(mio_expr):  Use gfc_set_model_kind().
	* primary.c:  Update copyright date with 2004.
	(match_real_constant,match_const_complex_part): Convert GMP to MPFR.
	* simplify.c: Remove global GMP variables
	(gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
	gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
	gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
	gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
	gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
	gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
	gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
	gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
	gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
	gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
	gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
	gfc_simplify_rrspacing,gfc_simplify_scale,
	gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
	gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
	gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
	gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
	Use new functions.
	* trans-const.c (gfc_conv_mpfr_to_tree): Rename from
	gfc_conv_mpf_to_tree.  Convert it to use MPFR
	(gfc_conv_constant_to_tree): Use it.
	* trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
	* trans-intrinsic.c: Add arith.h, remove gmp.h
	(gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.

From-SVN: r85652
2004-08-06 20:36:05 +00:00
Paul Brook
fc90a8f2ee trans-array.c (gfc_trans_allocate_array_storage, [...]): For functions...
* trans-array.c (gfc_trans_allocate_array_storage,
	gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
	gfc_conv_loop_setup):
	For functions, if the shape of the result is not known
	in compile-time, generate an empty array descriptor for
	the result and let the callee to allocate the memory.
	(gfc_trans_dummy_array_bias): Do nothing for pointers.
	(gfc_conv_expr_descriptor): Use function return values directly.
	* trans-expr.c (gfc_conv_function_call): Always add byref call
	insn to pre chain.
	(gfc_trans_pointer_assignment): Add comments.
	(gfc_trans_arrayfunc_assign): Don't chain on expression.
testsuite/
	* gfortran.dg/ret_array_1.f90: New test.
	* gfortran.dg/ret_pointer_1.f90: New test.

From-SVN: r85642
2004-08-06 15:01:10 +00:00
Geoffrey Keating
0e6df31e19 re PR c/14516 (-fleading-underscore does not work correctly for file static variables)
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	PR 14516
	* c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
	* c-common.h (make_rtl_for_local_static): Delete.
	* c-decl.c (shadow_tag_warned): Clean up comment.
	(finish_decl): Clean up spacing.  Use set_user_assembler_name when
	appropriate.  Don't pass asmspec to rest_of_decl_compilation.
	* c-semantics.c (make_rtl_for_local_static): Delete.
	* expr.c (init_block_move_fn): Use set_user_assembler_name.
	(init_block_clear_fn): Likewise.
	* passes.c (rest_of_decl_compilation): Remove asmspec parameter,
	expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
	* toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
	* tree.h (make_decl_rtl): Remove second parameter.
	(set_user_assembler_name): New.
	* varasm.c (set_user_assembler_name): New.
	(make_decl_rtl): Remove second parameter.  Update callers in many
	files.

Index: cp/ChangeLog
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
	than passing it as a parameter to rest_of_decl_compilation.
	* decl2.c (grokfield): Use set_user_assembler_name.

From-SVN: r85593
2004-08-05 05:52:01 +00:00
Roger Sayle
fc2d8429a9 options.c (gfc_init_options): Don't warn about the use GNU extensions by default.
* options.c (gfc_init_options): Don't warn about the use GNU
	extensions by default.
	(gfc_post_options): Warn about GNU extensions with -pedantic.
	(gfc_handle_option): Don't warn about GNU extensions with -std=gnu.

From-SVN: r85413
2004-08-01 21:37:21 +00:00
Richard Henderson
0534fa5652 gimplify.c (gimplify_expr): Don't replace with DECL_INITIAL if fb_lvalue.
* gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
        with DECL_INITIAL if fb_lvalue.
        * tree-gimple.c (is_gimple_id): Add CONST_DECL.
        * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
        with <Cxxx>.
        * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
fortran/
        * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
        for TREE_CONSTANTs.
testsuite/
        * gfortran.fortran-torture/execute/intrinsic_rrspacing.f90: Fix
        write to constant argument.
        * gfortran.fortran-torture/execute/intrinsic_scale.f90: Likewise.

From-SVN: r85365
2004-07-30 15:55:30 -07:00
Richard Henderson
b785f485ec c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on the RESULT_DECL.
* c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
        on the RESULT_DECL.
        * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
        * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
        DECL_IGNORED_P to new decl.
ada/
        * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
cp/
        * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
        * semantics.c (finalize_nrv): Copy them too.
fortran/
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        and DECL_IGNORED_P on RESULT_DECL.
        (gfc_generate_constructors): Likewise.
java/
        * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.

From-SVN: r85145
2004-07-25 01:10:28 -07:00
Tobias Schlüter
f56c5d5d5b re PR fortran/16465 (parser chokes with ffixed-line-length-7)
PR fortran/16465
* lang.opt (ffixed-line-length-none, ffixed-line-length-): New
options.
(ffixed-line-length-80, ffixed-line-length-132): Remove.
* options.c (gfc_handle_options): Deal with changed options.
* scanner.c (load_line): Change second arg to 'char **',
allocate if pointing to NULL. Keep track of buffer's length.
Adapt buffer size to overlong lines. Pad lines to full length
in fixed form.
(load_file): Adapt to new interface of load_line.

From-SVN: r84891
2004-07-18 15:00:34 +02:00
Joseph Myers
6e34d3a39f langhooks.h (builtin_function): New langhook.
* langhooks.h (builtin_function): New langhook.
	* langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
	(LANG_HOOKS_INITIALIZER): Update.
	* tree.h (builtin_function): Remove.
	* doc/tm.texi: Update.
	* c-tree.h (builtin_function): Declare.
	* c-common.c, config/alpha/alpha.c, config/arm/arm.c,
	config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
	config/ia64/ia64.c, config/iq2000/iq2000.c,
	config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
	config/stormy16/stormy16.c: All callers of builtin_function
	changed.

ada:
	* gigi.h (builtin_function): Declare.

cp:
	* cp-tree.h (builtin_function): Declare.

fortran:
	* trans.h (builtin_function): Declare.

java:
	* java-tree.h (builtin_function): Declare.

From-SVN: r84878
2004-07-17 20:35:04 +01:00
Tobias Schlüter
b38b6477f8 re PR fortran/16404 (should reject invalid code with -pedantic -std=f95 ? (x8))
fortran/
* parse.c (gfc_check_do_variable): Fix error locus.

testsuite/
PR fortran/16404
* gfortran.dg/do_iterator.f90: New test.

From-SVN: r84795
2004-07-16 02:57:43 +02:00
Tobias Schlüter
c9583ed23d re PR fortran/16404 (should reject invalid code with -pedantic -std=f95 ? (x8))
PR fortran/16404
(parts ported from g95)
* parse.h (gfc_state_data): New field do_variable.
(gfc_check_do_variable): Add prototype.
* parse.c (push_state): Initialize field 'do_variable'.
(gfc_check_do_variable): New function.
(parse_do_block): Remember do iterator variable.
(parse_file): Initialize field 'do_variable'.
* match.c (gfc_match_assignment, gfc_match_do,
gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
Add previously missing checks.
(gfc_match_return): Reformat error message.
* io.c (match_out_tag): New function.
(match_open_element, match_close_element,
match_file_element, match_dt_element): Call match_out_tag
instead of match_vtag where appropriate.
(match_io_iterator, match_io_element): Add missing check.
(match_io): Reformat error message.
(match_inquire_element): Call match_out_tag where appropriate.

From-SVN: r84793
2004-07-16 02:39:40 +02:00
Tobias Schlüter
0c0df4b3f0 re PR fortran/13792 (lbound/ubound generates internal compiler error)
fortran/
PR fortran/13792
* simplify.c (gfc_simplify_bound): Copy the bound expression.

testsuite/
PR fortran/13792
* gfortran.fortran-torture/execute/bounds.f90: Add check for
compile-time simplification.

From-SVN: r84773
2004-07-15 21:55:05 +02:00
Tobias Schlüter
c5a419530e re PR fortran/15140 (assertion failed: (TREE_CODE (sym->backend_decl) == PARM_DECL)
fortran/
PR fortran/15140
* trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.

testsuite/
PR fortran/15140
* gfortran.dg/pr15140.f90: New test.

From-SVN: r84770
2004-07-15 20:50:17 +02:00
Tobias Schlüter
d157d97822 re PR fortran/15129 (assumed size characters passed to subroutines incorrect)
fortran/
PR fortran/15129
* trans-decl.c (gfc_build_function_decl): Create a new chardecl
for every assumed length character dummy argument.

testsuite/
PR fortran/15129
* gfortran.dg/pr15129.f90: New test.

From-SVN: r84769
2004-07-15 20:43:50 +02:00
Tobias Schlüter
769d99d9cd re PR fortran/15324 (segfault / ICE with array of assumed length characters)
PR fortran/15324
* trans-array.c gfc_trans_g77_array,
gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
for assumed length characters.
(gfc_conv_expr_descriptor): Set se->string_length if dealing
with a character expression.
(gfc_cvonv_array_parameter): Pass string length when passing
character array according to g77 conventions.

Fix ChangeLog

From-SVN: r84755
2004-07-15 17:02:16 +02:00
Tobias Schlüter
20c9dc8aac re PR libfortran/15234 (libgfortran doesn't compile on Tru64 UNIX V4.0F)
PR fortran/15234
* trans-array.c gfc_trans_g77_array,
gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
for assumed length characters.
(gfc_conv_expr_descriptor): Set se->string_length if dealing
with a character expression.
(gfc_cvonv_array_parameter): Pass string length when passing
character array according to g77 conventions.

From-SVN: r84752
2004-07-15 16:53:28 +02:00
Paul Brook
597073ace8 expr.c (gfc_check_assign_symbol): Handle pointer assignments.
* expr.c (gfc_check_assign_symbol): Handle pointer assignments.
	* trans-array.c (gfc_trans_auto_array_allocation): Remove
	initialization code.
	* trans-common.c (create_common): Use gfc_conv_initializer.
	* trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
	* trans-expr.c (gfc_conv_initializer): New function.
	(gfc_conv_structure): Use it.
	* trans.h (gfc_conv_initializer): Add prototype.
testsuite/
	* gfortran.dg/pointer_init_1.f90: New test.

From-SVN: r84542
2004-07-12 01:23:39 +00:00
Paul Brook
682e69e1a3 re PR fortran/15986 (Forward referenced procedure not handled correctly)
PR fortran/15986
	* parse.c (gfc_fixup_sibling_symbols): Also look for untyped
	variables.
	(parse_contained): Mark contained symbols as referenced.
testsuite/
	* gfortran.dg/contained_1.f90: New test.

From-SVN: r84536
2004-07-11 23:00:08 +00:00
Tobias Schlüter
f23c56270e re PR fortran/15754 (Accepts assignment of the form P = NULL())
fortran/
PR fortran/15754
* expr.c (gfc_check_assign): Print ranks if incompatible. Issue
warning if assigning NULL().

testsuite/
PR fortran/17574
* gfortran.dg/pr15754.f90: New test.
the changes to expr.c were accidentally committed previously

From-SVN: r84521
2004-07-11 18:58:48 +02:00
Tobias Schlüter
5f0bbc1b07 Revert accidental commit
From-SVN: r84520
2004-07-11 18:55:00 +02:00
Tobias Schlüter
7dea5a9568 re PR fortran/16433 (wrong hexadecimal constant warning)
PR fortran/16433
* gfortran.dg/pr16433.f: New test.

From-SVN: r84519
2004-07-11 18:52:50 +02:00
Tobias Schlüter
88199e7c89 re PR fortran/16433 (wrong hexadecimal constant warning)
PR fortran/16433
* primary.c (match_boz_constant): Call gfc_notify_std only if
we actually have a non-standard boz-literal-constant.

From-SVN: r84514
2004-07-11 17:06:42 +02:00
Tobias Schlüter
e08b5a758a re PR fortran/16404 (should reject invalid code with -pedantic -std=f95 ? (x8))
PR fortran/16404
* match.c (gfc_match_program): A program name is obligatory.
(gfc_match_return): RETURN in main program is an extension.
(gfc_match_block_data): A space is required before a block data
name.

From-SVN: r84511
2004-07-11 16:16:32 +02:00
Tobias Schlüter
cdde7b65fa re PR fortran/16404 (should reject invalid code with -pedantic -std=f95 ? (x8))
PR fortran/16404
* io.c (match_io): Flag 'WRITE(...), ...' as extension.

From-SVN: r84510
2004-07-11 15:35:33 +02:00