Be lazier when loading KeyFunctions from PCH/modules. We don't need to load
these in eagerly if we're not actually processing a translation unit. The added
laziness here also avoids us loading in parts of a CXXRecordDecl earlier than an
upcoming class template specialization merging patch would like.

Ideally, we should mark the vtable as used when we see a definition for the key
function, rather than having a separate pass over dynamic classes at the end of
the TU. The existing approach is pretty bad for PCH/modules, since it forcibly
loads the declarations of all key functions in all imported modules, whether or
not those key functions are defined.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189627 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator: User of hexadecimal enumerator
should infer migration to NS_OPTIONS.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189628 91177308-0d34-0410-b5e6-96231b3b80d8
Map from local decl IDs to global decl IDs when lazily deserializing friend decl chains.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189629 91177308-0d34-0410-b5e6-96231b3b80d8
Pass the special backend option to this test for now to get it passing
again.

This test should a) test IR or be moved, and b) get an actual option
for the dwarf pub sections.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189633 91177308-0d34-0410-b5e6-96231b3b80d8