summaryrefslogtreecommitdiff
path: root/gcc/fortran
Commit message (Collapse)AuthorAgeFilesLines
* 2009-06-06 Daniel Franke <franke.daniel@gmail.com>burnus2009-06-062-1/+7
| | | | | | | | | | | | | | | | PR fortran/37203 * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty * arrays without padding. 2009-06-06 Daniel Franke <franke.daniel@gmail.com> PR fortran/37203 * reshape_zerosize_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148238 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2009-06-065-23/+160
| | | | | | | | | | | | | | | | | | | | | | | 2009-06-06 Daniel Franke <franke.daniel@gmail.com> PR fortran/32890 * intrinsic.h (gfc_simplify_pack): New prototype. * intrinsic.c (add_functions): Added simplifier-callback to PACK. * simplify.c (is_constant_array_expr): Moved to beginning of file. (gfc_simplify_pack): New. * check.c (gfc_check_pack): Check that VECTOR has enough elements. Added safeguards for empty arrays. testsuite/ 2009-06-06 Daniel Franke <franke.daniel@gmail.com> PR fortran/32890 * gfortran.dg/pack_assign_1.f90: New. * gfortran.dg/pack_vector_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148237 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (do_mpc_ckconv, do_mpc_arg1): Useghazi2009-06-052-2/+7
| | | | | | | | | | | | mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM. fortran: * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148213 138bc75d-0d04-0410-961f-82ee72b054a4
* * trans-decl.c (gfc_build_qualified_array): Don't skip generationaoliva2009-06-054-9/+31
| | | | | | | | | | | | of range types. * trans.h (struct lang_type): Add base_decls. (GFC_TYPE_ARRAY_BASE_DECL): New. * trans-types.c (gfc_get_array_type_bounds): Initialize base decls proactively and excessively. (gfc_get_array_descr_info): Use existing base decls if available. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148197 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/fortran/burnus2009-06-043-91/+124
| | | | | | | | | | | | | | | | | | | | | 2009-06-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/37203 * check.c (gfc_check_reshape): Additional checks for the SHAPE and ORDER arguments. * simplify.c (gfc_simplify_reshape): Converted argument checks to asserts. gcc/testsuite/ 2009-06-04 Daniel Franke <franke.daniel@gmail.com> PR fortran/37203 * gfortran.dg/reshape_order_5.f90: New. * gfortran.dg/reshape_shape_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148190 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-06-03 Tobias Burnus <burnus@net-b.de>burnus2009-06-035-39/+567
| | | | | | | | | | | | | | | * gfortran.texi: Add mixed-language programming, mention varying string lengths, some clean up of introduction parts. * intrinsic.texi (instrinsic modules): Create @menu for * subsections. (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T. * libgfortran.h: Comment to rember to keep gfortran.texi in * sync. * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>burnus2009-06-033-6/+7
| | | | | | | | | | | | Tobias Burnus <burnus@net-b.de> * iso-c-binding.def: Use INTMAX_TYPE instead of * intmax_type_node. * trans-types.c (init_c_interop_kinds): Remove intmax_type_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148145 138bc75d-0d04-0410-961f-82ee72b054a4
* * module.c (mio_f2k_derived): Initialize cur.aoliva2009-06-032-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148144 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-06-01 Tobias Burnus <burnus@net-b.de>burnus2009-06-012-1/+12
| | | | | | | | | | PR fortran/40309 * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main". (create_main_function): Set main_identifier_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148035 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>burnus2009-05-297-62/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/40019 * trans-types.c (gfc_build_uint_type): Make nonstatic. * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New * prototypes. * trans-types.h (gfc_build_uint_type): Add prototype. * trans-decl.c (gfc_build_intrinsic_function_decls): Build gfor_fndecl_clz128 and gfor_fndecl_ctz128. * trans-intrinsic.c (gfc_conv_intrinsic_leadz, gfc_conv_intrinsic_trailz): Call the right builtins or library functions, and cast arguments to unsigned types first. * simplify.c (gfc_simplify_leadz): Deal with negative arguments. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * intrinsics/bit_intrinsics.c: New file. * gfortran.map (GFORTRAN_1.2): New list. * Makefile.am: Add intrinsics/bit_intrinsics.c. * Makefile.in: Regenerate. 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/40019 * gfortran.dg/leadz_trailz_1.f90: New test. * gfortran.dg/leadz_trailz_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147987 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:ian2009-05-272-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (LINKER, LINKER_FLAGS): Define. (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define. (ALL_LINKERFLAGS): Define. (xgcc$(exeext)): Change $(COMPILER) to $(LINKER). (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise. (collect2$(exeext), mips-tfile, mips-tdump): Likewise. (gcov$(exeext), gcov-dump$(exeext)): Likewise. (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to $(LINKER_FOR_BUILD). (build/gcov-iov$(build_exeext)): Likewise. cp/: * Make-lang.in (g++$(exeext)): Change $(COMPILER) to $(LINKER). (cc1plus-dummy$(exeext), cc1plus$(exeext)): Likewise. fortran/: * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to $(LINKER). (f951$(exeext)): Likewise. java/: * Make-lang.in ($(XGCJ)$(exeext)): Change $(COMPILER) to $(LINKER). (jc1$(exeext), jcf-dump$(exeext), jvgenmain$(exeext)): Likewise. objc/: * Make-lang.in (cc1obj-dummy$(exeext)): Change $(COMPILER) to $(LINKER). (cc1obj$(exeext)): Likewise. objcp/: * Make-lang.in (cc1objplus-dummy$(exeext)): Change $(COMPILER) to $(LINKER). (cc1objplus$(exeext)): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147927 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-27 Tobias Burnus <burnus@net-b.de>burnus2009-05-272-1/+29
| | | | | | | | | | | PR fortran/40270 * trans-decl.c (create_main_function): Mark MAIN__ and argc/argv as TREE_USED and push/pop function_decl context if needed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147926 138bc75d-0d04-0410-961f-82ee72b054a4
* fortran/burnus2009-05-263-128/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-05-26 Tobias Burnus <burnus@net-b.de> PR fortran/39178 * gfortranspec.c (lang_specific_driver): Stop linking libgfortranbegin. * trans-decl.c (gfc_build_builtin_function_decls): Stop making MAIN__ publicly visible. (gfc_build_builtin_function_decls): Add gfor_fndecl_set_args. (create_main_function) New function. (gfc_generate_function_code): Use it. libgfortran/ 2009-05-26 Tobias Burnus <burnus@net-b.de> PR fortran/39178 * runtime/main.c (store_exe_path): Make static and multiple-times callable. (set_args): Call store_exe_path. * libgfortran.h: Remove store_exe_path prototype. * fmain.c (main): Remove store_exe_path call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147883 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-26 Tobias Burnus <burnus@net-b.de>burnus2009-05-262-0/+10
| | | | | | | | | | | | | | PR fortran/40246 * match.c (gfc_match_nullify): NULLify freed pointer. 2009-05-26 Tobias Burnus <burnus@net-b.de> PR fortran/40246 * gfortran.dg/nullify_4.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147879 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:ian2009-05-262-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (COMPILER, COMPILER_FLAGS): Define. (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define. (ALL_COMPILERFLAGS): Define. (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER). (cc1-dummy$(exeext), cc1$(exeext)): Likewise. (collect2$(exeext), collect2.o): Likewise. (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise. (gcc-options.o, version.o, prefix.o, toplev.o): Likewise. ($(out_object_file), mips-tfile, mips-tdump): Likewise. (libbackend.o, intl.o, cppdefault.o): Likewise. (gcov$(exeext), gcov-dump$(exeext)): Likewise. (build/%.o): Use $(COMPILER_FOR_BUILD). (build/gen%$(build_exeext)): Likewise. (build/gcov-iov$(build_exeext)): LIkewise. * config/t-darwin (darwin.o): Use $(COMPILER). (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise. * config/t-sol2 (sol2-c.o): Likewise. (sol2.o): Likewise. * config/t-vxworks (vxworks.o): Likewise. * config/x-darwin (host-darwin.o): Likewise. * config/x-hpux (host-hpux.o): Likewise. * config/x-linux (host-linux.o): Likewise. * config/x-solaris (host-solaris.o): Likewise. * config/alpha/x-alpha (driver-alpha.o): Likewise. * config/arm/t-arm (arm-c.o): Likewise. * config/arm/t-pe (pe.o): Likewise. * config/arm/t-wince-pe (pe.o): Likewise. * config/i386/t-cygming (winnt.o): Likewise. (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise. * config/i386/t-cygwin (cygwin1.o): Likewise. (cygwin2.o): Likewise. * config/i386/t-i386 (i386-c.o): Likewise. * config/i386/t-interix (winnt.o): Likewise. * config/i386/t-netware (netware.o): Likewise. * config/i386/t-nwld (nwld.o): Likewise. * config/i386/x-darwin (host-i386-darwin.o): Likewise. * config/i386/x-i386 (driver-i386.o): Likewise. * config/i386/x-cygwin (host-cygwin.o): Likewise. * config/i386/x-mingw32 (host-mingw32.o): Likewise. * config/ia64/t-ia64 (ia64-c.o): Likewise. * config/m32c/t-m32c (m32c-pragma.o): Likewise. * config/mips/x-native (driver-native.o): Likewise. * config/rs6000/t-rs6000 (rs6000-c.o): Likewise. * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise. * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise. * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise. * config/score/t-score-elf (score7.o): Likewise. (score3.o): Likewise. * config/sh/t-sh (sh-c.o): Likewise. * config/sh/t-symbian (sh-c.o): Likewise. (symbian.o): Likewise. * config/spu/t-spu-elf (spu-c.o): Likewise. * config/v850/t-v850 (v850-c.o): Likewise. * config/v850/t-v850e (v850-c.o): Likewise. ada/: * gcc-interface/Makefile.in (COMPILER): Define. (COMPILER_FLAGS, ALL_COMPILERFLAGS): Define. (.c.o, cio.o, init.o, initialize.o, targext.o): Use $(COMPILER). (seh_init.o, tracebak.o): Likewise. * gcc-interface/Make-lang.in (ada/targext.o): Likewise. (ada/cio.o, ada/init.o, ada/initialize.o, ada/raise.o): Likewise. (ada/tracebak.o, ada/cuintp.o, ada/decl.o, ada/misc.o): Likewise. (ada/targtyps.o, ada/trans.o, ada/utils.o): Likewise. (ada/utils2.o): Likewise. cp/: * Make-lang.in (g++spec.o): Use $(COMPILER). (g++$(exeext), cc1plus-dummy$(exeext)): Likewise. (cc1plus$(exeext)): Likewise. fortran/: * Make-lang.in (gfortranspec.o): Use $(COMPILER). (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise. java/: * Make-lang.in (jvspec.o): Use $(COMPILER). ($(XGCJ)$(exeext), jc1$(exeext), jcf-dump$(exeext)): Likewise. (jvgenmain$(exeext), java/jcf-io.o, java/jcf-path.o): Likewise. objc/: * Make-lang.in (cc1obj-dummy$(exeext)): Use $(COMPILER). (cc1obj$(exeext)): Likewise. objcp/: * Make-lang.in (cc1objplus-dummy$(exeext)): Use $(COMPILER). (cc1objplus$(exeext), objcp/objcp-act.o): Likwise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147873 138bc75d-0d04-0410-961f-82ee72b054a4
* * gfortran.h (GFC_MPC_RND_MODE): New.ghazi2009-05-263-8/+67
| | | | | | | | | | * simplify.c (call_mpc_func): New helper function. (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log, gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147860 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-25 Janus Weil <janus@gcc.gnu.org>janus2009-05-256-10/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/40176 * primary.c (gfc_match_varspec): Handle procedure pointer components with array return value. * resolve.c (resolve_expr_ppc): Ditto. (resolve_symbol): Make sure the interface of a procedure pointer has been resolved. * trans-array.c (gfc_walk_function_expr): Handle procedure pointer components with array return value. * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call, gfc_trans_arrayfunc_assign): Ditto. (gfc_trans_pointer_assignment): Handle procedure pointer assignments, where the rhs is a dummy argument. * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle procedure pointer components with array return value. 2009-05-25 Janus Weil <janus@gcc.gnu.org> PR fortran/40176 * gfortran.dg/proc_ptr_18.f90: New. * gfortran.dg/proc_ptr_19.f90: New. * gfortran.dg/proc_ptr_comp_9.f90: New. * gfortran.dg/proc_ptr_comp_10.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147850 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2009-05-252-0/+9
| | | | | | | | | | | | | | | Dominique Dhumieres PR fortran/35732 PR fortran/39872 * trans-array.c (gfc_conv_ss_startstride): Add one to index. * gfortran.dg/bounds_check_fail_3.f90: New test. * gfortran.dg/bounds_check_fail_4.f90: New test. * gfortran.dg/bounds_check_14.f90: Update test. * gfortran.dg/bound_4.f90: Update test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147842 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/40195fxcoudert2009-05-222-19/+28
| | | | | | | * module.c (read_md5_from_module_file): Close file before returning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147793 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-18 Janus Weil <janus@gcc.gnu.org>janus2009-05-183-2/+19
| | | | | | | | | | | | | | | | | | | | PR fortran/40164 * primary.c (gfc_match_rvalue): Handle procedure pointer components in arrays. * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and array references. (resolve_fl_derived): Procedure pointer components are not required to have constant array bounds in their return value. 2009-05-18 Janus Weil <janus@gcc.gnu.org> PR fortran/40164 * gfortran.dg/proc_ptr_comp_8.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147663 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-18 Janus Weil <janus@gcc.gnu.org>janus2009-05-182-1/+6
| | | | | | | | | * intrinsic.c (add_sym): Fix my last commit (r147655), which broke bootstrap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147662 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-18 Richard Guenther <rguenther@suse.de>rguenth2009-05-182-4/+13
| | | | | | | | | | | PR fortran/40168 * trans-expr.c (gfc_trans_zero_assign): For local array destinations use an assignment from an empty constructor. * gfortran.dg/array_memset_2.f90: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147659 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-18 Janus Weil <janus@gcc.gnu.org>janus2009-05-187-109/+284
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/36947 PR fortran/40039 * expr.c (gfc_check_pointer_assign): Check intents when comparing interfaces. * gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member. (gfc_compare_interfaces): Additional argument. * interface.c (operator_correspondence): Add check for equality of intents, and new argument 'intent_check'. (gfc_compare_interfaces): New argument 'intent_check', which is passed on to operator_correspondence. (check_interface1): Don't check intents when comparing interfaces. (compare_parameter): Do check intents when comparing interfaces. * intrinsic.c (add_sym): Add intents for arguments of intrinsic procedures. (add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3, add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by default. (add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent) : New functions to add intrinsic symbols, specifying custom intents. (add_sym_4s,add_sym_5s): Add new arguments to specify intents. (add_functions,add_subroutines): Add intents for various intrinsics. * resolve.c (check_generic_tbp_ambiguity): Don't check intents when comparing interfaces. * symbol.c (gfc_copy_formal_args_intr): Copy intent. 2009-05-18 Janus Weil <janus@gcc.gnu.org> PR fortran/36947 PR fortran/40039 * gfortran.dg/interface_27.f90: New. * gfortran.dg/interface_28.f90: New. * gfortran.dg/proc_ptr_11.f90: Fixing invalid test case. * gfortran.dg/proc_ptr_result_1.f90: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147655 138bc75d-0d04-0410-961f-82ee72b054a4
* * iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32,fxcoudert2009-05-175-20/+141
| | | | | | | | | | | | | | | | | | REAL64 and REAL128. * gfortran.h (gfc_get_int_kind_from_width_isofortranenv, gfc_get_real_kind_from_width_isofortranenv): New prototypes. * iso-c-binding.def: Update definitions for the INT*_T, INT_LEAST*_T and INT_FAST*_T named parameters. * trans-types.c (get_typenode_from_name, get_int_kind_from_name, gfc_get_real_kind_from_width_isofortranenv): New functions. * gfortran.dg/c_kind_int128_test1.f03: Also test C_INT_FAST128_T. * gfortran.dg/c_kind_int128_test2.f03: Update comment. * gfortran.dg/c_kind_params.f90: Also test int_fast*_t. * gfortran.dg/c_kinds.c: Add int_fast*_t arguments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147635 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/36260fxcoudert2009-05-173-170/+204
| | | | | | | | | | | | | * intrinsic.c (add_functions, add_subroutines): Fix argument names and wrap long lines. * intrinsic.texi: Fix documentation and argument names of LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT, GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT, SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND, SELECTED_REAL_KIND and XOR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147633 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/33197fxcoudert2009-05-164-2/+149
| | | | | | | | | | | | | * intrinsic.c (add_functions): Use ERFC_SCALED simplification. * intrinsic.h (gfc_simplify_erfc_scaled): New prototype. * simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled, gfc_simplify_erfc_scaled): New functions. * gfortran.dg/erf_2.F90: New test. * gfortran.dg/erfc_scaled_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147621 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/31243fxcoudert2009-05-163-5/+50
| | | | | | | | | | | | | | | | | * resolve.c (resolve_substring): Don't allow too large substring indexes. (gfc_resolve_substring_charlen): Fix typo. (gfc_resolve_character_operator): Fix typo. (resolve_charlen): Catch unreasonably large string lengths. * simplify.c (gfc_simplify_len): Don't error out on LEN range checks. * gcc/testsuite/gfortran.dg/string_1.f90: New test. * gcc/testsuite/gfortran.dg/string_2.f90: New test. * gcc/testsuite/gfortran.dg/string_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147619 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog: Forgotten in previous commit.fxcoudert2009-05-161-0/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147616 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/36031fxcoudert2009-05-164-5/+5
| | | | | | | | | | | * decl.c (set_enum_kind): Use global short-enums flag. * gfortran.h (gfc_option_t): Remove short_enums flag. * lang.opt (-fshort-enums): Refer to C documentation. * options.c (gfc_init_options, gfc_handle_option): Use global short-enums flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147615 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-15 Tobias Burnus <burnus@net-b.de>burnus2009-05-156-11/+44
| | | | | | | | | | | | | PR fortran/39352 * f95-lang.c: Add gfc_maybe_initialize_eh. * gfortran.h: Add gfc_maybe_initialize_eh prototype. * Make-lang.in: Add new .h dendencies for f95-lang.c * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh. * misc.c (gfc_free): Avoid #define trickery for free. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147559 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-14 Steven G. Kargl <kargl@gcc.gnu.org>kargl2009-05-142-0/+17
| | | | | | | | * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping of allocate and deallocate statements. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147545 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:ian2009-05-148-19/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * passes.c (finish_optimization_passes): Change i to int. * plugin.c (plugins_active_p): Change event to int. (dump_active_plugins): Likewise. * reginfo.c (invalid_mode_change_p): Change to to unsigned int. Add cast. * tree.c (tree_range_check_failed): Change c to unsigned int. (omp_clause_range_check_failed): Likewise. (build_common_builtin_nodes): Change mode to int. Add cast. * config/ia64/ia64.c (is_emitted): Change r to unsigned int. (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise. * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using ++ or -- with a variable of enum type. cp/: * class.c (layout_class_type): Change itk to unsigned int. * decl.c (finish_enum): Change itk to unsigned int. * parser.c (cp_parser_check_decl_spec): Change ds to int. Remove casts. fortran/: * decl.c (match_attr_spec): Change d to unsigned int. * dump-parse-tree.c (show_namespace): Change op to int. Add cast. * interface.c (gfc_check_interfaces): Change i to int. Add casts. * module.c (read_module): Change i to int. Add cast. (write_module): Change i to int. * symbol.c (gfc_get_namespace): Change in to int. (gfc_free_namespace): Change i to int. * trans-io.c (gfc_build_io_library_fndecls): Change ptype to unsigned int. Add cast. * trans-types.c (gfc_init_kinds): Change mode to unsigned int. Add casts. testsuite/: * gcc.dg/Wcxx-compat-9.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147544 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-14 Daniel Kraft <d@domob.eu>domob2009-05-142-5/+9
| | | | | | | | | PR fortran/40045 * dump-parse-tree.c (show_typebound): Fix missing adaption to new type-bound procedure storage structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147540 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-14 Janus Weil <janus@gcc.gnu.org>janus2009-05-143-26/+30
| | | | | | | | | | | | | | | | | | | | PR fortran/39996 * decl.c (gfc_match_function_decl): Use gfc_add_type. * symbol.c (gfc_add_type): Better checking for duplicate types in function declarations. And: Always give an error for duplicte types, not just a warning with -std=gnu. 2009-05-14 Janus Weil <janus@gcc.gnu.org> PR fortran/39996 * gfortran.dg/func_decl_2.f90: Modified (replacing warnings by errors). * gfortran.dg/duplicate_type_2.f90: Ditto. * gfortran.dg/duplicate_type_3.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147528 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/39865jakub2009-05-147-67/+130
| | | | | | | | | | | | | | | | | | | | | | | | * io.c (resolve_tag_format): CHARACTER array in FMT= argument isn't an extension. Reject non-CHARACTER array element of assumed shape or pointer or assumed size array. * trans-array.c (array_parameter_size): New function. (gfc_conv_array_parameter): Add size argument. Call array_parameter_size if it is non-NULL. * trans-array.h (gfc_conv_array_parameter): Adjust prototype. * trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign): Adjust callers. * trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise. * trans-io.c (gfc_convert_array_to_string): Rewritten. * gfortran.dg/pr39865.f90: New test. * gfortran.dg/hollerith.f90: Don't expect errors for CHARACTER arrays in FMT=. * gfortran.dg/hollerith_f95.f90: Likewise. * gfortran.dg/hollerith6.f90: New test. * gfortran.dg/hollerith7.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147507 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org>kargl2009-05-1314-241/+272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gfortran.h (gfc_code): Rename struct member expr to expr1. * openmp.c (resolve_omp_atomic): Update expr to expr1. * interface.c (gfc_extend_assign): Ditto. * trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment, gfc_trans_init_assign): Ditto. * dump-parse-tree.c (show_code_node): Ditto. * trans-openmp.c (gfc_trans_omp_atomic): Ditto. * trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call, gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1, gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select, gfc_trans_logical_select, gfc_trans_character_select forall_make_variable_temp, check_forall_dependencies gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3 gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto. * io.c (match_io_element, gfc_match_inquire): Ditto. * resolve.c (resolve_typebound_call, resolve_ppc_call, resolve_allocate_expr, resolve_allocate_deallocate, resolve_select, resolve_transfer, resolve_where, gfc_resolve_assign_in_forall, gfc_resolve_blocks, resolve_code, build_init_assign): Ditto. * st.c (gfc_free_statement): Ditto. * match.c (gfc_match_assignment, gfc_match_pointer_assignment, match_arithmetic_if, gfc_match_if, gfc_match_elseif gfc_match_stopcode, gfc_match_assign, gfc_match_goto, gfc_match_nullify, match_typebound_call, gfc_match_call gfc_match_select, match_simple_where, gfc_match_where gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto. * trans-io.c (gfc_trans_transfer): Ditto. * parse.c (parse_where_block, parse_if_block): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147497 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-12 Steven G. Kargl <kargl@gcc.gnu.org>kargl2009-05-137-34/+45
| | | | | | | | | | | | | | | * gfortran.h (gfc_code): Rename struct member label to label1. * dump-parse-tree.c (show_code_node): Update symbol. * trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto, gfc_trans_arithmetic_if)": Ditto. * resolve.c (gfc_resolve_blocks, resolve_code): Ditto. * match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label, gfc_match_assign, gfc_match_goto): Ditto. * parse.c (parse_do_block): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147489 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-13 Tobias Burnus <burnus@net-b.de>burnus2009-05-137-1/+22
| | | | | | | | | | | | | PR fortran/34153 * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE. * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE. * trans.c (gfc_trans_code): Ditto. * resolve.c (resolve_code): Ditto. * st.c (gfc_free_statement): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147477 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (-fwhole-file): Update docs.hubicka2009-05-131-2/+2
| | | | | | | * options.c (gfc_post_options): -fwhole-program imply -fwhole-file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147472 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-12 Tobias Burnus <burnus@net-b.de>burnus2009-05-122-3/+8
| | | | | | | | | | | | | | | | | | PR fortran/40110 * decl.c (gfc_match_kind_spec): Turn C kind error into a * warning. 2009-05-12 Tobias Burnus <burnus@net-b.de> PR fortran/40110 * gfortran.dg/bind_c_usage_18.f90: Change dg-error into dg-warning. * gfortran.dg/c_kind_tests_2.f03: Ditto. * gfortran.dg/interop_params.f03: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147452 138bc75d-0d04-0410-961f-82ee72b054a4
* * resolve.c (check_host_association): Initialize tail.sje2009-05-112-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147381 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-11 Janus Weil <janus@gcc.gnu.org>janus2009-05-112-8/+12
| | | | | | | | | | | | | | | | PR fortran/40089 * resolve.c (resolve_fl_derived): Only return FAILURE if gfc_notify_std fails. 2009-05-11 Janus Weil <janus@gcc.gnu.org> PR fortran/40089 * gfortran.dg/proc_ptr_comp_7.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147379 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:ian2009-05-114-28/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (enum profile_status): Break out of struct control_flow_graph. * cgraph.h (struct inline_summary): Break out of struct cgraph_local_info. * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out of struct cgraph_order_sort. * combine.c (enum undo_kind): New enum, broken out of struct undo. * cse.c (struct branch_path): Break out of struct cse_basic_block_data. * except.h (enum eh_region_type): Break out of struct eh_region. * gcc.c (enum add_del): Break out of struct modify_target. * genrecog.c (enum decision_type): Break out of struct decision_test. * ggc-page.c (struct ggc_pch_ondisk): Break out of struct ggc_pch_data. * matrix-reorg.c (struct free_info): Break out of struct matrix_info. * regmove.c (enum match_use): New enum, broken out of struct match. * sched-int.h (enum post_call_group): New enum, broken out of struct deps. (struct deps_reg): Break out of struct deps. * target.h (struct asm_int_op): Break out of struct gcc_target. * tree-eh.c (struct goto_queue_node): Break out of struct leh_tf_state. * tree-inline.h (enum copy_body_cge_which): Break out of copy_body_data. * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass. * c-decl.c (in_struct, struct_types): New static variables. (pushtag): Add loc parameter. Change all callers. (lookup_tag): Add ploc parameter. Change all callers. (check_compound_literal_type): New function. (parser_xref_tag): Add loc parameter. Change all callers. If -Wc++-compat, warn about struct/union/enum types defined within a struct or union. (start_struct): Add enclosing_in_struct, enclosing_struct_types, and loc parameters. Change all callers. Change error calls to error_at, using loc. For a redefinition, if the location of the original definition is known, report it. Set in_struct and struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof. (finish_struct): Add new parameters enclosing_in_struct and enclosing_struct_types. Change all callers. Set C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined in the struct. If in a struct, add this struct to struct_types. (start_enum): Add loc parameter. Change all callers. Use error_at for errors, using loc. For a redefinition, if the location of the original definition is known, report it. If in a struct, add this enum type to struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof. * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat. (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate. (c_parser_enum_specifier): Get enum location for start_enum. (c_parser_struct_or_union_specifier): Get struct location for start_struct. Save in_struct and struct_types status between start_struct and finish_struct. (c_parser_cast_expression): Get location of cast. (c_parser_alignof_expression): Get location of type. (c_parser_postfix_expression): Likewise. (c_parser_postfix_expression_after_paren_type): Add type_loc parameter. Change all callers. Call check_compound_literal_type. Use type_loc for error about variable size type. * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use of an enum constant from an enum type defined in a struct or union. (c_cast_expr): Add loc parameter. Change all callers. If -Wc++-compat, warn about defining a type in a cast. * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define. (start_enum, start_struct, finish_struct): Update declarations. (parser_xref_tag, c_cast_expr): Update declarations. (check_compound_literal_type): Declare. fortran/: * gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of gfc_omp_clauses. (enum gfc_omp_default_sharing): Likewise. * module.c (enum gfc_rsym_state): New enum, broken out of pointer_info. (enum gfc_wsym_state): Likewise. * parse.c (enum state_order): New enum, broken out of st_state. objc/: * objc-act.c (objc_building_struct): New static variable. (objc_in_struct, objc_struct_types): New static variables. (objc_start_struct, objc_finish_struct): New static functions. (generate_struct_by_value_array): Call objc_start_struct instead of start_struct, and call objc_finish_struct instead of finish_struct. (objc_build_struct, build_objc_symtab_template): Likewise. (build_module_descriptor): Likewise. (build_next_objc_exception_stuff): Likewise. (build_protocol_template): Likewise. (build_method_prototype_list_template): Likewise. (build_method_prototype_template): Likewise. (build_category_template, build_selector_template): Likewise. (build_class_template, build_super_template): Likewise. (build_ivar_template, build_ivar_list_template): Likewise. (build_method_list_template): Likewise. (build_method_template): Likewise. objcp/: * objcp-decl.h (start_struct): Add three new, ignored, macro parameters. (finish_struct): Add two new, ignored, macro parameters. testsuite/: * gcc.dg/Wcxx-compat-7.c: New testcase. * gcc.dg/Wcxx-compat-8.c: New testcase. * gcc.dg/c99-tag-1.c: Recognize new "originally defined here" notes * gcc.dg/pr17188-1.c: Likewise. * gcc.dg/pr39084.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147358 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-10 Paul Thomas <pault@gcc.gnu.org>pault2009-05-102-3/+13
| | | | | | | | | | | | | | | PR fortran/40018 * trans-array.c (gfc_trans_array_constructor_value): Fold convert numeric constants. (gfc_build_constant_array_constructor): The same. 2009-05-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/40018 * gfortran.dg/array_constructor_31.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147331 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-10 Paul Thomas <pault@gcc.gnu.org>pault2009-05-106-65/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR fortran/38863 * trans-expr.c (gfc_conv_operator_assign): Remove function. * trans.h : Remove prototype for gfc_conv_operator_assign. * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize derivde types with intent(out). (gfc_trans_call): Add mask, count1 and invert arguments. Add code to use mask for WHERE assignments. (gfc_trans_forall_1): Use new arguments for gfc_trans_call. (gfc_trans_where_assign): The gfc_symbol argument is replaced by the corresponding code. If this has a resolved_sym, then gfc_trans_call is called. The call to gfc_conv_operator_assign is removed. (gfc_trans_where_2): Change the last argument in the call to gfc_trans_where_assign. * trans-stmt.h : Modify prototype for gfc_trans_call. * trans.c (gfc_trans_code): Use new args for gfc_trans_call. 2009-05-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/38863 * gfortran.dg/dependency_24.f90: New test. * gfortran.dg/dependency_23.f90: Clean up module files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147329 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-08 Janus Weil <janus@gcc.gnu.org>janus2009-05-082-7/+17
| | | | | | | | | | | | | | | | PR fortran/39876 * intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if the symbol is a module procedure. 2009-05-08 Janus Weil <janus@gcc.gnu.org> PR fortran/39876 * gfortran.dg/intrinsic_3.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147279 138bc75d-0d04-0410-961f-82ee72b054a4
* 2009-05-08 Tobias Burnus <burnus@net-b.de>burnus2009-05-082-1/+5
| | | | | | | | * invoke.texi: Add do/recursion to the -fcheck= summary. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147268 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/38830fxcoudert2009-05-072-1/+52
| | | | | | | | * gfortran.texi: Document that we don't support variable FORMAT expressions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147258 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/39576fxcoudert2009-05-072-0/+6
| | | | | | | * error.c (error_print): Add missing break statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147257 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/36382fxcoudert2009-05-072-0/+7
| | | | | | | | * invoke.texi: Document that -fdollar-ok does not allow $ to be used in IMPLICIT statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147256 138bc75d-0d04-0410-961f-82ee72b054a4