Fix compilation failures on constexpr matrices with GCC 14

This commit is contained in:
Tyler Veness 2024-05-22 12:29:01 +00:00 committed by Rasmus Munk Larsen
parent 99adca8b34
commit c4d84dfddc
3 changed files with 7 additions and 2 deletions

View File

@ -621,17 +621,19 @@ class DenseBase
protected:
EIGEN_DEFAULT_COPY_CONSTRUCTOR(DenseBase)
/** Default constructor. Do nothing. */
#ifdef EIGEN_INTERNAL_DEBUGGING
EIGEN_DEVICE_FUNC constexpr DenseBase() {
/* Just checks for self-consistency of the flags.
* Only do it when debugging Eigen, as this borders on paranoia and could slow compilation down
*/
#ifdef EIGEN_INTERNAL_DEBUGGING
EIGEN_STATIC_ASSERT(
(internal::check_implication(MaxRowsAtCompileTime == 1 && MaxColsAtCompileTime != 1, int(IsRowMajor)) &&
internal::check_implication(MaxColsAtCompileTime == 1 && MaxRowsAtCompileTime != 1, int(!IsRowMajor))),
INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
#endif
}
#else
EIGEN_DEVICE_FUNC constexpr DenseBase() = default;
#endif
private:
EIGEN_DEVICE_FUNC explicit DenseBase(int);

View File

@ -7,6 +7,7 @@
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
#define EIGEN_TESTING_CONSTEXPR
#include "main.h"
EIGEN_DECLARE_TEST(constexpr) {

View File

@ -336,7 +336,9 @@ static std::vector<std::string> eigen_assert_list;
#endif // EIGEN_NO_ASSERTION_CHECKING
#ifndef EIGEN_TESTING_CONSTEXPR
#define EIGEN_INTERNAL_DEBUGGING
#endif
#include <Eigen/QR> // required for createRandomPIMatrixOfRank and generateRandomMatrixSvs
inline void verify_impl(bool condition, const char* testname, const char* file, int line,