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,