Mercurial > octave
changeset 22297:bc2a5db96754
Resolve compile time issues, when octave_idx_type is long int.
* libinterp/octave-value/ov-classdef.cc: static_cast of ambiguous constants.
* libinterp/octave-value/ov-typeinfo.cc: static_cast of ambiguous constants.
* liboctave/numeric/gsvd.cc: use F77_INT* rather than int*.
* liboctave/numeric/svd.cc: static_cast of ambiguous constants.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Mon, 15 Aug 2016 10:09:59 +0200 |
parents | 8b18f46f6427 |
children | 18535a29a8e8 |
files | libinterp/octave-value/ov-classdef.cc libinterp/octave-value/ov-typeinfo.cc liboctave/numeric/gsvd.cc liboctave/numeric/svd.cc |
diffstat | 4 files changed, 17 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-classdef.cc Mon Aug 15 02:01:29 2016 -0400 +++ b/libinterp/octave-value/ov-classdef.cc Mon Aug 15 10:09:59 2016 +0200 @@ -1652,7 +1652,8 @@ bool is_scalar = true; - Array<idx_vector> iv (dim_vector (1, std::max (ival.length (), 2))); + Array<idx_vector> iv (dim_vector (1, std::max (ival.length (), + static_cast<octave_idx_type> (2)))); for (int i = 0; i < ival.length (); i++) { @@ -1678,7 +1679,7 @@ // Fill in trailing singleton dimensions so that // array.index doesn't create a new blank entry (bug #46660). for (int i = ival.length (); i < 2; i++) - iv(i) = 1; + iv(i) = static_cast<octave_idx_type> (1); Array<cdef_object> a = array.index (iv, true);
--- a/libinterp/octave-value/ov-typeinfo.cc Mon Aug 15 02:01:29 2016 -0400 +++ b/libinterp/octave-value/ov-typeinfo.cc Mon Aug 15 10:09:59 2016 +0200 @@ -705,7 +705,8 @@ { octave_scalar_map retval; - int len = std::min (non_const_unary_ops.columns (), num_types); + int len = std::min (static_cast<int> (non_const_unary_ops.columns ()), + num_types); dim_vector tab_dims (1, len); @@ -729,7 +730,8 @@ { octave_scalar_map retval; - int len = std::min (non_const_unary_ops.columns (), num_types); + int len = std::min (static_cast<int> (non_const_unary_ops.columns ()), + num_types); dim_vector tab_dims (1, len); @@ -753,7 +755,7 @@ { octave_scalar_map retval; - int len = std::min (binary_ops.columns (), num_types); + int len = std::min (static_cast<int> (binary_ops.columns ()), num_types); dim_vector tab_dims (len, len); @@ -778,7 +780,8 @@ { octave_scalar_map retval; - int len = std::min (compound_binary_ops.columns (), num_types); + int len = std::min (static_cast<int> (compound_binary_ops.columns ()), + num_types); dim_vector tab_dims (len, len); @@ -803,7 +806,7 @@ { octave_scalar_map retval; - int len = std::min (assign_ops.columns (), num_types); + int len = std::min (static_cast<int> (assign_ops.columns ()), num_types); dim_vector tab_dims (len, len); @@ -828,7 +831,7 @@ { octave_scalar_map retval; - int len = std::min (assignany_ops.columns (), num_types); + int len = std::min (static_cast<int> (assignany_ops.columns ()), num_types); dim_vector tab_dims (1, len);
--- a/liboctave/numeric/gsvd.cc Mon Aug 15 02:01:29 2016 -0400 +++ b/liboctave/numeric/gsvd.cc Mon Aug 15 10:09:59 2016 +0200 @@ -54,7 +54,7 @@ F77_DBLE*, // Q (output) DOUBLE PRECISION array, dimension (LDQ,N) const F77_INT&, // LDQ (input) INTEGER F77_DBLE*, // WORK (workspace) DOUBLE PRECISION array - int*, // IWORK (workspace/output) INTEGER array, dimension (N) + F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N) F77_INT& // INFO (output)INTEGER F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL @@ -86,7 +86,7 @@ const F77_INT&, // LDQ (input) INTEGER F77_DBLE_CMPLX*, // WORK (workspace) COMPLEX*16 array F77_DBLE*, // RWORK (workspace) DOUBLE PRECISION array - int*, // IWORK (workspace/output) INTEGER array, dimension (N) + F77_INT*, // IWORK (workspace/output) INTEGER array, dimension (N) F77_INT& // INFO (output)INTEGER F77_CHAR_ARG_LEN_DECL F77_CHAR_ARG_LEN_DECL
--- a/liboctave/numeric/svd.cc Mon Aug 15 02:01:29 2016 -0400 +++ b/liboctave/numeric/svd.cc Mon Aug 15 10:09:59 2016 +0200 @@ -461,8 +461,9 @@ std::vector<P> work (1); - octave_idx_type m1 = std::max (m, 1); - octave_idx_type nrow_vt1 = std::max (nrow_vt, 1); + octave_idx_type m1 = std::max (m, static_cast<octave_idx_type> (1)); + octave_idx_type nrow_vt1 = std::max (nrow_vt, + static_cast<octave_idx_type> (1)); if (m_driver == svd::Driver::GESVD) gesvd (jobu, jobv, m, n, tmp_data, m1, s_vec, u, vt, nrow_vt1,