Description: Fixed incorrect handling of compound expressions by rcond()
Forwarded: not-needed
Origin: https://gitlab.com/conradsnicta/armadillo-code/-/commit/f77f895a19faab267482173f5959e576ed68afe9

diff -Naur armadillo-10.1.2/include/armadillo_bits/op_cond_meat.hpp armadillo-10.1.2-rcond-bugfix/include/armadillo_bits/op_cond_meat.hpp
--- armadillo-10.1.2/include/armadillo_bits/op_cond_meat.hpp	2016-06-17 02:22:12.000000000 +1000
+++ armadillo-10.1.2-rcond-bugfix/include/armadillo_bits/op_cond_meat.hpp	2021-03-09 16:23:18.251117619 +1000
@@ -58,11 +58,13 @@
     {
     const strip_trimat<T1> S(X.get_ref());
     
-    arma_debug_check( (S.M.is_square() == false), "rcond(): matrix must be square sized" );
+    const quasi_unwrap<typename strip_trimat<T1>::stored_type> U(S.M);
+    
+    arma_debug_check( (U.M.is_square() == false), "rcond(): matrix must be square sized" );
     
     const uword layout = (S.do_triu) ? uword(0) : uword(1);
     
-    return auxlib::rcond_trimat(S.M, layout);
+    return auxlib::rcond_trimat(U.M, layout);
     }
   
   Mat<eT> A = X.get_ref();
