[libcxx-commits] [PATCH] D106062: [libc++/abi] Fix broken feature no-noexcept-function-type
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jul 15 06:45:24 PDT 2021
ldionne created this revision.
Herald added a subscriber: arichardson.
ldionne requested review of this revision.
Herald added projects: libc++, libc++abi.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
Herald added a reviewer: libc++abi.
The feature was always defined, which means that the two test cases
guarded by it were never run.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D106062
Files:
libcxx/utils/libcxx/test/features.py
libcxxabi/test/catch_function_03.pass.cpp
libcxxabi/test/catch_member_function_pointer_02.pass.cpp
libcxxabi/test/libcxxabi/test/config.py
Index: libcxxabi/test/libcxxabi/test/config.py
===================================================================
--- libcxxabi/test/libcxxabi/test/config.py
+++ libcxxabi/test/libcxxabi/test/config.py
@@ -37,13 +37,8 @@
self.libcxxabi_obj_root = self.get_lit_conf('libcxxabi_obj_root')
super(Configuration, self).configure_obj_root()
- def has_cpp_feature(self, feature, required_value):
- return intMacroValue(self.cxx.dumpMacros().get('__cpp_' + feature, '0')) >= required_value
-
def configure_features(self):
super(Configuration, self).configure_features()
- if not self.has_cpp_feature('noexcept_function_type', 201510):
- self.config.available_features.add('libcxxabi-no-noexcept-function-type')
if not self.get_lit_bool('llvm_unwinder', False):
self.config.available_features.add('libcxxabi-has-system-unwinder')
Index: libcxxabi/test/catch_member_function_pointer_02.pass.cpp
===================================================================
--- libcxxabi/test/catch_member_function_pointer_02.pass.cpp
+++ libcxxabi/test/catch_member_function_pointer_02.pass.cpp
@@ -6,9 +6,11 @@
//
//===----------------------------------------------------------------------===//
-// Can a noexcept member function pointer be caught by a non-noexcept catch
-// clause?
-// UNSUPPORTED: no-exceptions, libcxxabi-no-noexcept-function-type
+// Can a noexcept member function pointer be caught by a non-noexcept catch clause?
+// UNSUPPORTED: no-exceptions, no-noexcept-function-type
+
+// Support for catching a function pointer including noexcept was shipped in macOS 10.13
+// XFAIL: with_system_cxx_lib && {{.+}}-apple-macosx10.{{9|10|11|12}}
// GCC 7 and 8 support noexcept function types but this test still fails.
// This is likely a bug in their implementation. Investigation needed.
Index: libcxxabi/test/catch_function_03.pass.cpp
===================================================================
--- libcxxabi/test/catch_function_03.pass.cpp
+++ libcxxabi/test/catch_function_03.pass.cpp
@@ -7,7 +7,10 @@
//===----------------------------------------------------------------------===//
// Can a noexcept function pointer be caught by a non-noexcept catch clause?
-// UNSUPPORTED: no-exceptions, libcxxabi-no-noexcept-function-type
+// UNSUPPORTED: no-exceptions, no-noexcept-function-type
+
+// Support for catching a function pointer including noexcept was shipped in macOS 10.13
+// XFAIL: with_system_cxx_lib && {{.+}}-apple-macosx10.{{9|10|11|12}}
#include <cassert>
Index: libcxx/utils/libcxx/test/features.py
===================================================================
--- libcxx/utils/libcxx/test/features.py
+++ libcxx/utils/libcxx/test/features.py
@@ -42,6 +42,7 @@
Feature(name='has-fobjc-arc', when=lambda cfg: hasCompileFlag(cfg, '-xobjective-c++ -fobjc-arc') and
sys.platform.lower().strip() == 'darwin'), # TODO: this doesn't handle cross-compiling to Apple platforms.
Feature(name='objective-c++', when=lambda cfg: hasCompileFlag(cfg, '-xobjective-c++ -fobjc-arc')),
+ Feature(name='no-noexcept-function-type', when=lambda cfg: featureTestMacros(cfg).get('__cpp_noexcept_function_type', 0) < 201510),
Feature(name='non-lockfree-atomics',
when=lambda cfg: sourceBuilds(cfg, """
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106062.358946.patch
Type: text/x-patch
Size: 3434 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210715/7829ce09/attachment.bin>
More information about the libcxx-commits
mailing list