diff --git a/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/Eigen/src/SparseLU/SparseLU_gemm_kernel.h index 11e7318b5..293857bf8 100644 --- a/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +++ b/Eigen/src/SparseLU/SparseLU_gemm_kernel.h @@ -93,8 +93,16 @@ void sparselu_gemm(int m, int n, int d, const Scalar* A, int lda, const Scalar* a0 = pload(A0); a1 = pload(A1); - if(RK==4) a2 = pload(A2); - if(RK==4) a3 = pload(A3); + if(RK==4) + { + a2 = pload(A2); + a3 = pload(A3); + } + else + { + // workaround "may be used uninitialized in this function" warning + a2 = a3 = a0; + } #define KMADD(c, a, b, tmp) tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp); #define WORK(I) \ @@ -137,6 +145,7 @@ void sparselu_gemm(int m, int n, int d, const Scalar* A, int lda, const Scalar* { WORK(0); } +#undef WORK // process the remaining rows without vectorization for(int i=actual_b_end2; i(1,50); + EIGEN_UNUSED_VARIABLE(s); CALL_SUBTEST_1(( sparse_basic(SparseMatrix(8, 8)) )); CALL_SUBTEST_2(( sparse_basic(SparseMatrix, ColMajor>(s, s)) )); CALL_SUBTEST_2(( sparse_basic(SparseMatrix, RowMajor>(s, s)) )); diff --git a/test/unalignedcount.cpp b/test/unalignedcount.cpp index 5451159e6..ca7e159f3 100644 --- a/test/unalignedcount.cpp +++ b/test/unalignedcount.cpp @@ -40,5 +40,7 @@ void test_unalignedcount() #else // The following line is to eliminate "variable not used" warnings nb_load = nb_loadu = nb_store = nb_storeu = 0; + int a(0), b(0); + VERIFY(a==b); #endif }