flux-framework / flux-sched

Fluxion Graph-based Scheduler
GNU Lesser General Public License v3.0
87 stars 41 forks source link

compilation failure in Fedora 36 (GCC 12) #948

Closed grondo closed 3 months ago

grondo commented 2 years ago

This was reported by a user on Fedora 36:

In file included from ESC[01mESC[K/usr/include/boost/graph/detail/adjacency_list.hpp:35ESC[mESC[K,
                 from ESC[01mESC[K/usr/include/boost/graph/adjacency_list.hpp:255ESC[mESC[K,
                 from ESC[01mESC[K../../../flux-sched/resource/readers/resource_spec_grug.cpp:12ESC[mESC[K:
In member function 'ESC[01mESC[Kboost::detail::adj_list_edge_iterator<VertexIterator, OutEdgeIterator, Graph>::self& boost::detail::adj_list_edge_iterator<VertexIterator, OutEdgeIterator, Graph>::operator++() [with VertexIterator = boost::range_detail::integer_iterator<long unsigned int>; OutEdgeIterator = boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int>; Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>]ESC[mESC[K',
    inlined from 'ESC[01mESC[Kvoid boost::vec_adj_list_impl<Graph, Config, Base>::copy_impl(const boost::vec_adj_list_impl<Graph, Config, Base>&) [with Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>; Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config; Base = boost::directed_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config>]ESC[mESC[K' at ESC[01mESC[K/usr/include/boost/graph/detail/adjacency_list.hpp:2188:63ESC[mESC[K:
ESC[01mESC[K/usr/include/boost/graph/detail/adj_list_edge_iterator.hpp:80:13:ESC[mESC[K ESC[01;31mESC[Kerror: ESC[mESC[K'ESC[01mESC[K((boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>* const*)((char*)&ei + offsetof(boost::detail::edge_iterator, boost::detail::adj_list_edge_iterator<boost::range_detail::integer_iterator<long unsigned int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int>, boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS> >::edges.boost::optional<std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int> > >::<unnamed>.boost::optional_detail::optional_base<std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int> > >::m_storage.boost::optional_detail::aligned_storage<std::pair<boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int>, boost::detail::out_edge_iter<__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >, long unsigned int, boost::detail::edge_desc_impl<boost::directed_tag, long unsigned int>, long int> > >::dummy_)))[2]ESC[mESC[K' may be used uninitialized [ESC[01;31mESC[KESC]8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmaybe-uninitialized^G-Werror=maybe-uninitializedESC]8;;^GESC[mESC[K]
jwakely commented 1 year ago

I see loads of -Werror=maybe-uninitialized errors when building master on Fedora 38 (boost 1.78.0, gcc 13.0.1). I added -Wno-error=maybe-uninitialized to downgrade them to warnings while I was looking into something else.