[Bug libstdc++/60555] New: std::system_category().default_error_condition() doesn't map system errno values to std::generic_category()
c.m.brandenburg at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Mar 17 19:07:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60555
Bug ID: 60555
Summary: std::system_category().default_error_condition()
doesn't map system errno values to
std::generic_category()
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: c.m.brandenburg at gmail dot com
Created attachment 32376
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32376&action=edit
Program that exposes the bug.
According to the C++ standard, if the value ev corresponds to the POSIX errno
value posv, then std::system_category().default_error_condition(ev) should
return std::error_condition(posv, generic_category()). The libstdc++
implementation doesn't do this. Instead, it always returns
std::error_condition(ev, std::system_category()).
Attached is a program that exposes this bug. I've seen this problem on 4.7.2,
but an inspection of the source code for 4.8.2 suggests the bug exists for that
version too.
More information about the Gcc-bugs
mailing list