diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-07-28 19:49:54 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-07-28 19:49:54 +0000 |
commit | 6e4a3f5c59664af13e02e9bb58c2810b830e3b96 (patch) | |
tree | 950731faf2126e1cf7aece0aee7ef4d4ae8fab31 /include/clang/Sema/ExternalSemaSource.h | |
parent | f3546eeef1eed4661b77b93b91a29be1bf5f7d0b (diff) |
Make the deserialization of Sema::PendingInstantiations lazy. At this
point, ASTReader::InitializeSema() has very little interesting work,
*except* issues stemming from preloaded declarations. That's something
we'll still need to cope with.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136378 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Sema/ExternalSemaSource.h')
-rw-r--r-- | include/clang/Sema/ExternalSemaSource.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/clang/Sema/ExternalSemaSource.h b/include/clang/Sema/ExternalSemaSource.h index 00494641ba..7b83625fa3 100644 --- a/include/clang/Sema/ExternalSemaSource.h +++ b/include/clang/Sema/ExternalSemaSource.h @@ -27,6 +27,7 @@ struct ObjCMethodList; class Scope; class Sema; class TypedefNameDecl; +class ValueDecl; class VarDecl; /// \brief A simple structure that captures a vtable use for the purposes of @@ -162,6 +163,17 @@ public: /// source should take care not to introduce the same vtables repeatedly. virtual void ReadUsedVTables(SmallVectorImpl<ExternalVTableUse> &VTables) {} + /// \brief Read the set of pending instantiations known to the external + /// Sema source. + /// + /// The external source should append its own pending instantiations to the + /// given vector. Note that this routine may be invoked multiple times; the + /// external source should take care not to introduce the same instantiations + /// repeatedly. + virtual void ReadPendingInstantiations( + SmallVectorImpl<std::pair<ValueDecl *, + SourceLocation> > &Pending) {} + // isa/cast/dyn_cast support static bool classof(const ExternalASTSource *Source) { return Source->SemaSource; |