diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 28f2f802d80..02297e0f2bb 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,23 @@ +2016-12-21 Jonathan Wakely + + PR libstdc++/71444 + * config/os/mingw32-w64/error_constants.h + (address_family_not_supported, address_in_use, address_not_available) + (already_connected, connection_aborted, connection_already_in_progress) + connection_refused, connection_reset, cross_device_link) + (destination_address_required, host_unreachable, message_size) + (network_down, network_reset, network_unreachable, no_buffer_space) + (no_protocol_option, not_a_socket, not_connected, operation_canceled) + (operation_in_progress, operation_not_supported, protocol_error) + (protocol_not_supported, too_many_links, too_many_symbolic_link_levels) + (value_too_large, wrong_protocol_type): Define. + (bad_message, identifier_removed, no_link, no_message_available) + (no_message, no_stream_resources, not_a_stream, owner_dead) + (state_not_recoverable, stream_timeout, text_file_busy): Define + conditionally. + * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: + Guard test for no_message with _GLIBCXX_HAVE_ENOMSG. + 2016-12-19 Ville Voutilainen Make the perfect-forwarding constructor of a two-element tuple diff --git a/libstdc++-v3/config/os/mingw32-w64/error_constants.h b/libstdc++-v3/config/os/mingw32-w64/error_constants.h index 5cbf63cfe7f..f1003738ff7 100644 --- a/libstdc++-v3/config/os/mingw32-w64/error_constants.h +++ b/libstdc++-v3/config/os/mingw32-w64/error_constants.h @@ -41,22 +41,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // replaced by Winsock WSA-prefixed equivalents. enum class errc { -// address_family_not_supported = EAFNOSUPPORT, -// address_in_use = EADDRINUSE, -// address_not_available = EADDRNOTAVAIL, -// already_connected = EISCONN, + address_family_not_supported = EAFNOSUPPORT, + address_in_use = EADDRINUSE, + address_not_available = EADDRNOTAVAIL, + already_connected = EISCONN, argument_list_too_long = E2BIG, argument_out_of_domain = EDOM, bad_address = EFAULT, bad_file_descriptor = EBADF, -// bad_message = EBADMSG, +#ifdef _GLIBCXX_HAVE_EBADMSG + bad_message = EBADMSG, +#endif broken_pipe = EPIPE, -// connection_aborted = ECONNABORTED, -// connection_already_in_progress = EALREADY, -// connection_refused = ECONNREFUSED, -// connection_reset = ECONNRESET, -// cross_device_link = EXDEV, -// destination_address_required = EDESTADDRREQ, + connection_aborted = ECONNABORTED, + connection_already_in_progress = EALREADY, + connection_refused = ECONNREFUSED, + connection_reset = ECONNRESET, + cross_device_link = EXDEV, + destination_address_required = EDESTADDRREQ, device_or_resource_busy = EBUSY, directory_not_empty = ENOTEMPTY, executable_format_error = ENOEXEC, @@ -64,8 +66,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION file_too_large = EFBIG, filename_too_long = ENAMETOOLONG, function_not_supported = ENOSYS, -// host_unreachable = EHOSTUNREACH, -// identifier_removed = EIDRM, + host_unreachable = EHOSTUNREACH, +#ifdef _GLIBCXX_HAVE_EIDRM + identifier_removed = EIDRM, +#endif illegal_byte_sequence = EILSEQ, inappropriate_io_control_operation = ENOTTY, interrupted = EINTR, @@ -73,67 +77,84 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION invalid_seek = ESPIPE, io_error = EIO, is_a_directory = EISDIR, -// message_size = EMSGSIZE, -// network_down = ENETDOWN, -// network_reset = ENETRESET, -// network_unreachable = ENETUNREACH, -// no_buffer_space = ENOBUFS, + message_size = EMSGSIZE, + network_down = ENETDOWN, + network_reset = ENETRESET, + network_unreachable = ENETUNREACH, + no_buffer_space = ENOBUFS, #ifdef _GLIBCXX_HAVE_ECHILD no_child_process = ECHILD, #endif -// no_link = ENOLINK, +#ifdef _GLIBCXX_HAVE_ENOLINK + no_link = ENOLINK, +#endif no_lock_available = ENOLCK, -// no_message_available = ENODATA, -// no_message = ENOMSG, -// no_protocol_option = ENOPROTOOPT, +#ifdef _GLIBCXX_HAVE_ENODATA + no_message_available = ENODATA, +#endif +#ifdef _GLIBCXX_HAVE_ENOMSG + no_message = ENOMSG, +#endif + no_protocol_option = ENOPROTOOPT, #ifdef _GLIBCXX_HAVE_ENOSPC no_space_on_device = ENOSPC, #endif -// no_stream_resources = ENOSR, +#ifdef _GLIBCXX_HAVE_ENOSR + no_stream_resources = ENOSR, +#endif no_such_device_or_address = ENXIO, no_such_device = ENODEV, no_such_file_or_directory = ENOENT, no_such_process = ESRCH, not_a_directory = ENOTDIR, -// not_a_socket = ENOTSOCK, -// not_a_stream = ENOSTR, -// not_connected = ENOTCONN, + not_a_socket = ENOTSOCK, +#ifdef _GLIBCXX_HAVE_ENOSTR + not_a_stream = ENOSTR, +#endif + not_connected = ENOTCONN, not_enough_memory = ENOMEM, #ifdef _GLIBCXX_HAVE_ENOTSUP not_supported = ENOTSUP, #endif -// operation_canceled = ECANCELED, -// operation_in_progress = EINPROGRESS, + operation_canceled = ECANCELED, + operation_in_progress = EINPROGRESS, #ifdef _GLIBCXX_HAVE_EPERM operation_not_permitted = EPERM, #endif -// operation_not_supported = EOPNOTSUPP, + operation_not_supported = EOPNOTSUPP, #ifdef _GLIBCXX_HAVE_EWOULDBLOCK operation_would_block = EWOULDBLOCK, #endif -// owner_dead = EOWNERDEAD, +#ifdef _GLIBCXX_HAVE_EOWNERDEAD + owner_dead = EOWNERDEAD, +#endif permission_denied = EACCES, -// protocol_error = EPROTO, -// protocol_not_supported = EPROTONOSUPPORT, + protocol_error = EPROTO, + protocol_not_supported = EPROTONOSUPPORT, read_only_file_system = EROFS, resource_deadlock_would_occur = EDEADLK, resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, -// state_not_recoverable = ENOTRECOVERABLE, -// stream_timeout = ETIME, -// text_file_busy = ETXTBSY, +#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE + state_not_recoverable = ENOTRECOVERABLE, +#endif +#ifdef _GLIBCXX_HAVE_ETIME + stream_timeout = ETIME, +#endif +#ifdef _GLIBCXX_HAVE_ETXTBSY + text_file_busy = ETXTBSY, +#endif #ifdef _GLIBCXX_HAVE_ETIMEDOUT timed_out = ETIMEDOUT, #endif too_many_files_open_in_system = ENFILE, too_many_files_open = EMFILE, - too_many_links = EMLINK -// too_many_symbolic_link_levels = ELOOP, + too_many_links = EMLINK, + too_many_symbolic_link_levels = ELOOP, #ifdef _GLIBCXX_HAVE_EOVERFLOW - , - value_too_large = EOVERFLOW + value_too_large = EOVERFLOW, #endif -// wrong_protocol_type = EPROTOTYPE + wrong_protocol_type = EPROTOTYPE }; _GLIBCXX_END_NAMESPACE_VERSION diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc index 636178ea647..20b5cce8d1a 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc @@ -82,7 +82,9 @@ void test01() TEST_ERRC(no_message_available); #endif +#ifdef _GLIBCXX_HAVE_ENOMSG TEST_ERRC(no_message); +#endif TEST_ERRC(no_protocol_option); TEST_ERRC(no_space_on_device);