2ac1a8d832
177 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Janne Blomqvist
|
5675291ddb |
PR 83097 Use __BYTE_ORDER__ predefined macro instead of runtime check
By using the __BYTE_ORDER__ predefined macro we don't need the determine_endianness function anymore. Regtested on x86_64-pc-linux-gnu. libgfortran/ChangeLog: 2017-11-22 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/83097 * io/inquire.c (inquire_via_unit): Use __BYTE_ORDER__ predefined macro. * io/open.c (st_open): Likewise. * io/transfer.c (data_transfer_init): Likewise. * io/write.c (btoa_big): Likewise. (otoa_big): Likewise. (ztoa_big): Likewise. * libgfortran.h (big_endian): Remove variable. (GFOR_POINTER_TO_L1): Use __BYTE_ORDER__ macro. * runtime/main.c (determine_endianness): Remove function. (init): Remove call to determine_endianness. * runtime/minimal.c: Remove setting big_endian variable. From-SVN: r255072 |
||
Thomas Koenig
|
ddc9995b13 |
re PR fortran/36313 ([F03] {MIN,MAX}{LOC,VAL} should accept character arguments)
2017-11-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36313 * Makefile.am: Add i_maxloc0s_c, i_maxloc1s_c, i_maxloc2s_c, i_minloc0s_c, i_minloc1s_c and i_minloc2s_c. * Makefile.in: Regenerated. * generated/maxloc0_16_s1.c: New file. * generated/maxloc0_16_s4.c: New file. * generated/maxloc0_4_s1.c: New file. * generated/maxloc0_4_s4.c: New file. * generated/maxloc0_8_s1.c: New file. * generated/maxloc0_8_s4.c: New file. * generated/maxloc1_16_s1.c: New file. * generated/maxloc1_16_s4.c: New file. * generated/maxloc1_4_s1.c: New file. * generated/maxloc1_4_s4.c: New file. * generated/maxloc1_8_s1.c: New file. * generated/maxloc1_8_s4.c: New file. * generated/maxloc2_16_s1.c: New file. * generated/maxloc2_16_s4.c: New file. * generated/maxloc2_4_s1.c: New file. * generated/maxloc2_4_s4.c: New file. * generated/maxloc2_8_s1.c: New file. * generated/maxloc2_8_s4.c: New file. * generated/minloc0_16_s1.c: New file. * generated/minloc0_16_s4.c: New file. * generated/minloc0_4_s1.c: New file. * generated/minloc0_4_s4.c: New file. * generated/minloc0_8_s1.c: New file. * generated/minloc0_8_s4.c: New file. * generated/minloc1_16_s1.c: New file. * generated/minloc1_16_s4.c: New file. * generated/minloc1_4_s1.c: New file. * generated/minloc1_4_s4.c: New file. * generated/minloc1_8_s1.c: New file. * generated/minloc1_8_s4.c: New file. * generated/minloc2_16_s1.c: New file. * generated/minloc2_16_s4.c: New file. * generated/minloc2_4_s1.c: New file. * generated/minloc2_4_s4.c: New file. * generated/minloc2_8_s1.c: New file. * generated/minloc2_8_s4.c: New file. * m4/iforeach-s.m4: New file. * m4/ifunction-s.m4: New file. * m4/maxloc0s.m4: New file. * m4/maxloc1s.m4: New file. * m4/maxloc2s.m4: New file. * m4/minloc0s.m4: New file. * m4/minloc1s.m4: New file. * m4/minloc2s.m4: New file. * gfortran.map: Add new functions. * libgfortran.h: Add gfc_array_s1 and gfc_array_s4. 2017-11-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36313 * check.c (int_or_real_or_char_check_f2003): New function. * iresolve.c (gfc_resolve_maxloc): Add number "2" for character arguments and rank-zero return value. (gfc_resolve_minloc): Likewise. * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Handle case of character arguments and rank-zero return value by removing unneeded arguments and calling the library function. 2017-11-22 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/36313 * gfortran.dg/maxloc_string_1.f90: New test. * gfortran.dg/minloc_string_1.f90: New test. From-SVN: r255070 |
||
Paul Thomas
|
ff3598bc73 |
re PR fortran/34640 (ICE when assigning item of a derived-component to a pointer)
2017-09-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/34640 PR fortran/40737 PR fortran/55763 PR fortran/57019 PR fortran/57116 * expr.c (is_subref_array): Add class pointer array dummies to the list of expressions that return true. * trans-array.c: Add SPAN_FIELD and update indices for subsequent fields. (gfc_conv_descriptor_span, gfc_conv_descriptor_span_get, gfc_conv_descriptor_span_set, is_pointer_array, get_array_span): New functions. (gfc_get_descriptor_offsets_for_info): New function to preserve API for access to descriptor fields for trans-types.c. (gfc_conv_scalarized_array_ref): If the expression is a subref array, make sure that info->descriptor is a descriptor type. Otherwise, if info->descriptor is a pointer array, set 'decl' and fix it if it is a component reference. (build_array_ref): Simplify handling of class array refs by passing the vptr to gfc_build_array_ref rather than generating the pointer arithmetic in this function. (gfc_conv_array_ref): As in gfc_conv_scalarized_array_ref, set 'decl'. (gfc_array_allocate): Set the span field if this is a pointer array. Use the expr3 element size if it is available, so that the dynamic type element size is used. (gfc_conv_expr_descriptor): Set the span field for pointer assignments. * trans-array.h: Prototypes for gfc_conv_descriptor_span_get gfc_conv_descriptor_span_set and gfc_get_descriptor_offsets_for_info added. trans-decl.c (gfc_get_symbol_decl): If a non-class pointer array, mark the declaration as a GFC_DECL_PTR_ARRAY_P. Remove the setting of GFC_DECL_SPAN. (gfc_trans_deferred_vars): Set the span field to zero in thge originating scope. * trans-expr.c (gfc_conv_procedure_call): Do not use copy-in/ copy-out to pass subref expressions to a pointer dummy. (gfc_trans_pointer_assignment): Remove code for setting of GFC_DECL_SPAN. Set the 'span' field for non-class pointers to class function results. Likewise for rank remap. In the case that the target is not a whole array, use the target array ref for remap and, since the 'start' indices are missing, set the lbounds to one, as required by the standard. * trans-intrinsic.c (conv_expr_ref_to_caf_ref): Pick up the 'token' offset from the field decl in the descriptor. (conv_isocbinding_subroutine): Set the 'span' field. * trans-io.c (gfc_trans_transfer): Always scalarize pointer array io. * trans-stmt.c (trans_associate_var): Set the 'span' field. * trans-types.c (gfc_get_array_descriptor_base): Add the 'span' field to the array descriptor. (gfc_get_derived_type): Pointer array components are marked as GFC_DECL_PTR_ARRAY_P. (gfc_get_array_descr_info): Replaced API breaking code for descriptor offset calling gfc_get_descriptor_offsets_for_info. * trans.c (get_array_span): New function. (gfc_build_array_ref): Simplify by calling get_array_span and obtain 'span' if 'decl' or 'vptr' present. * trans.h : Rename DECL_LANG_FLAG_6, GFC_DECL_SUBREF_ARRAY_P, as GFC_DECL_PTR_ARRAY_P. 2017-09-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/34640 * gfortran.dg/associate_24.f90: New test. * gfortran.dg/assumed_type_2.f90: Adjust some of the tree dump checks. * gfortran.dg/no_arg_check_2.f90: Likewise. * gfortran.dg/pointer_array_1.f90: New test. * gfortran.dg/pointer_array_2.f90: New test. * gfortran.dg/pointer_array_7.f90: New test. * gfortran.dg/pointer_array_8.f90: New test. * gfortran.dg/pointer_array_component_1.f90: New test. * gfortran.dg/pointer_array_component_2.f90: New test. * gfortran.dg/goacc/kernels-alias-4.f95: Bump up both tree scan counts by 1. PR fortran/40737 * gfortran.dg/pointer_array_3.f90: New test. PR fortran/57116 * gfortran.dg/pointer_array_4.f90: New test. PR fortran/55763 * gfortran.dg/pointer_array_5.f90: New test. PR fortran/57019 * gfortran.dg/pointer_array_6.f90: New test. 2017-09-10 Paul Thomas <pault@gcc.gnu.org> PR fortran/34640 * libgfortran/libgfortran.h: Add span field to descriptor. * libgfortran/libtool-version : Bump up version number to 5:0:0. From-SVN: r251949 |
||
Thomas Koenig
|
e56e3fda60 |
re PR fortran/52473 (CSHIFT slow - inline it?)
2017-06-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/52473 * Makefile.am: Add i_cshift1a_c. Add rules to generate files from cshift1a.m4. * Makefile.in: Regenerated. * m4/cshift1a.m4: New file. * m4/cshift.m4 (cshift1): Split up inner loop by removing condition. Use memcpy where possible. Call helper functions based on dtype. * libgfortran.h: Add prototypes for cshift1_16_c10, cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1, cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8, cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8, cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8, cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4, cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4, cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4, cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2, cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16, cshift1_8_r4 and cshift1_8_r8. * generated/cshift1_16_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r8.c: New file, generated from cshift1a.m4. 2017-06-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/52473 * gfortran.dg/cshift_2.f90: New test. From-SVN: r249620 |
||
Janne Blomqvist
|
d86e68e207 |
Don't assume __secure_getenv is available
Glibc 2.17 made __secure_getenv an officially supported function, and renamed it secure_getenv. The libgfortran configure has checked for both of these, per https://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv. Unfortunately, while the dynamical library (libc.so) retains the __secure_getenv symbol for backwards compatibility, the static library (libc.a) does not. This means that a libgfortran.a compiled against an older glibc will not work if one tries to link against a newer libc.a. This creates problems for providing gfortran binary distributions that work on as many target systems as possible. Thus, retain the support for __secure_getenv but call it only via a weak reference. Regtested on x86_64-pc-linux-gnu. 2017-05-11 Janne Blomqvist <jb@gcc.gnu.org> * libgfortran.h: HAVE_SECURE_GETENV: Don't check HAVE___SECURE_GETENV. * environ/runtime.c (secure_getenv): Use __secure_getenv via a weak reference. From-SVN: r247927 |
||
Thomas Koenig
|
20305b5047 |
re PR libfortran/79956 (many new -Wmaybe-uninitialized warnings with bootstrap-O3)
2017-03-15 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/79956 * libgfortran.h (GFC_ASSERT): New macro. * m4/reshape.m4 (reshape_'rtype_ccode`): Use GFC_ASSERT to specify that sdim > 0 and rdim > 0. * intrinsic/reshape_generic.c (reshape_internal): Likweise. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. From-SVN: r246153 |
||
Janne Blomqvist
|
c1e9bbcc49 |
Revert r244448
From-SVN: r244454 |
||
Janne Blomqvist
|
a6ab4e077b |
PR 78534 Change character length from int to size_t
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t, as there were some cases where character lengths and sizes were apparently mixed up and caused regressions otherwise. Although I haven't tested, this might enable very large derived types as well. Also, as there are some places in the frontend were negative character lengths are used as special flag values, in the frontend the character length is handled as a signed variable of the same size as a size_t, although in the runtime library it really is size_t. I haven't changed the character length variables for the co-array intrinsics, as this is something that may need to be synchronized with OpenCoarrays. This is v4 of the patch. v3 was applied but had to reverted due to breaking bootstrap. The fix is in resolve.c:resolve_charlen, where it's necessary to check that an expression is constant before using mpz_sgn. Overview of v3 of the patch: All the issues pointed out by FX's review of v2 have been fixed. In particular, there are now new functions gfc_mpz_get_hwi and gfc_mpz_set_hwi, similar to the GMP functions mpz_get_si and mpz_set_si, except that they get/set a HOST_WIDE_INT instead of a long value. Similarly, gfc_get_int_expr now takes a HOST_WIDE_INT instead of a long, gfc_extract_long is replaced by gfc_extract_hwi. Also, the preliminary work to handle gfc_charlen_type_node being unsigned has been removed. Regtested on x86_64-pc-linux-gnu and i686-pc-linux-gnu. frontend: 2017-01-13 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 PR fortran/66310 * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of hardcoded kind. (find_intrinsic_vtab): Likewise. * expr.c (gfc_get_character_expr): Length parameter of type gfc_charlen_t. (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. (gfc_extract_hwi): New function. (simplify_const_ref): Make string_len of type gfc_charlen_t. (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. * gfortran.h (gfc_mpz_get_hwi): New prototype. (gfc_mpz_set_hwi): Likewise. (gfc_charlen_t): New typedef. (gfc_expr): Use gfc_charlen_t for character lengths. (gfc_size_kind): New extern variable. (gfc_extract_hwi): New prototype. (gfc_get_character_expr): Use gfc_charlen_t for character length. (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. * iresolve.c (gfc_resolve_repeat): Pass string length directly without temporary, use gfc_charlen_int_kind. * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. * misc.c (gfc_mpz_get_hwi): New function. (gfc_mpz_set_hwi): New function. * module.c (atom_int): Change type from int to HOST_WIDE_INT. (parse_integer): Don't complain about large integers. (write_atom): Use HOST_WIDE_INT for integers. (mio_integer): Handle integer type mismatch. (mio_hwi): New function. (mio_intrinsic_op): Use HOST_WIDE_INT. (mio_array_ref): Likewise. (mio_expr): Likewise. * resolve.c (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. (resolve_substring_charlen): Use gfc_charlen_int_kind. (resolve_charlen): Use mpz_sgn to determine sign. * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t instead of long. * target-memory.c (size_character): Length argument of type gfc_charlen_t. (gfc_encode_character): Likewise. (gfc_interpret_character): Use gfc_charlen_t. * target-memory.h (gfc_encode_character): Modify prototype. * trans-array.c (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. * trans-const.c (gfc_conv_mpz_to_tree_type): New function. * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. * trans-expr.c (gfc_class_len_or_zero_get): Build const of type gfc_charlen_type_node. (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of 4, fold_convert to correct type. (gfc_conv_class_to_class): Build const of type size_type_node for size. (gfc_copy_class_to_class): Likewise. (gfc_conv_string_length): Use same type in expression. (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. (gfc_conv_string_tmp): Make sure len is of the right type. (gfc_conv_concat_op): Use same type in expression. (gfc_conv_procedure_call): Likewise. (alloc_scalar_allocatable_for_subcomponent_assignment): fold_convert to right type. (gfc_trans_subcomponent_assign): Likewise. (trans_class_vptr_len_assignment): Build const of correct type. (gfc_trans_pointer_assignment): Likewise. (alloc_scalar_allocatable_for_assignment): fold_convert to right type in expr. (trans_class_assignment): Build const of correct type. * trans-intrinsic.c (gfc_conv_associated): Likewise. (gfc_conv_intrinsic_repeat): Do calculation in sizetype. * trans-io.c (gfc_build_io_library_fndecls): Use gfc_charlen_type_node for character lengths. * trans-stmt.c (gfc_trans_label_assign): Build const of gfc_charlen_type_node. (gfc_trans_character_select): Likewise. (gfc_trans_allocate): Likewise, don't typecast strlen result. (gfc_trans_deallocate): Don't typecast strlen result. * trans-types.c (gfc_size_kind): New variable. (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind from size_type_node. testsuite: 2017-01-13 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 PR fortran/66310 * gfortran.dg/repeat_4.f90: Use integers of kind C_SIZE_T. * gfortran.dg/repeat_7.f90: New test for PR 66310. * gfortran.dg/scan_2.f90: Handle potential cast in assignment. * gfortran.dg/string_1.f90: Limit to ilp32 targets. * gfortran.dg/string_1_lp64.f90: New test. * gfortran.dg/string_3.f90: Limit to ilp32 targets. * gfortran.dg/string_3_lp64.f90: New test. libgfortran: 2017-01-13 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 * intrinsics/args.c (getarg_i4): Use gfc_charlen_type. (get_command_argument_i4): Likewise. (get_command_i4): Likewise. * intrinsics/chmod.c (chmod_internal): Likewise. * intrinsics/env.c (get_environment_variable_i4): Likewise. * intrinsics/extends_type_of.c (struct vtype): Use size_t for size member. * intrinsics/gerror.c (gerror): Use gfc_charlen_type. * intrinsics/getlog.c (getlog): Likewise. * intrinsics/hostnm.c (hostnm_0): Likewise. * intrinsics/string_intrinsics_inc.c (string_len_trim): Rework to work if gfc_charlen_type is unsigned. (string_scan): Likewise. * io/transfer.c (transfer_character): Modify prototype. (transfer_character_write): Likewise. (transfer_character_wide): Likewise. (transfer_character_wide_write): Likewise. (transfer_array): Typecast to avoid signed-unsigned comparison. * io/unit.c (is_trim_ok): Use gfc_charlen_type. * io/write.c (namelist_write): Likewise. * libgfortran.h (gfc_charlen_type): Change typedef to size_t. From-SVN: r244448 |
||
Janne Blomqvist
|
84aff3c2d4 |
PR 78534 Revert r244011
r244011 caused regressions on 32-bit hosts. From-SVN: r244027 |
||
Janne Blomqvist
|
994e4aca2c |
PR 78534 Change character length from int to size_t
In order to handle large character lengths on (L)LP64 targets, switch the GFortran character length from an int to a size_t. This is an ABI change, as procedures with character arguments take hidden arguments with the character length. I also changed the _size member in vtables from int to size_t, as there were some cases where character lengths and sizes were apparently mixed up and caused regressions otherwise. Although I haven't tested, this might enable very large derived types as well. Also, as there are some places in the frontend were negative character lengths are used as special flag values, in the frontend the character length is handled as a signed variable of the same size as a size_t, although in the runtime library it really is size_t. I haven't changed the character length variables for the co-array intrinsics, as this is something that may need to be synchronized with OpenCoarrays. This is v3 of the patch. All the issues pointed out by FX's review of v2 have been fixed. In particular, there are now new functions gfc_mpz_get_hwi and gfc_mpz_set_hwi, similar to the GMP functions mpz_get_si and mpz_set_si, except that they get/set a HOST_WIDE_INT instead of a long value. Similarly, gfc_get_int_expr now takes a HOST_WIDE_INT instead of a long, gfc_extract_long is replaced by gfc_extract_hwi. Also, the preliminary work to handle gfc_charlen_type_node being unsigned has been removed. Regtested on x86_64-pc-linux-gnu. frontend: 2017-01-03 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 PR fortran/66310 * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of hardcoded kind. (find_intrinsic_vtab): Likewise. * expr.c (gfc_get_character_expr): Length parameter of type gfc_charlen_t. (gfc_get_int_expr): Value argument of type HOST_WIDE_INT. (gfc_extract_hwi): New function. (simplify_const_ref): Make string_len of type gfc_charlen_t. (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs. * gfortran.h (gfc_mpz_get_hwi): New prototype. (gfc_mpz_set_hwi): Likewise. (gfc_charlen_t): New typedef. (gfc_expr): Use gfc_charlen_t for character lengths. (gfc_size_kind): New extern variable. (gfc_extract_hwi): New prototype. (gfc_get_character_expr): Use gfc_charlen_t for character length. (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument. * iresolve.c (gfc_resolve_repeat): Pass string length directly without temporary, use gfc_charlen_int_kind. * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen. * misc.c (gfc_mpz_get_hwi): New function. (gfc_mpz_set_hwi): New function. * module.c (atom_int): Change type from int to HOST_WIDE_INT. (parse_integer): Don't complain about large integers. (write_atom): Use HOST_WIDE_INT for integers. (mio_integer): Handle integer type mismatch. (mio_hwi): New function. (mio_intrinsic_op): Use HOST_WIDE_INT. (mio_array_ref): Likewise. (mio_expr): Likewise. * resolve.c (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf. (resolve_charlen): Use mpz_sgn to determine sign. * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t instead of long. * target-memory.c (size_character): Length argument of type gfc_charlen_t. (gfc_encode_character): Likewise. (gfc_interpret_character): Use gfc_charlen_t. * target-memory.h (gfc_encode_character): Modify prototype. * trans-array.c (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type. * trans-const.c (gfc_conv_mpz_to_tree_type): New function. * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype. * trans-expr.c (gfc_class_len_or_zero_get): Build const of type gfc_charlen_type_node. (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of 4, fold_convert to correct type. (gfc_conv_class_to_class): Build const of type size_type_node for size. (gfc_copy_class_to_class): Likewise. (gfc_conv_string_length): Use same type in expression. (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen. (gfc_conv_string_tmp): Make sure len is of the right type. (gfc_conv_concat_op): Use same type in expression. (gfc_conv_procedure_call): Likewise. (alloc_scalar_allocatable_for_subcomponent_assignment): fold_convert to right type. (gfc_trans_subcomponent_assign): Likewise. (trans_class_vptr_len_assignment): Build const of correct type. (gfc_trans_pointer_assignment): Likewise. (alloc_scalar_allocatable_for_assignment): fold_convert to right type in expr. (trans_class_assignment): Build const of correct type. * trans-intrinsic.c (gfc_conv_associated): Likewise. (gfc_conv_intrinsic_repeat): Do calculation in sizetype. * trans-io.c (gfc_build_io_library_fndecls): Use gfc_charlen_type_node for character lengths. * trans-stmt.c (gfc_trans_label_assign): Build const of gfc_charlen_type_node. (gfc_trans_character_select): Likewise. (gfc_trans_allocate): Likewise, don't typecast strlen result. (gfc_trans_deallocate): Don't typecast strlen result. * trans-types.c (gfc_size_kind): New variable. (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind from size_type_node. testsuite: 2017-01-03 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 PR fortran/66310 * gfortran.dg/dependency_49.f90: Change scan-tree-dump-times due to gfc_trans_string_copy change to avoid -Wstringop-overflow. * gfortran.dg/repeat_4.f90: Use integers of kind C_SIZE_T. * gfortran.dg/repeat_7.f90: New test for PR 66310. * gfortran.dg/scan_2.f90: Handle potential cast in assignment. * gfortran.dg/string_1.f90: Limit to ilp32 targets. * gfortran.dg/string_1_lp64.f90: New test. * gfortran.dg/string_3.f90: Limit to ilp32 targets. * gfortran.dg/string_3_lp64.f90: New test. * gfortran.dg/transfer_intrinsic_1.f90: Change scan-tree-dump-times due to gfc_trans_string_copy change to avoid -Wstringop-overflow. libgfortran: 2017-01-03 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 * intrinsics/args.c (getarg_i4): Use gfc_charlen_type. (get_command_argument_i4): Likewise. (get_command_i4): Likewise. * intrinsics/chmod.c (chmod_internal): Likewise. * intrinsics/env.c (get_environment_variable_i4): Likewise. * intrinsics/extends_type_of.c (struct vtype): Use size_t for size member. * intrinsics/gerror.c (gerror): Use gfc_charlen_type. * intrinsics/getlog.c (getlog): Likewise. * intrinsics/hostnm.c (hostnm_0): Likewise. * intrinsics/string_intrinsics_inc.c (string_len_trim): Rework to work if gfc_charlen_type is unsigned. (string_scan): Likewise. * io/transfer.c (transfer_character): Modify prototype. (transfer_character_write): Likewise. (transfer_character_wide): Likewise. (transfer_character_wide_write): Likewise. (transfer_array): Typecast to avoid signed-unsigned comparison. * io/unit.c (is_trim_ok): Use gfc_charlen_type. * io/write.c (namelist_write): Likewise. * libgfortran.h (gfc_charlen_type): Change typedef to size_t. From-SVN: r244011 |
||
Jakub Jelinek
|
cbe34bb5ed |
Update copyright years.
From-SVN: r243994 |
||
Francois-Xavier Coudert
|
887d9b8b6d |
libgfortran.h: Include <stdlib.h> header.
* libgfortran.h: Include <stdlib.h> header. * intrinsics/access.c: Do not include <stdlib.h> header. * intrinsics/chdir.c: Do not include <stdlib.h> header. * intrinsics/chmod.c: Do not include <stdlib.h> header. * intrinsics/date_and_time.c: Do not include <stdlib.h> header. * intrinsics/env.c: Do not include <stdlib.h> header. * intrinsics/execute_command_line.c: Do not include <stdlib.h> header. * intrinsics/exit.c: Do not include <stdlib.h> header. * intrinsics/getcwd.c: Do not include <stdlib.h> header. * intrinsics/getlog.c: Do not include <stdlib.h> header. * intrinsics/link.c: Do not include <stdlib.h> header. * intrinsics/move_alloc.c: Do not include <stdlib.h> header. * intrinsics/perror.c: Do not include <stdlib.h> header. * intrinsics/random.c: Do not include <stdlib.h> header. * intrinsics/rename.c: Do not include <stdlib.h> header. * intrinsics/reshape_generic.c: Do not include <stdlib.h> header. * intrinsics/stat.c: Do not include <stdlib.h> header. * intrinsics/symlnk.c: Do not include <stdlib.h> header. * intrinsics/system.c: Do not include <stdlib.h> header. * intrinsics/unlink.c: Do not include <stdlib.h> header. * io/fbuf.c: Do not include <stdlib.h> header. * io/format.c: Do not include <stdlib.h> header. * io/intrinsics.c: Do not include <stdlib.h> header. * io/list_read.c: Do not include <stdlib.h> header. * io/lock.c: Do not include <stdlib.h> header. * io/open.c: Do not include <stdlib.h> header. * io/read.c: Do not include <stdlib.h> header. * io/transfer.c: Do not include <stdlib.h> header. * io/unit.c: Do not include <stdlib.h> header. * io/unix.c: Do not include <stdlib.h> header. * io/write.c: Do not include <stdlib.h> header. * m4/all.m4: Do not include <stdlib.h> header. * m4/any.m4: Do not include <stdlib.h> header. * m4/bessel.m4: Do not include <stdlib.h> header. * m4/count.m4: Do not include <stdlib.h> header. * m4/cshift0.m4: Do not include <stdlib.h> header. * m4/cshift1.m4: Do not include <stdlib.h> header. * m4/eoshift1.m4: Do not include <stdlib.h> header. * m4/eoshift3.m4: Do not include <stdlib.h> header. * m4/iall.m4: Do not include <stdlib.h> header. * m4/iany.m4: Do not include <stdlib.h> header. * m4/in_pack.m4: Do not include <stdlib.h> header. * m4/in_unpack.m4: Do not include <stdlib.h> header. * m4/iparity.m4: Do not include <stdlib.h> header. * m4/matmul.m4: Do not include <stdlib.h> header. * m4/matmull.m4: Do not include <stdlib.h> header. * m4/maxloc0.m4: Do not include <stdlib.h> header. * m4/maxloc1.m4: Do not include <stdlib.h> header. * m4/maxval.m4: Do not include <stdlib.h> header. * m4/minloc0.m4: Do not include <stdlib.h> header. * m4/minloc1.m4: Do not include <stdlib.h> header. * m4/minval.m4: Do not include <stdlib.h> header. * m4/norm2.m4: Do not include <stdlib.h> header. * m4/pack.m4: Do not include <stdlib.h> header. * m4/parity.m4: Do not include <stdlib.h> header. * m4/product.m4: Do not include <stdlib.h> header. * m4/reshape.m4: Do not include <stdlib.h> header. * m4/shape.m4: Do not include <stdlib.h> header. * m4/spread.m4: Do not include <stdlib.h> header. * m4/sum.m4: Do not include <stdlib.h> header. * m4/unpack.m4: Do not include <stdlib.h> header. * runtime/environ.c: Do not include <stdlib.h> header. * runtime/error.c: Do not include <stdlib.h> header. * runtime/memory.c: Do not include <stdlib.h> header. * runtime/minimal.c: Do not include <stdlib.h> header. * runtime/string.c: Do not include <stdlib.h> header. * generated/all_l1.c: Regenerate. * generated/all_l16.c: Regenerate. * generated/all_l2.c: Regenerate. * generated/all_l4.c: Regenerate. * generated/all_l8.c: Regenerate. * generated/any_l1.c: Regenerate. * generated/any_l16.c: Regenerate. * generated/any_l2.c: Regenerate. * generated/any_l4.c: Regenerate. * generated/any_l8.c: Regenerate. * generated/bessel_r10.c: Regenerate. * generated/bessel_r16.c: Regenerate. * generated/bessel_r4.c: Regenerate. * generated/bessel_r8.c: Regenerate. * generated/count_16_l.c: Regenerate. * generated/count_1_l.c: Regenerate. * generated/count_2_l.c: Regenerate. * generated/count_4_l.c: Regenerate. * generated/count_8_l.c: Regenerate. * generated/cshift0_c10.c: Regenerate. * generated/cshift0_c16.c: Regenerate. * generated/cshift0_c4.c: Regenerate. * generated/cshift0_c8.c: Regenerate. * generated/cshift0_i1.c: Regenerate. * generated/cshift0_i16.c: Regenerate. * generated/cshift0_i2.c: Regenerate. * generated/cshift0_i4.c: Regenerate. * generated/cshift0_i8.c: Regenerate. * generated/cshift0_r10.c: Regenerate. * generated/cshift0_r16.c: Regenerate. * generated/cshift0_r4.c: Regenerate. * generated/cshift0_r8.c: Regenerate. * generated/cshift1_16.c: Regenerate. * generated/cshift1_4.c: Regenerate. * generated/cshift1_8.c: Regenerate. * generated/eoshift1_16.c: Regenerate. * generated/eoshift1_4.c: Regenerate. * generated/eoshift1_8.c: Regenerate. * generated/eoshift3_16.c: Regenerate. * generated/eoshift3_4.c: Regenerate. * generated/eoshift3_8.c: Regenerate. * generated/iall_i1.c: Regenerate. * generated/iall_i16.c: Regenerate. * generated/iall_i2.c: Regenerate. * generated/iall_i4.c: Regenerate. * generated/iall_i8.c: Regenerate. * generated/iany_i1.c: Regenerate. * generated/iany_i16.c: Regenerate. * generated/iany_i2.c: Regenerate. * generated/iany_i4.c: Regenerate. * generated/iany_i8.c: Regenerate. * generated/in_pack_c10.c: Regenerate. * generated/in_pack_c16.c: Regenerate. * generated/in_pack_c4.c: Regenerate. * generated/in_pack_c8.c: Regenerate. * generated/in_pack_i1.c: Regenerate. * generated/in_pack_i16.c: Regenerate. * generated/in_pack_i2.c: Regenerate. * generated/in_pack_i4.c: Regenerate. * generated/in_pack_i8.c: Regenerate. * generated/in_pack_r10.c: Regenerate. * generated/in_pack_r16.c: Regenerate. * generated/in_pack_r4.c: Regenerate. * generated/in_pack_r8.c: Regenerate. * generated/in_unpack_c10.c: Regenerate. * generated/in_unpack_c16.c: Regenerate. * generated/in_unpack_c4.c: Regenerate. * generated/in_unpack_c8.c: Regenerate. * generated/in_unpack_i1.c: Regenerate. * generated/in_unpack_i16.c: Regenerate. * generated/in_unpack_i2.c: Regenerate. * generated/in_unpack_i4.c: Regenerate. * generated/in_unpack_i8.c: Regenerate. * generated/in_unpack_r10.c: Regenerate. * generated/in_unpack_r16.c: Regenerate. * generated/in_unpack_r4.c: Regenerate. * generated/in_unpack_r8.c: Regenerate. * generated/iparity_i1.c: Regenerate. * generated/iparity_i16.c: Regenerate. * generated/iparity_i2.c: Regenerate. * generated/iparity_i4.c: Regenerate. * generated/iparity_i8.c: Regenerate. * generated/matmul_c10.c: Regenerate. * generated/matmul_c16.c: Regenerate. * generated/matmul_c4.c: Regenerate. * generated/matmul_c8.c: Regenerate. * generated/matmul_i1.c: Regenerate. * generated/matmul_i16.c: Regenerate. * generated/matmul_i2.c: Regenerate. * generated/matmul_i4.c: Regenerate. * generated/matmul_i8.c: Regenerate. * generated/matmul_l16.c: Regenerate. * generated/matmul_l4.c: Regenerate. * generated/matmul_l8.c: Regenerate. * generated/matmul_r10.c: Regenerate. * generated/matmul_r16.c: Regenerate. * generated/matmul_r4.c: Regenerate. * generated/matmul_r8.c: Regenerate. * generated/maxloc0_16_i1.c: Regenerate. * generated/maxloc0_16_i16.c: Regenerate. * generated/maxloc0_16_i2.c: Regenerate. * generated/maxloc0_16_i4.c: Regenerate. * generated/maxloc0_16_i8.c: Regenerate. * generated/maxloc0_16_r10.c: Regenerate. * generated/maxloc0_16_r16.c: Regenerate. * generated/maxloc0_16_r4.c: Regenerate. * generated/maxloc0_16_r8.c: Regenerate. * generated/maxloc0_4_i1.c: Regenerate. * generated/maxloc0_4_i16.c: Regenerate. * generated/maxloc0_4_i2.c: Regenerate. * generated/maxloc0_4_i4.c: Regenerate. * generated/maxloc0_4_i8.c: Regenerate. * generated/maxloc0_4_r10.c: Regenerate. * generated/maxloc0_4_r16.c: Regenerate. * generated/maxloc0_4_r4.c: Regenerate. * generated/maxloc0_4_r8.c: Regenerate. * generated/maxloc0_8_i1.c: Regenerate. * generated/maxloc0_8_i16.c: Regenerate. * generated/maxloc0_8_i2.c: Regenerate. * generated/maxloc0_8_i4.c: Regenerate. * generated/maxloc0_8_i8.c: Regenerate. * generated/maxloc0_8_r10.c: Regenerate. * generated/maxloc0_8_r16.c: Regenerate. * generated/maxloc0_8_r4.c: Regenerate. * generated/maxloc0_8_r8.c: Regenerate. * generated/maxloc1_16_i1.c: Regenerate. * generated/maxloc1_16_i16.c: Regenerate. * generated/maxloc1_16_i2.c: Regenerate. * generated/maxloc1_16_i4.c: Regenerate. * generated/maxloc1_16_i8.c: Regenerate. * generated/maxloc1_16_r10.c: Regenerate. * generated/maxloc1_16_r16.c: Regenerate. * generated/maxloc1_16_r4.c: Regenerate. * generated/maxloc1_16_r8.c: Regenerate. * generated/maxloc1_4_i1.c: Regenerate. * generated/maxloc1_4_i16.c: Regenerate. * generated/maxloc1_4_i2.c: Regenerate. * generated/maxloc1_4_i4.c: Regenerate. * generated/maxloc1_4_i8.c: Regenerate. * generated/maxloc1_4_r10.c: Regenerate. * generated/maxloc1_4_r16.c: Regenerate. * generated/maxloc1_4_r4.c: Regenerate. * generated/maxloc1_4_r8.c: Regenerate. * generated/maxloc1_8_i1.c: Regenerate. * generated/maxloc1_8_i16.c: Regenerate. * generated/maxloc1_8_i2.c: Regenerate. * generated/maxloc1_8_i4.c: Regenerate. * generated/maxloc1_8_i8.c: Regenerate. * generated/maxloc1_8_r10.c: Regenerate. * generated/maxloc1_8_r16.c: Regenerate. * generated/maxloc1_8_r4.c: Regenerate. * generated/maxloc1_8_r8.c: Regenerate. * generated/maxval_i1.c: Regenerate. * generated/maxval_i16.c: Regenerate. * generated/maxval_i2.c: Regenerate. * generated/maxval_i4.c: Regenerate. * generated/maxval_i8.c: Regenerate. * generated/maxval_r10.c: Regenerate. * generated/maxval_r16.c: Regenerate. * generated/maxval_r4.c: Regenerate. * generated/maxval_r8.c: Regenerate. * generated/minloc0_16_i1.c: Regenerate. * generated/minloc0_16_i16.c: Regenerate. * generated/minloc0_16_i2.c: Regenerate. * generated/minloc0_16_i4.c: Regenerate. * generated/minloc0_16_i8.c: Regenerate. * generated/minloc0_16_r10.c: Regenerate. * generated/minloc0_16_r16.c: Regenerate. * generated/minloc0_16_r4.c: Regenerate. * generated/minloc0_16_r8.c: Regenerate. * generated/minloc0_4_i1.c: Regenerate. * generated/minloc0_4_i16.c: Regenerate. * generated/minloc0_4_i2.c: Regenerate. * generated/minloc0_4_i4.c: Regenerate. * generated/minloc0_4_i8.c: Regenerate. * generated/minloc0_4_r10.c: Regenerate. * generated/minloc0_4_r16.c: Regenerate. * generated/minloc0_4_r4.c: Regenerate. * generated/minloc0_4_r8.c: Regenerate. * generated/minloc0_8_i1.c: Regenerate. * generated/minloc0_8_i16.c: Regenerate. * generated/minloc0_8_i2.c: Regenerate. * generated/minloc0_8_i4.c: Regenerate. * generated/minloc0_8_i8.c: Regenerate. * generated/minloc0_8_r10.c: Regenerate. * generated/minloc0_8_r16.c: Regenerate. * generated/minloc0_8_r4.c: Regenerate. * generated/minloc0_8_r8.c: Regenerate. * generated/minloc1_16_i1.c: Regenerate. * generated/minloc1_16_i16.c: Regenerate. * generated/minloc1_16_i2.c: Regenerate. * generated/minloc1_16_i4.c: Regenerate. * generated/minloc1_16_i8.c: Regenerate. * generated/minloc1_16_r10.c: Regenerate. * generated/minloc1_16_r16.c: Regenerate. * generated/minloc1_16_r4.c: Regenerate. * generated/minloc1_16_r8.c: Regenerate. * generated/minloc1_4_i1.c: Regenerate. * generated/minloc1_4_i16.c: Regenerate. * generated/minloc1_4_i2.c: Regenerate. * generated/minloc1_4_i4.c: Regenerate. * generated/minloc1_4_i8.c: Regenerate. * generated/minloc1_4_r10.c: Regenerate. * generated/minloc1_4_r16.c: Regenerate. * generated/minloc1_4_r4.c: Regenerate. * generated/minloc1_4_r8.c: Regenerate. * generated/minloc1_8_i1.c: Regenerate. * generated/minloc1_8_i16.c: Regenerate. * generated/minloc1_8_i2.c: Regenerate. * generated/minloc1_8_i4.c: Regenerate. * generated/minloc1_8_i8.c: Regenerate. * generated/minloc1_8_r10.c: Regenerate. * generated/minloc1_8_r16.c: Regenerate. * generated/minloc1_8_r4.c: Regenerate. * generated/minloc1_8_r8.c: Regenerate. * generated/minval_i1.c: Regenerate. * generated/minval_i16.c: Regenerate. * generated/minval_i2.c: Regenerate. * generated/minval_i4.c: Regenerate. * generated/minval_i8.c: Regenerate. * generated/minval_r10.c: Regenerate. * generated/minval_r16.c: Regenerate. * generated/minval_r4.c: Regenerate. * generated/minval_r8.c: Regenerate. * generated/norm2_r10.c: Regenerate. * generated/norm2_r16.c: Regenerate. * generated/norm2_r4.c: Regenerate. * generated/norm2_r8.c: Regenerate. * generated/pack_c10.c: Regenerate. * generated/pack_c16.c: Regenerate. * generated/pack_c4.c: Regenerate. * generated/pack_c8.c: Regenerate. * generated/pack_i1.c: Regenerate. * generated/pack_i16.c: Regenerate. * generated/pack_i2.c: Regenerate. * generated/pack_i4.c: Regenerate. * generated/pack_i8.c: Regenerate. * generated/pack_r10.c: Regenerate. * generated/pack_r16.c: Regenerate. * generated/pack_r4.c: Regenerate. * generated/pack_r8.c: Regenerate. * generated/parity_l1.c: Regenerate. * generated/parity_l16.c: Regenerate. * generated/parity_l2.c: Regenerate. * generated/parity_l4.c: Regenerate. * generated/parity_l8.c: Regenerate. * generated/product_c10.c: Regenerate. * generated/product_c16.c: Regenerate. * generated/product_c4.c: Regenerate. * generated/product_c8.c: Regenerate. * generated/product_i1.c: Regenerate. * generated/product_i16.c: Regenerate. * generated/product_i2.c: Regenerate. * generated/product_i4.c: Regenerate. * generated/product_i8.c: Regenerate. * generated/product_r10.c: Regenerate. * generated/product_r16.c: Regenerate. * generated/product_r4.c: Regenerate. * generated/product_r8.c: Regenerate. * generated/reshape_c10.c: Regenerate. * generated/reshape_c16.c: Regenerate. * generated/reshape_c4.c: Regenerate. * generated/reshape_c8.c: Regenerate. * generated/reshape_i16.c: Regenerate. * generated/reshape_i4.c: Regenerate. * generated/reshape_i8.c: Regenerate. * generated/reshape_r10.c: Regenerate. * generated/reshape_r16.c: Regenerate. * generated/reshape_r4.c: Regenerate. * generated/reshape_r8.c: Regenerate. * generated/shape_i1.c: Regenerate. * generated/shape_i16.c: Regenerate. * generated/shape_i2.c: Regenerate. * generated/shape_i4.c: Regenerate. * generated/shape_i8.c: Regenerate. * generated/spread_c10.c: Regenerate. * generated/spread_c16.c: Regenerate. * generated/spread_c4.c: Regenerate. * generated/spread_c8.c: Regenerate. * generated/spread_i1.c: Regenerate. * generated/spread_i16.c: Regenerate. * generated/spread_i2.c: Regenerate. * generated/spread_i4.c: Regenerate. * generated/spread_i8.c: Regenerate. * generated/spread_r10.c: Regenerate. * generated/spread_r16.c: Regenerate. * generated/spread_r4.c: Regenerate. * generated/spread_r8.c: Regenerate. * generated/sum_c10.c: Regenerate. * generated/sum_c16.c: Regenerate. * generated/sum_c4.c: Regenerate. * generated/sum_c8.c: Regenerate. * generated/sum_i1.c: Regenerate. * generated/sum_i16.c: Regenerate. * generated/sum_i2.c: Regenerate. * generated/sum_i4.c: Regenerate. * generated/sum_i8.c: Regenerate. * generated/sum_r10.c: Regenerate. * generated/sum_r16.c: Regenerate. * generated/sum_r4.c: Regenerate. * generated/sum_r8.c: Regenerate. * generated/unpack_c10.c: Regenerate. * generated/unpack_c16.c: Regenerate. * generated/unpack_c4.c: Regenerate. * generated/unpack_c8.c: Regenerate. * generated/unpack_i1.c: Regenerate. * generated/unpack_i16.c: Regenerate. * generated/unpack_i2.c: Regenerate. * generated/unpack_i4.c: Regenerate. * generated/unpack_i8.c: Regenerate. * generated/unpack_r10.c: Regenerate. * generated/unpack_r16.c: Regenerate. * generated/unpack_r4.c: Regenerate. * generated/unpack_r8.c: Regenerate. From-SVN: r243846 |
||
Janne Blomqvist
|
7e294024ad |
Remove unused libgfortran functions
Now that the libgfortran ABI major version has been bumped, we can remove functions for which the frontend nowadays generates inline code. This removes the malloc, free, exponent, fraction, nearest, rrspacing, spacing, set_exponent and transpose intrinsics. Also the unused store_exe_path function is removed. 2016-12-19 Janne Blomqvist <jb@gcc.gnu.org> * Makefile.am: Remove exponent, fraction, nearest, rrspacing, set_exponent, spacing, transpose, malloc, transpose_generic. * Makefile.in: Regenerate. * generated/exponent_r10.c: Remove. * generated/exponent_r16.c: Remove. * generated/exponent_r4.c: Remove. * generated/exponent_r8.c: Remove. * generated/fraction_r10.c: Remove. * generated/fraction_r16.c: Remove. * generated/fraction_r4.c: Remove. * generated/fraction_r8.c: Remove. * generated/nearest_r10.c: Remove. * generated/nearest_r16.c: Remove. * generated/nearest_r4.c: Remove. * generated/nearest_r8.c: Remove. * generated/rrspacing_r10.c: Remove. * generated/rrspacing_r16.c: Remove. * generated/rrspacing_r4.c: Remove. * generated/rrspacing_r8.c: Remove. * generated/set_exponent_r10.c: Remove. * generated/set_exponent_r16.c: Remove. * generated/set_exponent_r4.c: Remove. * generated/set_exponent_r8.c: Remove. * generated/spacing_r10.c: Remove. * generated/spacing_r16.c: Remove. * generated/spacing_r4.c: Remove. * generated/spacing_r8.c: Remove. * generated/transpose_c10.c: Remove. * generated/transpose_c16.c: Remove. * generated/transpose_c4.c: Remove. * generated/transpose_c8.c: Remove. * generated/transpose_i16.c: Remove. * generated/transpose_i4.c: Remove. * generated/transpose_i8.c: Remove. * generated/transpose_r10.c: Remove. * generated/transpose_r16.c: Remove. * generated/transpose_r4.c: Remove. * generated/transpose_r8.c: Remove. * gfortran.map: Remove exponent, fraction, nearest, rrspacing, set_exponent, spacing, transpose, malloc, free, transpose_generic, store_exe_path. * intrinsics/malloc.c: Remove. * intrinsics/transpose_generic.c: Remove. * libgfortran.h (store_exe_path): Remove. * m4/exponent.m4: Remove. * m4/fraction.m4: Remove. * m4/nearest.m4: Remove. * m4/rrspacing.m4: Remove. * m4/set_exponent.m4: Remove. * m4/spacing.m4: Remove. * m4/transpose.m4: Remove. * runtime/main.c (store_exe_path): Remove. From-SVN: r243799 |
||
Fritz Reese
|
0ef33d4462 |
New I/O specifiers CARRIAGECONTROL, READONLY, SHARE with -fdec.
gcc/fortran/ * gfortran.texi: Document. * frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL. * io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto. * gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY. * io.c (io_tag, match_open_element): Ditto. * ioparm.def: Ditto. * trans-io.c (gfc_trans_open): Ditto. * io.c (match_dec_etag, match_dec_ftag): New functions. libgfortran/io/ * libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE, IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL. * close.c (st_close): Support READONLY. * io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL, and READONLY. * open.c (st_open): Ditto. * transfer.c (data_transfer_init): Ditto. * io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL. * write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL. * transfer.c (next_record_cc): Ditto. * file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL. * io.h (st_parameter_inquire): Ditto. * open.c (edit_modes, new_unit): Ditto. * inquire.c (inquire_via_unit, inquire_via_filename): Ditto. * io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE, IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL. * open.c (share_opt, cc_opt): Ditto. * read.c (read_x): Support CARRIAGECONTROL. * transfer.c (read_sf, next_record_r, next_record_w): Ditto. * write.c (list_formatted_write_scalar, write_a): Ditto. * unix.h (close_share): New prototype. * unix.c (open_share, close_share): New functions to handle SHARE. * unix.c (open_external): Handle READONLY. Call open_share. * close.c (st_close): Call close_share. gcc/testsuite/ * dec_io_1.f90: New test. * dec_io_2.f90: New test. * dec_io_3.f90: New test. * dec_io_4.f90: New test. * dec_io_5.f90: New test. * dec_io_6.f90: New test. From-SVN: r241550 |
||
Jakub Jelinek
|
818ab71a41 |
Update copyright years.
From-SVN: r232055 |
||
Janne Blomqvist
|
71cda9cac8 |
PR 53379 Print backtrace on error termination.
2015-09-05 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/53379 * libgfortran.h (exit_error): New prototype. * runtime/error.c (exit_error): New function. (os_error): Call exit_error instead of exit. (runtime_error): Likewise. (runtime_error_at): Likewise. (internal_error): Likewise. (generate_error): Likewise. (notify_std): Likewise. * runtime/stop.c (error_stop_string): Likewise. (error_stop_numeric): Likewise. From-SVN: r227503 |
||
Janne Blomqvist
|
1b0b9fcb92 |
PR 67414 Better diagnostics on backtrace failure, gf_strerror bugfix
2015-09-02 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/67414 * io/write.c (gfc_itoa): Move to runtime/string.c. * libgfortran.h (show_backtrace): Make arg bool. (gfc_itoa): New prototype. * runtime/backtrace.c (struct mystate): Change type of try_simple field, add in_signal_handler field. (error_callback): Print out error number, or if not in a signal handler, the error message. (show_backtrace): Change type of arg, change initialization of struct mystate. (backtrace): Call show_backtrace with correct arg type. * runtime/compile_options.c (backtrace_handler): Call with correct arg type. * runtime/error.c (sys_abort): Likewise. (gf_strerror): Handle newlocale() failure. * runtime/string.c (gfc_itoa): Function moved here from io/write.c. From-SVN: r227404 |
||
Francois-Xavier Coudert
|
485adf79b5 |
libgfortran.h (show_variables): Remove prototype.
* libgfortran.h (show_variables): Remove prototype. * runtime/environ.c (print_spaces, var_source, show_integer, show_boolean, show_sep, show_string): Remove functions. * runtime/main.c (init): Remove dead code. From-SVN: r227208 |
||
Francois-Xavier Coudert
|
a139f28147 |
* libgfortran.h (check_buffered): Remove unused prototype.
From-SVN: r227174 |
||
Francois-Xavier Coudert
|
ad4f95e395 |
re PR libfortran/54572 (Use libbacktrace library)
PR libfortran/54572 * Makefile.def: Make libgfortran depend on libbacktrace. * Makefile.in: Regenerate. * config-lang.in: Add libbacktrace to target_libs. * Makefile.am (libgfortran_la_LDFLAGS): Link in libbacktrace. (AM_CPPFLAGS): Add libbacktrace directories to include paths. * Makefile.in: Regenerate. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Remove checks for strtok_r, wait, execve, pipe, and dup2. Remove call to GCC_CHECK_UNWIND_GETIPINFO. * libgfortran.h (full_exe_path, find_addr2line, backtrace): Remove prototypes. (show_backtrace): Add prototype. * runtime/backtrace.c: Rework file entirely. * runtime/compile_options.c (backtrace_handler): Rename backtrace to show_backtrace. (maybe_find_addr2line): Remove function. (set_options): Remove call to maybe_find_addr2line. * runtime/error.c (sys_abort): Rename backtrace to show_backtrace. * runtime/main.c (store_exe_path): Empty function body. (full_exe_path, gfstrtok_r, find_addr2line): Remove functions. (cleanup): Don't free removed variables. * runtime/minimal.c (full_exe_path): Remove function. (set_args): Don't set exe_path. * gfortran.dg/backtrace_1.f90: New test. From-SVN: r227106 |
||
Uros Bizjak
|
c276d6055e |
re PR libfortran/66650 (libgfortran: warning: left shift of negative value [-Wshift-negative-value])
PR libgfortran/66650 * libgfortran.h (GFC_DTYPE_SIZE_MASK): Rewrite to avoid "left shift of negative value" warning. From-SVN: r226355 |
||
Jakub Jelinek
|
5624e564d2 |
Update copyright years.
From-SVN: r219188 |
||
Janne Blomqvist
|
581d232670 |
PR 60324 Unbounded stack allocations in libgfortran.
2014-11-13 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/60324 * configure: Regenerated. * configure.ac (AM_CFLAGS): Add Werror=vla. * libgfortran.h (gfc_alloca): Remove macro. (fc_strdup_notrim): New prototype. * intrinsics/access.c (access_func): Use fc_strdup rather than stack allocation. * intrinsics/chdir.c (chdir_i4_sub): Likewise. (chdir_i8_sub): Likewise. * intrinsics/chmod.c (chmod_internal): New function, move logic here. (chmod_func): Call chmod_internal. * intrinsics/env.c (getenv): Use fc_strdup rather than stack allocation. (get_environment_variable_i4): Likewise. * intrinsics/execute_command_line.c (execute_command_line): Likewise. * intrinsics/hostnm.c (hostnm_0): New function, use static buffer rather than VLA. (hostnm_i4_sub): Call hostnm_0. (hostnm_i8_sub): Likewise. (hostnm): Likewise. * intrinsics/link.c (link_internal): New function, use fc_strdup rather than stack allocation. (link_i4_sub): Call link_internal. (link_i8_sub): Likewise. (link_i4): Likewise. (link_i8): Likewise. * intrinsics/perror.c (perror_sub): Use fc_strdup rather than stack allocation. * intrinsics/random.c (random_seed_i4): Use static buffer rather than VLA, use _Static_assert to make sure it's big enough. * intrinsics/rename.c (rename_internal): New function, use fc_strdup rather than stack allocation. (rename_i4_sub): Call rename_internal. (rename_i8_sub): Likewise. (rename_i4): Likewise. (rename_i8): Likewise. * intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than stack allocation. (stat_i8_sub_0): Likewise. * intrinsics/symlink.c (symlnk_internal): New function, use fc_strdup rather than stack allocation. (symlnk_i4_sub): Call symlnk_internal. (symlnk_i8_sub): Likewise. (symlnk_i4): Likewise. (symlnk_i8): Likewise. * intrinsics/system.c (system_sub): Use fc_strdup rather than stack allocation. * intrinsics/unlink.c (unlink_i4_sub): Likewise. * io/file_pos.c (READ_CHUNK): Make it a macro rather than variable. * io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall back to xmalloc/free for large sizes. * io/read.c (read_f): Likewise. * io/transfer.c (MAX_READ): Make it a macro rather than variable. (WRITE_CHUNK): Likewise. * io/write_float.def (write_float): Use fixed stack buffer, fall back to xmalloc/free for large sizes. * runtime/string.c (fc_strdup_notrim): New function. From-SVN: r217480 |
||
Francois-Xavier Coudert
|
f5168e47a8 |
libgfortran.h (support_fpu_underflow_control, [...]): New prototypes.
* libgfortran.h (support_fpu_underflow_control, get_fpu_underflow_mode, set_fpu_underflow_mode): New prototypes. * config/fpu-*.h (support_fpu_underflow_control, get_fpu_underflow_mode, set_fpu_underflow_mode): New functions. * ieee/ieee_arithmetic.F90: Support underflow control. * gfortran.dg/ieee/underflow_1.f90: New file. From-SVN: r212407 |
||
Francois-Xavier Coudert
|
afe31cdb2c |
* libgfortran.h: Assume __GNUC__.
From-SVN: r212328 |
||
Francois-Xavier Coudert
|
77777b33a8 |
stop.c: Use C11 _Noreturn.
* runtime/stop.c: Use C11 _Noreturn. * libgfortran.h: Use C11 _Noreturn in prototypes. Move REALPART, IMAGPART and COMPLEX_ASSIGN macros... * intrinsics/c99_functions.c: ... here. From-SVN: r212327 |
||
Francois-Xavier Coudert
|
8b19810222 |
re PR fortran/29383 (Fortran 2003/F95[TR15580:1999]: Floating point exception (IEEE) support)
PR fortran/29383 gcc/fortran/ * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype. * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in both C and Fortran. * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND. * simplify.c (gfc_simplify_ieee_selected_real_kind): New function. * module.c (mio_symbol): Keep track of symbols which came from intrinsic modules. (gfc_use_module): Keep track of the IEEE modules. * trans-decl.c (gfc_get_symbol_decl): Adjust code since we have new intrinsic modules. (gfc_build_builtin_function_decls): Build decls for ieee_procedure_entry and ieee_procedure_exit. (is_from_ieee_module, is_ieee_module_used, save_fp_state, restore_fp_state): New functions. (gfc_generate_function_code): Save and restore floating-point state on procedure entry/exit, when IEEE modules are used. * intrinsic.texi: Document the IEEE modules. libgfortran/ * configure.host: Add checks for IEEE support, rework priorities. * configure.ac: Define IEEE_SUPPORT, check for fpsetsticky and fpresetsticky. * configure: Regenerate. * Makefile.am: Build new ieee files, install IEEE_* modules. * Makefile.in: Regenerate. * gfortran.map (GFORTRAN_1.6): Add new symbols. * libgfortran.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags, support_fpu_flag, support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New prototypes. * config/fpu-*.h (get_fpu_trap_exceptions, set_fpu_trap_exceptions, support_fpu_trap, set_fpu_except_flags, support_fpu_flag, support_fpu_rounding_mode, get_fpu_state, set_fpu_state): New functions. * ieee/ieee_features.F90: New file. * ieee/ieee_exceptions.F90: New file. * ieee/ieee_arithmetic.F90: New file. * ieee/ieee_helper.c: New file. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_fortran_ieee): New function. * gfortran.dg/ieee/ieee.exp: New file. * gfortran.dg/ieee/ieee_1.F90: New file. * gfortran.dg/ieee/ieee_2.f90: New file. * gfortran.dg/ieee/ieee_3.f90: New file. * gfortran.dg/ieee/ieee_4.f90: New file. * gfortran.dg/ieee/ieee_5.f90: New file. * gfortran.dg/ieee/ieee_6.f90: New file. * gfortran.dg/ieee/ieee_7.f90: New file. * gfortran.dg/ieee/ieee_rounding_1.f90: New file. From-SVN: r212102 |
||
Janne Blomqvist
|
92e6f3a43e |
Introduce xmallocarray, an overflow checking variant of xmalloc.
2014-06-17 Janne Blomqvist <jb@gcc.gnu.org> * libgfortran.h (xmallocarray): New prototype. * runtime/memory.c (xmallocarray): New function. (xcalloc): Check for nonzero separately instead of multiplying. * generated/*.c: Regenerated. * intrinsics/cshift0.c (cshift0): Call xmallocarray instead of xmalloc. * intrinsics/eoshift0.c (eoshift0): Likewise. * intrinsics/eoshift2.c (eoshift2): Likewise. * intrinsics/pack_generic.c (pack_internal): Likewise. (pack_s_internal): Likewise. * intrinsics/reshape_generic.c (reshape_internal): Likewise. * intrinsics/spread_generic.c (spread_internal): Likewise. (spread_internal_scalar): Likewise. * intrinsics/string_intrinsics_inc.c (string_trim): Likewise. (string_minmax): Likewise. * intrinsics/transpose_generic.c (transpose_internal): Likewise. * intrinsics/unpack_generic.c (unpack_internal): Likewise. * io/list_read.c (nml_touch_nodes): Don't cast xmalloc return value. * io/transfer.c (st_set_nml_var): Call xmallocarray instead of xmalloc. * io/unit.c (get_internal_unit): Likewise. (filename_from_unit): Don't cast xmalloc return value. * io/write.c (nml_write_obj): Likewise, formatting. * m4/bessel.m4 (bessel_jn_r'rtype_kind`): Call xmallocarray instead of xmalloc. (besse_yn_r'rtype_kind`): Likewise. * m4/cshift1.m4 (cshift1): Likewise. * m4/eoshift1.m4 (eoshift1): Likewise. * m4/eoshift3.m4 (eoshift3): Likewise. * m4/iforeach.m4: Likewise. * m4/ifunction.m4: Likewise. * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): Likewise. * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Likewise. * m4/matmul.m4 (matmul_'rtype_code`): Likewise. * m4/matmull.m4 (matmul_'rtype_code`): Likewise. * m4/pack.m4 (pack_'rtype_code`): Likewise. * m4/reshape.m4 (reshape_'rtype_ccode`): Likewise. * m4/shape.m4 (shape_'rtype_kind`): Likewise. * m4/spread.m4 (spread_'rtype_code`): Likewise. (spread_scalar_'rtype_code`): Likewise. * m4/transpose.m4 (transpose_'rtype_code`): Likewise. * m4/unpack.m4 (unpack0_'rtype_code`): Likewise. (unpack1_'rtype_code`): Likewise. * runtime/convert_char.c (convert_char1_to_char4): Likewise. (convert_char4_to_char1): Simplify. * runtime/environ.c (init_unformatted): Call xmallocarray instead of xmalloc. * runtime/in_pack_generic.c (internal_pack): Likewise. From-SVN: r211721 |
||
Janne Blomqvist
|
d74fd3c72b |
Introduce xrealloc, use it.
2014-05-26 Janne Blomqvist <jb@gcc.gnu.org> * libgfortran.h (xrealloc): New prototype. * runtime/memory.c (xrealloc): New function. * io/fbuf.c (fbuf_alloc): Use xrealloc. * io/list_read.c (push_char_default): Likewise. (push_char4): Likewise. From-SVN: r210948 |
||
Janne Blomqvist
|
4269f19c09 |
PR 60324 Handle long path names, don't use PATH_MAX.
From-SVN: r210738 |
||
Tobias Burnus
|
433d6b3986 |
libgfortran.h (unlikely, likely): Add usage comment.
2014-03-08 Tobias Burnus <burnus@net-b.de> * libgfortran.h (unlikely, likely): Add usage comment. From-SVN: r208434 |
||
Richard Sandiford
|
f0bcf62899 |
Update copyright years in libgfortran/
From-SVN: r206296 |
||
Tobias Burnus
|
82a4f54cc5 |
re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2013-07-21 Tobias Burnus <burnus@net-b.de> PR fortran/35862 * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST, GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines. 2013-07-21 Tobias Burnus <burnus@net-b.de> 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-07-21 Tobias Burnus <burnus@net-b.de> PR fortran/35862 * gfortran.dg/round_4.f90: New. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r201093 |
||
Tobias Burnus
|
fa86f4f917 |
gfortran.h (gfc_option_t): Add fpe_summary.
2013-06-17 Tobias Burnus <burnus@net-b.de> * gfortran.h (gfc_option_t): Add fpe_summary. * gfortran.texi (_gfortran_set_options): Update. * invoke.texi (-ffpe-summary): Add doc. * lang.opt (ffpe-summary): Add flag. * options.c (gfc_init_options, gfc_handle_option): Handle it. (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option, also handle fpe_summary. * trans-decl.c (create_main_function): Update _gfortran_set_options call. 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. * config/fpu-glibc.h (get_fpu_except_flags): New function. * configure.ac: Check for fpxcp.h. * configure: Regenerate. * config.h.in: Regenerate. From-SVN: r200147 |
||
Janne Blomqvist
|
f5e3ed2d42 |
Use C99 bool instead of enum try.
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. From-SVN: r196791 |
||
Richard Sandiford
|
e3c063ceda |
Update copyright years in libgfortran.
From-SVN: r195167 |
||
Janus Weil
|
f0f67c96c3 |
re PR libfortran/36044 (user-requested backtrace)
2012-12-20 Janus Weil <janus@gcc.gnu.org> PR fortran/36044 * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE. * intrinsic.c (add_subroutines): Add "backtrace". * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic. 2012-12-20 Janus Weil <janus@gcc.gnu.org> PR fortran/36044 * gfortran.map: Add _gfortran_backtrace. * libgfortran.h: Rename 'show_backtrace' and export. * runtime/backtrace.c (show_backtrace): Rename to 'backtrace'. Don't show message. Close file descriptor. Export. * runtime/compile_options.c (backtrace_handler): Renamed 'show_backtrace'. Move message outside. * runtime/error.c (sys_abort): Ditto. From-SVN: r194648 |
||
Janne Blomqvist
|
227e441f2b |
Fix usage of secure_getenv with glibc 2.17.
See http://sourceware.org/glibc/wiki/Tips_and_Tricks/secure_getenv 2012-10-06 Janne Blomqvist <jb@gcc.gnu.org> * configure.ac: Check for presence of secure_getenv. * libgfortran.h: Use HAVE_SECURE_GETENV. * Makefile.in: Regenerated. * aclocal.m4: Regenerated. * config.h.in: Regenerated. * configure: Regenerated. From-SVN: r192169 |
||
Janne Blomqvist
|
80b91c0b39 |
PR 52428 Range checking when reading integer values.
gcc/fortran ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * gfortran.texi: Update _gfortran_set_options documentation. * invoke.texi: Remove runtime behavior description of -fno-range-check. * trans-decl.c (create_main_function): Don't pass the range-check setting to the library. libgfortran ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * io/io.h (max_value): Rename to si_max, remove second argument. * io/list_read.c (convert_integer): Use unsigned types when parsing the digits, set max value depending on the sign. * io/read.c (max_value): Rename to si_max, remove second argument, simplify. (read_decimal): Set max value depending on sign, always check overflow. (read_radix): Calculate max unsigned value directly. * libgfortran.h (struct compile_options_t): Remove range_check field. * runtime/compile_options.c (set_options): Skip handling options[7]. (init_compile_options): Don't set removed field. gcc/testsuite ChangeLog: 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 * gfortran.dg/int_range_io_1.f90: New test. From-SVN: r187478 |
||
Janne Blomqvist
|
68ee9c0807 |
Fix handling of temporary files.
2012-05-05 Janne Blomqvist <jb@gcc.gnu.org> * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain algorithm for choosing temp directory. 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org> * config.h.in: Regenerated. * configure: Regenerated. * configure.ac: Add checks for getegid and __secure_getenv. * io/unix.c (P_tmpdir): Fallback definition for macro. (tempfile_open): New function. (tempfile): Use secure_getenv, call tempfile_open to try each directory in turn. * libgfortran.h (DEFAULT_TMPDIR): Remove macro. (secure_getenv): New macro/prototype. * runtime/environ.c (secure_getenv): New function. (variable_table): Rename GFORTRAN_TMPDIR to TMPDIR. * runtime/main.c (find_addr2line): Use secure_getenv. From-SVN: r187190 |
||
Thomas Koenig
|
79617d7e2e |
re PR libfortran/38199 (missed optimization: I/O performance)
2012-04-15 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/38199 PR libfortran/50673 * intrinsics/string_intriniscs_inc.c (string_len_trim): Remove prototypes for string_len_trim and move to... * libgfortran.h (string_len_trim): ... here and (string_len_trim_char4): ...here. * io/unit.c: For non-array internal arrays where we do reading, adjust the record length to the last non-blank character. * io/unix.c: Fix typo. From-SVN: r186466 |
||
Tristan Gingold
|
62755fd571 |
libgfortran.h: Include complex.h before math.h
2012-04-04 Tristan Gingold <gingold@adacore.com> * libgfortran.h: Include complex.h before math.h From-SVN: r186131 |
||
Janne Blomqvist
|
1a0fd3d33a |
Combined get_mem and internal_malloc_size.
2012-03-26 Janne Blomqvist <jb@gcc.gnu.org> * runtime/memory.c (get_mem): Rename to xmalloc, check for zero size. (internal_malloc_size): Remove. * libgfortran.h (get_mem): Rename to xmalloc. (internal_malloc_size): Remove prototype. * Makefile.am (i_iall_c): Fix dependency. (i_iany_c): Likewise. (i_iparity_c): Likewise. (i_norm2_c): Likewise. (i_parity_c): Likewise. * Makefile.in: Regenerated. * m4/parity.m4: Fix typo in comment. * generated/all_l1.c: Regenerated. * generated/all_l16.c: Regenerated. * generated/all_l2.c: Regenerated. * generated/all_l4.c: Regenerated. * generated/all_l8.c: Regenerated. * generated/any_l1.c: Regenerated. * generated/any_l16.c: Regenerated. * generated/any_l2.c: Regenerated. * generated/any_l4.c: Regenerated. * generated/any_l8.c: Regenerated. * generated/bessel_r10.c: Regenerated. * generated/bessel_r16.c: Regenerated. * generated/bessel_r4.c: Regenerated. * generated/bessel_r8.c: Regenerated. * generated/count_16_l.c: Regenerated. * generated/count_1_l.c: Regenerated. * generated/count_2_l.c: Regenerated. * generated/count_4_l.c: Regenerated. * generated/count_8_l.c: Regenerated. * generated/cshift1_16.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/cshift1_8.c: Regenerated. * generated/eoshift1_16.c: Regenerated. * generated/eoshift1_4.c: Regenerated. * generated/eoshift1_8.c: Regenerated. * generated/eoshift3_16.c: Regenerated. * generated/eoshift3_4.c: Regenerated. * generated/eoshift3_8.c: Regenerated. * generated/iall_i1.c: Regenerated. * generated/iall_i16.c: Regenerated. * generated/iall_i2.c: Regenerated. * generated/iall_i4.c: Regenerated. * generated/iall_i8.c: Regenerated. * generated/iany_i1.c: Regenerated. * generated/iany_i16.c: Regenerated. * generated/iany_i2.c: Regenerated. * generated/iany_i4.c: Regenerated. * generated/iany_i8.c: Regenerated. * generated/in_pack_c10.c: Regenerated. * generated/in_pack_c16.c: Regenerated. * generated/in_pack_c4.c: Regenerated. * generated/in_pack_c8.c: Regenerated. * generated/in_pack_i1.c: Regenerated. * generated/in_pack_i16.c: Regenerated. * generated/in_pack_i2.c: Regenerated. * generated/in_pack_i4.c: Regenerated. * generated/in_pack_i8.c: Regenerated. * generated/in_pack_r10.c: Regenerated. * generated/in_pack_r16.c: Regenerated. * generated/in_pack_r4.c: Regenerated. * generated/in_pack_r8.c: Regenerated. * generated/iparity_i1.c: Regenerated. * generated/iparity_i16.c: Regenerated. * generated/iparity_i2.c: Regenerated. * generated/iparity_i4.c: Regenerated. * generated/iparity_i8.c: Regenerated. * generated/matmul_c10.c: Regenerated. * generated/matmul_c16.c: Regenerated. * generated/matmul_c4.c: Regenerated. * generated/matmul_c8.c: Regenerated. * generated/matmul_i1.c: Regenerated. * generated/matmul_i16.c: Regenerated. * generated/matmul_i2.c: Regenerated. * generated/matmul_i4.c: Regenerated. * generated/matmul_i8.c: Regenerated. * generated/matmul_l16.c: Regenerated. * generated/matmul_l4.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/matmul_r8.c: Regenerated. * generated/maxloc0_16_i1.c: Regenerated. * generated/maxloc0_16_i16.c: Regenerated. * generated/maxloc0_16_i2.c: Regenerated. * generated/maxloc0_16_i4.c: Regenerated. * generated/maxloc0_16_i8.c: Regenerated. * generated/maxloc0_16_r10.c: Regenerated. * generated/maxloc0_16_r16.c: Regenerated. * generated/maxloc0_16_r4.c: Regenerated. * generated/maxloc0_16_r8.c: Regenerated. * generated/maxloc0_4_i1.c: Regenerated. * generated/maxloc0_4_i16.c: Regenerated. * generated/maxloc0_4_i2.c: Regenerated. * generated/maxloc0_4_i4.c: Regenerated. * generated/maxloc0_4_i8.c: Regenerated. * generated/maxloc0_4_r10.c: Regenerated. * generated/maxloc0_4_r16.c: Regenerated. * generated/maxloc0_4_r4.c: Regenerated. * generated/maxloc0_4_r8.c: Regenerated. * generated/maxloc0_8_i1.c: Regenerated. * generated/maxloc0_8_i16.c: Regenerated. * generated/maxloc0_8_i2.c: Regenerated. * generated/maxloc0_8_i4.c: Regenerated. * generated/maxloc0_8_i8.c: Regenerated. * generated/maxloc0_8_r10.c: Regenerated. * generated/maxloc0_8_r16.c: Regenerated. * generated/maxloc0_8_r4.c: Regenerated. * generated/maxloc0_8_r8.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/maxval_r4.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/minloc0_4_i1.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/minval_r8.c: Regenerated. * generated/norm2_r10.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/pack_c10.c: Regenerated. * generated/pack_c16.c: Regenerated. * generated/pack_c4.c: Regenerated. * generated/pack_c8.c: Regenerated. * generated/pack_i1.c: Regenerated. * generated/pack_i16.c: Regenerated. * generated/pack_i2.c: Regenerated. * generated/pack_i4.c: Regenerated. * generated/pack_i8.c: Regenerated. * generated/pack_r10.c: Regenerated. * generated/pack_r16.c: Regenerated. * generated/pack_r4.c: Regenerated. * generated/pack_r8.c: Regenerated. * generated/parity_l1.c: Regenerated. * generated/parity_l16.c: Regenerated. * generated/parity_l2.c: Regenerated. * generated/parity_l4.c: Regenerated. * generated/parity_l8.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. * generated/shape_i16.c: Regenerated. * generated/shape_i4.c: Regenerated. * generated/shape_i8.c: Regenerated. * generated/spread_c10.c: Regenerated. * generated/spread_c16.c: Regenerated. * generated/spread_c4.c: Regenerated. * generated/spread_c8.c: Regenerated. * generated/spread_i1.c: Regenerated. * generated/spread_i16.c: Regenerated. * generated/spread_i2.c: Regenerated. * generated/spread_i4.c: Regenerated. * generated/spread_i8.c: Regenerated. * generated/spread_r10.c: Regenerated. * generated/spread_r16.c: Regenerated. * generated/spread_r4.c: Regenerated. * generated/spread_r8.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/sum_r8.c: Regenerated. * generated/transpose_c10.c: Regenerated. * generated/transpose_c16.c: Regenerated. * generated/transpose_c4.c: Regenerated. * generated/transpose_c8.c: Regenerated. * generated/transpose_i16.c: Regenerated. * generated/transpose_i4.c: Regenerated. * generated/transpose_i8.c: Regenerated. * generated/transpose_r10.c: Regenerated. * generated/transpose_r16.c: Regenerated. * generated/transpose_r4.c: Regenerated. * generated/transpose_r8.c: Regenerated. * generated/unpack_c10.c: Regenerated. * generated/unpack_c16.c: Regenerated. * generated/unpack_c4.c: Regenerated. * generated/unpack_c8.c: Regenerated. * generated/unpack_i1.c: Regenerated. * generated/unpack_i16.c: Regenerated. * generated/unpack_i2.c: Regenerated. * generated/unpack_i4.c: Regenerated. * generated/unpack_i8.c: Regenerated. * generated/unpack_r10.c: Regenerated. * generated/unpack_r16.c: Regenerated. * generated/unpack_r4.c: Regenerated. * generated/unpack_r8.c: Regenerated. * intrinsics/cshift0.c: Use xmalloc. * intrinsics/ctime.c: Likewise. * intrinsics/date_and_time.c: Likewise. * intrinsics/eoshift0.c: Likewise. * intrinsics/eoshift2.c: Likewise. * intrinsics/getlog.c: Likewise. * intrinsics/pack_generic.c: Likewise. * intrinsics/reshape_generic.c: Likewise. * intrinsics/spread_generic.c: Likewise. * intrinsics/string_intrinsics_inc.c: Likewise. * intrinsics/transpose_generic.c: Likewise. * intrinsics/unpack_generic.c: Likewise. * io/fbuf.c: Likewise. * io/format.c: Likewise. * io/intrinsics.c: Likewise. * io/list_read.c: Likewise. * io/open.c: Likewise. * io/transfer.c: Likewise. * io/unit.c: Likewise. * io/unix.c: Likewise. * io/write.c: Likewise. * m4/bessel.m4: Likewise. * m4/cshift1.m4: Likewise. * m4/eoshift1.m4: Likewise. * m4/eoshift3.m4: Likewise. * m4/iforeach.m4: Likewise. * m4/ifunction.m4: Likewise. * m4/ifunction_logical.m4: Likewise. * m4/in_pack.m4: Likewise. * m4/matmul.m4: Likewise. * m4/matmull.m4: Likewise. * m4/pack.m4: Likewise. * m4/reshape.m4: Likewise. * m4/shape.m4: Likewise. * m4/spread.m4: Likewise. * m4/transpose.m4: Likewise. * m4/unpack.m4: Likewise. * runtime/convert_char.c: Likewise. * runtime/environ.c: Likewise. * runtime/in_pack_generic.c: Likewise. From-SVN: r185806 |
||
Janne Blomqvist
|
f4471acbe3 |
Use calloc instead of malloc and memset.
2012-03-25 Janne Blomqvist <jb@gcc.gnu.org> * runtime/memory.c (xcalloc): New function. * libgfortran.h (xcalloc): New prototype. * io/list_read.c (push_char): Use xcalloc instead of get_mem and memset. (l_push_char): Likewise. * io/unit.c (insert_unit): Likewise. (get_internal_unit): Likewise. * io/unix.c (open_internal): Likewise. (open_internal4): Likewise. (fd_to_stream): Likewise. From-SVN: r185773 |
||
Tobias Burnus
|
21d1335b2a |
libgfortran.h (descriptor_dimension, [...]): Rename _lbound to lower_bound and data to base_addr.
2012-03-10 Tobias Burnus <burnus@net-b.de> * libgfortran.h (descriptor_dimension, GFC_DIMENSION_LBOUND, GFC_DIMENSION_EXTENT, GFC_DIMENSION_SET, GFC_DESCRIPTOR_DATA, GFC_ARRAY_DESCRIPTOR): Rename _lbound to lower_bound and data to base_addr. * intrinsics/cshift0.c (size0, cshift0): Handle data to base_addr rename. * intrinsics/date_and_time.c (date_and_time, secnds, itime_i4, itime_i8, gmtime_i4, gmtime_i8, ltime_i4, ltime_i8): Ditto. * intrinsics/dtime.c (dtime_sub): Ditto. * intrinsics/eoshift0.c (eoshift0): Ditto. * intrinsics/eoshift2.c (eoshift2): Ditto. * intrinsics/etime.c (etime_sub): Ditto. * intrinsics/iso_c_binding.c (c_f_pointer_u0): Ditto. * intrinsics/move_alloc.c (move_alloc): Ditto. * intrinsics/pack_generic.c (pack_internal, pack, pack_s_internal): Ditto. * intrinsics/random.c (arandom_r4, arandom_r8, arandom_r10, arandom_r16, random_seed_i4, random_seed_i8): Ditto. * intrinsics/reshape_generic.c (reshape_internal): Ditto. * intrinsics/spread_generic.c (spread_internal, spread_internal_scalar, spread, spread_scalar): Ditto. * intrinsics/stat.c (stat_i4_sub_0, stat_i8_sub_0, fstat_i4_sub, fstat_i8_sub): Ditto. * intrinsics/transpose_generic.c (transpose_internal): Ditto. * intrinsics/unpack_generic.c (unpack_bounds, unpack_internal, unpack1, unpack0, unpack0_char4): Ditto. * m4/bessel.m4 (bessel_jn_r'rtype_kind`, * bessel_yn_r'rtype_kind`): Ditto. * m4/cshift0.m4 (cshift0_'rtype_code`): Ditto. * m4/cshift1.m4 (cshift1): Ditto. * m4/eoshift1.m4 (eoshift1): Ditto. * m4/eoshift3.m4 (eoshift3): Ditto. * m4/iforeach.m4 (name`'rtype_qual`_'atype_code): Ditto. * m4/ifunction.m4 (name`'rtype_qual`_'atype_code): Ditto. * m4/ifunction_logical.m4 (name`'rtype_qual`_'atype_code): * Ditto. * m4/in_pack.m4 (internal_pack_'rtype_ccode`): Ditto. * m4/in_unpack.m4 (internal_unpack_'rtype_ccode`): Ditto. * m4/matmul.m4 (matmul_'rtype_code`): Ditto. * m4/matmull.m4 (matmul_'rtype_code`): Ditto. * m4/pack.m4 (pack_'rtype_code`): Ditto. * m4/reshape.m4 (reshape_'rtype_ccode`): Ditto. * m4/shape.m4 (shape_'rtype_kind`): Ditto. * m4/spread.m4 (spread_'rtype_code`): Ditto. * m4/transpose.m4 (transpose_'rtype_code`): Ditto. * m4/unpack.m4 (unpack0_'rtype_code`, unpack1_'rtype_code`): * Ditto. * runtime/bounds.c (count_0): Ditto. * runtime/in_pack_generic.c (internal_pack): Ditto. * runtime/in_unpack_generic.c (internal_unpack): Ditto. * generated/cshift0_r4.c: Regenerated. * generated/unpack_r8.c: Regenerated. * generated/cshift0_c10.c: Regenerated. * generated/in_unpack_i1.c: Regenerated. * generated/eoshift1_16.c: Regenerated. * generated/iany_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/parity_l16.c: Regenerated. * generated/in_unpack_r16.c: Regenerated. * generated/iparity_i1.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc1_16_i8.c: Regenerated. * generated/bessel_r8.c: Regenerated. * generated/maxloc0_4_i8.c: Regenerated. * generated/maxloc1_8_i1.c: Regenerated. * generated/sum_c10.c: Regenerated. * generated/maxloc0_8_r10.c: Regenerated. * generated/unpack_r16.c: Regenerated. * generated/maxloc1_16_i1.c: Regenerated. * generated/minloc1_4_i1.c: Regenerated. * generated/unpack_i4.c: Regenerated. * generated/in_pack_i1.c: Regenerated. * generated/cshift0_i1.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/minloc1_8_r8.c: Regenerated. * generated/maxval_r8.c: Regenerated. * generated/unpack_i2.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/maxloc0_16_r8.c: Regenerated. * generated/maxloc1_8_i16.c: Regenerated. * generated/maxloc0_4_r4.c: Regenerated. * generated/pack_c10.c: Regenerated. * generated/in_unpack_c8.c: Regenerated. * generated/maxloc1_8_i8.c: Regenerated. * generated/in_pack_c16.c: Regenerated. * generated/parity_l1.c: Regenerated. * generated/in_pack_i2.c: Regenerated. * generated/maxloc0_4_r8.c: Regenerated. * generated/pack_r4.c: Regenerated. * generated/matmul_r8.c: Regenerated. * generated/pack_i1.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. * generated/cshift0_c8.c: Regenerated. * generated/minloc1_4_i16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/product_i2.c: Regenerated. * generated/maxval_r10.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/in_pack_i8.c: Regenerated. * generated/all_l8.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/minloc1_8_i2.c: Regenerated. * generated/matmul_l8.c: Regenerated. * generated/spread_r10.c: Regenerated. * generated/product_c4.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/cshift0_i16.c: Regenerated. * generated/minloc1_8_r10.c: Regenerated. * generated/iparity_i8.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/minloc1_8_i1.c: Regenerated. * generated/maxloc0_16_r10.c: Regenerated. * generated/maxloc1_8_i4.c: Regenerated. * generated/maxloc0_16_i8.c: Regenerated. * generated/maxloc1_16_i16.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/all_l16.c: Regenerated. * generated/cshift1_8.c: Regenerated. * generated/matmul_c10.c: Regenerated. * generated/pack_r16.c: Regenerated. * generated/transpose_r10.c: Regenerated. * generated/maxloc1_16_i2.c: Regenerated. * generated/minloc1_4_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. * generated/product_r10.c: Regenerated. * generated/spread_c10.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/in_unpack_i4.c: Regenerated. * generated/minval_r4.c: Regenerated. * generated/minloc1_16_r16.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/iany_i2.c: Regenerated. * generated/eoshift3_8.c: Regenerated. * generated/maxloc1_16_r8.c: Regenerated. * generated/maxloc0_16_r16.c: Regenerated. * generated/cshift0_i8.c: Regenerated. * generated/all_l1.c: Regenerated. * generated/minloc1_16_r10.c: Regenerated. * generated/spread_i16.c: Regenerated. * generated/minloc1_8_r16.c: Regenerated. * generated/spread_r16.c: Regenerated. * generated/matmul_c8.c: Regenerated. * generated/pack_r10.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/sum_r10.c: Regenerated. * generated/count_8_l.c: Regenerated. * generated/minloc1_16_i16.c: Regenerated. * generated/maxloc0_16_i2.c: Regenerated. * generated/count_1_l.c: Regenerated. * generated/unpack_c16.c: Regenerated. * generated/any_l8.c: Regenerated. * generated/minloc1_16_i1.c: Regenerated. * generated/sum_r4.c: Regenerated. * generated/in_unpack_r8.c: Regenerated. * generated/product_r8.c: Regenerated. * generated/in_unpack_r4.c: Regenerated. * generated/unpack_i1.c: Regenerated. * generated/cshift0_r8.c: Regenerated. * generated/spread_i2.c: Regenerated. * generated/minloc1_4_r10.c: Regenerated. * generated/minloc1_16_i2.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/eoshift3_16.c: Regenerated. * generated/maxloc0_8_i4.c: Regenerated. * generated/maxloc1_16_r10.c: Regenerated. * generated/maxloc1_4_i16.c: Regenerated. * generated/maxloc1_4_r8.c: Regenerated. * generated/parity_l2.c: Regenerated. * generated/maxloc0_16_i16.c: Regenerated. * generated/product_r4.c: Regenerated. * generated/in_unpack_r10.c: Regenerated. * generated/maxloc1_8_i2.c: Regenerated. * generated/iparity_i2.c: Regenerated. * generated/maxloc1_8_r4.c: Regenerated. * generated/maxloc1_8_r8.c: Regenerated. * generated/iall_i4.c: Regenerated. * generated/maxloc0_4_i16.c: Regenerated. * generated/cshift0_i4.c: Regenerated. * generated/in_unpack_c10.c: Regenerated. * generated/unpack_c8.c: Regenerated. * generated/transpose_c8.c: Regenerated. * generated/in_unpack_c16.c: Regenerated. * generated/product_c16.c: Regenerated. * generated/minval_r8.c: Regenerated. * generated/minloc0_4_i1.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/in_unpack_i16.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/pack_i4.c: Regenerated. * generated/minval_r10.c: Regenerated. * generated/maxloc0_4_r10.c: Regenerated. * generated/unpack_i8.c: Regenerated. * generated/minloc1_16_r8.c: Regenerated. * generated/pack_c16.c: Regenerated. * generated/maxval_r4.c: Regenerated. * generated/spread_r8.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/maxval_i4.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/product_c8.c: Regenerated. * generated/maxloc1_4_i4.c: Regenerated. * generated/any_l4.c: Regenerated. * generated/cshift0_r16.c: Regenerated. * generated/maxloc1_16_r4.c: Regenerated. * generated/in_pack_r10.c: Regenerated. * generated/iall_i1.c: Regenerated. * generated/product_i1.c: Regenerated. * generated/maxloc0_4_i1.c: Regenerated. * generated/maxloc0_8_r16.c: Regenerated. * generated/minloc1_8_i16.c: Regenerated. * generated/reshape_c10.c: Regenerated. * generated/matmul_l4.c: Regenerated. * generated/cshift0_c16.c: Regenerated. * generated/spread_r4.c: Regenerated. * generated/sum_r16.c: Regenerated. * generated/in_unpack_c4.c: Regenerated. * generated/maxval_i8.c: Regenerated. * generated/maxloc0_8_r8.c: Regenerated. * generated/unpack_i16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/maxloc1_4_r16.c: Regenerated. * generated/in_pack_r4.c: Regenerated. * generated/sum_c8.c: Regenerated. * generated/parity_l8.c: Regenerated. * generated/minval_i2.c: Regenerated. * generated/transpose_c10.c: Regenerated. * generated/cshift0_r10.c: Regenerated. * generated/cshift0_i2.c: Regenerated. * generated/spread_c4.c: Regenerated. * generated/maxval_r16.c: Regenerated. * generated/unpack_c10.c: Regenerated. * generated/bessel_r4.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/product_c10.c: Regenerated. * generated/minloc1_4_i4.c: Regenerated. * generated/minloc1_4_i2.c: Regenerated. * generated/transpose_c4.c: Regenerated. * generated/in_pack_c8.c: Regenerated. * generated/minval_i8.c: Regenerated. * generated/maxloc1_4_i2.c: Regenerated. * generated/maxloc1_4_i1.c: Regenerated. * generated/iall_i8.c: Regenerated. * generated/iany_i8.c: Regenerated. * generated/sum_c16.c: Regenerated. * generated/spread_i8.c: Regenerated. * generated/sum_i8.c: Regenerated. * generated/pack_i2.c: Regenerated. * generated/unpack_r10.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/iany_i4.c: Regenerated. * generated/maxloc0_4_i4.c: Regenerated. * generated/in_pack_r8.c: Regenerated. * generated/spread_i1.c: Regenerated. * generated/maxval_i16.c: Regenerated. * generated/pack_c8.c: Regenerated. * generated/iparity_i16.c: Regenerated. * generated/matmul_c16.c: Regenerated. * generated/eoshift1_8.c: Regenerated. * generated/any_l16.c: Regenerated. * generated/maxloc1_4_i8.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/transpose_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/count_16_l.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/minloc1_16_r4.c: Regenerated. * generated/maxloc0_8_i1.c: Regenerated. * generated/matmul_i1.c: Regenerated. * generated/sum_i2.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/bessel_r10.c: Regenerated. * generated/matmul_c4.c: Regenerated. * generated/parity_l4.c: Regenerated. * generated/in_unpack_i2.c: Regenerated. * generated/product_i16.c: Regenerated. * generated/maxloc0_16_i4.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/transpose_i16.c: Regenerated. * generated/matmul_l16.c: Regenerated. * generated/any_l1.c: Regenerated. * generated/minval_r16.c: Regenerated. * generated/shape_i16.c: Regenerated. * generated/in_pack_c4.c: Regenerated. * generated/minloc1_8_r4.c: Regenerated. * generated/iany_i1.c: Regenerated. * generated/matmul_i16.c: Regenerated. * generated/maxloc0_16_r4.c: Regenerated. * generated/spread_c8.c: Regenerated. * generated/product_i8.c: Regenerated. * generated/minloc1_8_i4.c: Regenerated. * generated/product_i4.c: Regenerated. * generated/minval_i16.c: Regenerated. * generated/pack_r8.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/shape_i8.c: Regenerated. * generated/eoshift1_4.c: Regenerated. * generated/minloc1_16_i4.c: Regenerated. * generated/transpose_r16.c: Regenerated. * generated/spread_c16.c: Regenerated. * generated/maxloc0_8_i16.c: Regenerated. * generated/minval_i1.c: Regenerated. * generated/sum_i4.c: Regenerated. * generated/in_pack_r16.c: Regenerated. * generated/iall_i16.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/maxloc0_8_i8.c: Regenerated. * generated/transpose_i4.c: Regenerated. * generated/maxloc0_4_i2.c: Regenerated. * generated/iall_i2.c: Regenerated. * generated/maxloc0_8_r4.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc1_4_r8.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/minval_i4.c: Regenerated. * generated/minloc1_8_i8.c: Regenerated. * generated/in_pack_i16.c: Regenerated. * generated/spread_i4.c: Regenerated. * generated/cshift0_c4.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/sum_r8.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/sum_i1.c: Regenerated. * generated/all_l2.c: Regenerated. * generated/sum_c4.c: Regenerated. * generated/shape_i4.c: Regenerated. * generated/maxval_i1.c: Regenerated. * generated/norm2_r10.c: Regenerated. * generated/unpack_c4.c: Regenerated. * generated/maxloc0_16_i1.c: Regenerated. * generated/all_l4.c: Regenerated. * generated/maxloc1_16_i8.c: Regenerated. * generated/sum_i16.c: Regenerated. * generated/maxloc1_8_r16.c: Regenerated. * generated/minloc1_4_r16.c: Regenerated. * generated/maxloc1_16_r16.c: Regenerated. * generated/transpose_i8.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/product_r16.c: Regenerated. * generated/in_pack_c10.c: Regenerated. * generated/maxloc0_4_r16.c: Regenerated. * generated/pack_c4.c: Regenerated. * generated/bessel_r16.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/in_unpack_i8.c: Regenerated. * generated/maxloc1_16_i4.c: Regenerated. * generated/minloc1_4_i8.c: Regenerated. * generated/eoshift3_4.c: Regenerated. * generated/maxloc1_8_r10.c: Regenerated. * generated/matmul_i8.c: Regenerated. * generated/matmul_i4.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/matmul_i2.c: Regenerated. * generated/transpose_r8.c: Regenerated. * generated/transpose_r4.c: Regenerated. * generated/cshift1_16.c: Regenerated. * generated/maxloc1_4_r10.c: Regenerated. * generated/iparity_i4.c: Regenerated. * generated/in_pack_i4.c: Regenerated. * generated/maxloc0_8_i2.c: Regenerated. * generated/unpack_r4.c: Regenerated. * generated/count_4_l.c: Regenerated. * generated/maxloc1_4_r4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/any_l2.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/pack_i8.c: Regenerated. * generated/count_2_l.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/maxval_i2.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. From-SVN: r185177 |
||
Thomas Koenig
|
e7898e54f4 |
re PR libfortran/50192 (Wrong character comparision with wide strings)
2011-08-29 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/50192 * intrinsics/string_intrinsics.c (memcmp_char4): New function. * intrinsics/string_intrinsics_inc.c: New macro MEMCMP, either set to memcmp or memcmp_char4. (compare_string): Use MEMCMP, with correct size for it. * libgfortran.h: Add prototype for memcmp_char4. 2011-08-29 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/50192 * gfortran.dg/widechar_compare_1.f90: New test. From-SVN: r178173 |
||
Janne Blomqvist
|
155732f56d |
PR 48931 Use async-signal-safe execve instead of execvp
From-SVN: r174415 |
||
Janne Blomqvist
|
de8bd1420e |
PR 48915 Abort handling
From-SVN: r173750 |
||
Janne Blomqvist
|
1028b2bded |
Error printing thread safety, remove GFORTRAN_USE_STDERR
From-SVN: r173749 |
||
Janne Blomqvist
|
d30fe1c5cd |
Replace sprintf with snprintf
From-SVN: r172590 |