aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
AgeCommit message (Collapse)AuthorFilesLines
2010-10-16re PR tree-optimization/20165 (Pointer does not really escape with write)Thomas Koenig3-0/+89
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/20165 PR fortran/31593 PR fortran/43665 * gfortran.map: Add _gfortran_transfer_array_write, _gfortran_transfer_array_write, _gfortran_transfer_character_write, _gfortran_transfer_character_wide_write, _gfortran_transfer_complex_write, _gfortran_transfer_integer_write, _gfortran_transfer_logical_write and _gfortran_transfer_real_write. * io/transfer.c (transfer_integer_write): Add prototype and function body as call to the original function, without the _write. (transfer_real_write): Likewise. (transfer_logical_write): Likewise. (transfer_character_write): Likewise. (transfer_character_wide_write): Likewise. (transfer_complex_write): Likewise. (transfer_array_write): Likewise. 2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/20165 PR fortran/31593 PR fortran/43665 * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE, IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE, IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE, IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE. (gfc_build_io_library_fndecls): Add corresponding function decls. (transfer_expr): If the current transfer is a READ, use the iocall with the original version, otherwise the version with _WRITE. (transfer_array_desc): Likewise. From-SVN: r165559
2010-09-23re PR fortran/45710 (Adjust format and padding for WRITE of NAMELIST group ↵Jerry DeLisle2-0/+20
to internal file) 2010-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/45710 * io/write.c (namelist_write_newline): Pad character array internal unit records with spaces. From-SVN: r164543
2010-09-22re PR libfortran/45723 (opening /dev/null for appending writes)Jerry DeLisle2-2/+9
2010-09-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/45723 * io/open.c (new_unit): On POSITION_APPEND don't seek if file length is zero. From-SVN: r164507
2010-09-14re PR fortran/45532 (gfortran namelist read error)Jerry DeLisle2-1/+8
2010-09-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/45532 * io/list_read.c (nml_get_obj_data): Set first_nl if the previous is NULL. From-SVN: r164266
2010-09-12pack_generic.c (pack): Add missing return and fix whitespace.Francois-Xavier Coudert4-6/+17
* intrinsics/pack_generic.c (pack): Add missing return and fix whitespace. * intrinsics/cshift0.c (cshift0): Fix whitespace. * intrinsics/unpack_generic.c (unpack1, unpack0): Fix whitespace. From-SVN: r164230
2010-09-10string.c (compare0): Remove.Francois-Xavier Coudert2-19/+9
* runtime/string.c (compare0): Remove. (find_option): Inline string comparison From-SVN: r164168
2010-09-09acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE, [...]): Remove.Francois-Xavier Coudert8-349/+32
* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE, LIBGFOR_CHECK_FOR_BROKEN_ISNAN, LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): Remove. * configure.ac: Remove above checks. * libgfortran.h: Define isnan, isinf, isfinite, isnormal and signbit in terms of the respective built-ins. * io/write_float.def (WRITE_FLOAT): Use signbit() instead of __builtin_signbit(). * intrinsics/c99_functions.c (tgamma): Use isnan() instead of __builtin_isnan(). * config.h.in: Regenerate. * configure: Regenerate. From-SVN: r164119
2010-09-06re PR fortran/38282 (Bit intrinsics: ILEN and IBCHNG)Tobias Burnus22-41/+8045
2010-09-06 Tobias Burnus <burnus@net-b.de> PR fortran/38282 * intrinsic.c (add_functions): Support IALL, IANY, IPARITY. (check_specific): Special case for those intrinsics. * gfortran.h (gfc_isym_id): Add new intrinsics * intrinsic.h (gfc_check_transf_bit_intrins, gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity): New prototypes. * iresolve.c (gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity, resolve_transformational): New functions. (gfc_resolve_product, gfc_resolve_sum, gfc_resolve_parity): Use resolve_transformational. * check.c (gfc_check_transf_bit_intrins): New function. * simplify.c (gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity, do_bit_any, do_bit_ior, do_bit_xor, simplify_transformation): New functions. (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity, gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation. * trans-intrinsic.c (gfc_conv_intrinsic_arith, gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall): Handle IALL, IANY and IPARITY intrinsics. * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic order. (IALL, IANY, IPARITY): Document new intrinsics. 2010-09-06 Tobias Burnus <burnus@net-b.de> PR fortran/38282 * gfortran.dg/iall_iany_iparity_1.f90: New. * gfortran.dg/iall_iany_iparity_2.f90: New. 2010-09-06 Tobias Burnus <burnus@net-b.de> PR fortran/38282 * gfortran.map: Add new iany, iall and iparity intrinsics. * Makefile.am: Ditto. * m4/iany.m4: New. * m4/iall.m4: New. * m4/iparity.m4: New. * Makefile.in: Regenerate. * generated/iall_i1.c: Generate. * generated/iall_i2.c: Generate. * generated/iall_i4.c: Generate. * generated/iall_i8.c: Generate. * generated/iall_i16.c: Generate. * generated/iany_i1.c: Generate. * generated/iany_i2.c: Generate. * generated/iany_i4.c: Generate. * generated/iany_i8.c: Generate. * generated/iany_i16.c: Generate. * generated/iparity_i1.c: Generate. * generated/iparity_i2.c: Generate. * generated/iparity_i4.c: Generate. * generated/iparity_i8.c: Generate. * generated/iparity_i16.c: Generate. From-SVN: r163898
2010-09-06bessel.m4: Fix printf warning by casting to (long int).Tobias Burnus6-10/+18
2010-09-05 Tobias Burnus <burnus@net-b.de> * m4/bessel.m4: Fix printf warning by casting to (long int). * generated/bessel_r4.c:Regenerated. * generated/bessel_r8.c: Regenerated. * generated/bessel_r10.c: Regenerated. * generated/bessel_r16.c: Regenerated. From-SVN: r163885
2010-09-01intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.Francois-Xavier Coudert5-6/+203
* intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic. * intrinsic.h (gfc_resolve_execute_command_line): New function. * iresolve.c (gfc_resolve_execute_command_line): New function. * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value. * intrinsic.texi: Document EXECUTE_COMMAND_LINE. * intrinsics/execute_command_line.c: New file. * gfortran.map (_gfortran_execute_command_line_i4, _gfortran_execute_command_line_i8): New symbols. * Makefile.am: Add new file intrinsics/execute_command_line.c. * Makefile.in: Regenerated. * gfortran.dg/execute_command_line_1.f90: New test. From-SVN: r163719
2010-08-28mtype.m4 (upcase, [...]): New macros.Francois-Xavier Coudert42-175/+370
* m4/mtype.m4 (upcase, hasmathfunc, mathfunc_macro): New macros. * m4/fraction.m4: Use new macros to support quad-float types. * m4/set_exponent.m4: Likewise. * m4/spacing.m4: Likewise. * m4/exponent.m4: Likewise. * m4/nearest.m4: Likewise. * m4/norm2.m4: Likewise. * m4/bessel.m4: Likewise. * m4/rrspacing.m4: Likewise. * generated/bessel_r4.c:Regenerated. * generated/bessel_r8.c: Regenerated. * generated/bessel_r10.c: Regenerated. * generated/bessel_r16.c: Regenerated. * generated/exponent_r4.c: Regenerated. * generated/exponent_r8.c: Regenerated. * generated/exponent_r10.c: Regenerated. * generated/exponent_r16.c: Regenerated. * generated/fraction_r4.c: Regenerated. * generated/fraction_r8.c: Regenerated. * generated/fraction_r10.c: Regenerated. * generated/fraction_r16.c: Regenerated. * generated/nearest_r4.c: Regenerated. * generated/nearest_r8.c: Regenerated. * generated/nearest_r10.c: Regenerated. * generated/nearest_r16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/norm2_r10.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/rrspacing_r4.c: Regenerated. * generated/rrspacing_r8.c: Regenerated. * generated/rrspacing_r10.c: Regenerated. * generated/rrspacing_r16.c: Regenerated. * generated/set_exponent_r4.c: Regenerated. * generated/set_exponent_r8.c: Regenerated. * generated/set_exponent_r10.c: Regenerated. * generated/set_exponent_r16.c: Regenerated. * generated/spacing_r4.c: Regenerated. * generated/spacing_r8.c: Regenerated. * generated/spacing_r10.c: Regenerated. * generated/spacing_r16.c: Regenerated. From-SVN: r163620
2010-08-28mk-kinds-h.sh: Disable REAL(16) if REAL(10) is available.Tobias Burnus2-2/+14
2010-08-28 Tobias Burnus <burnus@net-b.de> * mk-kinds-h.sh: Disable REAL(16) if REAL(10) is available. From-SVN: r163612
2010-08-27re PR fortran/33197 (Fortran 2008: math functions)Tobias Burnus137-263/+2512
gcc/fortran/ 2010-08-27 Tobias Burnus <burnus@net-b.de> PR fortran/33197 * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity. * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity): gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2, gfc_resolve_parity): New prototypes. * gcc/fortran/gfortran.h (gfc_isym_id): New enum items GFC_ISYM_NORM2 and GFC_ISYM_PARITY. * gcc/fortran/iresolve.c (gfc_resolve_norm2, gfc_resolve_parity): New functions. * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity): New functions. * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith, gfc_conv_intrinsic_function): Handle NORM2 and PARITY. * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add. * gcc/fortran/simplify.c (simplify_transformation_to_array): Add post-processing opterator. (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, gfc_simplify_product, gfc_simplify_sum): Update call. (add_squared, do_sqrt, gfc_simplify_norm2, do_xor, gfc_simplify_parity): New functions. gcc/testsuite/ 2010-08-27 Tobias Burnus <burnus@net-b.de> PR fortran/33197 * gcc/testsuite/gfortran.dg/norm2_1.f90: New. * gcc/testsuite/gfortran.dg/norm2_2.f90: New. * gcc/testsuite/gfortran.dg/norm2_3.f90: New. * gcc/testsuite/gfortran.dg/norm2_4.f90: New. * gcc/testsuite/gfortran.dg/parity_1.f90: New. * gcc/testsuite/gfortran.dg/parity_2.f90: New. * gcc/testsuite/gfortran.dg/parity_3.f90: New. libgfortran/ 2010-08-27 Tobias Burnus <burnus@net-b.de> PR fortran/33197 * libgfortran/m4/ifunction.m4 (FINISH_ARRAY_FUNCTION, ARRAY_FUNCTION): Allow expression after loop. * libgfortran/m4/norm2.m4: New for _gfortran_norm2_r{4,8,10,16}. * libgfortran/m4/parity.m4: New for * _gfortran_parity_l{1,2,4,8,16}. * libgfortran/gfortran.map: Add new functions. * libgfortran/Makefile.am: Ditto. * libgfortran/m4/minloc1.m4: Add empty argument for * ARRAY_FUNCTION. * libgfortran/m4/maxloc1.m4: Ditto. * libgfortran/m4/all.m4: Ditto. * libgfortran/m4/minval.m4: Ditto. * libgfortran/m4/maxval.m4: Ditto. * libgfortran/m4/count.m4: Ditto. * libgfortran/m4/product.m4: Ditto. * libgfortran/m4/any.m4: Ditto. * Makefile.in: Regenerated. * generated/minval_r8.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/parity_l2.c: Regenerated. * generated/any_l16.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/any_l2.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/parity_l16.c: Regenerated. * generated/all_l1.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/all_l2.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/all_l16.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/parity_l4.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/any_l4.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/count_4_l.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/count_8_l.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/all_l4.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/count_1_l.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/sum_r8.c: Regenerated. * generated/norm2_r10.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/count_16_l.c: Regenerated. * generated/parity_l8.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/any_l8.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/count_2_l.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/parity_l1.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/any_l1.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/all_l8.c: Regenerated. * generated/maxval_r4.c: Regenerated. From-SVN: r163595
2010-08-26fpu-387.h (has_sse): Remove cw_sse, unused.Rainer Orth2-2/+8
* config/fpu-387.h (has_sse): Remove cw_sse, unused. Use fixed-length asm. From-SVN: r163566
2010-08-23re PR libfortran/45323 (warnings compiling libgfortran/io/write.c: array ↵Tobias Burnus2-3/+9
subscript has type 'char') 2010-08-23 Tobias Burnus <burnus@net-b.de> PR fortran/45323 * io/write.c (nml_write_obj, namelist_write): Cast argument of toupper to int. From-SVN: r163469
2010-08-21Fix misquoting in stdint.m4.Ralf Wildenhues2-8/+8
config/: PR target/45084 * stdint.m4 (GCC_HEADER_STDINT): Use m4 quotes for arguments of AC_MSG_ERROR. libdecnumber/: * configure: Regenerate. libgfortran/: * configure: Regenerate. libgomp/: * configure: Regenerate. libstdc++-v3/: * configure: Regenerate. From-SVN: r163441
2010-08-21re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and ↵Tobias Burnus9-39/+1029
BESSEL_JN missing) 2010-08-21 Tobias Burnus <burnus@net-b.de> PR fortran/36158 PR fortran/33197 * intrinsic.c (add_sym): Init value attribute. (set_attr_value): New function. (add_functions) Use it and add JN/YN resolvers. * symbol.c (gfc_copy_formal_args_intr): Copy value attr. * intrinsic.h (gfc_resolve_bessel_n2): New prototype. * gfortran.h (gfc_intrinsic_arg): Add value attribute. * iresolve.c (gfc_resolve_bessel_n2): New function. * trans-intrinsic.c (gfc_get_symbol_for_expr): Create formal arg list. (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall): Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value. * simplify.c (): For YN set to -INF if previous values was -INF. * trans-expr.c (gfc_conv_procedure_call): Don't crash if sym->as is NULL. * iresolve.c (gfc_resolve_extends_type_of): Set the type of the dummy argument to the one of the actual. 2010-08-21 Tobias Burnus <burnus@net-b.de> PR fortran/36158 PR fortran/33197 * m4/bessel.m4: Implement bessel_jn and bessel_yn. * gfortran.map: Add the generated bessel_jn_r{4,8,10,16} and bessel_yn_r{4,8,10,16}. * Makefile.am: Add bessel.m4. * Makefile.in: Regenerated. * generated/bessel_r4.c: Generated. * generated/bessel_r16.c: Generated. * generated/bessel_r8.c: Generated. * generated/bessel_r10.c: Generated. 2010-08-21 Tobias Burnus <burnus@net-b.de> PR fortran/36158 PR fortran/33197 * gfortran.dg/bessel_6.f90: New. * gfortran.dg/bessel_7.f90: New. From-SVN: r163440
2010-08-19re PR fortran/45108 (Namelist read: Not aborted when reading from STDIN)Jerry DeLisle2-12/+8
2010-08-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/45108 * io/list_read.c (namelist_read): If namelist reading fails, use generate_error and then continue the read loop. From-SVN: r163387
2010-08-17re PR fortran/45308 ([F2003] DATE_AND_TIME does _not_ blank-pad strings)Jakub Jelinek2-35/+29
PR fortran/45308 * intrinsics/date_and_time.c (date_and_time): Pass __{zone,time,date}_len instead of {ZONE,TIME,DATE}_LEN as second argument to fstrcpy. Drop asserts. Adjust comment to the F2003 wording from the F95 wording. * gfortran.dg/pr45308.f03: New test. From-SVN: r163312
2010-08-14re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")Jerry DeLisle2-1/+18
2010-08-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/44931 * io/inquire.c (inquire_via_unit): Add special case for __MINGW32__ to return special file names CONIN$, CONOUT$, and CONERR$. From-SVN: r163245
2010-08-07re PR fortran/45143 ([F2008,corrig1] Endless loop with unlimited edit ↵Jerry DeLisle3-30/+51
descriptor) 2010-08-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/45143 * io/format.c: Remove fnode storage structure definitions, moving these to format.h. (parse_format_list): Add check for data descriptors, taking care of nested formats. Adjust calling parameters to pass a check flag. (parse_format): Likewise. * io/format.h: Add structures moved from format.c. From-SVN: r162978
2010-08-02Don't update the position flag for non-seekable files, check for stell() error.Janne Blomqvist2-6/+18
From-SVN: r162810
2010-08-01Use access(2) instead of stat(2) to test file existence.Janne Blomqvist2-36/+48
From-SVN: r162798
2010-07-31* io/inquire.c: Include io.h before string.h.David Edelsohn2-1/+5
From-SVN: r162788
2010-07-29re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")Jerry DeLisle4-23/+54
2010-07-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/44931 * io/inquire.c (inquire_via_unit): Use ttyname to return actual device file name for stdin, stdout, and stderr. If ttyname does not succeed fall back to default names for these units. Include string.h to allow using strlen function. * unix.c: Remove typedef of unix_stream structure, move to unix.h. * unix.h: Add typedef of unix_stream structure so that it is accessible to inquire.c. From-SVN: r162667
2010-07-19re PR fortran/44953 (FAIL: gfortran.dg/char4_iunit_1.f03 * execution test)Jerry DeLisle6-62/+158
2010-07-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/44953 * io/unix.c (mem_alloc_w4): Return gfc_char4_t instead of char type pointer. (mem_write4): Remove cast to gfc_char4_t. * io/transfer.c (write_block): Use a gfc_char4_t pointer. (memset4): New helper function. (next_record_w): Use new helper function rather than sset for internal units. Don't attempt to pad with spaces if it is not needed. * io/unix.h: Update prototype for mem_alloc_w4. * io/write.c (memset4): Use gfc_char4_t pointer and chracter type. Don't use multiply by 4 to compute offset. (memcpy4): Likewise. (write_default_char4): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_a): Likewise. (write_l): Likewise. (write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise. (write_char): Add support for character(kind=4) internal units that was previously missed. (write_integer): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_character): Likewise. (write_separator): Add support for character(kind=4) internal units that was previously missed. * write_float.def (output_float): Use a gfc_char4_t pointer and update memset4 and memcpy calls. (write_infnan): Likewise. (output_float_FMT_G_): Likewise. From-SVN: r162304
2010-07-16re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)Jerry DeLisle6-29/+160
2010-07-16 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37077 * io/read.c (read_default_char4): Add support for reading into a kind-4 character variable from a character(kind=4) internal unit. * io/io.h (read_block_form4): Add prototype. * io/unit.c (get_internal_unit): Add call to fbuf_init. (free_internal_unit): Add call to fbuf_destroy. (get_unit): Fix whitespace. * io/transfer.c (read_sf_internal): Use fbuf_alloc to allocate a string to recieve the wide characters translated to single byte chracters. (read_block_form): Fix whitespace. (read_block_form4): New function to read from a character(kind=4) internal unit into a character(kind=4) variable. (read_block_direct): Fix whitespace. (write_block): Fix whitespace. (formatted_transfer_scalar_read): Likewise. (formatted_transfer_scalar_write): Likewise. * io/write.c (write_character): Add support for list directed write of a kind=1 character string to a character(kind=4) internal unit. From-SVN: r162260
2010-07-15Fix ChangeLog to mention last commit to transfer.cJerry DeLisle1-0/+1
From-SVN: r162222
2010-07-15re PR fortran/44934 (Bogus "Missing format for FORMATTED data transfer")Jerry DeLisle3-53/+65
2010-07-14 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/44934 * io/file_pos.c (st_endfile): Correctly set unit flags for form. From-SVN: r162203
2010-07-13re PR fortran/37077 (Implement Internal Unit I/O for character KIND=4)Jerry DeLisle9-99/+545
2010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/37077 * io/read.c: Fix comment. * io/io.h (is_char4_unit): New macro. * io/unit.c (get_internal_unit): Call new function open_internal4. * io/unix.c (mem_alloc_r4): New function. (mem_alloc_w4): New function. (mem_read4): New function, temporary stub. (mem_write4): New function. (open_internal4): New function to set stream pointers to use the new mem functions. * io/transfer.c (write_block): Use new mem_alloc_w4 to access internal units of kind=4. * io/unix.h: Add prototypes for open_internal4, mem_alloc_w4, and mem_alloc_r4. * io/write.c (memset4): New helper function. (memcpy4): New helper function. (write_default_char4): Use new helper functions. (write_a): Likewise. (write_l): Likewise. (write_boz): Likewise. (write_decimal): Likewise. (write_x): Likewise. (write_integer): Likewise. * io/write_float.def (output_float): Add code blocks to handle internal unit kind=4 output utilizing gfc_char4_t pointers. (write_infnan): Use new helper functions. (OUTPUT_FLOAT_FMT_G): Update this macro likewise. From-SVN: r162123
2010-07-12config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to pentiumpro on ↵Rainer Orth2-1/+55
Solaris 8 and 9/x86. gcc: * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to pentiumpro on Solaris 8 and 9/x86. * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as. Document SSE/SSE2 support. * doc/sourcebuild.texi (Effective-Target Keywords): Document sse. gcc/testsuite: * lib/target-supports.exp (check_effective_target_sse): New proc. * gcc.target/i386/sol2-check.h: New file. * gcc.target/i386/sse-check.h (ILL_INSN, ILL_INSN_LEN): Define. Include sol2-check.h. (main) Only run do_test () if sol2_check (). * gcc.target/i386/sse2-check.h: Likewise. * gcc.target/i386/sse3-check.h: Likewise. * gcc.dg/vect/tree-vect.h (check_vect) [__i386__ || __x86_64__] [__sun__ && __svr4__]: Execute SSE2 instruction. * gcc.target/i386/math-torture/math-torture.exp: Only add options with -msse to MATH_TORTURE_OPTIONS if check_effective_target_sse. * g++.dg/debug/dwarf2/const2b.C: Use dg-require-effective-target sse. * g++.dg/ext/vector14.C: Likewise. * g++.dg/other/mmintrin.C: Likewise. * gcc.dg/20020418-1.c: Likewise. * gcc.dg/debug/dwarf2/const-2b.c: Likewise. * gcc.dg/format/ms_unnamed-1.c: Likewise. * gcc.dg/format/unnamed-1.c: Likewise. Adapt dg-warning line number. * gcc.dg/graphite/pr40281.c: Likewise. * gcc.dg/pr32176.c: Likewise. * gcc.dg/pr40550.c: Likewise. * gcc.dg/prefetch-loop-arrays-1.c: Likewise. * gcc.dg/torture/pr36891.c: Likewise. * gcc.target/i386/20020218-1.c: Likewise. * gcc.target/i386/20020523.c: Likewise. * gcc.target/i386/abi-1.c: Likewise. * gcc.target/i386/brokensqrt.c: Likewise. * gcc.target/i386/fastcall-sseregparm.c: Likewise. * gcc.target/i386/pr13366.c: Likewise. * gcc.target/i386/pr13685.c: Likewise. * gcc.target/i386/pr24306.c: Likewise. * gcc.target/i386/pr31486.c: Likewise. * gcc.target/i386/pr32065-1.c: Likewise. * gcc.target/i386/pr32065-2.c: Likewise. * gcc.target/i386/pr32389.c: Likewise. * gcc.target/i386/pr38824.c: Likewise. * gcc.target/i386/pr38931.c: Likewise. * gcc.target/i386/pr39592-1.c: Likewise. * gcc.target/i386/pr43766.c: Likewise. * gcc.target/i386/recip-divf.c: Likewise. * gcc.target/i386/recip-sqrtf.c: Likewise. * gcc.target/i386/recip-vec-divf.c: Likewise. * gcc.target/i386/recip-vec-sqrtf.c: Likewise. * gcc.target/i386/sse-1.c: Likewise. * gcc.target/i386/sse-16.c: Likewise. * gcc.target/i386/sse-2.c: Likewise. * gcc.target/i386/sse-20.c: Likewise. * gcc.target/i386/sse-3.c: Likewise. * gcc.target/i386/sse-7.c: Likewise. * gcc.target/i386/sse-9.c: Likewise. * gcc.target/i386/sse-addps-1.c: Likewise. * gcc.target/i386/sse-addss-1.c: Likewise. * gcc.target/i386/sse-andnps-1.c: Likewise. * gcc.target/i386/sse-andps-1.c: Likewise. * gcc.target/i386/sse-cmpss-1.c: Likewise. * gcc.target/i386/sse-comiss-1.c: Likewise. * gcc.target/i386/sse-comiss-2.c: Likewise. * gcc.target/i386/sse-comiss-3.c: Likewise. * gcc.target/i386/sse-comiss-4.c: Likewise. * gcc.target/i386/sse-comiss-5.c: Likewise. * gcc.target/i386/sse-comiss-6.c: Likewise. * gcc.target/i386/sse-copysignf-vec.c: Likewise. * gcc.target/i386/sse-cvtsi2ss-1.c: Likewise. * gcc.target/i386/sse-cvtsi2ss-2.c: Likewise. * gcc.target/i386/sse-cvtss2si-1.c: Likewise. * gcc.target/i386/sse-cvtss2si-2.c: Likewise. * gcc.target/i386/sse-cvttss2si-1.c: Likewise. * gcc.target/i386/sse-cvttss2si-2.c: Likewise. * gcc.target/i386/sse-divps-1.c: Likewise. * gcc.target/i386/sse-divss-1.c: Likewise. * gcc.target/i386/sse-init-v4hi-1.c: Likewise. * gcc.target/i386/sse-init-v4sf-1.c: Likewise. * gcc.target/i386/sse-maxps-1.c: Likewise. * gcc.target/i386/sse-maxss-1.c: Likewise. * gcc.target/i386/sse-minps-1.c: Likewise. * gcc.target/i386/sse-minss-1.c: Likewise. * gcc.target/i386/sse-movaps-1.c: Likewise. * gcc.target/i386/sse-movaps-2.c: Likewise. * gcc.target/i386/sse-movhlps-1.c: Likewise. * gcc.target/i386/sse-movhps-1.c: Likewise. * gcc.target/i386/sse-movhps-2.c: Likewise. * gcc.target/i386/sse-movlhps-1.c: Likewise. * gcc.target/i386/sse-movmskps-1.c: Likewise. * gcc.target/i386/sse-movntps-1.c: Likewise. * gcc.target/i386/sse-movss-1.c: Likewise. * gcc.target/i386/sse-movss-2.c: Likewise. * gcc.target/i386/sse-movss-3.c: Likewise. * gcc.target/i386/sse-movups-1.c: Likewise. * gcc.target/i386/sse-movups-2.c: Likewise. * gcc.target/i386/sse-mulps-1.c: Likewise. * gcc.target/i386/sse-mulss-1.c: Likewise. * gcc.target/i386/sse-orps-1.c: Likewise. * gcc.target/i386/sse-rcpps-1.c: Likewise. * gcc.target/i386/sse-recip-vec.c: Likewise. * gcc.target/i386/sse-recip.c: Likewise. * gcc.target/i386/sse-rsqrtps-1.c: Likewise. * gcc.target/i386/sse-set-ps-1.c: Likewise. * gcc.target/i386/sse-sqrtps-1.c: Likewise. * gcc.target/i386/sse-subps-1.c: Likewise. * gcc.target/i386/sse-subss-1.c: Likewise. * gcc.target/i386/sse-ucomiss-1.c: Likewise. * gcc.target/i386/sse-ucomiss-2.c: Likewise. * gcc.target/i386/sse-ucomiss-3.c: Likewise. * gcc.target/i386/sse-ucomiss-4.c: Likewise. * gcc.target/i386/sse-ucomiss-5.c: Likewise. * gcc.target/i386/sse-ucomiss-6.c: Likewise. * gcc.target/i386/sse-unpckhps-1.c: Likewise. * gcc.target/i386/sse-unpcklps-1.c: Likewise. * gcc.target/i386/sse-xorps-1.c: Likewise. * gcc.target/i386/ssefn-1.c: Likewise. * gcc.target/i386/ssefn-3.c: Likewise. * gcc.target/i386/sseregparm-1.c: Likewise. * gcc.target/i386/stackalign/return-3.c: Likewise. * gcc.target/i386/vectorize1.c: Likewise. * gcc.target/i386/vperm-v4sf-1.c: Likewise. * gcc.target/i386/xorps-sse.c: Likewise. * gfortran.dg/pr28158.f90: Likewise. * gfortran.dg/pr30667.f: Likewise. * gnat.dg/loop_optimization7.adb: Likewise. * gnat.dg/sse_nolib.adb: Likewise. libgfortran: * config/fpu-387.h [__sun__ && __svr4__] Include <signal.h>, <ucontext.h>. (sigill_caught): New. (sigill_hdlr): New function (has_sse) [__sun__ && __svr4__]: Check if SSE instruction causes SIGILL. From-SVN: r162073
2010-07-11re PR fortran/44698 (I/O: FLUSH does not actually flush the buffer?)Kai Tietz2-0/+9
2010-07-11 Kai Tietz <kai.tietz@onevision.com> PR libfortran/44698 * io/unix.c (flush_buf): Add _commit for WIN32. From-SVN: r162060
2010-07-02re PR libfortran/43298 (fortran library does not read in NaN -Inf or Inf)Tobias Burnus3-8/+10
2010-06-28 Tobias Burnus <burnus@net-b.de> PR fortran/43298 * list_read.c (parse_real): Do not pass (..) on for NAN(..). * read.c (convert_real): Fix comment about NAN/INF. From-SVN: r161735
2010-07-02configure.ac (gfortran_use_symver): Only check for Sun-style symbol ↵Rainer Orth3-12/+26
versioning on Solaris 2. libgfortran: * configure.ac (gfortran_use_symver): Only check for Sun-style symbol versioning on Solaris 2. * configure: Regenerate. libssp: * configure.ac (ssp_use_symver): Only check for Sun-style symbol versioning on Solaris 2. * configure: Regenerate. From-SVN: r161724
2010-07-02configure.ac: Check for Sun symbol versioning.Rainer Orth5-11/+128
* configure.ac: Check for Sun symbol versioning. * configure: Regenerate. * Makefile.am [LIBGFOR_USE_SYMVER]: Protect version_arg with LIBGFOR_USE_SYMVER_GNU. Add version_dep. [LIBGFOR_USE_SYMVER_SUN]: Handle Sun symbol versioning. [!LIBGFOR_USE_SYMVER]: Add version_dep. (libgfortran_la_DEPENDENCIES): Set to $(version_dep). * Makefile.in: Regenerate. From-SVN: r161697
2010-06-30re PR libfortran/43298 (fortran library does not read in NaN -Inf or Inf)Jerry DeLisle2-0/+66
2010-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/43298 * io/read.c: Add code to parse and read Inf, Infinity, NaN, and Nan with optional parenthesis. From-SVN: r161585
2010-06-28re PR libfortran/43298 (fortran library does not read in NaN -Inf or Inf)Tobias Burnus2-0/+34
2010-06-28 Tobias Burnus <burnus@net-b.de> PR fortran/43298 * list_read.c (parse_real, read_real): Support NAN(alphanum). 2010-06-28 Tobias Burnus <burnus@net-b.de> PR fortran/43298 * gfortran.dg/nan_6.f90: New. From-SVN: r161510
2010-06-25intrinsic.h (gfc_check_selected_real_kind, [...]): Update prototypes.Tobias Burnus4-14/+56
2010-06-25 Tobias Burnus <burnus@net-b.de> * intrinsic.h (gfc_check_selected_real_kind, gfc_simplify_selected_real_kind): Update prototypes. * intrinsic.c (add_functions): Add radix support to selected_real_kind. * check.c (gfc_check_selected_real_kind): Ditto. * simplify.c (gfc_simplify_selected_real_kind): Ditto. * trans-decl.c (gfc_build_intrinsic_function_decls): Change call from selected_real_kind to selected_real_kind2008. * intrinsic.texi (SELECTED_REAL_KIND): Update for radix. (PRECISION, RANGE, RADIX): Add cross @refs. 2010-06-25 Tobias Burnus <burnus@net-b.de> * intrinsics/selected_real_kind.f90 (_gfortran_selected_real_kind2008): Add function. (_gfortran_selected_real_kind): Stub which calls _gfortran_selected_real_kind2008. * gfortran.map (GFORTRAN_1.4): Add _gfortran_selected_real_kind2008. * mk-srk-inc.sh: Save also RADIX. 2010-06-25 Tobias Burnus <burnus@net-b.de> * selected_real_kind_2.f90: New. * selected_real_kind_3.f90: New. From-SVN: r161411
2010-06-25decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.Tobias Burnus4-11/+19
2010-06-25 Tobias Burnus <burnus@net-b.de> * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS. * gfortran.texi (_gfortran_set_options): Update for GFC_STD_F2008_OBS addition. * libgfortran.h: Add GFC_STD_F2008_OBS. * options.c (set_default_std_flags, gfc_handle_option): Handle GFC_STD_F2008_OBS. io.c (check_format): Fix allow_std check. 2010-06-25 Tobias Burnus <burnus@net-b.de> * runtime/compile_options.c (init_compile_options): Update compile_options.allow_std for GFC_STD_F2008_OBS. * io/transfer.c (formatted_transfer_scalar_read, formatted_transfer_scalar_write): Fix allow_std check. * io/list_read.c (nml_parse_qualifier): Ditto. 2010-06-25 Tobias Burnus <burnus@net-b.de> * gfortran.dg/entry_19.f90: New. From-SVN: r161409
2010-06-19re PR fortran/44477 (Sequential I/O with END FILE: File position should be ↵Jerry DeLisle3-11/+80
at EoF) 2010-06-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/44477 * io/file_pos.c (st_endfile): Add check for ENDFILE when file is already positioned after the EOF marker. Use find_or_create_unit instead of find_unit. If unit is not connected, connect it and create the file with default settings. * io/transfer.c (data_transfer_init): Add check for attempted READ or WRITE when file is already positioned after the EOF marker. From-SVN: r161020
2010-06-10selected_char_kind.c (selected_char_kind): Fix return value for ISO_10646.François-Xavier Coudert2-26/+31
* intrinsics/selected_char_kind.c (selected_char_kind): Fix return value for ISO_10646. * gfortran.dg/selected_char_kind_4.f90: New test. From-SVN: r160527
2010-06-09mk-kinds-h.sh: Define GFC_REAL_*_LITERAL_SUFFIX and GFC_REAL_*_LITERAL ↵Francois-Xavier Coudert4-9/+24
macros for each kind. * mk-kinds-h.sh: Define GFC_REAL_*_LITERAL_SUFFIX and GFC_REAL_*_LITERAL macros for each kind. * intrinsics/cpu_time.c (cpu_time_4, cpu_time_8, cpu_time_10, cpu_time_16): Use them. * intrinsics/random.c (rnumber_4, rnumber_8, rnumber_10, rnumber_16): Likewise. From-SVN: r160470
2010-06-09system_clock.c (system_clock_4, [...]): Undefine TCK.Francois-Xavier Coudert2-0/+7
* intrinsics/system_clock.c (system_clock_4, system_clock_8): Undefine TCK. From-SVN: r160469
2010-06-04re PR libfortran/34670 (bounds checking for array intrinsics)Thomas Koenig2-1/+11
2010-06-04 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/34670 * intrinsics/date_and_time.c: Replace assert with runtime_error when VALUE is too small. From-SVN: r160253
2010-05-20re PR fortran/43851 (Add _gfortran_error_stop_numeric)Jerry DeLisle2-5/+13
2010-05-20 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/43851 * runtime/stop.c (stop_string): Make sure nothing is emitted for blank stop. From-SVN: r159638
2010-05-20re PR fortran/43851 (Add _gfortran_error_stop_numeric)Jerry DeLisle5-24/+53
2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/43851 * runtime/stop.c (error_stop_numeric): New function and updated comment. Add declaration for stop_numeric and remove declaration for stop_string. (stop_string): Use for blank STOP. (stop_numeric): Remove use of special -1 stop code. * runtime/pause.c (do_pause): Use stop_string for blank stop. (pause_numeric): Remove use of special -1 pause code. * gfortran.map: Add new symbol to run-time library. * libgfortran.h: Move declaration for stop_string to here to make function visible for do_pause. Remove declaration for stop_numeric. 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/43851 * trans-stmt.c (gfc_trans_stop): Add generation of call to gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for blank STOP, handling a null expression. (gfc_trans_pause): Use pause_string for blank PAUSE. * trans.h: Add external function declaration for error_stop_numeric. * trans-decl.c (gfc_build_builtin_function_decls): Add the building of the declaration for the library call. Adjust whitespaces. * match.c (gfc_match_stopcode): Remove use of the actual stop code to signal no stop code. Match the expression following the stop and pass that to the translators. Remove the old use of digit matching. Add checks that the stop_code expression is INTEGER or CHARACTER, constant, and if CHARACTER, default character KIND. 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/43851 * gfortran.dg/label_1.f90: Update test. From-SVN: r159609
2010-05-08Fix typoJanne Blomqvist1-1/+1
From-SVN: r159188
2010-05-08Fix typo in symbol visibility specificationJanne Blomqvist2-1/+5
From-SVN: r159187
2010-05-07Remove free_memJanne Blomqvist14-62/+85
From-SVN: r159160
2010-05-04no-dist in non-imported automake dirs.Ralf Wildenhues4-678/+19
libgfortran/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * configure: Regenerate. * Makefile.in: Regenerate. libgomp/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * configure: Regenerate. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libjava/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * Makefile.in: Regenerate. * gcj/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libjava/libltdl/: PR other/43620 * Makefile.am (AUTOMAKE_OPTIONS): Add no-dist. * Makefile.in: Regenerate. libmudflap/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libssp/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * Makefile.in: Regenerate. libstdc++-v3/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * configure: Regenerate. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. lto-plugin/: PR other/43620 * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. * Makefile.in: Regenerate. From-SVN: r159041