Skip to content

Commit f70f4ab

Browse files
committed
Fix bug in type desugaring.
1 parent 0504407 commit f70f4ab

File tree

3 files changed

+2
-3
lines changed

3 files changed

+2
-3
lines changed

clang/lib/AST/APValue.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1573,9 +1573,9 @@ LinkageInfo LinkageComputer::getLVForValue(const APValue &V,
15731573
}
15741574

15751575
static QualType unwrapReflectedType(QualType QT) {
1576-
bool UnwrapAliases = false;
15771576
bool IsConst = QT.isConstQualified();
15781577
bool IsVolatile = QT.isVolatileQualified();
1578+
bool UnwrapAliases = (IsConst || IsVolatile);
15791579

15801580
void *AsPtr;
15811581
do {

clang/test/Reflection/info-equality.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ static_assert(^^int != ^^unsigned int);
108108
static_assert(^^int != ^^Enum);
109109
static_assert(^^int != ^^EnumCls);
110110
static_assert(^^int_alias != ^^int);
111+
static_assert(^^int_alias const == ^^int const);
111112
static_assert(^^int_alias != ^^Test::type);
112113
static_assert(^^int_alias != ^^myns::Test::type);
113114
static_assert(^^Test::type != ^^myns::Test::type);

libcxx/test/std/experimental/reflection/to-and-from-values.pass.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,11 @@ struct S{};
214214

215215
using Alias1 = int;
216216
constexpr Alias1 a1 = 3;
217-
static_assert(type_of(^^a1) != ^^const Alias1);
218217
static_assert(type_of(^^a1) == ^^const int);
219218
static_assert(type_of(value_of(^^a1)) == ^^int);
220219

221220
using Alias2 = S;
222221
constexpr Alias2 a2 {};
223-
static_assert(type_of(^^a2) != ^^const Alias2);
224222
static_assert(type_of(^^a2) == ^^const S);
225223
static_assert(type_of(value_of(^^a2)) == ^^const S);
226224

0 commit comments

Comments
 (0)