Skip to content

Commit

Permalink
[libcxx] [test] Fix invocable tests on Windows
Browse files Browse the repository at this point in the history
MSVC had a bug regarding preferring intergral conversions over
floating conversions. This is fixed in MSVC 19.28 and newer. Clang in
MSVC mode so far only mimics the old, buggy behaviour, but will
hopefully soon be fixed to comply with the new behaviour too
(see https://reviews.llvm.org/D99663).

Make the negative test to use a distinctly different type,
leaving checks for compiler specific bugs out of the libcxx test.

Differential Revision: https://reviews.llvm.org/D99641
  • Loading branch information
mstorsjo committed Apr 2, 2021
1 parent f8013a3 commit 28ea218
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
Expand Up @@ -229,12 +229,12 @@ struct multiple_overloads {
static_assert(std::invocable<multiple_overloads&>);
static_assert(std::invocable<multiple_overloads&, short>);
static_assert(std::invocable<multiple_overloads&, int>);
static_assert(!std::invocable<multiple_overloads&, long>);
static_assert(!std::invocable<multiple_overloads&, long long>);
static_assert(std::invocable<multiple_overloads&, double>);
static_assert(std::invocable<multiple_overloads&, float>);
static_assert(std::invocable<multiple_overloads&, short&>);
static_assert(std::invocable<multiple_overloads&, int&>);
static_assert(!std::invocable<multiple_overloads&, long&>);
static_assert(!std::invocable<multiple_overloads&, long long>);
static_assert(std::invocable<multiple_overloads&, float&>);
static_assert(std::invocable<multiple_overloads&, double&>);
} // namespace function_objects
Expand Down
Expand Up @@ -255,12 +255,12 @@ struct multiple_overloads {
static_assert(std::regular_invocable<multiple_overloads&>);
static_assert(std::regular_invocable<multiple_overloads&, short>);
static_assert(std::regular_invocable<multiple_overloads&, int>);
static_assert(!std::regular_invocable<multiple_overloads&, long>);
static_assert(!std::regular_invocable<multiple_overloads&, long long>);
static_assert(std::regular_invocable<multiple_overloads&, double>);
static_assert(std::regular_invocable<multiple_overloads&, float>);
static_assert(std::regular_invocable<multiple_overloads&, short&>);
static_assert(std::regular_invocable<multiple_overloads&, int&>);
static_assert(!std::regular_invocable<multiple_overloads&, long&>);
static_assert(!std::regular_invocable<multiple_overloads&, long long&>);
static_assert(std::regular_invocable<multiple_overloads&, float&>);
static_assert(std::regular_invocable<multiple_overloads&, double&>);
} // namespace function_objects
Expand Down

0 comments on commit 28ea218

Please sign in to comment.