mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 18:24:00 +00:00
LTO type uniquing: store the Decl field of a DIImportedEntity as a DIRef.
No other functionality changes, DIBuilder testcase is included in a paired CFE commit. This relaxes the assertion in isScopeRef to also accept subclasses of DIScope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205279 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -430,7 +430,7 @@ static bool fieldIsTypeRef(const MDNode *DbgNode, unsigned Elt) {
|
||||
static bool isScopeRef(const Value *Val) {
|
||||
return !Val ||
|
||||
(isa<MDString>(Val) && !cast<MDString>(Val)->getString().empty()) ||
|
||||
(isa<MDNode>(Val) && DIScope(cast<MDNode>(Val)).isScope());
|
||||
isa<MDNode>(Val);
|
||||
}
|
||||
|
||||
/// Check if a field at position Elt of a MDNode can be a ScopeRef.
|
||||
@ -1016,7 +1016,7 @@ void DebugInfoFinder::processModule(const Module &M) {
|
||||
DIArray Imports = CU.getImportedEntities();
|
||||
for (unsigned i = 0, e = Imports.getNumElements(); i != e; ++i) {
|
||||
DIImportedEntity Import = DIImportedEntity(Imports.getElement(i));
|
||||
DIDescriptor Entity = Import.getEntity();
|
||||
DIDescriptor Entity = Import.getEntity().resolve(TypeIdentifierMap);
|
||||
if (Entity.isType())
|
||||
processType(DIType(Entity));
|
||||
else if (Entity.isSubprogram())
|
||||
|
Reference in New Issue
Block a user