summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTCommon.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2012-01-15 18:08:05 +0000
committerDouglas Gregor <dgregor@apple.com>2012-01-15 18:08:05 +0000
commitc03c52ea017aa470a05e12fe2a7fda91a2e22e3a (patch)
treef27389db9db8c1bbe157803b28163484ff50563e /clang/lib/Serialization/ASTCommon.h
parent358cd441701259c25f1a91890b24aff432082a4c (diff)
downloadbcm5719-llvm-c03c52ea017aa470a05e12fe2a7fda91a2e22e3a.tar.gz
bcm5719-llvm-c03c52ea017aa470a05e12fe2a7fda91a2e22e3a.zip
When deserializing the definition of a C++ class/ObjC class/ObjC
protocol, record the definition pointer in the canonical declaration for that entity, and then propagate that definition pointer from the canonical declaration to all other deserialized declarations. This approach works well even when deserializing declarations that didn't know about the original definition, which can occur with modules. A nice bonus from this definition-deserialization approach is that we no longer need update records when a definition is added, because the redeclaration chains ensure that the if any declaration is loaded, the definition will also get loaded. llvm-svn: 148223
Diffstat (limited to 'clang/lib/Serialization/ASTCommon.h')
-rw-r--r--clang/lib/Serialization/ASTCommon.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/lib/Serialization/ASTCommon.h b/clang/lib/Serialization/ASTCommon.h
index 2190844a837..16db8e36952 100644
--- a/clang/lib/Serialization/ASTCommon.h
+++ b/clang/lib/Serialization/ASTCommon.h
@@ -22,13 +22,10 @@ namespace clang {
namespace serialization {
enum DeclUpdateKind {
- UPD_CXX_SET_DEFINITIONDATA,
UPD_CXX_ADDED_IMPLICIT_MEMBER,
UPD_CXX_ADDED_TEMPLATE_SPECIALIZATION,
UPD_CXX_ADDED_ANONYMOUS_NAMESPACE,
- UPD_CXX_INSTANTIATED_STATIC_DATA_MEMBER,
- UPD_OBJC_SET_CLASS_DEFINITIONDATA,
- UPD_OBJC_SET_PROTOCOL_DEFINITIONDATA
+ UPD_CXX_INSTANTIATED_STATIC_DATA_MEMBER
};
TypeIdx TypeIdxFromBuiltin(const BuiltinType *BT);
OpenPOWER on IntegriCloud