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/ASTBitCodes.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/ASTBitCodes.h')
-rw-r--r-- | include/clang/Serialization/ASTBitCodes.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/clang/Serialization/ASTBitCodes.h b/include/clang/Serialization/ASTBitCodes.h index 166a7b9a93..4c8eb28f79 100644 --- a/include/clang/Serialization/ASTBitCodes.h +++ b/include/clang/Serialization/ASTBitCodes.h @@ -64,6 +64,11 @@ namespace clang { /// \brief a Decl::Kind/DeclID pair. typedef std::pair<uint32_t, DeclID> KindDeclIDPair; + // FIXME: Turn these into classes so we can have some type safety when + // we go from local ID to global and vice-versa. + typedef DeclID LocalDeclID; + typedef DeclID GlobalDeclID; + /// \brief An ID number that refers to a type in an AST file. /// /// The ID of a type is partitioned into two parts: the lower @@ -402,7 +407,11 @@ namespace clang { /// \brief Record code for the source manager line table information, /// which stores information about #line directives. - SOURCE_MANAGER_LINE_TABLE = 48 + SOURCE_MANAGER_LINE_TABLE = 48, + + /// \brief Record code for ObjC categories in a module that are chained to + /// an interface. + OBJC_CHAINED_CATEGORIES }; /// \brief Record types used within a source manager block. |