facebook / facebook/infer

call to immediate function 'std::__format::_Formatting_scanner<std::__format::_Sink_iter<char>, char>::_M_format_arg(size_t)::(anonymous class)::operator()<bool>' is not a constant expression

Open
#1,978 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
OCaml
Stars
15.7k
Forks
2.1k
Avg merge
19h 36m
Merged PRs (30d)
13

Description

Hello,

Unfortunately, fbinfer no longer works on Arch Linux.

```
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4013:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4013 | return std::forward<_Visitor>(__vis)(_M_val._M_bool);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4106:20: note: in instantiation of function template specialization 'std::basic_format_arg, char>>::_M_visit<(lambda at /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4593:31)>' requested here
4106 | return __arg._M_visit(std::forward<_Visitor>(__vis), __arg._M_type);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4593:12: note: in instantiation of function template specialization 'std::__format::__visit_format_arg<(lambda at /usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4593:31), std::basic_format_context, char>>' requested here
4593 | __format::__visit_format_arg([this](auto& __arg) {
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4760:55: note: in instantiation of member function 'std::__format::_Formatting_scanner, char>::_M_format_arg' requested here
4760 | _Formatting_scanner<_Sink_iter<_CharT>, _CharT> __scanner(__ctx, __fmt);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4760:55: note: in instantiation of template class 'std::__format::_Formatting_scanner, char>' requested here
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4819:24: note: in instantiation of function template specialization 'std::__format::__do_vformat_to, char, std::basic_format_context, char>>' requested here
4819 | { return __format::__do_vformat_to(std::move(__out), __fmt, __args); }
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4854:10: note: in instantiation of function template specialization 'std::vformat_to>' requested here
4854 | std::vformat_to(__buf.out(), __fmt, __args);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4013:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4013 | return std::forward<_Visitor>(__vis)(_M_val._M_bool);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4015:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4015 | return std::forward<_Visitor>(__vis)(_M_val._M_c);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4015:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4015 | return std::forward<_Visitor>(__vis)(_M_val._M_c);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4017:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4017 | return std::forward<_Visitor>(__vis)(_M_val._M_i);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4017:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4017 | return std::forward<_Visitor>(__vis)(_M_val._M_i);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4019:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4019 | return std::forward<_Visitor>(__vis)(_M_val._M_u);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4019:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4019 | return std::forward<_Visitor>(__vis)(_M_val._M_u);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4021:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4021 | return std::forward<_Visitor>(__vis)(_M_val._M_ll);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4021:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4021 | return std::forward<_Visitor>(__vis)(_M_val._M_ll);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4023:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4023 | return std::forward<_Visitor>(__vis)(_M_val._M_ull);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4023:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4023 | return std::forward<_Visitor>(__vis)(_M_val._M_ull);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4026:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4026 | return std::forward<_Visitor>(__vis)(_M_val._M_flt);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4026:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4026 | return std::forward<_Visitor>(__vis)(_M_val._M_flt);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4028:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4028 | return std::forward<_Visitor>(__vis)(_M_val._M_dbl);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4028:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4028 | return std::forward<_Visitor>(__vis)(_M_val._M_dbl);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4031:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4031 | return std::forward<_Visitor>(__vis)(_M_val._M_ldbl);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4031:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4031 | return std::forward<_Visitor>(__vis)(_M_val._M_ldbl);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4040:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4040 | return std::forward<_Visitor>(__vis)(_M_val._M_str);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4040:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4040 | return std::forward<_Visitor>(__vis)(_M_val._M_str);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4042:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()>' is not a constant expression
4042 | return std::forward<_Visitor>(__vis)(_M_val._M_sv);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4042:38: note: function parameter '__vis' with unknown value cannot be used in a constant expression
4042 | return std::forward<_Visitor>(__vis)(_M_val._M_sv);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4005:22: note: declared here
4005 | _M_visit(_Visitor&& __vis, __format::_Arg_t __type)
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4044:15: error: call to immediate function 'std::__format::_Formatting_scanner, char>::_M_format_arg(size_t)::(anonymous class)::operator()' is not a constant expression
4044 | return std::forward<_Visitor>(__vis)(_M_val._M_ptr);
|  ^
/usr/lib64/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../include/c++/15.2.1/format:4044:38:
```

Full log:
[infer.txt](https://github.com/user-attachments/files/24064236/infer.txt)

[infer-out.zip](https://github.com/user-attachments/files/24064270/infer-out.zip)

Code: https://codeberg.org/mark22k/mping-sender/src/commit/c21d359ae11413fd0e1efda1592680046fb4e95e

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.