2014-05-16 22:37:13 +02:00
|
|
|
|
2014-05-16 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/61187
|
|
|
|
|
* io/unix.c (raw_close): Check if s->fd is -1.
|
|
|
|
|
(fd_to_stream): Check return value of fstat(), handle error.
|
|
|
|
|
|
2014-05-12 21:23:11 +02:00
|
|
|
|
2014-05-12 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/61035
|
|
|
|
|
* intrinsics/getcwd.c (getcwd_i4_sub): Avoid potentially large
|
|
|
|
|
stack allocation, avoid extra copying in the common case.
|
|
|
|
|
|
2014-05-12 21:20:50 +02:00
|
|
|
|
2014-05-12 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac (AM_CFLAGS): Use -std=gnu11.
|
|
|
|
|
(CFLAGS): Likewise.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
|
2014-05-11 20:25:55 +02:00
|
|
|
|
2014-05-11 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* caf/libcaf.h (_gfortran_caf_num_images): Change type of
|
|
|
|
|
second argument to int.
|
|
|
|
|
* caf/mpi.c (_gfortran_caf_num_images): Ditto.
|
|
|
|
|
* caf/single.c (_gfortran_caf_num_images): Ditto.
|
|
|
|
|
|
check.c (check_co_minmaxsum, [...]): New.
gcc/fortran/
2014-05-08 Tobias Burnus <burnus@net-b.de>
* check.c (check_co_minmaxsum, gfc_check_co_minmax,
gfc_check_co_sum): New.
* error.c (gfc_notify_std): Update -std=f2008ts.
* gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
* intrinsic.h (gfc_check_co_minmax,
gfc_check_co_sum): Declare.
* intrinsic.c (add_subroutines): Add co_min, co_max
and co_sum.
(gfc_check_intrinsic_standard): Update text for
-std=f2008ts.
* intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
them.
* invoke.texi (-std=f2008ts): Update wording.
* trans.h (gfor_fndecl_co_max,
gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
* trans-decl.c (gfor_fndecl_co_max,
gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
(gfc_build_builtin_function_decls): Assign to it.
* trans-intrinsic.c (conv_co_minmaxsum): New.
(gfc_conv_intrinsic_subroutine): Call it.
libgfortran/
2014-05-08 Tobias Burnus <burnus@net-b.de>
* caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
_gfortran_caf_co_min, _gfortran_caf_co_max): Declare
* caf/single.c
gcc/testsuite/
2014-05-08 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_collectives_1.f90: New.
* gfortran.dg/coarray_collectives_2.f90: New.
* gfortran.dg/coarray_collectives_3.f90: New.
* gfortran.dg/coarray_collectives_4.f90: New.
* gfortran.dg/coarray_collectives_5.f90: New.
* gfortran.dg/coarray_collectives_6.f90: New.
* gfortran.dg/coarray/collectives_1.f90: New.
* gfortran.dg/assumed_rank_5.f90: Update dg-error.
* gfortran.dg/assumed_type_4.f90: Update dg-error.
* gfortran.dg/bind_c_array_params.f03: Update dg-error.
* gfortran.dg/bind_c_usage_28.f90: Update dg-error.
* gfortran.dg/c_funloc_tests_5.f03: Update dg-error.
* gfortran.dg/c_funloc_tests_6.f90: Update dg-error.
* gfortran.dg/c_loc_tests_11.f03: Update dg-error.
From-SVN: r210223
2014-05-08 18:55:23 +02:00
|
|
|
|
2014-05-08 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* caf/libcaf.h (caf_vector_t, _gfortran_caf_co_sum,
|
|
|
|
|
_gfortran_caf_co_min, _gfortran_caf_co_max): Declare
|
|
|
|
|
* caf/single.c
|
|
|
|
|
|
2014-05-07 03:31:42 +02:00
|
|
|
|
2014-05-06 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/61049
|
|
|
|
|
* io/list_read.c (list_formatted_read_scalar): Use eat_separator
|
|
|
|
|
and delete extraneous code.
|
|
|
|
|
|
gfortran.h (gfc_init_coarray_decl): Remove.
2014-04-30 Tobias Burnus <burnus@net-b.de>
* gfortran.h (gfc_init_coarray_decl): Remove.
* parse.c (translate_all_program_units): Remove call to it.
(gfc_parse_file): Update call.
* trans.h (gfor_fndecl_caf_this_image,
gfor_fndecl_caf_num_images): Add.
(gfort_gvar_caf_num_images,
gfort_gvar_caf_this_image): Remove.
* trans-decl.c (gfor_fndecl_caf_this_image,
gfor_fndecl_caf_num_images): Add.
(gfort_gvar_caf_num_images,
gfort_gvar_caf_this_image): Remove.
(gfc_build_builtin_function_decls): Init new decl.
(gfc_init_coarray_dec): Remove.
(create_main_function): Change calls.
* trans-intrinsic.c (trans_this_image, trans_image_index,
conv_intrinsic_cobound): Generate call to new library function
instead of to a static variable.
* trans-stmt.c (gfc_trans_sync): Ditto.
2014-04-30 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_lib_this_image_1.f90: New.
* gfortran.dg/coarray_lib_this_image_2.f90: New.
2014-04-30 Tobias Burnus <burnus@net-b.de>
* caf/libcaf.h (_gfortran_caf_this_image,
* _gfortran_caf_num_images):
New prototypes.
(_gfortran_caf_init): Change prototype.
(mpi_token_t): New typedef.
(TOKEN): New define.
* caf/mpi.c (_gfortran_caf_this_image,
* _gfortran_caf_num_images):
New functions.
(_gfortran_caf_init): Update.
(_gfortran_caf_finalize, _gfortran_caf_register,
_gfortran_caf_deregister): Use mpi_token_t.
* caf/single.c (_gfortran_caf_this_image,
* _gfortran_caf_num_images):
New functions.
(_gfortran_caf_init): Update.
(_gfortran_caf_finalize, _gfortran_caf_register,
_gfortran_caf_deregister): Use mpi_token_t, simplify.
From-SVN: r209951
2014-04-30 21:02:23 +02:00
|
|
|
|
2014-04-30 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* caf/libcaf.h (_gfortran_caf_this_image, _gfortran_caf_num_images):
|
|
|
|
|
New prototypes.
|
|
|
|
|
(_gfortran_caf_init): Change prototype.
|
|
|
|
|
(mpi_token_t): New typedef.
|
|
|
|
|
(TOKEN): New define.
|
|
|
|
|
* caf/mpi.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
|
|
|
|
|
New functions.
|
|
|
|
|
(_gfortran_caf_init): Update.
|
|
|
|
|
(_gfortran_caf_finalize, _gfortran_caf_register,
|
|
|
|
|
_gfortran_caf_deregister): Use mpi_token_t.
|
|
|
|
|
* caf/single.c (_gfortran_caf_this_image, _gfortran_caf_num_images):
|
|
|
|
|
New functions.
|
|
|
|
|
(_gfortran_caf_init): Update.
|
|
|
|
|
(_gfortran_caf_finalize, _gfortran_caf_register,
|
|
|
|
|
_gfortran_caf_deregister): Use mpi_token_t, simplify.
|
|
|
|
|
|
2014-04-26 23:52:26 +02:00
|
|
|
|
2014-04-26 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/52539
|
|
|
|
|
* io/list_read.c: Add uchar typedef. (push_char4): New function
|
|
|
|
|
to save kind=4 character. (next_char_utf8): New function to read
|
|
|
|
|
a single UTF-8 encoded character value. (read_chracter): Update
|
|
|
|
|
to use the new functions for reading UTF-8 strings.
|
|
|
|
|
(list_formatted_read_scalar): Update to handle list directed
|
|
|
|
|
reads of UTF-8 strings. (nml_read_obj): Likewise update for
|
|
|
|
|
UTF-8 strings in namelists.
|
|
|
|
|
* io/write.c (nml_write_obj): Add kind=4 character support for
|
|
|
|
|
namelist writes.
|
|
|
|
|
|
2014-04-24 13:03:56 +02:00
|
|
|
|
2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2014-04-22 14:30:59 +02:00
|
|
|
|
2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
|
|
|
|
|
check.
|
|
|
|
|
|
2014-04-12 02:04:41 +02:00
|
|
|
|
2014-04-11 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/60810
|
|
|
|
|
io/unit.c (is_trim_ok): If internal unit is array, do not trim.
|
|
|
|
|
|
2014-03-21 23:19:44 +01:00
|
|
|
|
2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/60148
|
|
|
|
|
* io/transfer.c (data_transfer_init): If std= was specified, set
|
|
|
|
|
delim status to DELIM_NONE of no other was specified.
|
|
|
|
|
|
2014-03-18 10:58:17 +01:00
|
|
|
|
2014-03-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Check for presence of fcntl.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* io/unix.c (set_close_on_exec): Check for HAVE_FCNTL.
|
|
|
|
|
|
2014-03-18 02:20:02 +01:00
|
|
|
|
2014-03-17 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
2014-03-18 02:30:46 +01:00
|
|
|
|
PR libfortran/48600
|
2014-03-18 02:20:02 +01:00
|
|
|
|
* io/list_read.c (list_formatted_read_scalar): Do not use
|
|
|
|
|
eat_separator. Explicitly set the comma and end-of-line flags.
|
|
|
|
|
Check for END condition from finish_separator.
|
|
|
|
|
|
2014-03-15 16:12:01 +01:00
|
|
|
|
2014-03-15 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/58324
|
|
|
|
|
* io/list_read.c (finish_list_read): Read one character to check
|
|
|
|
|
for the end of the file. If it is the end, then issue the file
|
|
|
|
|
end error message. If not, use eat_line to reach the end
|
|
|
|
|
without giving error. The next attempt to read will then
|
|
|
|
|
issue the error as described above.
|
|
|
|
|
|
2014-03-13 06:06:57 +01:00
|
|
|
|
2014-03-12 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/38199
|
|
|
|
|
* io/read.c (read_decimal): Quickly skip spaces to avoid calls
|
|
|
|
|
to next_char.
|
|
|
|
|
* io/unit.c (is_trim_ok): New helper function to check various
|
|
|
|
|
conditions to see if its OK to trim the internal unit string.
|
|
|
|
|
(get_internal_unit): Use LEN_TRIM to shorten selected internal
|
|
|
|
|
unit strings for optimizing READ. Enable this optimization for
|
|
|
|
|
formatted READ.
|
|
|
|
|
* io/list_read.c (finish_list_read): Don't call eat_line for
|
|
|
|
|
internal units.
|
2014-03-15 16:12:01 +01:00
|
|
|
|
|
2014-03-09 04:17:16 +01:00
|
|
|
|
2014-03-08 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/38199
|
2014-03-09 06:34:34 +01:00
|
|
|
|
* io/list_read.c (next_char): Mark unlikely error checks.
|
2014-03-09 04:17:16 +01:00
|
|
|
|
(eat_spaces): For character array reading, skip ahead over
|
|
|
|
|
spaces rather than call next_char multiple times.
|
|
|
|
|
|
2014-03-08 23:13:26 +01:00
|
|
|
|
2014-03-08 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgfortran.h (unlikely, likely): Add usage comment.
|
|
|
|
|
|
2014-03-08 07:04:34 +01:00
|
|
|
|
2014-03-08 Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR libgfortran/60128
|
|
|
|
|
* io/write_float.def (output_float): Remove unused variable
|
|
|
|
|
nzero_real. Replace a double space with a single one.
|
|
|
|
|
(determine_en_precision): Fix wrong handling of the EN format.
|
|
|
|
|
|
2014-03-04 05:33:40 +01:00
|
|
|
|
2014-03-03 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/60148
|
|
|
|
|
* io/inquire.c (inquire_via_unit): In the case of
|
|
|
|
|
DELIM_UNSPECIFIED set inquire return string to "NONE".
|
|
|
|
|
* io/list_read.c (read_character): In the case of DELIM_NONE and
|
|
|
|
|
namelists, complete the character read using the namelist
|
|
|
|
|
variable length.
|
|
|
|
|
* io/open.c (new_unit): Don't set delim status to none if not
|
|
|
|
|
specified so that DELIM_UNSPECIFIED can be used later.
|
|
|
|
|
* io/transfer.c (data_transfer_init): For namelist I/O, if the
|
|
|
|
|
unit delim status is unspecified set the current status to quote.
|
|
|
|
|
Otherwise, set current status to the unit status.
|
|
|
|
|
* io/unit.c (get_internel_unit, init_unit): Remember to set
|
|
|
|
|
flags_delim initially to DELIM_UNSPECIFIED so defaults come out
|
|
|
|
|
correctly.
|
|
|
|
|
* io/write.c (write_character): Add a new function argument
|
|
|
|
|
"mode" to signify that raw output is to be used vs output with
|
|
|
|
|
delimiters. If the mode is set to DELIM (1) proceed with
|
|
|
|
|
delimiters. (list_formatted_write_scalar): Write the separator
|
|
|
|
|
only if a delimiter was previously specified. Update the call to
|
|
|
|
|
write_character with the mode argument given.
|
|
|
|
|
(namelist_write_newline): Use the mode argument. (nml_write_obj):
|
|
|
|
|
Use the mode argument. Remove use of tmp_delim. Write the
|
|
|
|
|
semi-colon or comma correctly only when needed with using
|
|
|
|
|
delimiters. Cleanup whitespace.
|
|
|
|
|
(namelist_write): If delim is not specified in namelist I/O,
|
|
|
|
|
default to using quotes. Get rid of the tmp_delim variable and
|
|
|
|
|
use the new mode argument in write_character.
|
|
|
|
|
|
2014-02-21 08:37:06 +01:00
|
|
|
|
2014-02-21 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/60286
|
|
|
|
|
* libgfortran/io/inquire.c (yes, no): New static const char vars.
|
|
|
|
|
(inquire_via_unit): Use them. Use OPEN mode instead of using
|
|
|
|
|
POSIX's access to query about write=, read= and readwrite=.
|
|
|
|
|
|
2014-01-21 03:39:53 +01:00
|
|
|
|
2014-01-20 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
* io/write_float.def (output_float): Remove inadvertent test
|
|
|
|
|
code from previous patch.
|
|
|
|
|
|
2014-01-20 00:17:43 +01:00
|
|
|
|
2014-01-19 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
|
|
|
|
|
PR libfortran/59771
|
|
|
|
|
PR libfortran/59774
|
|
|
|
|
PR libfortran/59836
|
|
|
|
|
* io/write_float.def (output_float): Fix wrong handling of the
|
|
|
|
|
Fw.0 format.
|
|
|
|
|
(output_float_FMT_G_): Fixes rounding issues with -m32.
|
|
|
|
|
|
2014-01-11 19:57:20 +01:00
|
|
|
|
2014-01-11 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
|
Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/59700
|
|
|
|
|
PR libfortran/59764
|
|
|
|
|
* io/io.h (struct st_parameter_dt): Assign expanded_read flag to
|
|
|
|
|
unused bit. Define new variable line_buffer_pos.
|
|
|
|
|
* io/list_read.c (free_saved, next_char, l_push_char,
|
|
|
|
|
read_logical, read_real): Replace use of item_count with
|
|
|
|
|
line_buffer_pos for line_buffer look ahead.
|
|
|
|
|
(read_logical, read_integer, parse_real, read_real, check_type):
|
|
|
|
|
Adjust location of free_line to after generating error messages
|
|
|
|
|
to retain the correct item count for the message.
|
|
|
|
|
|
2014-01-02 23:25:45 +01:00
|
|
|
|
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
Update copyright years
|
|
|
|
|
|
2013-12-19 00:41:50 +01:00
|
|
|
|
2013-12-18 Steven G. Kargl <kargl@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* io/read.c (read_f): Convert assert to runtime error.
|
|
|
|
|
|
2013-12-17 19:12:39 +01:00
|
|
|
|
2013-12-17 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* io/unix.c (tempfile_open): Only use the needed flag O_CLOEXEC.
|
|
|
|
|
|
2013-12-17 04:06:04 +01:00
|
|
|
|
2013-12-16 Jerry DeLisle <jvdelisle@gcc.gnu>
|
|
|
|
|
|
|
|
|
|
PR libfortran/59419
|
|
|
|
|
* io/file_pos.c (st_rewind): Do proper return after
|
|
|
|
|
generate_error.
|
|
|
|
|
* io/open.c (edit_modes): Move action code inside block that
|
|
|
|
|
checks for library ok. (new_unit): Do cleanup after error.
|
|
|
|
|
(st_open): Do proper return after error.
|
|
|
|
|
* io/transfer.c (data_transfer_init): Likewise.
|
|
|
|
|
|
2013-12-11 20:50:56 +01:00
|
|
|
|
2013-12-11 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* config/fpu-387.h (sigill_hdlr, get_fpu_rounding_mode): Emit SSE
|
|
|
|
|
instructions when __SSE_MATH__ is defined.
|
|
|
|
|
|
2013-12-06 11:04:05 +01:00
|
|
|
|
2013-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* intrinsics/erfc_scaled.c (_M_2_SQRTPI): Define if missing.
|
|
|
|
|
|
2013-12-01 21:56:21 +01:00
|
|
|
|
2013-12-01 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR libfortran/59313
|
|
|
|
|
* intrinsics/erfc_scaled.c (erfc_scaled_r16): Also provide for
|
|
|
|
|
quadruple precision long double variant.
|
|
|
|
|
|
2013-11-21 09:45:00 +01:00
|
|
|
|
2013-11-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* intrinsics/erfc_scaled.c (erfc_scaled_r16): Don't define if
|
|
|
|
|
__float128 is not available.
|
|
|
|
|
|
2013-11-20 23:18:55 +01:00
|
|
|
|
2013-11-20 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/49024
|
|
|
|
|
* intrinsics/erfc_scaled.c (erfc_scaled_r16): New function.
|
|
|
|
|
* intrinsics/erfc_scaled_inc.c: Do not provide quadruple
|
|
|
|
|
precision variant.
|
|
|
|
|
|
2013-11-18 10:27:11 +01:00
|
|
|
|
2013-11-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/51828
|
|
|
|
|
* intrinsics/unpack_generic.c (unpack_internal): Let the compiler
|
|
|
|
|
know that dim > 0 to avoid warnings.
|
|
|
|
|
|
2013-11-15 23:00:36 +01:00
|
|
|
|
2013-11-15 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/59108
|
|
|
|
|
* io/unix.c (regular_file): Don't set O_CREAT when opening a file
|
|
|
|
|
read-only with unknown status. Mask out O_CREAT when falling back
|
|
|
|
|
to opening read-only if ACTION= is not set and read-write fails.
|
|
|
|
|
|
2013-11-15 18:50:28 +01:00
|
|
|
|
2013-11-15 Steve Ellcey <sellcey@mips.com>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Do not define HAVE_STRTOLD.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-11-10 21:34:29 +01:00
|
|
|
|
2013-11-10 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Check presence of mkostemp.
|
|
|
|
|
* io/unix.c (set_close_on_exec): New function.
|
|
|
|
|
(tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback
|
|
|
|
|
to calling set_close_on_exec.
|
|
|
|
|
(regular_file): Add O_CLOEXEC to flags if defined.
|
|
|
|
|
(open_external): Call set_close_on_exec if O_CLOEXEC is not
|
|
|
|
|
defined.
|
|
|
|
|
* config.h.in: Regenerated.
|
|
|
|
|
* configure: Regenerated.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* aclocal.m4: Regenerated.
|
|
|
|
|
|
2013-10-01 22:52:49 +02:00
|
|
|
|
2013-10-01 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/55469
|
|
|
|
|
* io/list_read (parse_repeat, read_integer, read_character,
|
|
|
|
|
parse_real, read_real, check_type, list_formatted_read_scalar,
|
|
|
|
|
finish_list_read): Call list_free.
|
|
|
|
|
|
2013-09-20 11:47:52 +02:00
|
|
|
|
2013-09-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-07-23 11:45:30 +02:00
|
|
|
|
2013-07-23 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/fpu-387.h (get_fpu_rounding_mode): Read rounding mode
|
|
|
|
|
from SSE mxcsr register on x86_64.
|
|
|
|
|
|
|
|
|
|
2013-07-21 Ondřej Bílka <neleai@seznam.cz>
|
2013-07-21 19:57:23 +02:00
|
|
|
|
|
|
|
|
|
* io/transfer.c: Fix comment typos.
|
|
|
|
|
|
2013-07-21 17:16:21 +02:00
|
|
|
|
2013-07-21 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/35862
|
|
|
|
|
* config/fpu-387.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): Add missing _ to fix build.
|
|
|
|
|
|
2013-07-21 13:54:27 +02:00
|
|
|
|
2013-07-21 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/35862
|
|
|
|
|
* libgfortran.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): New prototypes.
|
|
|
|
|
* config/fpu-387.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): New functions.
|
|
|
|
|
* config/fpu-aix.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): Ditto.
|
|
|
|
|
* config/fpu-generic.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): Ditto.
|
|
|
|
|
* config/fpu-glibc.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): Ditto.
|
|
|
|
|
* config/fpu-sysv.h (set_fpu_rounding_mode,
|
|
|
|
|
get_fpu_rounding_mode): Ditto.
|
|
|
|
|
* configure.ac: Check for fp_rnd and fp_rnd_t.
|
|
|
|
|
* io/io.h (enum unit_round): Use GFC_FPE_* for the value.
|
|
|
|
|
* io/read.c (convert_real): Set FP ronding mode.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* aclocal.m4: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-06-24 10:34:05 +02:00
|
|
|
|
2013-06-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* configure.ac: Check for fp_except and fp_except_t.
|
|
|
|
|
* config/fpu-sysv.h: Conditionally use either type.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
2013-06-21 15:16:57 +02:00
|
|
|
|
2013-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/fpu-sysv.h (get_fpu_except_flags): Fix typo.
|
|
|
|
|
|
2013-06-20 19:08:51 +02:00
|
|
|
|
2013-06-20 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/fpu-387.h (_FPU_MASK_ALL): New.
|
2013-06-20 19:11:51 +02:00
|
|
|
|
(_FPU_EX_ALL): Ditto.
|
2013-06-20 19:08:51 +02:00
|
|
|
|
(set_fpu): Use fstcw to store x87 FPU control word. Use fnclex to
|
|
|
|
|
clear stalled exception flags. Correctly clear stalled SSE
|
|
|
|
|
exception flags. Simplify code.
|
2013-06-20 19:11:51 +02:00
|
|
|
|
(get_fpu_except_flags): Simplify code.
|
2013-06-20 19:08:51 +02:00
|
|
|
|
|
2013-06-20 12:55:03 +02:00
|
|
|
|
2013-06-20 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/57633
|
|
|
|
|
* io/list_read.c (next_char, eat_separator): Don't set EOL for \r.
|
|
|
|
|
|
2013-06-20 19:08:51 +02:00
|
|
|
|
2013-06-19 Uros Bizjak <ubizjak@gmail.com>
|
2013-06-19 08:38:16 +02:00
|
|
|
|
|
|
|
|
|
* config/fpu-387.h: Use __asm__ and __volatile__ consistently.
|
|
|
|
|
(get_fpu_except_flags): Initialize result.
|
|
|
|
|
|
2013-06-17 09:48:21 +02:00
|
|
|
|
2013-06-17 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* libgfortran.h (compile_options_t) Add fpe_summary.
|
|
|
|
|
(get_fpu_except_flags): New prototype.
|
|
|
|
|
* runtime/compile_options.c (set_options, init_compile_options):
|
|
|
|
|
Handle fpe_summary.
|
|
|
|
|
* runtime/stop.c (report_exception): New function.
|
|
|
|
|
(stop_numeric, stop_numeric_f08, stop_string, error_stop_string,
|
|
|
|
|
error_stop_numeric): Call it.
|
|
|
|
|
* config/fpu-387.h (get_fpu_except_flags): New function.
|
|
|
|
|
* config/fpu-aix.h (get_fpu_except_flags): New function.
|
|
|
|
|
* config/fpu-generic.h (get_fpu_except_flags): New function.
|
|
|
|
|
* config/fpu-glibc.h (get_fpu_except_flags): New function.
|
2013-06-21 15:16:57 +02:00
|
|
|
|
* config/fpu-sysv.h (get_fpu_except_flags): New function.
|
2013-06-17 09:48:21 +02:00
|
|
|
|
* configure.ac: Check for fpxcp.h.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* config.h.in: Regenerate.
|
|
|
|
|
|
re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
2013-06-01 Tobias Burnus <burnus@net-b.de>
PR fortran/57496
* io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
* ISFINITE,
SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
ISNAN2L, ISNAN): New macros.
(output_float_FMT_G_,WRITE_FLOAT): Use them.
From-SVN: r199598
2013-06-03 11:20:46 +02:00
|
|
|
|
2013-06-01 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/57496
|
|
|
|
|
* io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L, ISFINITE,
|
|
|
|
|
SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2, ISNAN2L,
|
|
|
|
|
ISNAN): New macros.
|
|
|
|
|
(output_float_FMT_G_,WRITE_FLOAT): Use them.
|
|
|
|
|
|
2013-05-24 11:23:33 +02:00
|
|
|
|
2013-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* acinclude.m4 (libgfor_cv_have_as_needed): Check for -z ignore, too.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2013-05-06 01:47:22 +02:00
|
|
|
|
2013-05-05 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* caf/libcaf.h (_gfortran_caf_critical): Add a prototype.
|
|
|
|
|
(_gfortran_caf_end_critical): Same.
|
|
|
|
|
|
2013-05-04 23:23:11 +02:00
|
|
|
|
2013-05-04 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* runtime/environ.c: Include unistd.h.
|
|
|
|
|
* runtime/pause.c: Test HAVE_UNISTD_H.
|
|
|
|
|
* runtime/stop.c: Same.
|
|
|
|
|
* io/open.c: Same.
|
|
|
|
|
* io/unix.c: Same.
|
|
|
|
|
* io/read.c (si_max): Protect declaration of value.
|
|
|
|
|
|
2013-04-29 10:43:18 +02:00
|
|
|
|
2013-04-29 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
2013-06-01 Tobias Burnus <burnus@net-b.de>
PR fortran/57496
* io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
* ISFINITE,
SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
ISNAN2L, ISNAN): New macros.
(output_float_FMT_G_,WRITE_FLOAT): Use them.
From-SVN: r199598
2013-06-03 11:20:46 +02:00
|
|
|
|
* intrinsics/system_clock (gf_gettime_mono): Use variable
|
|
|
|
|
resolution for fractional seconds argument.
|
|
|
|
|
(system_clock_4): Simplify, update for gf_gettime_mono change.
|
|
|
|
|
(system_clock_8): Likewise.
|
2013-04-29 10:43:18 +02:00
|
|
|
|
|
2013-04-29 10:42:00 +02:00
|
|
|
|
2013-04-29 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
re PR libfortran/57496 (I/O: WRITE(*,*) HUGE(0._10) gives SIGFPE with -ffpe-trap=overflow)
2013-06-01 Tobias Burnus <burnus@net-b.de>
PR fortran/57496
* io/write_float.def (ISFINITE2Q, ISFINITE2, ISFINITE2L,
* ISFINITE,
SIGNBIT2Q, SIGNBIT2, SIGNBIT2L, SIGNBIT, ISNAN2Q, ISNAN2,
ISNAN2L, ISNAN): New macros.
(output_float_FMT_G_,WRITE_FLOAT): Use them.
From-SVN: r199598
2013-06-03 11:20:46 +02:00
|
|
|
|
PR fortran/56981
|
|
|
|
|
* io/transfer.c (next_record_w_unf): First fix head marker, then
|
|
|
|
|
write tail.
|
|
|
|
|
(next_record): Call flush_if_unbuffered.
|
|
|
|
|
* io/unix.c (struct unix_stream): Add field unbuffered.
|
|
|
|
|
(flush_if_unbuffered): New function.
|
|
|
|
|
(fd_to_stream): New argument.
|
|
|
|
|
(open_external): Fix fd_to_stream call.
|
|
|
|
|
(input_stream): Likewise.
|
|
|
|
|
(output_stream): Likewise.
|
|
|
|
|
(error_stream): Likewise.
|
|
|
|
|
* io/unix.h (flush_if_unbuffered): New prototype.
|
2013-04-29 10:42:00 +02:00
|
|
|
|
|
2013-04-28 20:16:25 +02:00
|
|
|
|
2013-04-28 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* intrinsics/system_clock.c (system_clock_4): Fix sign error in
|
|
|
|
|
Windows version.
|
|
|
|
|
|
2013-04-15 14:45:06 +02:00
|
|
|
|
2013-04-15 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* list_read.c (finish_separator): Initialize variable.
|
|
|
|
|
|
2013-04-15 14:43:15 +02:00
|
|
|
|
2013-04-15 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/56919
|
|
|
|
|
* intrinsics/time_1.h: Check __CYGWIN__ in addition to
|
|
|
|
|
__MINGW32__.
|
|
|
|
|
* intrinsics/system_clock.c (GF_CLOCK_MONOTONIC): Check
|
|
|
|
|
_POSIX_MONOTONIC_CLOCK as well.
|
|
|
|
|
(system_clock_4): Use GetTickCount on Windows.
|
|
|
|
|
(system_clock_8): Use QueryPerformanceCounter and
|
|
|
|
|
QueryPerformanceCounterFrequency on Windows.
|
|
|
|
|
|
2013-04-04 13:24:15 +02:00
|
|
|
|
2013-04-04 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/56810
|
|
|
|
|
* io/list_read.c (check_type): Fix kind checking for COMPLEX.
|
|
|
|
|
|
2013-04-01 22:30:41 +02:00
|
|
|
|
2013-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/56660
|
|
|
|
|
* io/list_read.c (nml_read_obj): Do not reset the read error flag
|
|
|
|
|
inside nml_read_obj. If the read error flag is found set just exit.
|
|
|
|
|
Fix some whitespace on comments.
|
|
|
|
|
(nml_read_obj_data): Reset the read error flag before the first call
|
|
|
|
|
to nml_read_object.
|
|
|
|
|
|
2013-03-31 22:32:33 +02:00
|
|
|
|
2013-03-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/56786
|
|
|
|
|
* io/list_read.c (nml_parse_qualifier): Remove spurious next_char call
|
|
|
|
|
when checking for EOF. Use error return mechanism when EOF detected.
|
|
|
|
|
Do not return false unless parse_err_msg and parse_err_msg_size have
|
|
|
|
|
been set. Use hit_eof.
|
|
|
|
|
(nml_get_obj_data): Likewise use the correct error mechanism.
|
|
|
|
|
* io/transfer.c (hit_eof): Do not set AFTER_ENDFILE if in namelist
|
|
|
|
|
mode.
|
2013-04-28 20:16:25 +02:00
|
|
|
|
|
2013-03-31 22:32:33 +02:00
|
|
|
|
2013-03-29 Tobias Burnus <burnus@net-b.de>
|
2013-03-29 10:39:47 +01:00
|
|
|
|
|
|
|
|
|
PR fortran/56737
|
|
|
|
|
* io/format.c (parse_format_list): Also cache FMT_STRING.
|
|
|
|
|
(parse_format): Update call.
|
|
|
|
|
|
2013-03-29 10:37:37 +01:00
|
|
|
|
2013-03-29 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/56737
|
|
|
|
|
* io/format.c (parse_format): With caching, copy
|
|
|
|
|
dtp->format string.
|
|
|
|
|
(save_parsed_format): Use dtp->format directy without
|
|
|
|
|
copying.
|
|
|
|
|
|
|
|
|
|
2013-03-29 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/56735
|
|
|
|
|
* io/list_read.c (nml_query): Only abort when
|
|
|
|
|
an error occured.
|
|
|
|
|
(namelist_read): Add goto instead of falling through.
|
|
|
|
|
|
2013-03-25 21:11:20 +01:00
|
|
|
|
2013-03-25 Tilo Schwarz <tilo@tilo-schwarz.de>
|
|
|
|
|
|
|
|
|
|
PR libfortran/52512
|
|
|
|
|
* io/list_read.c (nml_parse_qualifier): To check for a derived type
|
|
|
|
|
don't use the namelist head element type but the current element type.
|
|
|
|
|
(nml_get_obj_data): Add current namelist element type to
|
|
|
|
|
nml_parse_qualifier call.
|
|
|
|
|
|
2013-03-24 11:16:33 +01:00
|
|
|
|
2013-03-24 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/56696
|
|
|
|
|
* io/list_read.c (read_real): Fix EOF diagnostic.
|
|
|
|
|
|
2013-03-20 08:56:02 +01:00
|
|
|
|
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
|
|
|
|
|
|
|
|
|
|
PR libfortran/51825
|
|
|
|
|
* io/list_read.c (nml_read_obj): Don't end the component loop on a
|
|
|
|
|
nested derived type, but continue with the next loop iteration.
|
|
|
|
|
(nml_get_obj_data): Don't move the first_nl pointer further in the
|
|
|
|
|
list if a qualifier was found.
|
|
|
|
|
|
2013-03-20 08:45:49 +01:00
|
|
|
|
2013-03-20 Tilo Schwarz <tilo@tilo-schwarz.de>
|
|
|
|
|
|
|
|
|
|
PR libfortran/48618
|
|
|
|
|
* io/open.c (st_open): Raise error for unit number < 0 only if
|
|
|
|
|
unit number does not exist already.
|
|
|
|
|
|
2013-03-19 12:13:32 +01:00
|
|
|
|
2013-03-19 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* libgfortran.h: Include stdbool.h.
|
|
|
|
|
(enum try): Remove.
|
|
|
|
|
(notify_std): Change return type to bool.
|
|
|
|
|
* intrinsics/chmod.c: Don't include stdbool.h.
|
|
|
|
|
* intrinsics/execute_command_line.c: Likewise.
|
|
|
|
|
* io/format.c: Likewise.
|
|
|
|
|
* io/list_read.c (nml_parse_qualifier): Change return type to bool.
|
|
|
|
|
(nml_read_obj): Likewise.
|
|
|
|
|
(nml_get_obj_data): Likewise.
|
|
|
|
|
* io/transfer.c (read_block_form): Fix comment.
|
|
|
|
|
(write_buf): Change return type to bool.
|
|
|
|
|
* io/write.c: Don't include stdbool.h.
|
|
|
|
|
* io/write_float.def (output_float): Change return type to bool.
|
|
|
|
|
(output_float_FMT_G_ ## x): Change type of result variable.
|
|
|
|
|
* runtime/error.c (notify_std): Change return type to bool.
|
|
|
|
|
|
2013-03-11 19:55:18 +01:00
|
|
|
|
2013-03-11 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
* io/transfer.c (read_block_direct): Correct condition.
|
|
|
|
|
* intrinsics/execute_command_line.c (execute_command_line):
|
|
|
|
|
Remove dead code for the HAVE_FORK case.
|
|
|
|
|
|
2013-02-21 20:03:10 +01:00
|
|
|
|
2013-02-21 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/30162
|
|
|
|
|
* io/open.c (test_endfile): Call stell only if size != 0.
|
|
|
|
|
* io/unix.c (raw_tell): Revert r194679.
|
|
|
|
|
(raw_size): Return size field only for regular files, otherwise 0.
|
|
|
|
|
|
2013-02-19 15:01:40 +01:00
|
|
|
|
2013-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
|
|
|
|
|
|
|
|
|
PR target/56347
|
|
|
|
|
* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_POWF): Remove check for
|
|
|
|
|
broken powf.
|
|
|
|
|
* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_POWF): Likewise.
|
|
|
|
|
* intrinsics/c99_functions.c: Likewise.
|
|
|
|
|
* configure: Rebuilt.
|
|
|
|
|
* config.h.in: Rebuilt.
|
|
|
|
|
|
2013-02-06 20:39:35 +01:00
|
|
|
|
2013-02-06 Janus Weil <janus@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR fortran/55978
|
|
|
|
|
* runtime/in_pack_generic.c (internal_pack): Return if base_addr is
|
|
|
|
|
NULL.
|
|
|
|
|
|
2013-01-23 22:56:54 +01:00
|
|
|
|
2013-01-23 Janne Blomqvist <jb@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* io/file_pos.c (unformatted_backspace): Use __builtin_bswapXX
|
|
|
|
|
instead of reverse_memcpy.
|
|
|
|
|
* io/io.h (reverse_memcpy): Remove prototype.
|
|
|
|
|
* io/transfer.c (reverse_memcpy): Make static, move towards
|
|
|
|
|
beginning of file.
|
|
|
|
|
(bswap_array): New function.
|
|
|
|
|
(unformatted_read): Use bswap_array to byte swap the data
|
|
|
|
|
in-place.
|
|
|
|
|
(unformatted_write): Use a larger temp buffer and bswap_array.
|
|
|
|
|
(us_read): Use __builtin_bswapXX instead of reverse_memcpy.
|
|
|
|
|
(write_us_marker): Likewise.
|
|
|
|
|
|
2013-01-14 19:20:58 +01:00
|
|
|
|
2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
|
|
|
|
|
|
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2013-01-06 13:43:45 +01:00
|
|
|
|
2013-01-06 Tobias Burnus <burnus@net-b.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/54678
|
|
|
|
|
* intrinsics/env.c (get_environment_variable_i8): Don't use
|
|
|
|
|
uninitialized variable.
|
|
|
|
|
|
2013-01-02 18:09:09 +01:00
|
|
|
|
2013-01-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR libfortran/55818
|
|
|
|
|
* io/list_read.c (read_real): Do not call hit_eof when EOF can be
|
|
|
|
|
treated as a value separator.
|
|
|
|
|
(parse_real): Likewise.
|
|
|
|
|
(read_logical): Likewise.
|
|
|
|
|
(read_character): Likewise.
|
|
|
|
|
(read_complex): Likewise.
|
2010-01-04 09:59:59 +01:00
|
|
|
|
|
2014-01-02 23:25:45 +01:00
|
|
|
|
Copyright (C) 2013-2014 Free Software Foundation, Inc.
|
2010-01-04 09:59:59 +01:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|