https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115810
--- Comment #7 from linuxnyasha at tutanota dot com --- (In reply to Andrew Pinski from comment #6) > Can you show the exact command needed to reproduce this? > > I am suspecting this might be an artifact of the IDE you are using. > > What GCC diagnostic produces is (when I remove the line markers): > t.cc: In instantiation of > ‘cserver::ServiceContextBuilder<cserver::ConstexprConfig<cserver::impl:: > NamedValue<utempl::ConstexprString<8>{std::array<char, 8>{"threads"}}, int> > >{utempl::Tuple<cserver::impl::NamedValue<utempl::ConstexprString<8>{std:: > array<char, 8>{"threads"}}, int> >{utempl::impl::TupleHelper<std::int > eger_sequence<long unsigned int, 0>, > cserver::impl::NamedValue<utempl::ConstexprString<8>{std::array<char, > 8>{"threads"}}, int> >{utempl::impl::TupleLeaf<0, > cserver::impl::NamedValue<utempl::ConstexprString<8>{std::array<char, > 8>{"threads"}}, int> > >{cserver::impl::NamedValue<utempl::ConstexprString<8>{std::array<cha > r, 8>{"threads"}}, int>{8}}}}}, > cserver::ComponentConfig<utempl::ConstexprString<5>{std::array<char, > 5>{"some"}}, SomeComponent, cserver::Options<>()>, > cserver::ComponentConfig<utempl::ConstexprString<6>{std::array<char, > 6>{"other"}}, OtherComponent, cserver::Options<>()>, > cserver::ComponentConfig<utempl::ConstexprS > tring<7>{std::array<char, 7>{"other2"}}, OtherComponent2, > cserver::Options<>()> > >::GetDependencyGraph()::<lambda(cserver::ComponentConfig<names, Components, > Options>...)> [with ConstexprString<...auto...> ...names = > {utempl::ConstexprString<5>{std::array<char, 5>{"some"}}, > utempl::ConstexprString<6>{std::array<char, > 6>{"other"}}, utempl::ConstexprString<7>{std::array<char, 7>{"other2"}}}; > Components = {SomeComponent, OtherComponent, OtherComponent2}; > Options<...auto...> ...Options = {cserver::Options<>(), > cserver::Options<>(), cserver::Options<>()}]’: > t.cc:259643:6: required from ‘static consteval auto > cserver::ServiceContextBuilder<config, > ComponentConfigs>::GetDependencyGraph() [with ConstexprConfig<...auto...> > config = > cserver::ConstexprConfig<cserver::impl::NamedValue<utempl:: > ConstexprString<8>{std::array<char, 8>{"threads"}}, int> > >{utempl::Tuple<cserver:: > impl::NamedValue<utempl::ConstexprString<8>{std::array<char, 8>{"threads"}}, > int> >{utempl::impl::TupleHelper<std::integer_sequence<long unsigned int, > 0>, cserver::impl::NamedValue<utempl::ConstexprString<8>{std::array<char, > 8>{"threads"}}, int> >{utempl::impl::TupleLeaf<0, > cserver::impl::NamedValue<utempl::Constexp > rString<8>{std::array<char, 8>{"threads"}}, int> > >{cserver::impl::NamedValue<utempl::ConstexprString<8>{std::array<char, > 8>{"threads"}}, int>{8}}}}}; ComponentConfigs = > {cserver::ComponentConfig<utempl::ConstexprString<5>{std::array<char, > 5>{"some"}}, SomeComponent, cserver::Options<>()>, > cserver::ComponentConfig<ut > empl::ConstexprString<6>{std::array<char, 6>{"other"}}, OtherComponent, > cserver::Options<>()>, > cserver::ComponentConfig<utempl::ConstexprString<7>{std::array<char, > 7>{"other2"}}, OtherComponent2, cserver::Options<>()>}]’ > 259634 | return [&]<utempl::ConstexprString... names, typename... > Components, Options... Options>( > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ~~~~~ > 259635 | ComponentConfig<names, Components, Options>...) { > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 259636 | return DependencyGraph<DependencyGraphElement<names, > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 259637 | > []<utempl::ConstexprString name, typename Component, ::cserver::Options > OOptions>( > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ~~~~~ > 259638 | > ComponentConfig<name, Component, OOptions>) { > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 259639 | > impl::DependencyInfoInjector<Component, name, config, ComponentConfigs...> > injector; > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ~~~~~~~ > 259640 | > injector.Inject(); > | > ~~~~~~~~~~~~~~~~~~ > 259641 | return > injector.GetDependencies(); > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 259642 | > }(ComponentConfigs{})>...>{}; > | > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 259643 | }(ComponentConfigs{}...); > | ~^~~~~~~~~~~~~~~~~~~~~~~ It doesn't work like that for me when I compile using preprocessed sources. The bug only appears when I simply compile. (ubuntu-24.04 Github Actions)