diff options
Diffstat (limited to 'lib/AST/TypeLoc.cpp')
| -rw-r--r-- | lib/AST/TypeLoc.cpp | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/lib/AST/TypeLoc.cpp b/lib/AST/TypeLoc.cpp index d08b07b2ccd6..78947d18f953 100644 --- a/lib/AST/TypeLoc.cpp +++ b/lib/AST/TypeLoc.cpp @@ -80,11 +80,11 @@ unsigned TypeLoc::getFullDataSizeForType(QualType Ty) { while (!TyLoc.isNull()) { unsigned Align = getLocalAlignmentForType(TyLoc.getType()); MaxAlign = std::max(Align, MaxAlign); - Total = llvm::RoundUpToAlignment(Total, Align); + Total = llvm::alignTo(Total, Align); Total += TypeSizer().Visit(TyLoc); TyLoc = TyLoc.getNextTypeLoc(); } - Total = llvm::RoundUpToAlignment(Total, MaxAlign); + Total = llvm::alignTo(Total, MaxAlign); return Total; } @@ -149,12 +149,12 @@ void TypeLoc::copy(TypeLoc other) { // If both data pointers are aligned to the maximum alignment, we // can memcpy because getFullDataSize() accurately reflects the // layout of the data. - if (reinterpret_cast<uintptr_t>(Data) - == llvm::RoundUpToAlignment(reinterpret_cast<uintptr_t>(Data), - TypeLocMaxDataAlign) && - reinterpret_cast<uintptr_t>(other.Data) - == llvm::RoundUpToAlignment(reinterpret_cast<uintptr_t>(other.Data), - TypeLocMaxDataAlign)) { + if (reinterpret_cast<uintptr_t>(Data) == + llvm::alignTo(reinterpret_cast<uintptr_t>(Data), + TypeLocMaxDataAlign) && + reinterpret_cast<uintptr_t>(other.Data) == + llvm::alignTo(reinterpret_cast<uintptr_t>(other.Data), + TypeLocMaxDataAlign)) { memcpy(Data, other.Data, getFullDataSize()); return; } @@ -320,6 +320,7 @@ TypeSpecifierType BuiltinTypeLoc::getWrittenTypeSpec() const { case BuiltinType::Float: case BuiltinType::Double: case BuiltinType::LongDouble: + case BuiltinType::Float128: llvm_unreachable("Builtin type needs extra local data!"); // Fall through, if the impossible happens. @@ -333,18 +334,9 @@ TypeSpecifierType BuiltinTypeLoc::getWrittenTypeSpec() const { case BuiltinType::ObjCId: case BuiltinType::ObjCClass: case BuiltinType::ObjCSel: - case BuiltinType::OCLImage1d: - case BuiltinType::OCLImage1dArray: - case BuiltinType::OCLImage1dBuffer: - case BuiltinType::OCLImage2d: - case BuiltinType::OCLImage2dArray: - case BuiltinType::OCLImage2dDepth: - case BuiltinType::OCLImage2dArrayDepth: - case BuiltinType::OCLImage2dMSAA: - case BuiltinType::OCLImage2dArrayMSAA: - case BuiltinType::OCLImage2dMSAADepth: - case BuiltinType::OCLImage2dArrayMSAADepth: - case BuiltinType::OCLImage3d: +#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) \ + case BuiltinType::Id: +#include "clang/Basic/OpenCLImageTypes.def" case BuiltinType::OCLSampler: case BuiltinType::OCLEvent: case BuiltinType::OCLClkEvent: |
