diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-01 00:58:55 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-01 00:58:55 +0000 |
commit | e6b8d68a927368b06ac06cc9ac9e7f60aa966d5f (patch) | |
tree | ed379340bfd735af63c521a8b6439104799f434a /include/clang/Serialization/Module.h | |
parent | 50c909bd837f00265034d876736e2db47686be38 (diff) |
Support importing of ObjC categories from modules.
The initial incentive was to fix a crash when PCH chaining categories
to an interface, but the fix was done in the "modules way" that I hear
is popular with the kids these days.
Each module stores the local chain of categories and we combine them
when the interface is loaded. We also warn if non-dependent modules
introduce duplicate named categories.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138926 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Serialization/Module.h')
-rw-r--r-- | include/clang/Serialization/Module.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/clang/Serialization/Module.h b/include/clang/Serialization/Module.h index b3c3bc3271..c35a4f0096 100644 --- a/include/clang/Serialization/Module.h +++ b/include/clang/Serialization/Module.h @@ -273,6 +273,15 @@ public: /// \brief Information about the lexical and visible declarations /// for each DeclContext. DeclContextInfosMap DeclContextInfos; + + typedef llvm::DenseMap<serialization::GlobalDeclID, + std::pair<serialization::LocalDeclID, serialization::LocalDeclID> > + ChainedObjCCategoriesMap; + /// \brief ObjC categories that got chained to an interface from another + /// module. + /// Key is the ID of the interface. + /// Value is a pair of linked category DeclIDs (head category, tail category). + ChainedObjCCategoriesMap ChainedObjCCategories; // === Types === |