diff --git a/Eigen/src/Core/products/TriangularMatrixMatrix.h b/Eigen/src/Core/products/TriangularMatrixMatrix.h index 770107a0b..94eabdc2f 100644 --- a/Eigen/src/Core/products/TriangularMatrixMatrix.h +++ b/Eigen/src/Core/products/TriangularMatrixMatrix.h @@ -422,6 +422,12 @@ struct triangular_product_impl internal::add_const_on_value_type_t lhs = LhsBlasTraits::extract(a_lhs); internal::add_const_on_value_type_t rhs = RhsBlasTraits::extract(a_rhs); + // Empty product, return early. Otherwise, we get `nullptr` use errors below when we try to access + // coeffRef(0,0). + if (a_lhs.size() == 0 || a_rhs.size() == 0) { + return; + } + LhsScalar lhs_alpha = LhsBlasTraits::extractScalarFactor(a_lhs); RhsScalar rhs_alpha = RhsBlasTraits::extractScalarFactor(a_rhs); Scalar actualAlpha = alpha * lhs_alpha * rhs_alpha;