-
Notifications
You must be signed in to change notification settings - Fork 11.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[libc++] Deprecates std::errc constants. (#80542)
Implements: - LWG3869 Deprecate std::errc constants related to UNIX STREAMS
- Loading branch information
Showing
7 changed files
with
142 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
// See https://llvm.org/LICENSE.txt for license information. | ||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
// UNSUPPORTED: clang-modules-build | ||
// UNSUPPORTED: apple-clang && c++03 | ||
|
||
// <cerrno> | ||
|
||
// tests LWG 3869 deprecated macros. | ||
// | ||
// Note the macros may not be defined. When they are not defined the | ||
// ifdef XXX does not trigger a deprecated message. So use them in the | ||
// ifdef and test for 2 deprecated messages. | ||
|
||
#include <cerrno> | ||
|
||
#ifdef ENODATA | ||
[[maybe_unused]] int nodata = | ||
ENODATA; // expected-warning@cerrno.syn.verify.cpp:* 2 {{macro 'ENODATA' has been marked as deprecated}} | ||
#endif | ||
#ifdef ENOSR | ||
[[maybe_unused]] int nosr = | ||
ENOSR; // expected-warning@cerrno.syn.verify.cpp:* 2 {{macro 'ENOSR' has been marked as deprecated}} | ||
#endif | ||
#ifdef ENOSTR | ||
[[maybe_unused]] int nostr = | ||
ENOSTR; // expected-warning@cerrno.syn.verify.cpp:* 2 {{macro 'ENOSTR' has been marked as deprecated}} | ||
#endif | ||
#ifdef ETIME | ||
[[maybe_unused]] int timeout = | ||
ETIME; // expected-warning@cerrno.syn.verify.cpp:* 2 {{macro 'ETIME' has been marked as deprecated}} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
//===----------------------------------------------------------------------===// | ||
// | ||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||
// See https://llvm.org/LICENSE.txt for license information. | ||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
// | ||
//===----------------------------------------------------------------------===// | ||
|
||
// These macros do not seem to behave as expected on all Apple platforms. | ||
// Since the macros are not provided newer POSIX versions it is expected the | ||
// macros will be retroactively removed from C++. (The deprecation was | ||
// retroactively.) | ||
// UNSUPPORTED: apple-clang && (c++03 || clang-modules-build) | ||
|
||
// <system_error> | ||
|
||
// enum errc {...} | ||
|
||
// tests LWG 3869 deprecated enum members. | ||
|
||
#include <system_error> | ||
|
||
[[maybe_unused]] std::errc nodata = | ||
std::errc::no_message_available; // expected-warning {{'no_message_available' is deprecated}} | ||
[[maybe_unused]] std::errc nosr = | ||
std::errc::no_stream_resources; // expected-warning {{'no_stream_resources' is deprecated}} | ||
[[maybe_unused]] std::errc nostr = std::errc::not_a_stream; // expected-warning {{'not_a_stream' is deprecated}} | ||
[[maybe_unused]] std::errc timeout = std::errc::stream_timeout; // expected-warning {{'stream_timeout' is deprecated}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters