summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/intrinsic.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.fxcoudert2008-04-301-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * intrinsic.h (gfc_check_selected_char_kind, gfc_simplify_selected_char_kind): New prototypes. * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND. * trans.h (gfor_fndecl_sc_kind): New function decl. * trans-decl.c (gfor_fndecl_sc_kind): Build new decl. * arith.c (gfc_compare_with_Cstring): New function. * arith.h (gfc_compare_with_Cstring): New prototype. * check.c (gfc_check_selected_char_kind): New function. * primary.c (match_string_constant, match_kind_param): Mark symbols used as literal constant kind param as referenced. * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function. (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind. * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic. * simplify.c (gfc_simplify_selected_char_kind): New function. * intrinsics/selected_char_kind.c: New file. * Makefile.am: Add intrinsics/selected_char_kind.c. * Makefile.in: Regenerate. * gfortran.dg/selected_char_kind_1.f90: New test. * gfortran.dg/selected_char_kind_2.f90: New test. * gfortran.dg/selected_char_kind_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134839 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/33197fxcoudert2008-03-061-10/+10
| | | | | | | | | | | | | * intrinsic.c (add_functions): Add simplification routines for ERF, DERF, ERFC and DERFC. * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU extensions into Fortran 2008 features. * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New prototypes. * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132970 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/33197fxcoudert2008-03-031-30/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/fortran/ * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH, ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N}, ERFC_SCALED, LOG_GAMMA and HYPOT. * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot, gfc_resolve_hypot): New prototypes. * mathbuiltins.def: Add HYPOT builtin. Make complex versions of ACOSH, ASINH and ATANH available. * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values. * lang.opt: Add -std=f2008 option. * libgfortran.h: Define GFC_STD_F2008. * lang-specs.h: Add .f08 and .F08 file suffixes. * iresolve.c (gfc_resolve_hypot): New function. * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008. * check.c (gfc_check_hypot): New function. * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin. * options.c (set_default_std_flags): Allow Fortran 2008 by default. (form_from_filename): Add .f08 suffix. (gfc_handle_option): Handle -std=f2008 option. * simplify.c (gfc_simplify_hypot): New function. * gfortran.texi: Document Fortran 2008 status and file extensions. * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics, as well as HYPOT and ERFC_SCALED. Update documentation of ERF, ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH. * invoke.texi: Document the new -std=f2008 option. libgomp/ * testsuite/libgomp.fortran/fortran.exp: Add .f08 and .F08 file suffixes. gcc/testsuite/ * gfortran.dg/gomp/gomp.exp: Add .f08 and .F08 file suffixes. * gfortran.dg/dg.exp: Likewise. * gfortran.dg/vect/vect.exp: Likewise. * gfortran.fortran-torture/execute/execute.exp: Likewise. * gfortran.fortran-torture/compile/compile.exp: Likewise. * gfortran.dg/gamma_1.f90: Also check log_gamma. * gfortran.dg/invalid_contains_1.f90: Remove warning about empty CONTAINS. * gfortran.dg/gamma_2.f90: Add a few error messages. * gfortran.dg/invalid_contains_2.f90: Remove warning about empty CONTAINS. * gfortran.dg/gamma_3.f90: Adjust error message. * gfortran.dg/gamma_4.f90: Test for log_gamma instead of lgamma. * gfortran.dg/bind_c_usage_9.f03: Adjust error messages. * gfortran.dg/bessel_1.f90: New test. * gfortran.dg/recursive_check_3.f90: Remove warnings. * gfortran.dg/besxy.f90: Also check for new F2008 intrinsics. * gfortran.dg/derived_function_interface_1.f90: Remove warning. * gfortran.dg/contains_empty_1.f03: New test. * gfortran.dg/erfc_scaled_1.f90: New test. * gfortran.dg/hypot_1.f90: New test. * gfortran.dg/contains_empty_2.f03: New test. libgfortran/ * intrinsics/erfc_scaled_inc.c: New file. * intrinsics/erfc_scaled.c: New file. * gfortran.map (GFORTRAN_1.0): Add _gfortran_erfc_scaled_r*. * Makefile.am: Add intrinsics/erfc_scaled.c. * config.h.in: Regenerate. * configure: Regenerate. * Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132846 138bc75d-0d04-0410-961f-82ee72b054a4
* * arith.c: Update copyright years.tobi2008-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * arith.h: Likewise. * array.c: Likewise. * bbt.c: Likewise. * check.c: Likewise. * data.c: Likewise. * data.h: Likewise. * decl.c: Likewise. * dependency.c: Likewise. * dependency.h: Likewise. * dump-parse-tree.c: Likewise. * error.c: Likewise. * expr.c: Likewise. * gfc-internals.texi: Likewise. * gfortran.h: Likewise. * gfortran.texi: Likewise. * gfortranspec.c: Likewise. * interface.c: Likewise. * intrinsic.c: Likewise. * intrinsic.h: Likewise. * intrinsic.texi: Likewise. * invoke.texi: Likewise. * io.c: Likewise. * iresolve.c: Likewise. * iso-c-binding.def: Likewise. * iso-fortran-env.def: Likewise. * lang-specs.h: Likewise. * lang.opt: Likewise. * libgfortran.h: Likewise. * match.c: Likewise. * match.h: Likewise. * matchexp.c: Likewise. * misc.c: Likewise. * module.c: Likewise. * openmp.c: Likewise. * options.c: Likewise. * parse.c: Likewise. * parse.h: Likewise. * primary.c: Likewise. * resolve.c: Likewise. * scanner.c: Likewise. * simplify.c: Likewise. * st.c: Likewise. * symbol.c: Likewise. * target-memory.c: Likewise. * target-memory.h: Likewise. * trans-array.h: Likewise. * trans-const.h: Likewise. * trans-stmt.h: Likewise. * trans-types.c: Likewise. * trans-types.h: Likewise. * types.def: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132600 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-12-251-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-12-25 Daniel Franke <franke.daniel@gmail.com> PR fortran/34533 * intrinsic.h (gfc_check_etime): Renamed to ... (gfc_check_dtime_etime): ... this. (gfc_check_etime_sub): Renamed to ... (gfc_check_dtime_etime_sub): ... this. (gfc_resolve_dtime_sub): New prototype. * check.c (gfc_check_etime): Renamed to ... (gfc_check_dtime_etime): ... this. (gfc_check_etime_sub): Renamed to ... (gfc_check_dtime_etime_sub): ... this. * iresolve.c (gfc_resolve_dtime_sub): New implementation. * intrinsic.c (add_functions): Removed alias from ETIME to DTIME, added stand-alone intrinsic DTIME. (add_subroutines): Adjusted check and resolve function names for DTIME and ETIME. * trans-intrinsic.c (gfc_conv_intrinsic_function): Added DTIME to known functions in switch. * intrinsic.texi (DTIME): Added paragraph about thread-safety, fixed return value section. (CPU_TIME): Clarified intent and added implementation notes. libgfortran: 2007-12-25 Daniel Franke <franke.daniel@gmail.com> PR fortran/34533 * intrinsics/cpu_time.c: Moved code commonly usable for CPU_TIME, DTIME and ETIME to ... * intrinsics/time_1.h: ... here. * intrinsics/dtime.c: New file. * intrinsics/etime.c: Newly implemented using the common time-aquisition function from time_1.h. * gfortran.map (_gfortran_dtime, _gfortran_dtime_sub): New. * Makefile.am: Added new file. * Makefile.in: Regenerated. * configure: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131168 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-12-17 Tobias Burnus <burnus@net-b.de>burnus2007-12-171-2/+2
| | | | | | | | | | | | | | | | * intrinsic.c (add_functions): Undo change; mark float and sngl as STD_F77. * intrinsic.texi (FLOAT, SNGL): Change standard to F77 and later. * gfortran.texi (BOZ): Make note about FLOAT etc. clearer. 2007-12-17 Tobias Burnus <burnus@net-b.de> * gfortran.dg/initialization_16.f90: Update as FLOAT/SNGL are part of Fortran 77/95/2003. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131007 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-12-16 Tobias Burnus <burnus@net-b.de>burnus2007-12-161-2/+10
| | | | | | | | | | | | | | | | PR fortran/34495 * intrinsic.c (add_functions): Mark float and sngl as STD_GNU. (gfc_intrinsic_func_interface): Reject REAL, DBLE and CMPLX in initialization expressions for -std=f95. 2007-12-16 Tobias Burnus <burnus@net-b.de> PR fortran/34495 * gfortran.dg/initialization_16.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130994 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-11-29 Tobias Burnus <burnus@net-b.de>burnus2007-11-291-2/+6
| | | | | | | | | | | | | | | | PR fortran/34262 * intrinsic.c (gfc_get_intrinsic_sub_symbol): Add comment. (gfc_intrinsic_sub_interface): Copy elemental state if needed. * iresolve.c (gfc_resolve_mvbits): Mark procedure as elemental. 2007-11-29 Tobias Burnus <burnus@net-b.de> PR fortran/34262 * gfortran.dg/mvbits_3.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130513 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-10-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2007-10-271-30/+30
| | | | | | | | | | | | | | | | PR fortran/33162 * intrinsic.h: Add prototypes for four new functions, gfc_check_datan2, gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd. * intrinsic.c (add_functions): Add double precision checks for dabs, dacos, dacosh, dasin, dasinh, datan, datanh, datan2, dbesj0, dbesj1, dbesy0, dbesy1, dcos, dcosh, ddim, derf, derfc, dexp, dgamma, dlgama, dlog, dlog10, dmod, dsign, dsin, dsinh, dsqrt, dtan, and dtanh. Add real check dprod. * check.c (gfc_check_datan2): New function to check for double precision argumants. (gfc_check_dprod, gfc_check_fn_d, and gfc_check_x_yd): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129673 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/32989fxcoudert2007-08-291-3/+3
| | | | | | | | | | | | | | | * iresolve.c (gfc_resolve_getarg): Handle non-default integer kinds. * check.c (gfc_check_getarg): New function * intrinsic.h: Add prototype for gfc_check_getarg. * intrinsic.c (add_subroutines): Add reference to gfc_check_getarg. * intrinsic.texi (GETARG): Adjust documentation. * gfortran.fortran-torture/execute/getarg_1.f90: Add check for non-default integer kind arguments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127905 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/33105fxcoudert2007-08-291-0/+12
| | | | | | | | | | | | | | | | * intrinsic.c (add_functions): Add IS_IOSTAT_END and IS_IOSTAT_EOR intrinsics. * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. * trans-intrinsic.c (gfc_conv_has_intvalue): New function. (gfc_conv_intrinsic_function): Call gfc_conv_has_intvalue for GFC_ISYM_IS_IOSTAT_END and GFC_ISYM_IS_IOSTAT_EOR. * intrinsic.texi: Add IS_IOSTAT_END and IS_IOSTAT_EOR. * gfortran.dg/is_iostat_end_eor_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127903 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-08-26 Tobias Burnus <burnus@net-b.de>burnus2007-08-261-0/+25
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/32980 * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma, gfc_resolve_gamma,gfc_resolve_lgamma): New function declations. * mathbuiltins.def: Define GAMMA and LGAMMA. * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA and DLGAMA. * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions. * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions. * intrinsic.texi: Add documentation for GAMMA and LGAMMA. 2007-08-26 Tobias Burnus <burnus@net-b.de> PR fortran/32980 * gfortran.dg/gamma_1.f90: New. * gfortran.dg/gamma_2.f90: New. * gfortran.dg/gamma_3.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127809 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-08-24 Tobias Burnus <burnus@net-b.de>burnus2007-08-241-6/+4
| | | | | | | | | | | | | | | | PR fortran/33178 * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization expression check. 2007-08-24 Tobias Burnus <burnus@net-b.de> PR fortran/33178 * gfortran.dg/initialization_4.f90: Update dg-error. * gfortran.dg/initialization_13.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127786 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/29600fxcoudert2007-08-121-2/+3
| | | | | | | | | | | | | | | * intrinsic.c (add_functions): Add optional KIND argument to ACHAR. * iresolve.c (gfc_resolve_achar): Handle the KIND argument. * check.c (gfc_check_achar): Check for the optional KIND argument. * simplify.c (gfc_simplify_achar): Use KIND argument. * intrinsic.h (gfc_check_achar, gfc_simplify_achar, gfc_resolve_achar): Adjust prototypes. * gfortran.dg/intrinsics_kind_argument_1.f90: Add test for ACHAR intrinsic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127385 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/30964fxcoudert2007-08-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/33054 * trans-expr.c (gfc_conv_function_call): When no formal argument list is available, we still substitute missing optional arguments. * check.c (gfc_check_random_seed): Correct the check on the number of arguments to RANDOM_SEED. * intrinsic.c (add_subroutines): Add a resolution function to RANDOM_SEED. * iresolve.c (gfc_resolve_random_seed): New function. * intrinsic.h (gfc_resolve_random_seed): New prototype. * intrinsics/random.c (random_seed): Rename into random_seed_i4. (random_seed_i8): New function. * gfortran.map (GFORTRAN_1.0): Remove _gfortran_random_seed, add _gfortran_random_seed_i4 and _gfortran_random_seed_i8. * libgfortran.h (iexport_proto): Replace random_seed by random_seed_i4 and random_seed_i8. * runtime/main.c (init): Call the new random_seed_i4. * gfortran.dg/random_4.f90: New test. * gfortran.dg/random_5.f90: New test. * gfortran.dg/random_6.f90: New test. * gfortran.dg/random_7.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127383 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/29600fxcoudert2007-08-121-26/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * intrinsic.c (add_functions): Add KIND arguments to COUNT, IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY. * iresolve.c (gfc_resolve_count): Add kind argument. (gfc_resolve_iachar): New function. (gfc_resolve_ichar): Add kind argument. (gfc_resolve_index_func): Likewise. (gfc_resolve_lbound): Likewise. (gfc_resolve_len): Likewise. (gfc_resolve_len_trim): Likewise. (gfc_resolve_scan): Likewise. (gfc_resolve_size): New function. (gfc_resolve_ubound): Add kind argument. (gfc_resolve_verify): Likewise. * trans-decl.c (gfc_get_extern_function_decl): Allow specific intrinsics to have 4 arguments. * check.c (gfc_check_count): Add kind argument. (gfc_check_ichar_iachar): Likewise. (gfc_check_index): Likewise. (gfc_check_lbound): Likewise. (gfc_check_len_lentrim): New function. (gfc_check_scan): Add kind argument. (gfc_check_size): Likewise. (gfc_check_ubound): Likewise. (gfc_check_verify): Likewise. * intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY. * simplify.c (get_kind): Whitespace fix. (int_expr_with_kind): New function. (gfc_simplify_iachar): Add kind argument. (gfc_simplify_iachar): Likewise. (gfc_simplify_ichar): Likewise. (gfc_simplify_index): Likewise. (simplify_bound_dim): Likewise. (simplify_bound): Likewise. (gfc_simplify_lbound): Likewise. (gfc_simplify_len): Likewise. (gfc_simplify_len_trim): Likewise. (gfc_simplify_scan): Likewise. (gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size. (gfc_simplify_size): Add kind argument. (gfc_simplify_ubound): Likewise. (gfc_simplify_verify): Likewise. * intrinsic.h: Update prototypes and add new ones. * trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into gfc_conv_intrinsic_index_scan_verify. (gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove. (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_index_scan_verify to translate the INDEX, SCAN and VERIFY intrinsics. * gfortran.dg/intrinsics_kind_argument_1.f90: New test. * gfortran.dg/pure_dummy_length_1.f90: Adapt to new error wording. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127380 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/30933fxcoudert2007-08-061-3/+3
| | | | | | | * intrinsic.c (add_functions): Fix name of argument to CHDIR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127257 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/32979fxcoudert2007-08-051-0/+6
| | | | | | | | | | | | | | | | * intrinsic.h (gfc_check_isnan): Add prototype. * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN. * intrinsic.c (add_functions): Add ISNAN intrinsic. * check.c (gfc_check_isnan): New function. * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function. (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan to translate ISNAN. * intrinsic.texi: Document ISNAN. * gfortran.dg/isnan_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127224 138bc75d-0d04-0410-961f-82ee72b054a4
* * arith.c: Change copyright header to refer to version 3 of the GNU General nickc2007-08-011-4/+3
| | | | | | | | | | | | | | | | | | Public License and to point readers at the COPYING3 file and the FSF's license web page. * openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c, symbol.c, iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h, matchexp.c, dump-parse-tree.c, trans-common.c, array.c, Make-lang.in, trans-openmp.c, gfortran.h, error.c, iso-c-binding.def, lang.opt, data.c, trans-const.c, trans-stmt.c, expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, scanner.c, trans-types.c, trans.h, gfortranspec.c, trans-types.h, lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c, iresolve.c, match.c, trans-decl.c, trans-io.c, target-memory.c, match.h, target-memory.h, parse.c, arith.h, check.c, dependency.c, parse.h, types.def, convert.c, dependency.h, primary.c, trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127129 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-07-241-33/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-07-24 Daniel Franke <franke.daniel@gmail.com> PR fortran/32778 * intrinsic.c (add_sym): Do not exclude any symbols, even if not part of the selected standard. (make generic): Likewise. (make alias): Likewise, set standard the alias belongs to. (add_subroutines): Call make_noreturn unconditionally. (check_intrinsic_standard): Change return value to try. (gfc_intrinsic_func_interface): Check return value of above function. (gfc_intrinsic_sub_interface): Likewise. gcc/testsuite: 2007-07-24 Daniel Franke <franke.daniel@gmail.com> PR fortran/32778 * gfortran.dg/imag_2.f: Removed * gfortran.dg/warn_std_1.f90: New test. * gfortran.dg/warn_std_2.f90: New test. * gfortran.dg/warn_std_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126881 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-07-221-361/+346
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-07-22 Daniel Franke <franke.daniel@gmail.com> PR fortran/29962 PR fortran/31253 PR fortran/31265 PR fortran/31639 * gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure, generic, specific, actual_ok, noreturn into bits of a bitfield, added bits for inquiry, transformational, conversion. * check.c (non_init_transformational): Removed, removed all callers. * intrinsic.c (enum class): New. (add_sym*): Replaced argument elemetal by enum class. Changed all callers. (add_functions): Assign appropriate classes to intrinsic functions. (add_subroutines): Assign appropriate classes to intrinsic subroutines. (add_conv): Set conversion attribute. (gfc_init_expr_extensions): Removed, removed all callers. (gfc_intrinsic_func_interface): Reimplemented check for non-standard initializatione expressions. * expr.c (check_specification_function): New. (gfc_is_constant_expr): Added check for specification functions. (check_init_expr_arguments): New. (check_inquiry): Changed return value to MATCH, added checks for inquiry functions defined by F2003. (check_transformational): New. (check_null): New. (check_elemental): New. (check_conversion): New. (check_init_expr): Call new check functions, add more specific error messages. gcc/testsuite: 2007-07-22 Daniel Franke <franke.daniel@gmail.com> PR fortran/29962 * gfortran.dg/array_initializer_1.f90: Removed warning. * gfortran.dg/initialization_1.f90: Adjusted messages. * gfortran.dg/nested_modules_6.f90: Removed warning. PR fortran/31253 * gfortran.dg/initialization_7.f90: New test. PR fortran/31639 * gfortran.dg/initialization_8.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126826 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-06-301-8/+7
| | | | | | | | | | | | | | | | | | | | | 2007-06-30 Daniel Franke <franke.daniel@gmail.com> PR fortran/20373 * intrinsic.c (add_functions): Additional function types. (gfc_convert_type_warn): Remove intrinsic-flag from conversion functions. * resolve.c (resolve_symbol): Added type checks to explicitly defined intrinsics. gcc/testsuite: 2007-06-28 Daniel Franke <franke.daniel@gmail.com> PR fortran/20373 * gfortran.dg/intrinsic.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126153 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-05-31 Richard Guenther <rguenther@suse.de>rguenth2007-05-311-2/+2
| | | | | | | | | | | | | | | | | * trans-expr.c (gfc_conv_expr_op): Use zero constant that matches the lse type. (gfc_trans_string_copy): Use sizetype zero constant. * intrinsic.c (add_functions): The sizeof intrinsic has index type result. * trans-types.c (gfc_get_dtype): Convert size to index type before shifting. * trans-array.c (gfc_trans_array_constructor_value): Use index type for offset computation. * trans-intrinsic.c (gfc_conv_associated): Use correct type for zero constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125242 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-05-29 Daniel Franke <franke.daniel@gmail.com>dfranke2007-05-291-347/+352
| | | | | | | | | | | | | | | | | | | | * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id', added missing GFC_ISYM_* enumerators, ordered alphabetically. (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'. (gfc_find_subroutine): New prototype. * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers. (find_subroutine): Renamed to 'gfc_find_subroutine', removed static. * dependency.c: Changed usage of isym->generic_id to isym->id. * openmp.c: Likewise. * resolve.c: Likewise. * trans-array.c: Likewise. * trans-expr.c: Likewise. * trans-intrinsic.c: Likewise. * trans-openmp.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125168 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-05-28 Tobias Schlter <tobi@gcc.gnu.org>tobi2007-05-291-0/+6
| | | | | | | | | | | | | | | | | | | fortran/ * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF. * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic. * intrinsic.h (gfc_check_sizeof): Add prototype of ... * check.c (gfc_check_sizeof): .. new function. * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function. (gfc_conv_intrinsic_strcmp): Whitespace fix. (gfc_conv_intrinsic_array_transfer): Remove double initialization, use fold_build. where appropriate. (gfc_conv_intrinsic_function): Add case for SIZEOF. * intrinsic.texi: Add documentation for SIZEOF. testsuite/ * gfortran.dg/sizeof.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125161 138bc75d-0d04-0410-961f-82ee72b054a4
* * gfortran.h (gfc_expr): Remove from_H, add "representation"brooks2007-05-281-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | struct. * primary.c (match_hollerith_constant): Store the representation of the Hollerith in representation, not in value.character. * arith.c: Add dependency on target-memory.h. (eval_intrinsic): Remove check for from_H. (hollerith2representation): New function. (gfc_hollerith2int): Determine value of the new constant. (gfc_hollerith2real): Likewise. (gfc_hollerith2complex): Likewise. (gfc_hollerith2logical): Likewise. (gfc_hollerith2character): Point both representation.string and value.character.string at the value string. * data.c (create_character_initializer): For BT_HOLLERITH rvalues, get the value from the representation rather than value.character. * expr.c (free_expr0): Update handling of BT_HOLLERITH values and values with representation.string. (gfc_copy_expr): Likewise. * intrinsic.c (do_simplify): Remove special treatement of variables resulting from Hollerith constants. * dump-parse-trees.c (gfc_show_expr): Update handling of Holleriths. * trans-const.c (gfc_conv_constant_to_tree): Replace from_H check with check for representation.string; get Hollerith representation from representation.string, not value.character. * trans-expr.c (is_zero_initializer_p): Replace from_H check with check for representation.string. * trans-stmt.c (gfc_trans_integer_select): Use gfc_conv_mpz_to_tree for case values, so as to avoid picking up the memory representation if the case is given by a transfer expression. * target-memory.c (gfc_target_encode_expr): Use the known memory representation rather than the value, if it exists. (gfc_target_interpret_expr): Store the memory representation of the interpreted expression as well as its value. (interpret_integer): Move to gfc_interpret_integer, make non-static. (interpret_float): Move to gfc_interpret_float, make non-static. (interpret_complex): Move to gfc_interpret_complex, make non-static. (interpret_logical): Move to gfc_interpret_logical, make non-static. (interpret_character): Move to gfc_interpret_character, make non-static. (interpret_derived): Move to gfc_interpret_derived, make non-static. * target-memory.h: Add prototypes for newly-exported gfc_interpret_* functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125135 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-05-171-23/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-05-15 Daniel Franke <franke.daniel@gmail.com> PR fortran/31919 PR fortran/31929 PR fortran/31930 * intrinsic.c (check_specific): Check elemental intrinsics for rank and shape. (add_functions): Fixed dummy argument names of BESJN and BESYN. Fixed elemental status of MCLOCK and MCLOCK8. * check.c (check_rest): Added check for array conformance. (gfc_check_merge): Removed check for array conformance. (gfc_check_besn): Removed check for scalarity. * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos. (BESJN, BESYN): Clarified documentation. gcc/testsuite: 2007-05-17 Daniel Franke <franke.daniel@gmail.com> PR fortran/31919 * gfortran.dg/min_max_conformance.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124794 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-05-041-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | 2007-05-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/31760 * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1 by gfc_check_fn_r to avoid checks for scalarity. * check.c (gfc_check_besn): Removed check for scalarity. (gfc_check_g77_math1): Removed. * intrinsic.h (gfc_check_g77_math1): Removed. gcc/testsuite: 2007-05-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/31760 * gfortran.dg/erf.f90: New test. * gfortran.dg/besxy.f90: New test. [gcc/fortran/ChangeLog was already committed in r124441 by accident] git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124446 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran:dfranke2007-05-041-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-05-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/22539 * intrinsic.c (add_subroutines): Added FSEEK. * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New. * iresolve.c (gfc_resolve_fseek_sub): New. * check.c (gfc_check_fseek_sub): New. * intrinsic.texi (FSEEK): Updated. gcc/testsuite: 2007-05-01 Daniel Franke <franke.daniel@gmail.com> PR fortran/22539 * gfortran.dg/fseek.f90: New test. libgfortran: 2007-05-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/22539 * io/intrinsics.c (fseek_sub): New. * io/unix.c (fd_fseek): Change logical and physical offsets only if seek succeeds. * gfortran.map (fseek_sub): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124437 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-05-01 Daniel Franke <franke.daniel@gmail.com>dfranke2007-05-011-66/+66
| | | | | | | | | | | | | * intrinsic.c (add_functions): Fixed ELEMENTAL specifications. (add_subroutines): Replaced magic numbers in function calls by ELEMENTAL and NOT_ELEMENTAL respectively. * intrinsic.texi (MVBITS): Changed class to elemental subroutine. (RANDOM_NUMBER): Changed class to subroutine. (HUGE, TINY): Changed class to inquiry function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124320 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2007-04-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | 2007-04-25 Tobias Burnus <burnus@net-b.de> PR fortran/31668 * error.c (error_print): Fix %% support. * intrinsic.c (sort_actual): Improve error message. * resolve.c (resolve_actual_arglist): Allow %VAL for interfaces defined in the module declaration part. testsuite/ 2007-04-25 Tobias Burnus <burnus@net-b.de> PR fortran/31668 * gfortran.dg/c_by_val_2.f90: Add rejection test of %VAL with statement functions. * gfortran.dg/c_by_val_5.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-07 Paul Thomas <pault@gcc.gnu.org>pault2007-04-071-1/+1
| | | | | | | | | | | | | | | PR fortran/31257 * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar. * intrinsic.h : Add prototype for gfc_resolve_achar. * iresolve.c (gfc_resolve_achar): New function. 2007-04-07 Paul Thomas <pault@gcc.gnu.org> PR fortran/31257 * gfortran.dg/achar_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123646 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-31 Tobias Burnus <burnus@net-b.de>burnus2007-03-311-2/+2
| | | | | | | | | * intrinsic.c (add_functions): Fix name of dummy argument for new_line and exit intrinsic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123385 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (conv_name): Let gfc_get_string handle the format.tobi2007-03-291-8/+10
| | | | | | | | | (find_conv): Compare pointers instead of calling strcmp. (find_sym): Likewise, but ensure that the compared pointer is in the global string table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123346 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-03-08 Daniel Franke <franke.daniel@gmail.com>dfranke2007-03-081-2/+2
| | | | | | | | | | | * intrinsic.texi (GERROR, ISATTY, TTYNAM): New. (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo. * intrinsic.c (add_subroutines): Adjusted dummy argument names of GERROR and TTYNAM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122712 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-01-08 Steven G. Kargl <kargl@gcc.gnu.org>kargl2007-01-081-215/+204
| | | | | | | | | * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c, iresolve.c, match.c: Update Copyright years. Whitespace. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120587 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-31 Paul Thomas <pault@gcc.gnu.org>pault2006-12-311-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/23060 * intrinsic.c (compare_actual_formal ): Distinguish argument list functions from keywords. * intrinsic.c (sort_actual): If formal is NULL, the presence of an argument list function actual is an error. * trans-expr.c (conv_arglist_function) : New function to implement argument list functions %VAL, %REF and %LOC. (gfc_conv_function_call): Call it. * resolve.c (resolve_actual_arglist): Add arg ptype and check argument list functions. (resolve_function, resolve_call): Set value of ptype before calls to resolve_actual_arglist. * primary.c (match_arg_list_function): New function. (gfc_match_actual_arglist): Call it before trying for a keyword argument. 2006-12-31 Paul Thomas <pault@gcc.gnu.org> PR fortran/23060 * gfortran.dg/c_by_val.c: Called by c_by_val_1.f. * gfortran.dg/c_by_val_1.f: New test. * gfortran.dg/c_by_val_2.f: New test. * gfortran.dg/c_by_val_3.f: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120295 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-12-28 Paul Thomas <pault@gcc.gnu.org>pault2006-12-281-1/+7
| | | | | | | | | | | | | | | | | | | | | | | PR fortran/30034 * resolve.c (resolve_formal_arglist): Exclude the test for pointers and procedures for subroutine arguments as well as functions. PR fortran/30237 * intrinsic.c (remove_nullargs): Do not pass up arguments with a label. If the actual has a label and the formal has a type then emit an error. 2006-12-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/30034 * gfortran.dg/pure_formal_proc_1.f90: New test. PR fortran/30237 * gfortran.dg/intrinsic_actual_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120244 138bc75d-0d04-0410-961f-82ee72b054a4
* * resolve.c (resolve_actual_arglist): Remove the special case forfxcoudert2006-11-241-6/+3
| | | | | | | | | | | | CHAR. * intrinsic.c (add_functions): Remove the special case for CHAR. * gfortran.dg/specifics_1.f90: Remove check for CHAR. * gfortran.dg/specifics_2.f90: Remove check for CHAR. * gfortran.dg/specifics_3.f90: Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119170 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/tobi2006-11-221-2/+1
| | | | | | | | | | | | | PR fortran/29441 * intrinsic.c (gfc_intrinsic_func_interface): Always check if intrinsic is allowed in initialization expression. testsuite/ PR fortran/29441 * gfortran.dg/initialization_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119101 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s,fxcoudert2006-10-091-258/+265
| | | | | | | | | add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO, ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants 0 and 1 as second and third arguments to add_sym* functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117569 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org>pault2006-10-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paul Thomas <pault@gcc.gnu.org> PR fortran/20541 * interface.c (gfc_compare_derived_types): Add comparison of the allocatable field. * intrinsic.c (add_subroutines): Add MOVE_ALLOC. * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign, gfc_trans_subcomponent_assign, gfc_conv_string_parameter, gfc_trans_scalar_assign): Add extra arguments l_is_temp and r_is_var to references to latter function. (gfc_conv_function_call): Add enum for types of argument and an associated variable parm_kind. Deallocate components of INTENT(OUT) and non-variable arrays. (gfc_trans_subcomponent_assign): Add block to assign arrays to allocatable components. (gfc_trans_scalar_assign): Add block to handle assignments of derived types with allocatable components, using the above new arguments to control allocation/deallocation of memory and the copying of allocated arrays. * trans-array.c (gfc_array_allocate): Remove old identification of pointer and replace with that of an allocatable array. Add nullify of structures with allocatable components. (gfc_conv_array_initializer): Treat EXPR_NULL. (gfc_conv_array_parameter): Deallocate allocatable components of non-variable structures. (gfc_trans_dealloc_allocated): Use second argument of library deallocate to inhibit, without error, freeing NULL pointers. (get_full_array_size): New function to return the size of a full array. (gfc_duplicate_allocatable): New function to allocate and copy allocated data. (structure_alloc_comps): New recursive function to deallocate, nullify or copy allocatable components. (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, gfc_copy_alloc_comp): New interface functions to call previous. (gfc_trans_deferred_array): Add the code to nullify allocatable components, when entering scope, and to deallocate them on leaving. Do not call gfc_trans_static_array_pointer and return for structures with allocatable components and default initializers. * symbol.c (gfc_set_component_attr): Set allocatable field. (gfc_get_component_attr): Set the allocatable attribute. * intrinsic.h : Prototype for gfc_check_move_alloc. * decl.c (build_struct): Apply TR15581 constraints for allocatable components. (variable_decl): Default initializer is always NULL for allocatable components. (match_attr_spec): Allow, or not, allocatable components, according to the standard in force. * trans-array.h : Prototypes for gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and gfc_duplicate_allocatable. * gfortran.texi : Add mention of TR15581 extensions. * gfortran.h : Add attribute alloc_comp, add gfc_components field allocatable and add the prototype for gfc_expr_to_initialize. * trans-stmt.c (generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp, gfc_trans_where_assign, gfc_trans_where_3): Add extra arguments to calls to gfc_trans_scalar_assign and set appropriately. (gfc_trans_allocate): Nullify allocatable components. (gfc_trans_deallocate): Deallocate to ultimate allocatable components but stop at ultimate pointer components. * module.c (mio_symbol_attribute, mio_symbol_attribute, mio_component): Add module support for allocatable components. * trans-types.c (gfc_get_derived_type): Treat allocatable components. * trans.h : Add two boolean arguments to gfc_trans_scalar_assign. * resolve.c (resolve_structure_cons): Check conformance of constructor element and the component. (resolve_allocate_expr): Add expression to nullify the constructor expression for allocatable components. (resolve_transfer): Inhibit I/O of derived types with allocatable components. (resolve_fl_derived): Skip check of bounds of allocatable components. * trans-decl.c (gfc_get_symbol_decl): Add derived types with allocatable components to deferred variable. (gfc_trans_deferred_vars): Make calls for derived types with allocatable components to gfc_trans_deferred_array. (gfc_generate_function_code): Nullify allocatable component function result on entry. * parse.c (parse_derived): Set symbol attr.allocatable if allocatable components are present. * check.c (gfc_check_allocated): Enforce attr.allocatable for intrinsic arguments. (gfc_check_move_alloc): Check arguments of move_alloc. * primary.c (gfc_variable_attr): Set allocatable attribute. * intrinsic.texi : Add index entry and section for for move_alloc. PR fortran/29115 * resolve.c (resolve_structure_cons): It is an error if the pointer component elements of a derived type constructor are not pointer or target. PR fortran/29211 * trans-stmt.c (generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp): Provide a string length for the temporary by copying that of the other side of the scalar assignment. 2006-10-05 Paul Thomas <pault@gcc.gnu.org> Erik Edelmann <edelmann@gcc.gnu.org> PR libgfortran/20541 * Makefile.in : Add move_alloc. * intrinsics/move_alloc.c: New function. * Makefile.am : Add move_alloc. 2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/20541 * gfortran.dg/alloc_comp_basics_1.f90: New test. * gfortran.dg/alloc_comp_basics_2.f90: New test. * gfortran.dg/alloc_comp_assign_1.f90: New test. * gfortran.dg/alloc_comp_assign_2.f90: New test. * gfortran.dg/alloc_comp_assign_3.f90: New test. * gfortran.dg/alloc_comp_assign_4.f90: New test. * gfortran.dg/alloc_comp_constraint_1.f90: New test. * gfortran.dg/alloc_comp_constraint_2.f90: New test. * gfortran.dg/alloc_comp_constraint_3.f90: New test. * gfortran.dg/alloc_comp_constructor_1.f90: New test. * gfortran.dg/alloc_comp_constructor_2.f90: New test. * gfortran.dg/alloc_comp_initializer_1.f90: New test. * gfortran.dg/alloc_comp_std.f90: New test. * gfortran.dg/move_alloc.f90: New test. PR fortran/29115 * gfortran.dg/derived_constructor_comps_2.f90: New test. PR fortran/29211 * gfortran.dg/forall_char_dependencies_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117558 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/28585fxcoudert2006-10-081-0/+4
| | | | | | | | | | | | | | * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic. * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line prototypes. * check.c (gfc_check_new_line): New function. * simplify.c (gfc_simplify_new_line): New function. * intrinsic.texi: Document new_line intrinsic. * gfortran.dg/new_line.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117555 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc/fortran/intrinsic.c (add_functions): Add comments forfxcoudert2006-10-071-0/+4
| | | | | | | gfc_check_access_func and gfc_resolve_index_func. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117535 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/16580fxcoudert2006-10-071-190/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/29288 * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a gfc_intrinsic_sym structure is filled. (gfc_intrinsic_actual_ok): New function. (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s, add_sym_5s): Intrinsic subroutines are not allowed as actual arguments, so we remove argument actual_ok. (add_functions): Correct the values for actual_ok of all intrinsics. (add_subroutines): Remove the actual_ok argument, which was never used. * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype. * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype. * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether an intrinsic used as an argument list is allowed there. * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function. (gfc_resolve_len): Change intrinsic function name to agree with libgfortran. * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add new case, because some specific intrinsics take 3 arguments. * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension. * libgfortran/Makefile.am: Add the new files to the build process, and rules to build them. * libgfortran/Makefile.in: Regenerate. * libgfortran/m4/misc_specifics.m4: New file. * libgfortran/m4/specific.m4: Add new special cases for function with complex argument and real result, like abs_c* and aimag_c*. * libgfortran/intrinsics/f2c_specifics.F90: Add specifics for AIMAG, ASINH, ACOSH and ATANH. * libgfortran/generated/_aimag_c4.F90: New file. * libgfortran/generated/_aimag_c8.F90: New file. * libgfortran/generated/_asinh_r10.F90: New file. * libgfortran/generated/_acosh_r16.F90: New file. * libgfortran/generated/_aimag_c10.F90: New file. * libgfortran/generated/_atanh_r16.F90: New file. * libgfortran/generated/_acosh_r4.F90: New file. * libgfortran/generated/_acosh_r8.F90: New file. * libgfortran/generated/_asinh_r4.F90: New file. * libgfortran/generated/_asinh_r8.F90: New file. * libgfortran/generated/_asinh_r16.F90: New file. * libgfortran/generated/_atanh_r4.F90: New file. * libgfortran/generated/_atanh_r8.F90: New file. * libgfortran/generated/_acosh_r10.F90: New file. * libgfortran/generated/misc_specifics.F90: New file. * libgfortran/generated/_aimag_c16.F90: New file. * libgfortran/generated/_atanh_r10.F90: New file. * gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90: Add tests for using all possible intrinsics as actual arguments. * gcc/testsuite/gfortran.dg/specifics_1.f90: Add tests for using all possible intrinsics as actual arguments. * gcc/testsuite/gfortran.dg/specifics_2.f90: New file. * gcc/testsuite/gfortran.dg/specifics_3.f90: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117534 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-11 Steven G. Kargl <kargl@gcc.gnu.org>kargl2006-09-111-2/+2
| | | | | | | | | * intrinsic.c: Update Copyright date. * intrinsic.h: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116861 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.fxcoudert2006-07-301-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (add_subroutines): Add LTIME, GMTIME and CHMOD. * intrinsic.h (gfc_check_access_func, gfc_check_chmod, gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift, gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod, gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes. * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS, GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT. * iresolve.c (gfc_resolve_access, gfc_resolve_chmod, gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub, gfc_resolve_gmtime, gfc_resolve_ltime): New functions. * check.c (gfc_check_access_func, gfc_check_chmod, gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions. * trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function. (gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*. * intrinsics/date_and_time.c: Add functions for GMTIME and LTIME. * intrinsics/access.c: New file. * intrinsics/chmod.c: New file. * configure.ac: Add checks for <sys/wait.h>, access, fork,execl and wait. * Makefile.am: Add new files intrinsics/access.c and intrinsics/chmod.c. * configure: Regenerate. * config.h.in: Regenerate. * Makefile.in: Regenerate. * gcc/testsuite/gfortran.dg/chmod_3.f90: New test. * gcc/testsuite/gfortran.dg/ltime_gmtime_1.f90: New test. * gcc/testsuite/gfortran.dg/ltime_gmtime_2.f90: New test. * gcc/testsuite/gfortran.dg/lrshift_1.f90: New test. * gcc/testsuite/gfortran.dg/chmod_1.f90: New test. * gcc/testsuite/gfortran.dg/chmod_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115825 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG,fxcoudert2006-07-261-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LSTAT, MCLOCK and MCLOCK8 intrinsic functions. (add_subroutines): Add LSTAT intrinsic subroutine. * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2, GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK and GFC_ISYM_MCLOCK8. * iresolve.c (gfc_resolve_int2, gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions. * check.c (gfc_check_intconv): New function. * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for the added GFC_ISYM_*. * simplify.c (gfc_simplify_intconv, gfc_simplify_int2, gfc_simplify_int8, gfc_simplify_long): New functions. * intrinsic.h (gfc_check_intconv, gfc_simplify_int2, gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2, gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub): Add prototypes. * gfortran.dg/mclock.f90: New test. * gfortran.dg/int_conv_1.f90: New test. * gfortran.dg/stat_1.f90: New test. * gfortran.dg/stat_2.f90: New test. * configure.ac: Check for function clock. * Makefile.am: Compile new file intrinsics/clock.c. * intrinsics/clock.c: New file. * Makefile.in: Regenerate. * configure: Regenerate. * config.h.in: Regenerate. * intrinsics/stat.c: Rename the old stat_i?_sub functions to helper functions stat_i?_sub_0, and use them for both STAT and LSTAT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115754 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_subroutines): Add ITIME and IDATE.fxcoudert2006-07-041-2/+10
| | | | | | | | | | | | | | | | | * intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate, fc_resolve_itime): New protos. * iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions. * check.c (gfc_check_itime_idate): New function. * intrinsic.texi: Document the new intrinsics. * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8, idate_i4,idate_i8): New functions. * gfortran.dg/itime_idate_1.f: New test. * gfortran.dg/itime_idate_2.f: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115173 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/28094fxcoudert2006-06-241-1/+1
| | | | | | | | | | | | | | | * trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where there is no integer kind equal to the resulting real kind. * intrinsic.c (add_functions): MODULO is not allowed as an actual argument. * Makefile.am: Add _mod_r10.F90 and _mod_r16.F90. * Makefile.in: Regenerate. * generated/_mod_r10.F90: New file. * generated/_mod_r16.F90: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114961 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud