/// FIXME: this is added for dragonegg. Once we update dragonegg
/// to call resolve function, this will be removed.
MDSubprogram *
- createFunction(DIScopeRef Scope, StringRef Name, StringRef LinkageName,
+ createFunction(MDScopeRef Scope, StringRef Name, StringRef LinkageName,
MDFile *File, unsigned LineNo, MDSubroutineType *Ty,
bool isLocalToUnit, bool isDefinition, unsigned ScopeLine,
unsigned Flags = 0, bool isOptimized = false,
typedef DebugNodeArray DIArray;
typedef MDTypeRefArray DITypeArray;
-typedef DebugNodeRef DIDescriptorRef;
-typedef MDScopeRef DIScopeRef;
-typedef MDTypeRef DITypeRef;
class DISubrange {
MDSubrange *N;
/// \brief Get the type.
///
/// \note Objective-C doesn't have an ODR, so there is no benefit in storing
- /// the type as a DITypeRef here.
+ /// a type ref here.
MDType *getType() const { return cast_or_null<MDType>(getRawType()); }
StringRef getFilename() const {
uint16_t tag = Ty->getTag();
if (tag == dwarf::DW_TAG_pointer_type)
- subType = resolve(DITypeRef(cast<MDDerivedType>(Ty)->getBaseType()));
+ subType = resolve(cast<MDDerivedType>(Ty)->getBaseType());
auto Elements = cast<MDCompositeTypeBase>(subType)->getElements();
for (unsigned i = 0, N = Elements.size(); i < N; ++i) {
auto *DT = cast<MDDerivedTypeBase>(Elements[i]);
if (getName() == DT->getName())
- return resolve(DITypeRef(DT->getBaseType()));
+ return resolve(DT->getBaseType());
}
}
return Ty;
T == dwarf::DW_TAG_volatile_type ||
T == dwarf::DW_TAG_restrict_type ||
T == dwarf::DW_TAG_enumeration_type);
- if (DITypeRef Deriv = DTy->getBaseType())
+ if (MDTypeRef Deriv = DTy->getBaseType())
return isUnsignedDIType(DD, DD->resolve(Deriv));
// FIXME: Enums without a fixed underlying type have unknown signedness
// here, leading to incorrectly emitted constants.
// DW_TAG_restrict_type is not supported in DWARF2
if (Ty->getTag() == dwarf::DW_TAG_restrict_type && DD->getDwarfVersion() <= 2)
return getOrCreateTypeDIE(
- resolve(DITypeRef(cast<MDDerivedType>(Ty)->getBaseType())));
+ resolve(cast<MDDerivedType>(Ty)->getBaseType()));
// Construct the context before querying for the existence of the DIE in case
// such construction creates the DIE.
return MDExpression::get(VMContext, Addr);
}
-MDSubprogram* DIBuilder::createFunction(DIScopeRef Context, StringRef Name,
- StringRef LinkageName, MDFile* File,
- unsigned LineNo, MDSubroutineType* Ty,
- bool isLocalToUnit, bool isDefinition,
- unsigned ScopeLine, unsigned Flags,
- bool isOptimized, Function *Fn,
- MDNode *TParams, MDNode *Decl) {
+MDSubprogram *DIBuilder::createFunction(MDScopeRef Context, StringRef Name,
+ StringRef LinkageName, MDFile *File,
+ unsigned LineNo, MDSubroutineType *Ty,
+ bool isLocalToUnit, bool isDefinition,
+ unsigned ScopeLine, unsigned Flags,
+ bool isOptimized, Function *Fn,
+ MDNode *TParams, MDNode *Decl) {
// dragonegg does not generate identifier for types, so using an empty map
// to resolve the context should be fine.
DITypeIdentifierMap EmptyMap;