Fix bug in type desugaring.

This commit is contained in:
Dan Katz
2025-04-10 15:26:47 -04:00
parent 0504407a85
commit f70f4ab8ea
3 changed files with 2 additions and 3 deletions

View File

@@ -1573,9 +1573,9 @@ LinkageInfo LinkageComputer::getLVForValue(const APValue &V,
}
static QualType unwrapReflectedType(QualType QT) {
bool UnwrapAliases = false;
bool IsConst = QT.isConstQualified();
bool IsVolatile = QT.isVolatileQualified();
bool UnwrapAliases = (IsConst || IsVolatile);
void *AsPtr;
do {

View File

@@ -108,6 +108,7 @@ static_assert(^^int != ^^unsigned int);
static_assert(^^int != ^^Enum);
static_assert(^^int != ^^EnumCls);
static_assert(^^int_alias != ^^int);
static_assert(^^int_alias const == ^^int const);
static_assert(^^int_alias != ^^Test::type);
static_assert(^^int_alias != ^^myns::Test::type);
static_assert(^^Test::type != ^^myns::Test::type);

View File

@@ -214,13 +214,11 @@ struct S{};
using Alias1 = int;
constexpr Alias1 a1 = 3;
static_assert(type_of(^^a1) != ^^const Alias1);
static_assert(type_of(^^a1) == ^^const int);
static_assert(type_of(value_of(^^a1)) == ^^int);
using Alias2 = S;
constexpr Alias2 a2 {};
static_assert(type_of(^^a2) != ^^const Alias2);
static_assert(type_of(^^a2) == ^^const S);
static_assert(type_of(value_of(^^a2)) == ^^const S);