DebugInfoFinder: handle imported entities of a CU.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189158 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manman Ren 2013-08-24 00:32:12 +00:00
parent 2982c08884
commit 6b6a2ac6ca

View File

@ -923,6 +923,18 @@ void DebugInfoFinder::processModule(const Module &M) {
DIArray RetainedTypes = CU.getRetainedTypes();
for (unsigned i = 0, e = RetainedTypes.getNumElements(); i != e; ++i)
processType(DIType(RetainedTypes.getElement(i)));
DIArray Imports = CU.getImportedEntities();
for (unsigned i = 0, e = Imports.getNumElements(); i != e; ++i) {
DIImportedEntity Import = DIImportedEntity(
Imports.getElement(i));
DIDescriptor Entity = Import.getEntity();
if (Entity.isType())
processType(DIType(Entity));
else if (Entity.isSubprogram())
processSubprogram(DISubprogram(Entity));
else if (Entity.isNameSpace())
processScope(DINameSpace(Entity).getContext());
}
// FIXME: We really shouldn't be bailing out after visiting just one CU
return;
}