Skip to content

Commit 2018c5a

Browse files
committed
[Clang] Replace has_unique_object_representations with the builtin for abominable types
With the llvm#81298 being approved, as soon as it gets merged into the `main` branch, we can completely remove the `has_unique_object_representations` struct and use the builtin instead.
1 parent 5e043de commit 2018c5a

File tree

1 file changed

+22
-28
lines changed

1 file changed

+22
-28
lines changed

clang/test/SemaCXX/type-traits.cpp

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2654,12 +2654,6 @@ void is_trivially_destructible_test() {
26542654
static_assert(!__is_trivially_destructible(const volatile void));
26552655
}
26562656

2657-
// Instantiation of __has_unique_object_representations
2658-
template <typename T>
2659-
struct has_unique_object_representations {
2660-
static const bool value = __has_unique_object_representations(T);
2661-
};
2662-
26632657
static_assert(!__has_unique_object_representations(void), "void is never unique");
26642658
static_assert(!__has_unique_object_representations(const void), "void is never unique");
26652659
static_assert(!__has_unique_object_representations(volatile void), "void is never unique");
@@ -2879,30 +2873,30 @@ static_assert(__has_unique_object_representations(PackedNoPadding1), "Packed str
28792873
static_assert(__has_unique_object_representations(PackedNoPadding2), "Packed structs have no padding");
28802874

28812875
static_assert(!__has_unique_object_representations(int(int)), "Functions are not unique");
2882-
static_assert(!has_unique_object_representations<int(int) const>::value, "Functions are not unique");
2883-
static_assert(!has_unique_object_representations<int(int) volatile>::value, "Functions are not unique");
2884-
static_assert(!has_unique_object_representations<int(int) const volatile>::value, "Functions are not unique");
2885-
static_assert(!has_unique_object_representations<int(int) &>::value, "Functions are not unique");
2886-
static_assert(!has_unique_object_representations<int(int) const &>::value, "Functions are not unique");
2887-
static_assert(!has_unique_object_representations<int(int) volatile &>::value, "Functions are not unique");
2888-
static_assert(!has_unique_object_representations<int(int) const volatile &>::value, "Functions are not unique");
2889-
static_assert(!has_unique_object_representations<int(int) &&>::value, "Functions are not unique");
2890-
static_assert(!has_unique_object_representations<int(int) const &&>::value, "Functions are not unique");
2891-
static_assert(!has_unique_object_representations<int(int) volatile &&>::value, "Functions are not unique");
2892-
static_assert(!has_unique_object_representations<int(int) const volatile &&>::value, "Functions are not unique");
2876+
static_assert(!__has_unique_object_representations(int(int) const), "Functions are not unique");
2877+
static_assert(!__has_unique_object_representations(int(int) volatile), "Functions are not unique");
2878+
static_assert(!__has_unique_object_representations(int(int) const volatile), "Functions are not unique");
2879+
static_assert(!__has_unique_object_representations(int(int) &), "Functions are not unique");
2880+
static_assert(!__has_unique_object_representations(int(int) const &), "Functions are not unique");
2881+
static_assert(!__has_unique_object_representations(int(int) volatile &), "Functions are not unique");
2882+
static_assert(!__has_unique_object_representations(int(int) const volatile &), "Functions are not unique");
2883+
static_assert(!__has_unique_object_representations(int(int) &&), "Functions are not unique");
2884+
static_assert(!__has_unique_object_representations(int(int) const &&), "Functions are not unique");
2885+
static_assert(!__has_unique_object_representations(int(int) volatile &&), "Functions are not unique");
2886+
static_assert(!__has_unique_object_representations(int(int) const volatile &&), "Functions are not unique");
28932887

28942888
static_assert(!__has_unique_object_representations(int(int, ...)), "Functions are not unique");
2895-
static_assert(!has_unique_object_representations<int(int, ...) const>::value, "Functions are not unique");
2896-
static_assert(!has_unique_object_representations<int(int, ...) volatile>::value, "Functions are not unique");
2897-
static_assert(!has_unique_object_representations<int(int, ...) const volatile>::value, "Functions are not unique");
2898-
static_assert(!has_unique_object_representations<int(int, ...) &>::value, "Functions are not unique");
2899-
static_assert(!has_unique_object_representations<int(int, ...) const &>::value, "Functions are not unique");
2900-
static_assert(!has_unique_object_representations<int(int, ...) volatile &>::value, "Functions are not unique");
2901-
static_assert(!has_unique_object_representations<int(int, ...) const volatile &>::value, "Functions are not unique");
2902-
static_assert(!has_unique_object_representations<int(int, ...) &&>::value, "Functions are not unique");
2903-
static_assert(!has_unique_object_representations<int(int, ...) const &&>::value, "Functions are not unique");
2904-
static_assert(!has_unique_object_representations<int(int, ...) volatile &&>::value, "Functions are not unique");
2905-
static_assert(!has_unique_object_representations<int(int, ...) const volatile &&>::value, "Functions are not unique");
2889+
static_assert(!__has_unique_object_representations(int(int, ...) const), "Functions are not unique");
2890+
static_assert(!__has_unique_object_representations(int(int, ...) volatile), "Functions are not unique");
2891+
static_assert(!__has_unique_object_representations(int(int, ...) const volatile), "Functions are not unique");
2892+
static_assert(!__has_unique_object_representations(int(int, ...) &), "Functions are not unique");
2893+
static_assert(!__has_unique_object_representations(int(int, ...) const &), "Functions are not unique");
2894+
static_assert(!__has_unique_object_representations(int(int, ...) volatile &), "Functions are not unique");
2895+
static_assert(!__has_unique_object_representations(int(int, ...) const volatile &), "Functions are not unique");
2896+
static_assert(!__has_unique_object_representations(int(int, ...) &&), "Functions are not unique");
2897+
static_assert(!__has_unique_object_representations(int(int, ...) const &&), "Functions are not unique");
2898+
static_assert(!__has_unique_object_representations(int(int, ...) volatile &&), "Functions are not unique");
2899+
static_assert(!__has_unique_object_representations(int(int, ...) const volatile &&), "Functions are not unique");
29062900

29072901
void foo(){
29082902
static auto lambda = []() {};

0 commit comments

Comments
 (0)