summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/intrinsic.c
Commit message (Collapse)AuthorAgeFilesLines
...
* 2006-06-20 Paul Thomas <pault@gcc.gnu.org>pault2006-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/25049 PR fortran/25050 * check.c (non_init_transformational): New function. (find_substring_ref): New function to signal use of disallowed transformational intrinsic in an initialization expression. (gfc_check_all_any): Call previous if initialization expr. (gfc_check_count): The same. (gfc_check_cshift): The same. (gfc_check_dot_product): The same. (gfc_check_eoshift): The same. (gfc_check_minloc_maxloc): The same. (gfc_check_minval_maxval): The same. (gfc_check_gfc_check_product_sum): The same. (gfc_check_pack): The same. (gfc_check_spread): The same. (gfc_check_transpose): The same. (gfc_check_unpack): The same. PR fortran/18769 *intrinsic.c (add_functions): Add gfc_simplify_transfer. *intrinsic.h : Add prototype for gfc_simplify_transfer. *simplify.c (gfc_simplify_transfer) : New function to act as placeholder for eventual implementation. Emit error for now. PR fortran/16206 * expr.c (find_array_element): Eliminate condition on length of offset. Add bounds checking. Rearrange exit. Return try and put gfc_constructor result as an argument. (find_array_section): New function. (find_substring_ref): New function. (simplify_const_ref): Add calls to previous. (simplify_parameter_variable): Return on NULL expr. (gfc_simplify_expr): Only call gfc_expand_constructor for full arrays. PR fortran/20876 * match.c (gfc_match_forall): Add missing locus to gfc_code. 2006-06-20 Paul Thomas <pault@gcc.gnu.org> PR libfortran/28005 * m4/matmul.m4: aystride = 1 does not uniquely detect the presence of a temporary transpose; an array element in the first dimension produces the same signature. Detect this using the rank of a and add specific code. * generated/matmul_r4.c: Regenerate. * generated/matmul_r8.c: Regenerate. * generated/matmul_r10.c: Regenerate. * generated/matmul_r16.c: Regenerate. * generated/matmul_c4.c: Regenerate. * generated/matmul_c8.c: Regenerate. * generated/matmul_c10.c: Regenerate. * generated/matmul_c16.c: Regenerate. * generated/matmul_i4.c: Regenerate. * generated/matmul_i8.c: Regenerate. * generated/matmul_i16.c: Regenerate. 2006-06-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/16206 * gfortran.dg/array_initializer_1.f90: New test. PR fortran/28005 * gfortran.dg/matmul_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114802 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-06-08 Steven G. Kargl <kargls@comcat.net>kargl2006-06-081-2/+4
| | | | | | | | | * intrinsic.c (add_subroutine): Make make_noreturn() conditional on the appropriate symbol name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114490 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-03-30 Steven G. Kargl <kargls@comcast.net>kargl2006-05-031-3/+6
| | | | | | | | | | | | | | | | | | | | | | PR fortran/26896 * lang.opt: Fix -Wtab description PR fortran/20248 * lang.opt: New flag -fall-intrinsics. * invoke.texi: Document option. * gfortran.h (options_t): New member flag_all_intrinsics. * options.c (gfc_init_options, gfc_handle_option): Set new option. sort nearby misplaced options. * intrinsic.c (add_sym, make_generic, make_alias): Use it. 2006-03-30 Steven G. Kargl <kargls@comcast.net> * gfortran.dg/iargc.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113502 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-04-16 Paul Thomas <pault@gcc.gnu.org>pault2006-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/26822 * intrinsic.c (add_functions): Mark LOGICAL as elemental. PR fortran/26787 * expr.c (gfc_check_assign): Extend scope of error to include assignments to a procedure in the main program or, from a module or internal procedure that is not that represented by the lhs symbol. Use VARIABLE rather than l-value in message. PR fortran/27096 * trans-array.c (gfc_trans_deferred_array): If the backend_decl is not a descriptor, dereference and then test and use the type. PR fortran/25597 * trans-decl.c (gfc_trans_deferred_vars): Check if an array result, is also automatic character length. If so, process the character length. PR fortran/18803 PR fortran/25669 PR fortran/26834 * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set data.info.dimen for bound intrinsics. * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and UBOUND intrinsics and supply their shape information to the ss and the loop. PR fortran/27124 * trans_expr.c (gfc_trans_function_call): Add a new block, post, in to which all the argument post blocks are put. Add this block to se->pre after a byref call or to se->post, otherwise. 2006-04-16 Paul Thomas <pault@gcc.gnu.org> PR fortran/26787 * gfortran.dg/proc_assign_1.f90: New test. * gfortran.dg/procedure_lvalue.f90: Change message. * gfortran.dg/namelist_4.f90: Add new error. PR fortran/27096 * gfortran.dg/auto_pointer_array_result_1.f90 PR fortran/27089 * gfortran.dg/specification_type_resolution_1.f90 PR fortran/18803 PR fortran/25669 PR fortran/26834 * gfortran.dg/bounds_temporaries_1.f90: New test. PR fortran/27124 * gfortran.dg/array_return_value_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112981 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/26816kargl2006-03-261-1/+1
| | | | | | | | | | | * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds. * intrinsic.texi: Document FLOAT. * gfortran.dg/float_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112392 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/eedelman2006-02-191-0/+1
| | | | | | | | | | | | | | | | | | 2006-02-19 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/26201 * intrinsic.c (gfc_convert_type_warn): Call gfc_intrinsic_symbol() on the newly created symbol. testsuite/ 2006-02-19 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/26201 * gfortran.dg/convert_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111270 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/eedelman2006-01-251-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25716 * symbol.c (free_old_symbol): New function. (gfc_commit_symbols): Use it. (gfc_commit_symbol): New function. (gfc_use_derived): Use it. * gfortran.h: Add prototype for gfc_commit_symbol. * intrinsic.c (gfc_find_function): Search in 'conversion' if not found in 'functions'. (gfc_convert_type_warn): Add a symtree to the new expression node, and commit the new symtree->n.sym. * resolve.c (gfc_resolve_index): Make sure typespec is properly initialized. testsuite/ 2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25716 * gfortran.dg/char_result_11.f90: Make it sensitive to PR 25716 on 32-bit systems too. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110225 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsics/fget.c: New file.fxcoudert2005-11-131-1/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106859 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_functions): Add ctime and fdate intrinsics.fxcoudert2005-11-061-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106558 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_functions): Add function version of TTYNAM.fxcoudert2005-11-051-0/+6
| | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106522 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-11-01 Paul Thomas <pault@gcc.gnu.org>pault2005-11-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106317 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_malloc, gfc_check_free): New functions.fxcoudert2005-10-301-1/+10
| | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106016 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_alarm_sub, gfc_check_signal,fxcoudert2005-10-281-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105967 138bc75d-0d04-0410-961f-82ee72b054a4
* Commit for Asher Langtonsteven2005-10-241-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105859 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/23516kargl2005-09-221-0/+9
| | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104537 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-08-24 Thomas Koenig <Thomas.Koenig@online.de>tkoenig2005-08-241-0/+13
| | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103449 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add checkfxcoudert2005-08-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102915 138bc75d-0d04-0410-961f-82ee72b054a4
* For the 60th anniversary of Chinese people��s Anti-Japan war victory.fengwang2005-07-071-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101688 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101310 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-06-24 Jerry DeLisle <jvdelisle@verizon.net>jvdelisle2005-06-241-1/+31
| | | | | | | | | | | | | | | | | 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101304 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (check_intrinsic_standard): Fix spelling errorfxcoudert2005-06-201-1/+1
| | | | | | | in a warning message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101207 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generickargl2005-06-181-5/+2
| | | | | | | functions whose simplification routine return FAILURE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101160 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (add_conv): No longer take a "simplify" argument assayle2005-06-011-15/+29
| | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100461 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-04-25 Paul Brook <paul@codesourcery.com>pbrook2005-04-251-2/+2
| | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98686 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.am: Added new files.fxcoudert2005-03-221-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96893 138bc75d-0d04-0410-961f-82ee72b054a4
* Unrevert previously reversed patch, adding this patch:tobi2005-02-241-14/+16
| | | | | | | * module.c (find_true_name): Deal with NULL module. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95506 138bc75d-0d04-0410-961f-82ee72b054a4
* Revert yesterday's patch:tobi2005-02-241-16/+14
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95496 138bc75d-0d04-0410-961f-82ee72b054a4
* * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Maketobi2005-02-231-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95472 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/tobi2005-02-231-1/+1
| | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95463 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_selected_int_kind): New function.kargl2005-02-191-1/+1
| | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95291 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_achar): New functionkargl2005-02-191-1/+1
| | | | | | | | | | * intrinsic.h: Prototype it. * intrinsic.c (add_function): Use it. * gfortran.dg/achar_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95288 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-01-29 Paul Brook <paul@codesourcery.com>pbrook2005-01-291-16/+16
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94412 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-01-22 Steven G. Kargl <kargls@comcast.net>pbrook2005-01-221-10/+15
| | | | | | | | * intrinsic.c (make_alias): Add standard argument. (add_functions): Update make_alias calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94082 138bc75d-0d04-0410-961f-82ee72b054a4
* * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,kazu2005-01-181-1/+1
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93830 138bc75d-0d04-0410-961f-82ee72b054a4
* * arith.c: Add system.h; remove string.hrth2005-01-031-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92866 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-12-12 Steven G. Kargl <kargls@comcast.net>pbrook2004-12-121-2/+2
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92063 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (gfc_convert_type_warn): Propagate the input shaperth2004-12-081-0/+4
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91917 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-12-02 Steven G. Kargl <kargls@comcast.net>pbrook2004-12-021-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91609 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-12-02 Steven G. Kargl <kargls@comcast.net>pbrook2004-12-021-327/+395
| | | | | | | | | | * intrinsic.c: Fix and add comments, fix function declarations (OPTIONAL,REQUIRED): New symbols (add_functions,add_subroutines): Use symbols (gmp.h): Remove unused include git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91604 138bc75d-0d04-0410-961f-82ee72b054a4
* * check.c (gfc_check_getcwd_sub): Fix seg fault.steven2004-11-201-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | * 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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90949 138bc75d-0d04-0410-961f-82ee72b054a4
* * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,kazu2004-11-081-12/+12
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90266 138bc75d-0d04-0410-961f-82ee72b054a4
* * intrinsic.c (check_intrinsic_standard): Include error locus.pbrook2004-11-021-10/+5
| | | | | | | | | Remove VLA. (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass locus to check_intrinsic_standard. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89971 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-31 Janne Blomqvist <jblomqvi@cc.hut.fi>pbrook2004-10-311-373/+425
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89907 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-30 Canqun Yang <canqun@nudt.edu.cn>pbrook2004-10-301-2/+2
| | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89886 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/tobi2004-10-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88532 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/17631tobi2004-10-041-35/+5
| | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88527 138bc75d-0d04-0410-961f-82ee72b054a4
* * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,kazu2004-09-161-1/+1
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87605 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-15 Steven G. Kargl <kargls@comcast.net>pbrook2004-09-151-0/+10
| | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87552 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-08-29 Steven G. Kargl <kargls@comcast.net>pbrook2004-08-291-0/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86727 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-08-29 Steven G. Kargl <kargls@comcast.net>pbrook2004-08-281-51/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86703 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud