#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/IR/Metadata.h"
#include "llvm/Support/Dwarf.h"
namespace llvm {
/// Gets the parent scope for this scope node or returns a
/// default constructed scope.
DIScopeRef getContext() const;
+ /// If the scope node has a name, return that, else return an empty string.
+ StringRef getName() const;
StringRef getFilename() const;
StringRef getDirectory() const;
public:
T resolve(const DITypeIdentifierMap &Map) const;
+ StringRef getName() const {
+ if (!Val)
+ return StringRef();
+
+ if (const MDNode *MD = dyn_cast<MDNode>(Val))
+ return T(MD).getName();
+
+ const MDString *MS = cast<MDString>(Val);
+ return MS->getString();
+ }
operator Value *() const { return const_cast<Value *>(Val); }
};
bool isStaticMember() const { return (getFlags() & FlagStaticMember) != 0; }
bool isValid() const { return DbgNode && isType(); }
- /// isUnsignedDIType - Return true if type encoding is unsigned.
- bool isUnsignedDIType();
-
/// replaceAllUsesWith - Replace all uses of debug info referenced by
/// this descriptor.
void replaceAllUsesWith(DIDescriptor &D);
public:
explicit DIDerivedType(const MDNode *N = 0) : DIType(N) {}
- DIType getTypeDerivedFrom() const { return getFieldAs<DIType>(9); }
-
- /// getOriginalTypeSize - If this type is derived from a base type then
- /// return base type size.
- uint64_t getOriginalTypeSize() const;
+ DITypeRef getTypeDerivedFrom() const { return getFieldAs<DITypeRef>(9); }
/// getObjCProperty - Return property node, if this ivar is
/// associated with one.