summaryrefslogtreecommitdiff
path: root/clang
diff options
context:
space:
mode:
authorChris Kennelly <ckennelly@google.com>2019-01-11 17:09:22 +0000
committerChris Kennelly <ckennelly@google.com>2019-01-11 17:09:22 +0000
commit4b68a599b2ca5e6b5f29a8e29bdabd6725373136 (patch)
tree12909b2ee5fc582879cd67092988b20233510cf5 /clang
parentc6370aa6eada42dea81f3a5d5c31f8f4957b5903 (diff)
Implementation Feature Test Macros for P0722R3
Summary: P1353R0, adopted in San Diego, specified an implementation feature test macro for destroying delete (P0722R3). The implementation of the feature (https://reviews.llvm.org/rL315662) is not guarded behind a flag, so the macro is not conditional on language version. Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D55741
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Frontend/InitPreprocessor.cpp1
-rw-r--r--clang/test/Lexer/cxx-features.cpp4
-rwxr-xr-xclang/www/cxx_status.html11
3 files changed, 13 insertions, 3 deletions
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 77b2f479a79..66807b097d4 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -543,6 +543,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
// C++20 features.
if (LangOpts.Char8)
Builder.defineMacro("__cpp_char8_t", "201811L");
+ Builder.defineMacro("__cpp_impl_destroying_delete", "201806L");
// TS features.
if (LangOpts.ConceptsTS)
diff --git a/clang/test/Lexer/cxx-features.cpp b/clang/test/Lexer/cxx-features.cpp
index e4fea0b5bb2..09b82b7c47e 100644
--- a/clang/test/Lexer/cxx-features.cpp
+++ b/clang/test/Lexer/cxx-features.cpp
@@ -34,6 +34,10 @@
#error "wrong value for __cpp_char8_t"
#endif
+#if check(impl_destroying_delete, 201806, 201806, 201806, 201806, 201806)
+#error "wrong value for __cpp_impl_destroying_delete"
+#endif
+
// --- C++17 features ---
#if check(hex_float, 0, 0, 0, 201603, 201603)
diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html
index 5fee962ce83..95aa291827a 100755
--- a/clang/www/cxx_status.html
+++ b/clang/www/cxx_status.html
@@ -1054,9 +1054,9 @@ and library features that are not part of standard C++.</p>
<th>Available in Clang?</th>
</tr>
<tr id="sd6">
- <td rowspan="5">SD-6: SG10 feature test recommendations</td>
- <td rowspan="5"><a href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td>
- <td rowspan="5">N/A</td>
+ <td rowspan="6">SD-6: SG10 feature test recommendations</td>
+ <td rowspan="6"><a href="http://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations">SD-6</a></td>
+ <td rowspan="6">N/A</td>
<td class="full" align="center">
Clang 3.4 (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3745">N3745</a>)</br>
</td>
@@ -1081,6 +1081,11 @@ and library features that are not part of standard C++.</p>
Clang 7 (<a href="http://wg21.link/p0096r5">P0096R5</a>)</a>
</td>
</tr>
+ <tr>
+ <td class="partial" align="center">
+ WIP (<a href="http://wg21.link/p1353r0">P1353R0</a>)
+ </td>
+ </tr>
<!-- FIXME: Implement latest recommendations.
<tr>
<td class="svn" align="center">