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)

Reply via email to