-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Description
My env:
- Debian bullseye 20201012
- gcc (Debian 10.2.0-16) 10.2.0
- fmt 7.1.2 (installed via vcpkg)
I have a very simple usage like below:
std::string double_to_string(double value) {
return fmt::format("{}", value);
}
// the test case looks like:
auto string_value = double_to_string(3.14); // 3.14 is a literal, and all my 3 cases with double literal as input causes segfault
The test case for this usage causes a segfault.
- it worked fine for fmt 7.0.3 but failed for 7.1.2
- it only causes problem under "Release" mode, for "Debug" mode, it works well
Here is the stack trace in the core dump I collected:
#0 0x00005634baa9045b in std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > fmt::v7::detail::write<char, std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, double, 0>(std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, double) ()
(gdb) bt full
#0 0x00005634baa9045b in std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > fmt::v7::detail::write<char, std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, double, 0>(std::back_insert_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, double) ()
No symbol table info available.
#1 0x00005634baa8deb8 in fmt::v7::detail::vformat[abi:cxx11](fmt::v7::basic_string_view<char>, fmt::v7::format_args) ()
No symbol table info available.
#2 0x00005634ba2e12af in ____C_A_T_C_H____T_E_S_T____4() ()
No symbol table info available.
#3 0x00005634ba1c10eb in Catch::RunContext::invokeActiveTestCase() ()
No symbol table info available.
#4 0x00005634ba1d5c08 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ()
No symbol table info available.
#5 0x00005634ba1e584f in Catch::RunContext::runTest(Catch::TestCase const&) ()
No symbol table info available.
#6 0x00005634ba1eea42 in Catch::Session::runInternal() ()
No symbol table info available.
#7 0x00005634ba1ef01b in Catch::Session::run() ()
No symbol table info available.
#8 0x00005634ba18bb30 in main ()
No symbol table info available.
Metadata
Metadata
Assignees
Labels
No labels