summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-02-02 22:35:53 +0000
committerDevang Patel <dpatel@apple.com>2011-02-02 22:35:53 +0000
commite7d93877c6e7029d27bfd1c137fceb472f81f390 (patch)
treeea32df2a6afbe0ec72bf7c0edb502a72ef06feb8 /include
parent7e2cb116556e1153401cd6b94d0f51db978f6902 (diff)
downloadllvm-e7d93877c6e7029d27bfd1c137fceb472f81f390.tar.gz
llvm-e7d93877c6e7029d27bfd1c137fceb472f81f390.tar.bz2
llvm-e7d93877c6e7029d27bfd1c137fceb472f81f390.tar.xz
Add support to describe template value parameter in debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124755 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Analysis/DIBuilder.h18
-rw-r--r--include/llvm/Analysis/DebugInfo.h20
2 files changed, 37 insertions, 1 deletions
diff --git a/include/llvm/Analysis/DIBuilder.h b/include/llvm/Analysis/DIBuilder.h
index a948ce2c1d..7916934d4a 100644
--- a/include/llvm/Analysis/DIBuilder.h
+++ b/include/llvm/Analysis/DIBuilder.h
@@ -39,6 +39,7 @@ namespace llvm {
class DILexicalBlock;
class DISubprogram;
class DITemplateTypeParameter;
+ class DITemplateValueParameter;
class DIBuilder {
private:
@@ -198,7 +199,7 @@ namespace llvm {
/// CreateTemplateTypeParameter - Create debugging information for template
/// type parameter.
- /// @param Scope Scope in which this type is dfiend
+ /// @param Scope Scope in which this type is defined.
/// @param Name Type parameter name.
/// @param Ty Parameter type.
/// @param File File where this type parameter is defined.
@@ -209,6 +210,21 @@ namespace llvm {
MDNode *File = 0, unsigned LineNo = 0,
unsigned ColumnNo = 0);
+ /// CreateTemplateValueParameter - Create debugging information for template
+ /// value parameter.
+ /// @param Scope Scope in which this type is defined.
+ /// @param Name Value parameter name.
+ /// @param Ty Parameter type.
+ /// @param Value Constant parameter value.
+ /// @param File File where this type parameter is defined.
+ /// @param LineNo Line number.
+ /// @param ColumnNo Column Number.
+ DITemplateValueParameter
+ CreateTemplateValueParameter(DIDescriptor Scope, StringRef Name, DIType Ty,
+ uint64_t Value,
+ MDNode *File = 0, unsigned LineNo = 0,
+ unsigned ColumnNo = 0);
+
/// CreateArrayType - Create debugging information entry for an array.
/// @param Size Array size.
/// @param AlignInBits Alignment.
diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h
index b547263669..bcaf616ef8 100644
--- a/include/llvm/Analysis/DebugInfo.h
+++ b/include/llvm/Analysis/DebugInfo.h
@@ -123,6 +123,7 @@ namespace llvm {
bool isGlobal() const;
bool isUnspecifiedParameter() const;
bool isTemplateTypeParameter() const;
+ bool isTemplateValueParameter() const;
};
/// DISubrange - This is used to represent ranges, for array bounds.
@@ -387,6 +388,25 @@ namespace llvm {
unsigned getColumnNumber() const { return getUnsignedField(6); }
};
+ /// DITemplateValueParameter - This is a wrapper for template value parameter.
+ class DITemplateValueParameter : public DIDescriptor {
+ public:
+ explicit DITemplateValueParameter(const MDNode *N = 0) : DIDescriptor(N) {}
+
+ DIScope getContext() const { return getFieldAs<DIScope>(1); }
+ StringRef getName() const { return getStringField(2); }
+ DIType getType() const { return getFieldAs<DIType>(3); }
+ uint64_t getValue() const { return getUInt64Field(4); }
+ StringRef getFilename() const {
+ return getFieldAs<DIFile>(5).getFilename();
+ }
+ StringRef getDirectory() const {
+ return getFieldAs<DIFile>(5).getDirectory();
+ }
+ unsigned getLineNumber() const { return getUnsignedField(6); }
+ unsigned getColumnNumber() const { return getUnsignedField(7); }
+ };
+
/// DISubprogram - This is a wrapper for a subprogram (e.g. a function).
class DISubprogram : public DIScope {
public: