зеркало из https://github.com/microsoft/clang-1.git
Don't serialize the block descriptor or block extended descriptor
types to AST files; they're only used by debug info generation anyway, and shouldn't ever exist in the AST anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137122 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
45c4ea75b2
Коммит
5c0d3d66bf
|
@ -210,9 +210,15 @@ class ASTContext : public llvm::RefCountedBase<ASTContext> {
|
|||
TypeDecl *sigjmp_bufDecl;
|
||||
|
||||
/// \brief Type for the Block descriptor for Blocks CodeGen.
|
||||
///
|
||||
/// Since this is only used for generation of debug info, it is not
|
||||
/// serialized.
|
||||
mutable RecordDecl *BlockDescriptorType;
|
||||
|
||||
/// \brief Type for the Block descriptor for Blocks CodeGen.
|
||||
///
|
||||
/// Since this is only used for generation of debug info, it is not
|
||||
/// serialized.
|
||||
mutable RecordDecl *BlockDescriptorExtendedType;
|
||||
|
||||
/// \brief Declaration for the CUDA cudaConfigureCall function.
|
||||
|
@ -565,29 +571,10 @@ public:
|
|||
/// blocks.
|
||||
QualType getBlockDescriptorType() const;
|
||||
|
||||
// Set the type for a Block descriptor type.
|
||||
void setBlockDescriptorType(QualType T);
|
||||
/// Get the BlockDescriptorType type, or NULL if it hasn't yet been built.
|
||||
QualType getRawBlockdescriptorType() {
|
||||
if (BlockDescriptorType)
|
||||
return getTagDeclType(BlockDescriptorType);
|
||||
return QualType();
|
||||
}
|
||||
|
||||
/// This gets the struct used to keep track of the extended descriptor for
|
||||
/// pointer to blocks.
|
||||
QualType getBlockDescriptorExtendedType() const;
|
||||
|
||||
// Set the type for a Block descriptor extended type.
|
||||
void setBlockDescriptorExtendedType(QualType T);
|
||||
/// Get the BlockDescriptorExtendedType type, or NULL if it hasn't yet been
|
||||
/// built.
|
||||
QualType getRawBlockdescriptorExtendedType() const {
|
||||
if (BlockDescriptorExtendedType)
|
||||
return getTagDeclType(BlockDescriptorExtendedType);
|
||||
return QualType();
|
||||
}
|
||||
|
||||
void setcudaConfigureCallDecl(FunctionDecl *FD) {
|
||||
cudaConfigureCallDecl = FD;
|
||||
}
|
||||
|
|
|
@ -662,14 +662,10 @@ namespace clang {
|
|||
SPECIAL_TYPE_OBJC_ID_REDEFINITION = 10,
|
||||
/// \brief Objective-C "Class" redefinition type
|
||||
SPECIAL_TYPE_OBJC_CLASS_REDEFINITION = 11,
|
||||
/// \brief Block descriptor type for Blocks CodeGen
|
||||
SPECIAL_TYPE_BLOCK_DESCRIPTOR = 12,
|
||||
/// \brief Block extedned descriptor type for Blocks CodeGen
|
||||
SPECIAL_TYPE_BLOCK_EXTENDED_DESCRIPTOR = 13,
|
||||
/// \brief Objective-C "SEL" redefinition type
|
||||
SPECIAL_TYPE_OBJC_SEL_REDEFINITION = 14,
|
||||
SPECIAL_TYPE_OBJC_SEL_REDEFINITION = 12,
|
||||
/// \brief Whether __[u]int128_t identifier is installed.
|
||||
SPECIAL_TYPE_INT128_INSTALLED = 15
|
||||
SPECIAL_TYPE_INT128_INSTALLED = 13
|
||||
};
|
||||
|
||||
/// \brief Predefined declaration IDs.
|
||||
|
|
|
@ -3712,12 +3712,6 @@ QualType ASTContext::getBlockDescriptorType() const {
|
|||
return getTagDeclType(BlockDescriptorType);
|
||||
}
|
||||
|
||||
void ASTContext::setBlockDescriptorType(QualType T) {
|
||||
const RecordType *Rec = T->getAs<RecordType>();
|
||||
assert(Rec && "Invalid BlockDescriptorType");
|
||||
BlockDescriptorType = Rec->getDecl();
|
||||
}
|
||||
|
||||
QualType ASTContext::getBlockDescriptorExtendedType() const {
|
||||
if (BlockDescriptorExtendedType)
|
||||
return getTagDeclType(BlockDescriptorExtendedType);
|
||||
|
@ -3761,12 +3755,6 @@ QualType ASTContext::getBlockDescriptorExtendedType() const {
|
|||
return getTagDeclType(BlockDescriptorExtendedType);
|
||||
}
|
||||
|
||||
void ASTContext::setBlockDescriptorExtendedType(QualType T) {
|
||||
const RecordType *Rec = T->getAs<RecordType>();
|
||||
assert(Rec && "Invalid BlockDescriptorType");
|
||||
BlockDescriptorExtendedType = Rec->getDecl();
|
||||
}
|
||||
|
||||
bool ASTContext::BlockRequiresCopying(QualType Ty) const {
|
||||
if (Ty->isObjCRetainableType())
|
||||
return true;
|
||||
|
|
|
@ -3033,11 +3033,6 @@ void ASTReader::InitializeContext(ASTContext &Ctx) {
|
|||
if (unsigned ObjCClassRedef
|
||||
= SpecialTypes[SPECIAL_TYPE_OBJC_CLASS_REDEFINITION])
|
||||
Context->ObjCClassRedefinitionType = GetType(ObjCClassRedef);
|
||||
if (unsigned String = SpecialTypes[SPECIAL_TYPE_BLOCK_DESCRIPTOR])
|
||||
Context->setBlockDescriptorType(GetType(String));
|
||||
if (unsigned String
|
||||
= SpecialTypes[SPECIAL_TYPE_BLOCK_EXTENDED_DESCRIPTOR])
|
||||
Context->setBlockDescriptorExtendedType(GetType(String));
|
||||
if (unsigned ObjCSelRedef
|
||||
= SpecialTypes[SPECIAL_TYPE_OBJC_SEL_REDEFINITION])
|
||||
Context->ObjCSelRedefinitionType = GetType(ObjCSelRedef);
|
||||
|
|
|
@ -2940,8 +2940,6 @@ void ASTWriter::WriteASTCore(Sema &SemaRef, MemorizeStatCalls *StatCalls,
|
|||
AddTypeRef(Context.getsigjmp_bufType(), SpecialTypes);
|
||||
AddTypeRef(Context.ObjCIdRedefinitionType, SpecialTypes);
|
||||
AddTypeRef(Context.ObjCClassRedefinitionType, SpecialTypes);
|
||||
AddTypeRef(Context.getRawBlockdescriptorType(), SpecialTypes);
|
||||
AddTypeRef(Context.getRawBlockdescriptorExtendedType(), SpecialTypes);
|
||||
AddTypeRef(Context.ObjCSelRedefinitionType, SpecialTypes);
|
||||
SpecialTypes.push_back(Context.isInt128Installed());
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче