@@ -1524,10 +1524,9 @@ void ASTContext::InitBuiltinTypes(const TargetInfo &Target,
15241524 // Using PredefinedSugarType makes these types as named sugar types rather
15251525 // than standard integer types, enabling better hints and diagnostics.
15261526 using Kind = PredefinedSugarType::Kind;
1527- SizeType = getPredefinedSugarType(llvm::to_underlying(Kind::SizeT));
1528- SignedSizeType =
1529- getPredefinedSugarType(llvm::to_underlying(Kind::SignedSizeT));
1530- PtrdiffType = getPredefinedSugarType(llvm::to_underlying(Kind::PtrdiffT));
1527+ SizeType = getPredefinedSugarType(Kind::SizeT);
1528+ SignedSizeType = getPredefinedSugarType(Kind::SignedSizeT);
1529+ PtrdiffType = getPredefinedSugarType(Kind::PtrdiffT);
15311530 } else {
15321531 SizeType = getFromTargetType(Target.getSizeType());
15331532 SignedSizeType = getFromTargetType(Target.getSignedSizeType());
@@ -5237,7 +5236,8 @@ QualType ASTContext::getDependentBitIntType(bool IsUnsigned,
52375236 return QualType(New, 0);
52385237}
52395238
5240- QualType ASTContext::getPredefinedSugarType(uint32_t KD) const {
5239+ QualType
5240+ ASTContext::getPredefinedSugarType(PredefinedSugarType::Kind KD) const {
52415241 using Kind = PredefinedSugarType::Kind;
52425242 auto getCanonicalType = [](const ASTContext &Ctx, Kind KDI) -> QualType {
52435243 switch (KDI) {
@@ -5250,8 +5250,9 @@ QualType ASTContext::getPredefinedSugarType(uint32_t KD) const {
52505250 }
52515251 llvm_unreachable("unexpected kind");
52525252 };
5253- auto *New = new (*this, alignof(PredefinedSugarType)) PredefinedSugarType(
5254- static_cast<Kind>(KD), getCanonicalType(*this, static_cast<Kind>(KD)));
5253+ auto *New = new (*this, alignof(PredefinedSugarType))
5254+ PredefinedSugarType(KD, &Idents.get(PredefinedSugarType::getName(KD)),
5255+ getCanonicalType(*this, static_cast<Kind>(KD)));
52555256 Types.push_back(New);
52565257 return QualType(New, 0);
52575258}
0 commit comments