[Bug libstdc++/69191] Wrong equality comparison between error_code and error_condition + segfault
kristian.spangsege at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Aug 5 02:06:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69191
Kristian Spangsege <kristian.spangsege at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kristian.spangsege at gmail dot co
| |m
--- Comment #13 from Kristian Spangsege <kristian.spangsege at gmail dot com> ---
I've now run into this problem too, and it seems to be general, not just
limited to Ubuntu.
There is the code that I compile:
#include <cerrno>
#include <system_error>
#include <iostream>
int main()
{
std::error_code ec(EDOM, std::system_category());
bool b = (ec == std::errc::argument_out_of_domain);
std::cout << b << "\n";
}
I expect it to write `1`, not `0`.
I get the expected result with Clang on OS X. I get the wrong result with
- GCC 6.1.1 on Fedora 24, which links against libstdc++.so.6.0.22
- GCC 5.4.0 on Linux Mint 18 (Ubuntu 14.04), which links against
libstdc++.so.6.0.21
- GCC 4.9.3 on Linux Mint 17.1 (Ubuntu 16.04), which links against
libstdc++.so.6.0.22
It therefore seems to me that this is really a bug in libstdc++.
More information about the Gcc-bugs
mailing list