- 13 Dec, 2005 1 commit
-
-
rsandifo authored
* Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h. * gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag. * dependency.h (gfc_get_noncopying_intrinsic_argument): Declare. (gfc_check_fncall_dependency): Change prototype. * dependency.c (gfc_get_noncopying_intrinsic_argument): New function. (gfc_check_argument_var_dependency): New function, split from gfc_check_fncall_dependency. (gfc_check_argument_dependency): New function. (gfc_check_fncall_dependency): Replace the expression parameter with separate symbol and argument list parameters. Generalize the function to handle dependencies for any type of expression, not just variables. Accept a further argument giving the intent of the expression being tested. Ignore intent(in) arguments if that expression is also intent(in). * resolve.c: Include dependency.h. (find_noncopying_intrinsics): New function. (resolve_function, resolve_call): Call it on success. * trans-array.h (gfc_conv_array_transpose): Declare. (gfc_check_fncall_dependency): Remove prototype. * trans-array.c (gfc_conv_array_transpose): New function. * trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the libcall handling if the expression is to be evaluated inline. Add a case for handling inline transpose()s. * trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new interface provided by gfc_check_fncall_dependency. libgfortran/ * m4/matmul.m4: Use a different order in the special case of a transposed first argument. * generated/matmul_c4.c, generated/matmul_c8.c, generated/matmul_c10.c, * generated/matmul_c16.c, generated/matmul_i4.c, generated/matmul_i8.c, * generated/matmul_i10.c, generated/matmul_r4.c, generated/matmul_r8.c * generated/matmul_r10.c, generated/matmul_r16.c: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108459 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 12 Dec, 2005 1 commit
-
-
kargl authored
* match.c (gfc_match_equivalence): Count number of objects. gfortran.dg/equiv_5.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108426 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 11 Dec, 2005 1 commit
-
-
aldyh authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108381 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 10 Dec, 2005 3 commits
-
-
fxcoudert authored
* io.c (resolve_tag): Add correct diagnostic for F2003 feature. * gfortran.dg/iostat_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108360 138bc75d-0d04-0410-961f-82ee72b054a4
-
tkoenig authored
PR fortran/23815 * io.c (top level): Add convert to io_tag. (resolve_tag): convert is GFC_STD_GNU. (match_open_element): Add convert. (gfc_free_open): Likewise. (gfc_resolve_open): Likewise. (gfc_free_inquire): Likewise. (match_inquire_element): Likewise. * dump-parse-tree.c (gfc_show_code_node): Add convet for open and inquire. gfortran.h: Add convert to gfc_open and gfc_inquire. * trans-io.c (gfc_trans_open): Add convert. (gfc_trans_inquire): Likewise. * ioparm.def: Add convert to open and inquire. * gfortran.texi: Document CONVERT. 2005-12-10 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/23815 * io/file_pos.c (unformatted_backspace): If flags.convert does not equal CONVERT_NATIVE, reverse the record marker. * io/open.c: Add convert_opt[]. (st_open): If no convert option is given, set CONVERT_NATIVE. If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have a big- or little-endian system). * io/transfer.c (unformatted_read): Remove unused attribute from arguments. If we need to reverse bytes, break up large transfers into a loop. Split complex numbers into its two parts. (unformatted_write): Likewise. (us_read): If flags.convert does not equal CONVERT_NATIVE, reverse the record marker. (next_record_w): Likewise. (reverse_memcpy): New function. * io/inquire.c (inquire_via_unit): Implement convert. * io/io.h (top level): Add enum unit_convert. Add convert to st_parameter_open and st_parameter_inquire. Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT. Increase padding for st_parameter_dt. Declare reverse_memcpy(). 2005-12-10 Thomas Koenig <Thomas.Koenig@online.de> PR fortran/23815 * gfortran.dg/unf_io_convert_1.f90: New test. * gfortran.dg/unf_io_convert_2.f90: New test. * gfortran.dg/unf_io_convert_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108358 138bc75d-0d04-0410-961f-82ee72b054a4
-
sayle authored
PR fortran/22527 * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct integer type when building an inequality. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108341 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 09 Dec, 2005 1 commit
-
-
rguenth authored
* f95-lang.c (build_builtin_fntypes): Use correct return types, as indicated by comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108277 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 08 Dec, 2005 2 commits
-
-
fxcoudert authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108242 138bc75d-0d04-0410-961f-82ee72b054a4
-
eedelman authored
2005-12-08 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25292 * check.c (gfc_check_associated): Allow function results as actual arguments to ASSOCIATED. Moved a misplaced comment. testsuite/ 2005-12-08 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25292 * gfortran.dg/associated_1.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108238 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 07 Dec, 2005 2 commits
-
-
amodra authored
* doc/sourcebuild.texi (all.build, install-normal): Remove. * configure.ac: Remove all.build and install-normal from target_list * configure: Regenerate. * Makefile.in (install): Don't depend on install-normal. gcc/java/ * Make-lang.in (java.all.build, java.install-normal): Remove. gcc/objc/ * Make-lang.in (objc.all.build, objc.install-normal): Remove. gcc/objcp/ * Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove. gcc/cp/ * Make-lang.in (c++.all.build, c++.install-normal): Remove. gcc/ada/ * Make-lang.in (ada.install-normal): Remove. gcc/fortran/ * Make-lang.in (fortran.all.build, fortran.install-normal): Remove. gcc/treelang/ * Make-lang.in (treelang.all.build, treelang.install-normal): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108158 138bc75d-0d04-0410-961f-82ee72b054a4
-
amodra authored
* doc/gty.texi: Remove instructions for adding a dependency on s-gtype. * Makefile.in: Add code to compute some dependencies on s-gtype automatically. Remove the declaration of those dependencies. gcc/java/ * Make-lang.in: Remove all dependencies on s-gtype, except for gt-java-parse.h. gcc/objc/ * Make-lang.in: Remove all dependencies on s-gtype. gcc/objcp/ * Make-lang.in: Remove all dependencies on s-gtype. gcc/cp/ * Make-lang.in: Remove all dependencies on s-gtype. gcc/ada/ * Make-lang.in: Remove all dependencies on s-gtype. gcc/fortran/ * Make-lang.in: Remove all dependencies on s-gtype, except for gt-fortran-trans.h. gcc/treelang/ * Make-lang.in: Remove all dependencies on s-gtype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108155 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 03 Dec, 2005 1 commit
-
-
fxcoudert authored
* parse.c (next_free): Use new prototype for gfc_match_st_label. Correctly emit hard error if a label is zero. * match.c (gfc_match_st_label): Never allow zero as a valid label. (gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for gfc_match_st_label. * primary.c (): Use new prototype for gfc_match_st_label. * io.c (): Likewise. * match.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107999 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 02 Dec, 2005 2 commits
-
-
rguenth authored
* trans.h (build1_v): Use build1, not build to build the void typed tree. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107917 138bc75d-0d04-0410-961f-82ee72b054a4
-
kargl authored
* decl.c (gfc_match_old_kind_spec): Improve handling of old style COMPLEX*N git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107853 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 01 Dec, 2005 1 commit
-
-
pault authored
PR fortran/24789 * trans-decl.c (gfc_get_symbol_decl): Move the expression for unit size of automatic character length, dummy pointer array elements down a few lines from the version that fixed PR15809. 2005-12-01 Paul Thomas <pault@gcc.gnu.org> PR fortran/24789 * gfortran.dg/auto_char_dummy_array_2.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107805 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 30 Nov, 2005 2 commits
-
-
kargl authored
PR fortran/21302 * lang.opt: New options -ffree-line-length- and -ffree-line-length-none. * gfortran.h: Add free_line_length and add description of free_line_length and fixed_line_length. * options.c (gfc_init_options, gfc_handle_option): Initialize and set free_line_length and fixed_line_length. * scanner.c (load_line): Set free_line_length to 132 and fixed_line_length to 72 or user requested values. * scanner.c: Typo in comment. * invoke.texi: Document -ffree-line-length- and -ffree-line-length-none gfortran.dg/line_length_1.f: New test: gfortran.dg/line_length_2.f90: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107745 138bc75d-0d04-0410-961f-82ee72b054a4
-
pault authored
PR fortran/15809 * trans-decl.c (gfc_get_symbol_decl): In the case of automatic character length, dummy pointer arrays, build an expression for unit size of the array elements, to be picked up and used in the descriptor dtype. * trans-io.c (gfc_trans_transfer): Modify the detection of components of derived type arrays to use the gfc_expr references instead of the array descriptor dtype. This allows the latter to contain expressions. 2005-11-30 Erik Edelmann <erik.edelmann@iki.fi> PR fortran/15809 * trans-array.c (gfc_trans_deferred_array): Allow PARM_DECLs past in addition to VAR_DECLs. 2005-11-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/15809 * gfortran.dg/auto_char_dummy_array.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107727 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 29 Nov, 2005 1 commit
-
-
jakub authored
* gfortran.dg/open_access_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107665 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 27 Nov, 2005 3 commits
-
-
kargl authored
* gfortran.h: remove superfluous whitespace and use GNU comment-style for the documentation of backend_decl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107571 138bc75d-0d04-0410-961f-82ee72b054a4
-
kargl authored
* primary.c (match_boz_constant): Implement postfix BOZ constants; (match_string_constant): Peek for b, o, z, and x * gfortran.dg/boz_6.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107568 138bc75d-0d04-0410-961f-82ee72b054a4
-
fxcoudert authored
* iresolve.c (gfc_resolve_dim, gfc_resolve_mod, gfc_resolve_modulo): When arguments have different kinds, fold the lower one to the largest kind. * check.c (gfc_check_a_p): Arguments of different kinds is not a hard error, but an extension. * simplify.c (gfc_simplify_dim, gfc_simplify_mod, gfc_simplify_modulo): When arguments have different kinds, fold the lower one to the largest kind. * gfortran.dg/modulo_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107566 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 21 Nov, 2005 2 commits
-
-
jakub authored
PR fortran/14943 PR fortran/21647 * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def. * dump-parse-tree.c (gfc_show_code_node): Dump c->block for EXEC_{READ,WRITE,IOLENGTH} nodes. * io.c (terminate_io, match_io, gfc_match_inquire): Put data transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block. * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}. * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor, ioparm_list_format, ioparm_library_return, ioparm_iostat, ioparm_exist, ioparm_opened, ioparm_number, ioparm_named, ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in, ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len, ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len, ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len, ioparm_position, ioparm_position_len, ioparm_action, ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad, ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance, ioparm_advance_len, ioparm_name, ioparm_name_len, ioparm_internal_unit, ioparm_internal_unit_len, ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len, ioparm_direct, ioparm_direct_len, ioparm_formatted, ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len, ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len, ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name, ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg, ioparm_iomsg_len, ioparm_var): Remove. (enum ioparam_type, enum iofield_type, enum iofield, enum iocall): New enums. (gfc_st_parameter_field, gfc_st_parameter): New typedefs. (st_parameter, st_parameter_field, iocall): New variables. (ADD_FIELD, ADD_STRING): Remove. (dt_parm, dt_post_end_block): New variables. (gfc_build_st_parameter): New function. (gfc_build_io_library_fndecls): Use it. Initialize iocall array rather than ioparm_*, add extra first arguments to the function types. (set_parameter_const): New function. (set_parameter_value): Add type argument, return a bitmask. Changed to set a field in automatic structure variable rather than set a field in a global _gfortran_ioparm variable. (set_parameter_ref): Likewise. If requested var has different size than what field should point to, call with a temporary and then copy into the user variable. Add postblock argument. (set_string): Remove var_len argument, add type argument, return a bitmask. Changed to set fields in automatic structure variable rather than set a field in a global _gfortran_ioparm variable. (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments, add var argument. Return a bitmask. Changed to set fields in automatic structure variable rather than set a field in a global _gfortran_ioparm variable. (set_flag): Removed. (io_result): Add var argument. Changed to read common.flags field from automatic structure variable and bitwise AND it with 3. (set_error_locus): Add var argument. Changed to set fields in automatic structure variable rather than set a field in a global _gfortran_{filename,line} variables. (gfc_trans_open): Use gfc_start_block rather than gfc_init_block. Create a temporary st_parameter_* structure. Adjust callers of all above mentioned functions. Pass address of the temporary variable as first argument to the generated function call. Use iocall array rather than ioparm_* separate variables. (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise. (build_dt): Likewise. Change first argument to tree from tree *. Don't dereference code->ext.dt if last_dt == INQUIRE. Emit IOLENGTH argument setup here. Set dt_parm/dt_post_end_block variables and gfc_trans_code the nested data transfer commands in code->block. (gfc_trans_iolength): Just set last_dt and call build_dt immediately. (transfer_namelist_element): Pass address of dt_parm variable to generated functions. Use iocall array rather than ioparm_* separate variables. (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind, gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array rather than ioparm_* separate variables. (gfc_trans_dt_end): Likewise. Pass address of dt_parm variable as first argument to generated function. Adjust io_result caller. Prepend dt_post_end_block before io_result code. (transfer_expr): Use iocall array rather than ioparm_* separate variables. Pass address of dt_parm variables as first argument to generated functions. * ioparm.def: New file. gcc/testsuite/ PR fortran/24774 * gfortran.dg/inquire_9.f90: New test. PR fortran/21647 * gfortran.fortran-torture/execute/inquire_5.f90: New test. libgfortran/ PR fortran/24774 PR fortran/14943 PR fortran/21647 * Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths, add -D_GNU_SOURCE. * Makefile.in: Regenerated. * acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD, LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros. * configure.ac: Add them. * configure: Rebuilt. * config.h.in: Rebuilt. * libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1. * libgfortran.h (library_start, show_locus, internal_error, generate_error, find_option): Add st_parameter_common * argument. (library_end): Change into a dummy macro. * io/io.h: Include gthr.h. (SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK. (CHARACTER): Remove define. (st_parameter, global_t): Remove typedef. (ioparm, g, ionml, current_unit): Remove variables. (init_error_stream): Remove prototype. (CHARACTER1, CHARACTER2): Define. (st_parameter_common, st_parameter_open, st_parameter_close, st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New typedefs. (IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR, IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END, IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK, IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS, IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK, IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION, IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS, IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED, IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED, IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT, IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS, IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK, IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION, IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD, IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL, IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED, IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ, IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE, IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE, IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH, IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE, IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME, IOPARM_DT_IONML_SET): Define. (gfc_unit): Add lock, waiting and close fields. Change file from flexible array member into pointer to char. (open_external): Add st_parameter_open * argument. (find_file, file_exists): Add file and file_len arguments. (flush_all_units): New prototype. (max_offset, unit_root, unit_lock): New variable. (is_internal_unit, is_array_io, next_array_record, parse_format, next_format, unget_format, format_error, read_block, write_block, next_record, convert_real, read_a, read_f, read_l, read_x, read_radix, read_decimal, list_formatted_read, finish_list_read, namelist_read, namelist_write, write_a, write_b, write_d, write_e, write_en, write_es, write_f, write_i, write_l, write_o, write_x, write_z, list_formatted_write, get_unit): Add st_parameter_dt * argument. (insert_unit): Remove prototype. (find_or_create_unit, unlock_unit): New prototype. (new_unit): Return gfc_unit *. Add st_parameter_open * and gfc_unit * arguments. (free_fnodes): Remove prototype. (free_format_data): New prototype. (scratch): Remove. (init_at_eol): Remove prototype. (free_ionml): New prototype. (inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked): New inline functions. * io/unit.c (max_offset, unit_root, unit_lock): New variables. (insert): Adjust os_error caller. (insert_unit): Made static. Allocate memory here, initialize lock and after inserting it return it, locked. (delete_unit): Adjust for deletion of g. (find_unit_1): New function. (find_unit): Use it. (find_or_create_unit): New function. (get_unit): Add dtp argument, change meaning of the int argument as creation request flag. Adjust for different st_* calling conventions, lock internal unit's lock before returning it and removal of g. Call find_unit_1 instead of find_unit. (is_internal_unit, is_array_io): Add dtp argument, adjust for removal of most of global variables. (init_units): Initialize unit_lock. Adjust insert_unit callers and adjust for g removal. (close_unit_1): New function. (close_unit): Use it. (unlock_unit): New function. (close_units): Lock unit_lock, use close_unit_1 rather than close_unit. * io/close.c (st_close): Add clp argument. Adjust for new st_* calling conventions and internal function API changes. * io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush): Add fpp argument. Adjust for new st_* calling conventions and internal function API changes. (formatted_backspace, unformatted_backspace): Likewise. Add u argument. * io/open.c (edit_modes, st_open): Add opp argument. Adjust for new st_* calling conventions and internal function API changes. (already_open): Likewise. If not HAVE_UNLINK_OPEN_FILE, unlink scratch file. Instead of calling close_unit just call sclose, free u->file if any and clear a few u fields before calling new_unit. (new_unit): Return gfc_unit *. Add opp and u arguments. Adjust for new st_* calling conventions and internal function API changes. Don't allocate unit here, rather than work with already created unit u already locked on entry. In case of failure, close_unit it. * io/unix.c: Include unix.h. (BUFFER_SIZE, unix_stream): Moved to unix.h. (unit_to_fd): Add unlock_unit call. (tempfile): Add opp argument, use its fields rather than ioparm. (regular_file): Likewise. (open_external): Likewise. Only unlink file if fd >= 0. (init_error_stream): Add error argument, set structure it points to rather than filling static variable and returning its address. (FIND_FILE0_DECL, FIND_FILE0_ARGS): Define. (find_file0): Use them. Don't crash if u->s == NULL. (find_file): Add file and file_len arguments, use them instead of ioparm. Add locking. Pass either an array of 2 struct stat or file and file_len pair to find_file0. (flush_all_units_1, flush_all_units): New functions. (file_exists): Add file and file_len arguments, use them instead of ioparm. * io/unix.h: New file. * io/lock.c (ioparm, g, ionml): Remove variables. (library_start): Add cmp argument, adjust for new st_* calling conventions. (library_end): Remove. (free_ionml): New function. * io/inquire.c (inquire_via_unit, inquire_via_filename, st_inquire): Add iqp argument, adjust for new st_* calling conventions and internal function API changes. * io/format.c (FARRAY_SIZE): Decrease to 64. (fnode_array, format_data): New typedefs. (avail, array, format_string, string, error, saved_token, value, format_string_len, reversion_ok, saved_format): Remove variables. (colon_node): Add const. (free_fnode, free_fnodes): Remove. (free_format_data): New function. (next_char, unget_char, get_fnode, format_lex, parse_format_list, format_error, parse_format, revert, unget_format, next_test): Add fmt or dtp arguments, pass it all around, adjust for internal function API changes and adjust for removal of global variables. (next_format): Likewise. Constify return type. (next_format0): Constify return type. * io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos, skips, pending_spaces, scratch, line_buffer, advance_status, transfer): Remove variables. (transfer_integer, transfer_real, transfer_logical, transfer_character, transfer_complex, transfer_array, current_mode, read_sf, read_block, read_block_direct, write_block, write_block_direct, unformatted_read, unformatted_write, type_name, write_constant_string, require_type, formatted_transfer_scalar, us_read, us_write, pre_position, data_transfer_init, next_record_r, next_record_w, next_record, finalize_transfer, iolength_transfer, iolength_transfer_init, st_iolength, st_iolength_done, st_read, st_read_done, st_write, st_write_done, st_set_nml_var, st_set_nml_var_dim, next_array_record): Add dtp argument, pass it all around, adjust for internal function API changes and removal of global variables. * io/list_read.c (repeat_count, saved_length, saved_used, input_complete, at_eol, comma_flag, last_char, saved_string, saved_type, namelist_mode, nml_read_error, value, parse_err_msg, nml_err_msg, prev_nl): Remove variables. (push_char, free_saved, next_char, unget_char, eat_spaces, eat_separator, finish_separator, nml_bad_return, convert_integer, parse_repeat, read_logical, read_integer, read_character, parse_real, read_complex, read_real, check_type, list_formatted_read_scalar, list_formatted_read, finish_list_read, find_nml_node, nml_untouch_nodes, nml_match_name, nml_query, namelist_read): Add dtp argument, pass it all around, adjust for internal function API changes and removal of global variables. (nml_parse_qualifier): Likewise. Add parse_err_msg argument. (nml_read_obj): Likewise. Add pprev_nl, nml_err_msg, clow and chigh arguments. (nml_get_obj_data): Likewise. Add pprev_nl and nml_err_msg arguments. (init_at_eol): Removed. * io/read.c (convert_real, read_l, read_a, next_char, read_decimal, read_radix, read_f, read_x): Add dtp argument, pass it all around, adjust for internal function API changes and removal of global variables. (set_integer): Adjust internal_error caller. * io/write.c (no_leading_blank, nml_delim): Remove variables. (write_a, calculate_sign, calculate_G_format, output_float, write_l, write_float, write_int, write_decimal, write_i, write_b, write_o, write_z, write_d, write_e, write_f, write_en, write_es, write_x, write_char, write_logical, write_integer, write_character, write_real, write_complex, write_separator, list_formatted_write_scalar, list_formatted_write, nml_write_obj, namelist_write): Add dtp argument, pass it all around, adjust for internal function API changes and removal of global variables. (extract_int, extract_uint, extract_real): Adjust internal_error callers. * runtime/fpu.c (_GNU_SOURCE): Don't define here. * runtime/error.c: Include ../io/unix.h. (filename, line): Remove variables. (st_printf): Pass address of a local variable to init_error_stream. (show_locus): Add cmp argument. Use fields it points to rather than filename and line variables. (os_error, runtime_error): Remove show_locus calls. (internal_error): Add cmp argument. Pass it down to show_locus. (generate_error): Likewise. Use flags bitmask instead of non-NULL check for iostat and iomsg parameter presence, adjust for st_* calling convention changes. * runtime/stop.c (stop_numeric, stop_string): Remove show_locus calls. * runtime/pause.c (pause_numeric, pause_string): Likewise. * runtime/string.c: Include ../io/io.h. (find_option): Add cmp argument. Pass it down to generate_error. * intrinsics/flush.c (recursive_flush): Remove. (flush_i4, flush_i8): Use flush_all_units. Add unlock_unit call. * intrinsics/rand.c: Include ../io/io.h. (rand_seed_lock): New variable. (srand, irand): Add locking. (init): New constructor function. * intrinsics/random.c: Include ../io/io.h. (random_lock): New variable. (random_r4, random_r8, arandom_r4, arandom_r8): Add locking. (random_seed): Likewise. open failed if fd < 0. Set i correctly. (init): New constructor function. * intrinsics/system_clock.c (tp0, t0): Remove. (system_clock_4, system_clock_8): Don't subtract tp0/t0 from current time, use just integer arithmetics. * intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add unlock_unit calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107328 138bc75d-0d04-0410-961f-82ee72b054a4
-
pault authored
PR fortran/24223 * resolve.c (resolve_contained_fntype) Error if an internal function is assumed character length. PR fortran/24705 * trans-decl.c (gfc_create_module_variable) Skip ICE in when backend decl has been built and the symbol is marked as being in an equivalence statement. 2005-11-21 Paul Thomas <pault@gcc.gnu.org PR fortran/24223 * gfortran.dg/substring_equivalence.f90: New test. PR fortran/24705 * gfortran.dg/auto_internal_assumed.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107310 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 20 Nov, 2005 1 commit
-
-
toon authored
* invoke.texi: Remove superfluous @item. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107249 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 19 Nov, 2005 1 commit
-
-
jb authored
2005-11-19 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/24862 * trans-io.c (gfc_trans_transfer): Handle arrays of derived type. testsuite ChangeLog: 2005-11-19 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/24862 * gfortran.dg/arrayio_derived_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107228 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 17 Nov, 2005 1 commit
-
-
fxcoudert authored
* scanner.c (gfc_open_included_file): Add an extra include_cwd argument. Only include files in the current working directory if its value is true. * gfortran.h: Change prototype for gfc_open_included_file. (load_file): Don't search for include files in the current working directory. * options.c (gfc_post_options): Add the directory of the source file to the list of paths for included files. * module.c (gfc_use_module): Look for module files in the current directory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107120 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 15 Nov, 2005 1 commit
-
-
amodra authored
* trans-types.c (gfc_init_kinds): Use one less for max_exponent of IBM extended double format. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107041 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 13 Nov, 2005 1 commit
-
-
fxcoudert authored
* 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_che...
-
- 11 Nov, 2005 1 commit
-
-
kargl authored
* resolve.c (resolve_symbol): Disallow automatic arrays in module scope. * gfortran.dg/automatic_module_variable.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106777 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 10 Nov, 2005 2 commits
-
-
pault authored
PR fortran/24655 PR fortran/24755 * match.c (recursive_stmt_fcn): Add checks that symtree exists for the expression to weed out inline intrinsic functions and parameters. PR fortran/24409 * module.c (mio_symtree_ref): Correct the patch of 0923 so that a symbol is not substituted for by a the symbol for the module itself and to prevent the promotion of a formal argument. 2005-11-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/24655 PR fortran/24755 * gfortran.dg/recursive_statement_functions.f90: Add statement functions using inline intrinsic functions and parameters to test that they no longer seg-fault. PR fortran/24409 gfortran.dg/nested_modules_4.f90: New test. gfortran.dg/nested_modules_5.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106756 138bc75d-0d04-0410-961f-82ee72b054a4
-
tobi authored
PR fortran/24643 * primary.c (match_varspec): Check for implicitly typed CHARACTER variables before matching substrings. testsuite/ PR fortran/24643 * gfortran.dg/implicit_6.f90, gfortran.dg/implicit_7.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106753 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 09 Nov, 2005 2 commits
-
-
kargl authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106709 138bc75d-0d04-0410-961f-82ee72b054a4
-
eedelman authored
2005-11-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * trans-decl.c(build_function_decl): Don't set DECL_IS_PURE (fndecl) = 1 for return-by-reference functions. testsuite/ 2005-11-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/22607 * gfortran-dg/pure_byref_1.f90: New. * gfortran-dg/pure_byref_2.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106683 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 08 Nov, 2005 1 commit
-
-
tobi authored
Also, reformat previous ChangeLog entry. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106652 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 07 Nov, 2005 2 commits
-
-
kargl authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106611 138bc75d-0d04-0410-961f-82ee72b054a4
-
kargl authored
*invoke.texi: Remove -Werror from list of options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106595 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 06 Nov, 2005 3 commits
-
-
pault authored
PR fortran/24534 * resolve.c (resolve_symbol): Exclude case of PRIVATE declared within derived type from error associated with PRIVATE type components within derived type. PR fortran/20838 PR fortran/20840 * gfortran.h: Add prototype for gfc_has_vector_index. * io.c (gfc_resolve_dt): Error if internal unit has a vector index. * expr.c (gfc_has_vector_index): New function to check if any of the array references of an expression have vector inidices. (gfc_check_pointer_assign): Error if internal unit has a vector index. PR fortran/17737 * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE and replace by a standard dependent warning/error if overwriting an existing initialization. * decl.c (gfc_data_variable): Remove old error for already initialized variable and the unused error check for common block variables. Add error for hots associated variable and standard dependent error for common block variables, outside of block...
-
jb authored
2005-11-06 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/24174 PR fortran/24305 * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind argument to transfer_array. (transfer_array_desc): Add kind argument. testsuite ChangeLog: 2005-11-06 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/24174 PR fortran/24305 * testsuite/gfortran.dg/large_real_kind_form_io_1.f90: New file. libgfortran Changelog: 2005-11-06 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/24174 PR fortran/24305 * io/io.h: Add argument to prototypes, add prototypes for size_from_*_kind functions. * io/list_read.c (read_complex): Add size argument, use it. (list_formatted_read): Add size argument, cleanup. (list_formatted_read_scalar): Add size argument. (nml_read_obj): Fix for padding. * io/transfer.c: Add argument to transfer function pointer. (unformatted_read): Add size argument. (unformatted_write): Likewise. (formatted_transfer_scalar): Fix for padding with complex(10). (formatted_transfer): Add size argument, cleanup. (transfer_integer): Add size argument to transfer call. (transfer_real): Likewise. (transfer_logical): Likewise. (transfer_character): Likewise. (transfer_complex): Likewise. (transfer_array): New kind argument, use it. (data_transfer_init): Add size argument to formatted_transfer call. (iolength_transfer): Add size argument, cleanup. * io/write.c (write_complex): Add size argument, fix for padding with complex(10). (list_formatted_write): Add size argument, cleanup. (list_formatted_write_scalar): Add size argument, use it. (nml_write_obj): Fix for size vs. kind issue. * io/size_from_kind.c: New file. * Makefile.am: Add io/size_from_kind.c. * configure: Regenerate. * Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106563 138bc75d-0d04-0410-961f-82ee72b054a4
-
fxcoudert authored
(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. * M...
-
- 05 Nov, 2005 1 commit
-
-
kazu authored
* gfortran.texi: Fix a typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106534 138bc75d-0d04-0410-961f-82ee72b054a4
-