class DILexicalBlockFile;
class DIVariable;
class DIType;
-class DIScope;
class DIObjCProperty;
/// \brief Maps from type identifier to the actual MDNode.
template <> struct simplify_type<DESC>;
DECLARE_SIMPLIFY_DESCRIPTOR(DISubrange)
DECLARE_SIMPLIFY_DESCRIPTOR(DIEnumerator)
-DECLARE_SIMPLIFY_DESCRIPTOR(DIScope)
DECLARE_SIMPLIFY_DESCRIPTOR(DIType)
DECLARE_SIMPLIFY_DESCRIPTOR(DIBasicType)
DECLARE_SIMPLIFY_DESCRIPTOR(DIDerivedType)
MDEnumerator &operator*() const { return *N; }
};
-class DIScope {
- MDScope *N;
-
-public:
- DIScope(const MDScope *N = nullptr) : N(const_cast<MDScope *>(N)) {}
-
- operator MDScope *() const { return N; }
- MDScope *operator->() const { return N; }
- MDScope &operator*() const { return *N; }
-};
-
class DIType {
MDType *N;
public:
DIType(const MDType *N = nullptr) : N(const_cast<MDType *>(N)) {}
- operator DIScope() const { return N; }
operator MDType *() const { return N; }
MDType *operator->() const { return N; }
MDType &operator*() const { return *N; }
public:
DIFile(const MDFile *N = nullptr) : N(const_cast<MDFile *>(N)) {}
- operator DIScope() const { return N; }
operator MDFile *() const { return N; }
MDFile *operator->() const { return N; }
MDFile &operator*() const { return *N; }
DICompileUnit(const MDCompileUnit *N = nullptr)
: N(const_cast<MDCompileUnit *>(N)) {}
- operator DIScope() const { return N; }
operator MDCompileUnit *() const { return N; }
MDCompileUnit *operator->() const { return N; }
MDCompileUnit &operator*() const { return *N; }
DISubprogram(const MDSubprogram *N = nullptr)
: N(const_cast<MDSubprogram *>(N)) {}
- operator DIScope() const { return N; }
operator MDSubprogram *() const { return N; }
MDSubprogram *operator->() const { return N; }
MDSubprogram &operator*() const { return *N; }
DINameSpace(const MDNamespace *N = nullptr)
: N(const_cast<MDNamespace *>(N)) {}
- operator DIScope() const { return N; }
operator MDNamespace *() const { return N; }
MDNamespace *operator->() const { return N; }
MDNamespace &operator*() const { return *N; }
template <> struct simplify_type<DESC> : simplify_type<const DESC> {};
SIMPLIFY_DESCRIPTOR(DISubrange)
SIMPLIFY_DESCRIPTOR(DIEnumerator)
-SIMPLIFY_DESCRIPTOR(DIScope)
SIMPLIFY_DESCRIPTOR(DIType)
SIMPLIFY_DESCRIPTOR(DIBasicType)
SIMPLIFY_DESCRIPTOR(DIDerivedType)