Sign in or sign up before continuing. Don't have an account yet? Register now to get started.
Register now
Some warnings for GCC 13.3.1
### Summary I am trying to compile with GCC 13.3.1 and am getting some warnings. Some look like they are in GCC themselves, but might just be based on how those functions are called. ### Environment - **Operating System** : Linux - **Architecture** : x64 - **Eigen Version** : 5.0.0 - **Compiler Version** : gcc-13.3.1 - **Compile Flags** : -O3, using C++20 ### Minimal Example A reproducer can be supplied upon request. ### Steps to reproduce the issue ### What is the current *bug* behavior? ``` g++ -std=c++20 -fmax-errors=4 -Og -g -ggdb -Werror -Wall -Wdisabled-optimization -Winit-self -Wmissing-include-dirs -Woverloaded-virtual -Wno-unused -Wsign-compare -Wformat-security -Wswitch-default -Wformat=2 -Wcast-qual -Wsign-conversion -Wcast-align -Wdouble-promotion -Wnull-dereference -Wsign-promo -Wshadow -Wfloat-equal -pedantic -pedantic-errors -Wundef -Wzero-as-null-pointer-constant -Wredundant-decls -Wsuggest-override -Wextra-semi -Wlogical-op -Wnoexcept -Wstrict-null-sentinel -Wimplicit-fallthrough=5 -Wduplicated-branches -Wformat-overflow -Wformat-signedness -Wsuggest-final-types -Wsuggest-final-methods -Wno-unknown-pragmas -I./include -I./dummy-configs -isystem .../eigen_cpu/include/eigen3 -isystem .../Adiak_cpu/include -isystem .../hdf5_cpu/include -c ... g++ -std=c++20 -fmax-errors=4 -O3 -Werror -Wall -Wdisabled-optimization -Winit-self -Wmissing-include-dirs -Woverloaded-virtual -Wno-unused -Wsign-compare -Wformat-security -Wswitch-default -Wformat=2 -Wcast-qual -Wsign-conversion -Wcast-align -Wdouble-promotion -Wnull-dereference -Wsign-promo -Wshadow -Wfloat-equal -pedantic -pedantic-errors -Wundef -Wzero-as-null-pointer-constant -Wredundant-decls -Wsuggest-override -Wextra-semi -Wlogical-op -Wnoexcept -Wstrict-null-sentinel -Wimplicit-fallthrough=5 -Wduplicated-branches -Wformat-overflow -Wformat-signedness -Wsuggest-final-types -Wsuggest-final-methods -Wno-unknown-pragmas -I./include -I./dummy-configs -isystem .../eigen_cpu/include/eigen3 -isystem .../Adiak_cpu/include -isystem .../hdf5_cpu/include -c ... In file included from .../include/eigen3/Eigen/Core:380: .../include/eigen3/Eigen/src/Core/InnerProduct.h: In static member function ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<double, double, true>, Eigen::Block<const Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false> >, 1, -1, true>, Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >, -1, 1, true> >]’: .../include/eigen3/Eigen/src/Core/InnerProduct.h:145:22: note: ‘presult1’ was declared here 145 | Packet presult0, presult1, presult2, presult3; | ^~~~~~~~ In function ‘__m128d _mm_add_pd(__m128d, __m128d)’, inlined from ‘Packet Eigen::internal::padd(const Packet&, const Packet&) [with Packet = __vector(2) double]’ at .../include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h:502:20, inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, true>::Scalar Eigen::internal::inner_product_impl<Evaluator, true>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<double, double, true>, Eigen::Block<const Eigen::Transpose<const Eigen::Ref<Eigen::Matrix<double, -1, -1>, 0, Eigen::OuterStride<> > >, 1, -1, true>, Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, -1, 1>, 0, Eigen::InnerStride<1> >, -1, 1, true> >]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:168:41: /collab/usr/global/tools/tce4/packages/gcc/gcc-13.3.1/lib/gcc/x86_64-redhat-linux/13/include/emmintrin.h:251:46: error: ‘presult1’ may be used uninitialized [-Werror=maybe-uninitialized] 251 | return (__m128d) ((__v2df)__A + (__v2df)__B); | ^ In file included from .../include/eigen3/Eigen/Core:202, from .../include/eigen3/Eigen/Dense:1, In function ‘Packet Eigen::internal::pmul(const Packet&, const Packet&) [with Packet = double]’, inlined from ‘Scalar Eigen::internal::scalar_inner_product_op<Scalar, typename std::enable_if<Eigen::internal::is_same<typename Eigen::ScalarBinaryOpTraits<Scalar, Scalar>::ReturnType, Scalar>::value, Scalar>::type, Conj>::coeff(const Scalar&, const Scalar&) const [with Scalar = double; bool Conj = true]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:225:16, inlined from ‘Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::Scalar Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::coeff(Eigen::Index) const [with Func = Eigen::internal::scalar_inner_product_op<double, double, true>; Lhs = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 1, -1, false>; Rhs = Eigen::Block<const Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, -1, 1, true>]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:84:24, inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, false>::Scalar Eigen::internal::inner_product_impl<Evaluator, false>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<double, double, true>, Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 1, -1, false>, Eigen::Block<const Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, -1, 1, true> >]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:120:31, inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 1, -1, false>; Rhs = Eigen::Block<const Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, -1, 1, true>; bool Conj = true]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:250:46, inlined from ‘typename Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, typename Eigen::internal::traits<OtherDerived>::Scalar>::ReturnType Eigen::MatrixBase<Derived>::dot(const Eigen::MatrixBase<OtherDerived>&) const [with OtherDerived = Eigen::Block<const Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, -1, 1, true>; Derived = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/Dot.h:50:56, inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 7>::scaleAndAddTo(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Rhs = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:385:63, inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 7>::scaleAndAddTo(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Rhs = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:381:53, inlined from ‘static void Eigen::internal::generic_product_impl_base<Lhs, Rhs, Derived>::scaleAndAddTo(Dst&, const Lhs&, const Rhs&, const Scalar&) [with Dst = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Rhs = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >; Derived = Eigen::internal::generic_product_impl<Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, Eigen::DenseShape, Eigen::DenseShape, 7>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:367:27, inlined from ‘static void Eigen::internal::generic_product_impl_base<Lhs, Rhs, Derived>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Rhs = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >; Derived = Eigen::internal::generic_product_impl<Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, Eigen::DenseShape, Eigen::DenseShape, 7>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:351:18, inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Rhs = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >; int Options = 0; Scalar = double]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:133:43, inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::Product<Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, 0>; Func = assign_op<double, double>]’ at .../include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:51, inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >, 0>; ExpressionType = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >; StorageBase = Eigen::MatrixBase]’ at .../include/eigen3/Eigen/src/Core/NoAlias.h:42:29, inlined from ‘void Eigen::MatrixBase<Derived>::applyHouseholderOnTheRight(const EssentialPart&, const Scalar&, Scalar*) [with EssentialPart = Eigen::Transpose<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false> >; Derived = Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>]’ at .../include/eigen3/Eigen/src/Householder/Householder.h:145:19: .../include/eigen3/Eigen/src/Core/GenericPacketMath.h:366:12: error: potential null pointer dereference [-Werror=null-dereference] 366 | return a * b; | ~~^~~ In file included from .../include/eigen3/Eigen/Core:200: In static member function ‘static Eigen::internal::abs2_impl_default<Scalar, IsComplex>::RealScalar Eigen::internal::abs2_impl_default<Scalar, IsComplex>::run(const Scalar&) [with Scalar = double; bool IsComplex = false]’, inlined from ‘static Eigen::internal::abs2_impl<Scalar>::RealScalar Eigen::internal::abs2_impl<Scalar>::run(const Scalar&) [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/MathFunctions.h:267:72, inlined from ‘typename Eigen::internal::abs2_retval<typename Eigen::internal::global_math_functions_filtering_base<Scalar>::type>::type Eigen::numext::abs2(const Scalar&) [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/MathFunctions.h:1184:48, inlined from ‘const Eigen::internal::scalar_abs2_op<Scalar>::result_type Eigen::internal::scalar_abs2_op<Scalar>::operator()(const Scalar&) const [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h:95:114, inlined from ‘Eigen::internal::unary_evaluator<Eigen::CwiseUnaryOp<Func, Xpr>, Eigen::internal::IndexBased>::CoeffReturnType Eigen::internal::unary_evaluator<Eigen::CwiseUnaryOp<Func, Xpr>, Eigen::internal::IndexBased>::coeff(Eigen::Index) const [with UnaryOp = Eigen::internal::scalar_abs2_op<double>; ArgType = const Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/CoreEvaluators.h:585:22, inlined from ‘static Eigen::internal::redux_impl<Func, Evaluator, 1, 0>::Scalar Eigen::internal::redux_impl<Func, Evaluator, 1, 0>::run(const Evaluator&, const Func&, const XprType&) [with XprType = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false> >; Func = Eigen::internal::scalar_sum_op<double, double>; Evaluator = Eigen::internal::redux_evaluator<Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false> > >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:244:28, inlined from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::redux(const Func&) const [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; Derived = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:452:56, inlined from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::sum() const [with Derived = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:490:25, inlined from ‘static Eigen::internal::squared_norm_impl<Derived, Scalar>::Real Eigen::internal::squared_norm_impl<Derived, Scalar>::run(const Derived&) [with Derived = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false>; Scalar = double]’ at .../include/eigen3/Eigen/src/Core/Dot.h:23:112, inlined from ‘typename Eigen::NumTraits<typename Eigen::internal::traits<T>::Scalar>::Real Eigen::MatrixBase<Derived>::squaredNorm() const [with Derived = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/Dot.h:64:51, inlined from ‘void Eigen::MatrixBase<Derived>::makeHouseholder(EssentialPart&, Scalar&, RealScalar&) const [with EssentialPart = Eigen::VectorBlock<Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>, -1>; Derived = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, 1, -1, false>, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Householder/Householder.h:72:73: .../include/eigen3/Eigen/src/Core/MathFunctions.h:251:78: error: potential null pointer dereference [-Werror=null-dereference] 251 | EIGEN_DEVICE_FUNC static inline RealScalar run(const Scalar& x) { return x * x; } | ~~^~~ In static member function ‘static Eigen::internal::abs2_impl_default<Scalar, IsComplex>::RealScalar Eigen::internal::abs2_impl_default<Scalar, IsComplex>::run(const Scalar&) [with Scalar = double; bool IsComplex = false]’, inlined from ‘static Eigen::internal::abs2_impl<Scalar>::RealScalar Eigen::internal::abs2_impl<Scalar>::run(const Scalar&) [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/MathFunctions.h:267:72, inlined from ‘typename Eigen::internal::abs2_retval<typename Eigen::internal::global_math_functions_filtering_base<Scalar>::type>::type Eigen::numext::abs2(const Scalar&) [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/MathFunctions.h:1184:48, inlined from ‘const Eigen::internal::scalar_abs2_op<Scalar>::result_type Eigen::internal::scalar_abs2_op<Scalar>::operator()(const Scalar&) const [with Scalar = double]’ at .../include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h:95:114, inlined from ‘Eigen::internal::unary_evaluator<Eigen::CwiseUnaryOp<Func, Xpr>, Eigen::internal::IndexBased>::CoeffReturnType Eigen::internal::unary_evaluator<Eigen::CwiseUnaryOp<Func, Xpr>, Eigen::internal::IndexBased>::coeff(Eigen::Index) const [with UnaryOp = Eigen::internal::scalar_abs2_op<double>; ArgType = const Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/CoreEvaluators.h:585:22, inlined from ‘static Eigen::internal::redux_impl<Func, Evaluator, 1, 0>::Scalar Eigen::internal::redux_impl<Func, Evaluator, 1, 0>::run(const Evaluator&, const Func&, const XprType&) [with XprType = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false> >; Func = Eigen::internal::scalar_sum_op<double, double>; Evaluator = Eigen::internal::redux_evaluator<Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false> > >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:244:28, inlined from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::redux(const Func&) const [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; Derived = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:452:56, inlined from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::sum() const [with Derived = Eigen::CwiseUnaryOp<Eigen::internal::scalar_abs2_op<double>, const Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false> >]’ at .../include/eigen3/Eigen/src/Core/Redux.h:490:25, inlined from ‘static Eigen::internal::squared_norm_impl<Derived, Scalar>::Real Eigen::internal::squared_norm_impl<Derived, Scalar>::run(const Derived&) [with Derived = Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false>; Scalar = double]’ at .../include/eigen3/Eigen/src/Core/Dot.h:23:112, inlined from ‘typename Eigen::NumTraits<typename Eigen::internal::traits<T>::Scalar>::Real Eigen::MatrixBase<Derived>::squaredNorm() const [with Derived = Eigen::Block<const Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, 1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/Dot.h:64:51, inlined from ‘void Eigen::MatrixBase<Derived>::makeHouseholder(EssentialPart&, Scalar&, RealScalar&) const [with EssentialPart = Eigen::VectorBlock<Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >, -1>; Derived = Eigen::Ref<Eigen::Matrix<double, 1, -1>, 0, Eigen::InnerStride<> >]’ at .../include/eigen3/Eigen/src/Householder/Householder.h:72:73: .../include/eigen3/Eigen/src/Core/MathFunctions.h:251:78: error: potential null pointer dereference [-Werror=null-dereference] 251 | EIGEN_DEVICE_FUNC static inline RealScalar run(const Scalar& x) { return x * x; } | ~~^~~ In function ‘Packet Eigen::internal::pmul(const Packet&, const Packet&) [with Packet = double]’, inlined from ‘Scalar Eigen::internal::scalar_inner_product_op<Scalar, typename std::enable_if<Eigen::internal::is_same<typename Eigen::ScalarBinaryOpTraits<Scalar, Scalar>::ReturnType, Scalar>::value, Scalar>::type, Conj>::coeff(const Scalar&, const Scalar&) const [with Scalar = double; bool Conj = true]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:225:16, inlined from ‘Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::Scalar Eigen::internal::inner_product_evaluator<Func, Lhs, Rhs>::coeff(Eigen::Index) const [with Func = Eigen::internal::scalar_inner_product_op<double, double, true>; Lhs = Eigen::Block<const Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, 1, -1, true>; Rhs = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, -1, 1, true>]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:84:24, inlined from ‘static Eigen::internal::inner_product_impl<Evaluator, false>::Scalar Eigen::internal::inner_product_impl<Evaluator, false>::run(const Evaluator&) [with Evaluator = Eigen::internal::inner_product_evaluator<Eigen::internal::scalar_inner_product_op<double, double, true>, Eigen::Block<const Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, 1, -1, true>, Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, -1, 1, true> >]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:120:31, inlined from ‘static Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::result_type Eigen::internal::default_inner_product_impl<Lhs, Rhs, Conj>::run(const Eigen::MatrixBase<Derived>&, const Eigen::MatrixBase<Rhs>&) [with Lhs = Eigen::Block<const Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, 1, -1, true>; Rhs = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, -1, 1, true>; bool Conj = true]’ at .../include/eigen3/Eigen/src/Core/InnerProduct.h:250:46, inlined from ‘typename Eigen::ScalarBinaryOpTraits<typename Eigen::internal::traits<T>::Scalar, typename Eigen::internal::traits<OtherDerived>::Scalar>::ReturnType Eigen::MatrixBase<Derived>::dot(const Eigen::MatrixBase<OtherDerived>&) const [with OtherDerived = Eigen::Block<const Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, -1, 1, true>; Derived = Eigen::Block<const Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, 1, -1, true>]’ at .../include/eigen3/Eigen/src/Core/Dot.h:50:56, inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 7>::scaleAndAddTo(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >; Rhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:385:63, inlined from ‘static void Eigen::internal::generic_product_impl<Lhs, Rhs, Eigen::DenseShape, Eigen::DenseShape, 7>::scaleAndAddTo(Dest&, const Lhs&, const Rhs&, const Scalar&) [with Dest = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >; Rhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:381:53, inlined from ‘static void Eigen::internal::generic_product_impl_base<Lhs, Rhs, Derived>::scaleAndAddTo(Dst&, const Lhs&, const Rhs&, const Scalar&) [with Dst = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >; Rhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Derived = Eigen::internal::generic_product_impl<Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::DenseShape, Eigen::DenseShape, 7>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:367:27, inlined from ‘static void Eigen::internal::generic_product_impl_base<Lhs, Rhs, Derived>::evalTo(Dst&, const Lhs&, const Rhs&) [with Dst = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >; Rhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; Derived = Eigen::internal::generic_product_impl<Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, Eigen::DenseShape, Eigen::DenseShape, 7>]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:351:18, inlined from ‘static void Eigen::internal::Assignment<DstXprType, Eigen::Product<Lhs, Rhs, Options>, Eigen::internal::assign_op<Scalar, Scalar>, Eigen::internal::Dense2Dense, typename std::enable_if<((Options == Eigen::DefaultProduct) || (Options == Eigen::AliasFreeProduct)), void>::type>::run(DstXprType&, const SrcXprType&, const Eigen::internal::assign_op<Scalar, Scalar>&) [with DstXprType = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Lhs = Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >; Rhs = Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>; int Options = 0; Scalar = double]’ at .../include/eigen3/Eigen/src/Core/ProductEvaluators.h:133:43, inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::Product<Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 0>; Func = assign_op<double, double>]’ at .../include/eigen3/Eigen/src/Core/AssignEvaluator.h:920:51, inlined from ‘ExpressionType& Eigen::NoAlias<ExpressionType, StorageBase>::operator=(const StorageBase<OtherDerived>&) [with OtherDerived = Eigen::Product<Eigen::Transpose<const Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> > >, Eigen::Block<Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>, -1, -1, false>, 0>; ExpressionType = Eigen::Map<Eigen::Matrix<double, 1, -1>, 0, Eigen::Stride<0, 0> >; StorageBase = Eigen::MatrixBase]’ at .../include/eigen3/Eigen/src/Core/NoAlias.h:42:29, inlined from ‘void Eigen::MatrixBase<Derived>::applyHouseholderOnTheLeft(const EssentialPart&, const Scalar&, Scalar*) [with EssentialPart = Eigen::Transpose<Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >; Derived = Eigen::Block<Eigen::Block<Eigen::Matrix<double, -1, -1>, -1, -1, false>, -1, -1, false>]’ at .../include/eigen3/Eigen/src/Householder/Householder.h:113:19: .../include/eigen3/Eigen/src/Core/GenericPacketMath.h:366:12: error: potential null pointer dereference [-Werror=null-dereference] 366 | return a * b; | ~~^~~ ``` ### What is the expected *correct* behavior? ### Relevant logs ### [Optional] Benchmark scripts and results ### Anything else that might help
issue