Skip to content

-Wmaybe-uninitialized with GCC 13 and more than 15x fmt::arg #4381

@nunojpg

Description

@nunojpg

Not sure if you want to do something about this.

https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGe1wAyeAyYAHI%2BAEaYxCAAzKQADqgKhE4MHt6%2BekkpjgJBIeEsUTHxdpgOaUIETMQEGT5%2BXLaY9nkM1bUEBWGR0XG2NXUNWc0KQ93BvcX9sQCUtqhexMjsHOaxwcjeWADUJrFuVCwEAPT8xCxMBAB0CAfYJhoAgk/PwQS7V8EQc/sA7FYXrsQbsmF4iLtxsR9rEACK7Y4EEAgC5XAgQcxmLGkUF4/H406nN4E0lkglIlG1YCYsxmLg43YaBagokk8kc0mUkDU2l0xnM3EgtnAzli0Hc3lY2IClnC4mi8ViyXEGlYySyoW7EXPJXilVqukAVk1rIVur1nINfIAbKb5ezLeTrVj/vbteanRyXXSABzunVe50nKmqvkATgDnqDXJDPLDWK4GntgZjFLjUrpXAZdNxgodirTEozCaz2NzTLlqaLxeR8cN9JlFfzHsdNcRJYbUhT0fbHbrmfpJubVd77Z99LtI7mByBFpBxEwBGWDCZs7eJn%2BcI4C1onCNvD8HC0pFQnDc1msUKWK0w%2BzMsR4pGRx53CwA1iAjRobr6zL7fS4I1JF9I0zHDMwjV9fROEkQ9NF4M8OF4BQQA0Z8EIWOBYBgRAUFQFgEjoaJyEoNBCOImJgC4WJ4hoWgCGiVCIAiBDSAiYJagAT04J8OOYYguIAeQibQKhfJ9yLYQQhIYWgeNfUgsAiLxgDcMRaFQ7heCwK4jHERT8EXSoADdMC0k9MFUCoITWE8PlaNjaDwCJiG4jwsDYghiDwFheN4MziAiZJMDhTA9OAZyjEwvgDGABQADU8EwAB3ISEkYfyZEEEQxHYKRsvkJQ1DY3RmgMaLTEsax9Bc1DYGYNhUROUhApAbyvAYd85gWVAEnaLSAFoAHUrO8phdkGoTgEQwKfKwerfhaNo0hcBh3E8Rp/HWnoihKbJklSAQRiaRJDvaXa%2BhiMZWnEqoJhOvRykqAROjqS6ZmuwYukesYJg%2B/auAWBQb1WCRd33eDFKQ3ZVF9G1BptSRdmAZBkF2GibliXYIFwQgSHvR85l4F8tB60gEEwJgsBiJbP0kcMbi4f5s19SQjSkf4NH%2BSQzBgjg4NIPyuZuJH2ezKCkxtHnoKPE8kJQtCMNfLDcIgJAlgIBIIVIiByKI%2BhiFCVg1jhhGkZRtGcY6rridITB8CIea9H4HLRHEArXaKlR1EUsrSBStyEn8iGOAPUg5cQzghIhbXPlQKhYfhxHkdR9HMexiAPAow3CaBknMIWSnqf6Ja9wF3g/PArGjWAgDJC4X1w1iSD4kj09OEV9DSbfUh6cZ5nWfFyQuZ5vny9iKH5c75WydDswp6j5DZ97wKUmcSQgA%3D%3D

Gives back:

In file included from /opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:41,
                 from <source>:1:
In constructor 'constexpr fmt::v11::detail::named_arg_store<Context, NUM_ARGS, NUM_NAMED_ARGS, DESC>::named_arg_store(T& ...) [with T = {fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>}; Context = fmt::v11::context; int NUM_ARGS = 16; int NUM_NAMED_ARGS = 16; long long unsigned int DESC = 9223372036854775824]',
    inlined from 'std::string fmt::v11::format(format_string<T ...>, T&& ...) [with T = {detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>}]' at /opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:4200:49:
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h:2331:9: warning: '<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
 2331 |       : args{{named_args, NUM_NAMED_ARGS}, values...} {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h: In function 'std::string fmt::v11::format(format_string<T ...>, T&& ...) [with T = {detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>}]':
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h:2484:3: note: by argument 2 of type 'const fmt::v11::detail::named_arg_info<char>*' to 'fmt::v11::basic_format_arg<Context>::basic_format_arg(const fmt::v11::detail::named_arg_info<typename Context::char_type>*, size_t) [with Context = fmt::v11::context]' declared here
 2484 |   basic_format_arg(const detail::named_arg_info<char_type>* args, size_t size)
      |   ^~~~~~~~~~~~~~~~
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:4200:17: note: '<anonymous>' declared here
 4200 |   return vformat(fmt.str, vargs<T...>{{args...}});
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ASM generation compiler returned: 0
In file included from /opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:41,
                 from <source>:1:
In constructor 'constexpr fmt::v11::detail::named_arg_store<Context, NUM_ARGS, NUM_NAMED_ARGS, DESC>::named_arg_store(T& ...) [with T = {fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>, fmt::v11::detail::named_arg<char, int>}; Context = fmt::v11::context; int NUM_ARGS = 16; int NUM_NAMED_ARGS = 16; long long unsigned int DESC = 9223372036854775824]',
    inlined from 'std::string fmt::v11::format(format_string<T ...>, T&& ...) [with T = {detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>}]' at /opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:4200:49:
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h:2331:9: warning: '<anonymous>' may be used uninitialized [-Wmaybe-uninitialized]
 2331 |       : args{{named_args, NUM_NAMED_ARGS}, values...} {
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h: In function 'std::string fmt::v11::format(format_string<T ...>, T&& ...) [with T = {detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>, detail::named_arg<char, int>}]':
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/base.h:2484:3: note: by argument 2 of type 'const fmt::v11::detail::named_arg_info<char>*' to 'fmt::v11::basic_format_arg<Context>::basic_format_arg(const fmt::v11::detail::named_arg_info<typename Context::char_type>*, size_t) [with Context = fmt::v11::context]' declared here
 2484 |   basic_format_arg(const detail::named_arg_info<char_type>* args, size_t size)
      |   ^~~~~~~~~~~~~~~~
/opt/compiler-explorer/libs/fmt/trunk/include/fmt/format.h:4200:17: note: '<anonymous>' declared here
 4200 |   return vformat(fmt.str, vargs<T...>{{args...}});
      |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Execution build compiler returned: 0
Program returned: 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions