[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