Skip to content

Commit e05fffb

Browse files
committed
Revert "[Clang] Add __builtin_common_reference (#121199)"
This reverts commit 3b9e203. Causes not-yet-understood semantic differences, see commits on #121199.
1 parent c5e9289 commit e05fffb

File tree

9 files changed

+122
-647
lines changed

9 files changed

+122
-647
lines changed

clang/docs/LanguageExtensions.rst

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1833,23 +1833,6 @@ Builtin type aliases
18331833

18341834
Clang provides a few builtin aliases to improve the throughput of certain metaprogramming facilities.
18351835

1836-
__builtin_common_reference
1837-
--------------------------
1838-
1839-
.. code-block:: c++
1840-
1841-
template <template <class, class, template <class> class, template <class> class> class BasicCommonReferenceT,
1842-
template <class... Args> CommonTypeT,
1843-
template <class> HasTypeMember,
1844-
class HasNoTypeMember,
1845-
class... Ts>
1846-
using __builtin_common_reference = ...;
1847-
1848-
This alias is used for implementing ``std::common_reference``. If ``std::common_reference`` should contain a ``type``
1849-
member, it is an alias to ``HasTypeMember<TheCommonReference>``. Otherwse it is an alias to ``HasNoTypeMember``. The
1850-
``CommonTypeT`` is usually ``std::common_type_t``. ``BasicCommonReferenceT`` is usually an alias template to
1851-
``basic_common_reference<T, U, TX, UX>::type``.
1852-
18531836
__builtin_common_type
18541837
---------------------
18551838

clang/include/clang/Basic/BuiltinTemplates.td

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ class TemplateArg<string name> {
1010
string Name = name;
1111
}
1212

13-
class Template<list<TemplateArg> args, string name = ""> : TemplateArg<name> {
13+
class Template<list<TemplateArg> args, string name> : TemplateArg<name> {
1414
list<TemplateArg> Args = args;
1515
}
1616

17-
class Class<string name = "", bit is_variadic = 0> : TemplateArg<name> {
17+
class Class<string name, bit is_variadic = 0> : TemplateArg<name> {
1818
bit IsVariadic = is_variadic;
1919
}
2020

@@ -56,32 +56,6 @@ def __builtin_common_type : CPlusPlusBuiltinTemplate<
5656
Class<"HasNoTypeMember">,
5757
Class<"Ts", /*is_variadic=*/1>]>;
5858

59-
// template <template <class,"
60-
// class,"
61-
// template <class> class,"
62-
// template <class> class> class BasicCommonReferenceT,"
63-
// template <class... Args> class CommonTypeT,"
64-
// template <class> class HasTypeMember,"
65-
// class HasNoTypeMember,"
66-
// class... Ts>"
67-
def __builtin_common_reference : CPlusPlusBuiltinTemplate<
68-
[Template<[Class<>,
69-
Class<>,
70-
Template<[Class<>]>,
71-
Template<[Class<>]>], "BasicCommonReferenceT">,
72-
Template<[Class<"Args", /*is_variadic=*/1>], "CommonTypeT">,
73-
Template<[Class<>], "HasTypeMember">,
74-
Class<"HasNoTypeMember">,
75-
Class<"Ts", /*is_variadic=*/1>]>;
76-
77-
foreach Ref = ["", "lvalue", "rvalue"] in {
78-
foreach Const = ["", "const"] in {
79-
foreach Volatile = ["", "volatile"] in {
80-
def __clang_internal_xref_#Ref#Const#Volatile : CPlusPlusBuiltinTemplate<[Class<>]>;
81-
}
82-
}
83-
}
84-
8559
// template <uint32_t Opcode,
8660
// uint32_t Size,
8761
// uint32_t Alignment,

clang/include/clang/Sema/Sema.h

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15322,17 +15322,6 @@ class Sema final : public SemaBase {
1532215322
QualType BuiltinDecay(QualType BaseType, SourceLocation Loc);
1532315323
QualType BuiltinAddReference(QualType BaseType, UTTKind UKind,
1532415324
SourceLocation Loc);
15325-
15326-
QualType BuiltinAddRValueReference(QualType BaseType, SourceLocation Loc) {
15327-
return BuiltinAddReference(BaseType, UnaryTransformType::AddRvalueReference,
15328-
Loc);
15329-
}
15330-
15331-
QualType BuiltinAddLValueReference(QualType BaseType, SourceLocation Loc) {
15332-
return BuiltinAddReference(BaseType, UnaryTransformType::AddLvalueReference,
15333-
Loc);
15334-
}
15335-
1533615325
QualType BuiltinRemoveExtent(QualType BaseType, UTTKind UKind,
1533715326
SourceLocation Loc);
1533815327
QualType BuiltinRemoveReference(QualType BaseType, UTTKind UKind,
@@ -15347,9 +15336,6 @@ class Sema final : public SemaBase {
1534715336
QualType BuiltinChangeSignedness(QualType BaseType, UTTKind UKind,
1534815337
SourceLocation Loc);
1534915338

15350-
bool BuiltinIsConvertible(QualType From, QualType To, SourceLocation Loc,
15351-
bool CheckNothrow = false);
15352-
1535315339
bool BuiltinIsBaseOf(SourceLocation RhsTLoc, QualType LhsT, QualType RhsT);
1535415340

1535515341
/// Ensure that the type T is a literal type.

0 commit comments

Comments
 (0)