mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-27 03:48:33 +00:00
[clang-tidy] add reproducer for PR39949 into test-suite
Summary: The underlying issue is fixed in https://reviews.llvm.org/D56444 and this test ensures the issue does not creep back into our code-base. Reviewers: alexfh, aaron.ballman, hokein, hwright Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D56918 llvm-svn: 351569
This commit is contained in:
parent
d08d90ce51
commit
ae17ff0781
@ -430,3 +430,36 @@ void factoryInMacros() {
|
||||
factoryTemplateAndMacro<ConvertibleTo<int>>();
|
||||
TemplateFactoryInMacro(ConvertibleTo<int>());
|
||||
}
|
||||
|
||||
// This is a reduced test-case for PR39949 and manifested in this check.
|
||||
namespace std {
|
||||
template <typename _Tp>
|
||||
_Tp declval();
|
||||
|
||||
template <typename _Functor, typename... _ArgTypes>
|
||||
struct __res {
|
||||
template <typename... _Args>
|
||||
static decltype(declval<_Functor>()(_Args()...)) _S_test(int);
|
||||
|
||||
template <typename...>
|
||||
static void _S_test(...);
|
||||
|
||||
typedef decltype(_S_test<_ArgTypes...>(0)) type;
|
||||
};
|
||||
|
||||
template <typename>
|
||||
struct function;
|
||||
|
||||
template <typename... _ArgTypes>
|
||||
struct function<void(_ArgTypes...)> {
|
||||
template <typename _Functor,
|
||||
typename = typename __res<_Functor, _ArgTypes...>::type>
|
||||
function(_Functor) {}
|
||||
};
|
||||
} // namespace std
|
||||
|
||||
typedef std::function<void(void)> F;
|
||||
|
||||
F foo() {
|
||||
return F([] {});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user