-
Notifications
You must be signed in to change notification settings - Fork 63
Open
Description
Bug Description: What's going wrong?
Compiling 4C with gcc-14 on Ubuntu 24.04 leads to an internal compiler error
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_internals.hpp:223:53: internal compiler error: in cxx_eval_indirect_ref, at cp/constexpr.cc:5954
223 | [[nodiscard]] constexpr Number* data() { return data_.data(); }
This is just an FYI for others: the Ubuntu gcc-14 package does not work with 4C. I found this bug report from gcc. Apparently, the bug is fixed in version 14.3./15
For testing, I used the 4C dependencies image
docker run -it ghcr.io/4c-multiphysics/4c-dependencies-ubuntu24.04:main
sudo apt update
sudo apt install gcc-14 g++-14
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 --slave /usr/bin/g++ g++ /usr/bin/g++-13
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 --slave /usr/bin/g++ g++ /usr/bin/g++-14
git clone https://github.com/4C-multiphysics/4C.git
cd 4C
mkdir build/release && cd build/release
cmake ../../ --preset=docker
cmake --build . --target full -j 8
The full error message
[538/2047] Building CXX object src/core/CMakeFiles/core_objs.dir/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp.o
FAILED: src/core/CMakeFiles/core_objs.dir/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp.o
/usr/bin/mpic++ -DBOOST_GRAPH_DYN_LINK -DBOOST_GRAPH_NO_LIB -DBOOST_MAJOR_VERSION=1 -DBOOST_MINOR_VERSION=83 -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DKOKKOS_DEPENDENCE -DMIRCO_ENABLE_VISUALIZATIONEXPORT=0 -DMPICH_SKIP_MPICXX -DNDEBUG -DOMPI_SKIP_MPICXX -D_MPICC_H -Dkiss_fft_scalar=double -I/home/user/4C/src -I/home/user/4C/src/core -I/home/user/4C/src/core/binstrategy -I/home/user/4C/src/core/comm -I/home/user/4C/src/core/comm/src -I/home/user/4C/src/core/fem -I/home/user/4C/src/core/fem/src/condition -I/home/user/4C/src/core/fem/src/discretization -I/home/user/4C/src/core/fem/src/dofset -I/home/user/4C/src/core/fem/src/general/element -I/home/user/4C/src/core/fem/src/general/node -I/home/user/4C/src/core/fem/src/general/nurbs -I/home/user/4C/src/core/fem/src/general/utils -I/home/user/4C/src/core/fem/src/geometry -I/home/user/4C/src/core/fem/src/nurbs_discretization -I/home/user/4C/src/core/geometric_search -I/home/user/4C/src/core/geometric_search/src -I/home/user/4C/src/core/io -I/home/user/4C/src/core/io/src -I/home/user/4C/src/core/io/src/legacy -I/home/user/4C/src/core/legacy_enum_definitions -I/home/user/4C/src/core/linalg -I/home/user/4C/src/core/linalg/src/dense -I/home/user/4C/src/core/linalg/src/sparse -I/home/user/4C/src/core/linear_solver -I/home/user/4C/src/core/linear_solver/src/amgnxn -I/home/user/4C/src/core/linear_solver/src/method -I/home/user/4C/src/core/linear_solver/src/preconditioner -I/home/user/4C/src/core/linear_solver/src/utils -I/home/user/4C/src/core/material -I/home/user/4C/src/core/rebalance -I/home/user/4C/src/core/rebalance/src -I/home/user/4C/src/core/utils -I/home/user/4C/src/core/utils/src/exceptions -I/home/user/4C/src/core/utils/src/functions -I/home/user/4C/src/core/utils/src/numerics -I/home/user/4C/src/core/utils/src/parameters -I/home/user/4C/src/core/utils/src/random -I/home/user/4C/src/core/utils/src/result_test -I/home/user/4C/src/core/utils/src/stl_extension -I/home/user/4C/src/core/utils/src/stl_extension/c++23 -I/home/user/4C/src/core/utils/src/string_utils -I/home/user/4C/build/release/_deps/ryml-src/src -I/home/user/4C/build/release/_deps/ryml-src/ext/c4core/src -I/home/user/4C/build/release/_deps/magic_enum-src/include -I/home/user/4C/build/release/_deps/cli11-src/include -I/home/user/4C/build/release/_deps/arborx-src/src -I/home/user/4C/build/release/_deps/arborx-src/src/geometry -I/home/user/4C/build/release/_deps/arborx-src/src/cluster -I/home/user/4C/build/release/_deps/arborx-src/src/distributed -I/home/user/4C/build/release/_deps/arborx-src/src/interpolation -I/home/user/4C/build/release/_deps/arborx-src/src/spatial -I/home/user/4C/build/release/_deps/arborx-build/include -I/home/user/4C/build/release/_deps/mirco-src/src -I/home/user/4C/src/config -I/home/user/4C/build/release/src/config/config -I/home/user/4C/build/release/src/config -isystem /usr/include/hdf5/openmpi -isystem /opt/4C-dependencies/include -isystem /opt/4C-dependencies/include/kokkos -isystem /usr/include/suitesparse -isystem /usr/include/vtk-9.1 -isystem /opt/4C-dependencies/include/deal.II/bundled -isystem /opt/4C-dependencies/FAST/include -isystem /home/user/4C/build/release/_deps/pybind11-src/include -isystem /usr/include/python3.12 -O3 -DNDEBUG -std=c++20 -fPIC -Wall -Wextra -Wvla -Wno-unused-parameter -Wno-overloaded-virtual -Wno-maybe-uninitialized -Werror -ftrapping-math -O3 -funroll-loops -MD -MT src/core/CMakeFiles/core_objs.dir/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp.o -MF src/core/CMakeFiles/core_objs.dir/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp.o.d -o src/core/CMakeFiles/core_objs.dir/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp.o -c /home/user/4C/src/core/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp
In file included from /home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor.hpp:14,
from /home/user/4C/src/core/linalg/src/dense/4C_linalg_symmetric_tensor.hpp:13,
from /home/user/4C/src/core/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.hpp:22,
from /home/user/4C/src/core/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp:8:
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_internals.hpp: In instantiation of ‘FourC::Core::LinAlg::einsum_sym<FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"i"}}, FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"j"}}, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3> >(const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&, const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&)::<lambda(auto:127 ...)> [with auto:127 = {std::integral_constant<long unsigned int, 0>, std::integral_constant<long unsigned int, 0>, std::integral_constant<long unsigned int, 0>, std::integral_constant<long unsigned int, 0>}]’:
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_symmetric_einstein.hpp:107:16: required from ‘static constexpr void FourC::Core::LinAlg::EinsteinHelper::ConstExprSymmetricMultiFor<std::integer_sequence<long unsigned int, _Idx ...>, FourC::Core::LinAlg::EinsteinHelper::IntegerPairSequence<IntegerPairs ...> >::multi_for(Action) [with Action = FourC::Core::LinAlg::einsum_sym<FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"i"}}, FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"j"}}, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3> >(const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&, const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&)::<lambda(auto:127 ...)>; long unsigned int ...i = {0, 0}; IntegerPairs = {FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 0>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<2, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 2>}]’
107 | (action(std::integral_constant<std::size_t, i>{}...,
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108 | std::integral_constant<std::size_t, IntegerPairs::first>{},
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
109 | std::integral_constant<std::size_t, IntegerPairs::second>{}),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_symmetric_einstein.hpp:95:49: required from ‘static constexpr void FourC::Core::LinAlg::EinsteinHelper::ConstExprSymmetricMultiFor<std::integer_sequence<long unsigned int, _Idx ...>, FourC::Core::LinAlg::EinsteinHelper::IntegerPairSequence<IntegerPairs ...>, IntegerPairSequences ...>::multi_for(Action) [with Action = FourC::Core::LinAlg::einsum_sym<FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"i"}}, FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"j"}}, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3> >(const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&, const TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>&)::<lambda(auto:127 ...)>; long unsigned int ...i = {}; IntegerPairs = {FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 0>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<2, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 2>}; IntegerPairSequences = {FourC::Core::LinAlg::EinsteinHelper::IntegerPairSequence<FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 0>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<2, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 1>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<1, 2>, FourC::Core::LinAlg::EinsteinHelper::IntegerPair<0, 2> >}]’
93 | (ConstExprSymmetricMultiFor<
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
94 | std::integer_sequence<std::size_t, i..., IntegerPairs::first, IntegerPairs::second>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
95 | IntegerPairSequences...>::multi_for(action),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_symmetric_einstein.hpp:222:90: required from ‘auto FourC::Core::LinAlg::einsum_sym(const Tensor& ...) [with CompileTimeString<...auto...> ...einstein_indices = {FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"i"}}, FourC::Core::Utils::CompileTimeString<3>{std::array<char, 2>{"j"}}}; Tensor = {TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>, TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, Internal::SymmetricCompression<3, 3>, 3, 3>}]’
222 | EinsteinHelper::ConstExprSymmetricMultiForMaker<dyadic_einstein_indices>::multi_for(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
223 | [&](auto... i)
| ~~~~~~~~~~~~~~
224 | {
| ~
225 | constexpr std::array<std::size_t, sizeof...(i)> dyadic_index = {i()...};
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
226 |
|
227 | constexpr std::array tensor_flat_indices =
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
228 | EinsteinHelper::flat_indices<TensorCompressionTypes, contraction_einstein_indices,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
229 | dyadic_einstein_indices, contraction_index, dyadic_index,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230 | einstein_indices.value...>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
231 | constexpr std::size_t flat_index =
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232 | EinsteinHelper::flat_index<TensorCompressionType<decltype(tensor_result)>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233 | EinsteinHelper::get_tensor_component<
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
234 | EinsteinHelper::einstein_index_names<dyadic_einstein_indices>,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 | contraction_einstein_indices, dyadic_einstein_indices>(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
236 | contraction_index, dyadic_index)>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
237 |
|
238 | *(tensor_result.data() + flat_index) +=
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239 | EinsteinHelper::evaluate_contraction<tensor_flat_indices>(t...);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240 | });
| ~~
/home/user/4C/src/core/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp:324:44: required from ‘FourC::Core::LinAlg::SymmetricTensor<T, 3, 3, 3, 3> FourC::Core::LinAlg::FourTensorOperations::holzapfel_product(FourC::Core::LinAlg::SymmetricTensor<T, 3, 3>&) [with T = Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >; FourC::Core::LinAlg::SymmetricTensor<T, 3, 3, 3, 3> = FourC::Core::LinAlg::TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, FourC::Core::LinAlg::Internal::SymmetricCompression<3, 3, 3, 3>, 3, 3, 3, 3>; FourC::Core::LinAlg::SymmetricTensor<T, 3, 3> = FourC::Core::LinAlg::TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, FourC::Core::LinAlg::Internal::SymmetricCompression<3, 3>, 3, 3>]’
324 | auto c_inv_ac_bd = einsum_sym<"ik", "jl">(invc, invc);
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
/home/user/4C/src/core/linalg/src/dense/4C_linalg_fixedsizematrix_tensor_products.cpp:946:52: required from here
946 | const Core::LinAlg::SymmetricTensor<FAD, 3, 3>&);
| ^
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_symmetric_einstein.hpp:238:33: in ‘constexpr’ expansion of ‘(& tensor_result)->FourC::Core::LinAlg::TensorInternal<Sacado::Fad::Exp::GeneralFad<Sacado::Fad::Exp::DynamicStorage<double, double> >, FourC::Core::LinAlg::TensorStorageType::owning, FourC::Core::LinAlg::Internal::SymmetricCompression<3, 3, 3, 3>, 3, 3, 3, 3>::data()’
/home/user/4C/src/core/linalg/src/dense/4C_linalg_tensor_internals.hpp:223:53: internal compiler error: in cxx_eval_indirect_ref, at cp/constexpr.cc:5954
223 | [[nodiscard]] constexpr Number* data() { return data_.data(); }
| ^~~~~
0x1431cf4 internal_error(char const*, ...)
???:0
0x1431dca fancy_abort(char const*, int, char const*)
???:0
0x16277f6 maybe_constant_value(tree_node*, tree_node*, mce_value)
???:0
0x162ffa4 fold_for_warn(tree_node*)
???:0
0x168ca92 build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node*, tree_node**, int)
???:0
0x16c8cdc build_x_modify_expr(unsigned int, tree_node*, tree_code, tree_node*, tree_node*, int)
???:0
0x1788407 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
???:0
0x1865259 instantiate_decl(tree_node*, bool, bool)
???:0
0x1851e6e maybe_instantiate_decl(tree_node*)
???:0
0x168bccb mark_used(tree_node*, int)
???:0
0x1b98d95 build_op_call(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int)
???:0
0x166df06 finish_call_expr(tree_node*, vec<tree_node*, va_gc, vl_embed>**, bool, bool, int)
???:0
0x17873d3 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
???:0
0x17ebf9e tsubst_pack_expansion(tree_node*, tree_node*, int, tree_node*)
???:0
0x1788774 tsubst_expr(tree_node*, tree_node*, int, tree_node*)
???:0
0x1865259 instantiate_decl(tree_node*, bool, bool)
???:0
0x15ab22f instantiate_pending_templates(int)
???:0
0x15a2d8f c_parse_final_cleanups()
???:0
0x1afc705 c_common_parse_file()
???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-14/README.Bugs> for instructions.
[545/2047] Building CXX object src/core/CMakeFiles/core_objs.dir/fem/src/general/utils/4C_fem_general_utils_polynomial.cpp.o
ninja: build stopped: subcommand failed.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels