/// createEnumerator - Create a single enumerator value.
DIEnumerator createEnumerator(StringRef Name, int64_t Val);
- /// createNullPtrType - Create C++0x nullptr type.
- DIBasicType createNullPtrType(StringRef Name);
+ /// \brief Create a DWARF unspecified type.
+ DIBasicType createUnspecifiedType(StringRef Name);
+
+ /// \brief Create C++11 nullptr type.
+ DIBasicType createNullPtrType();
/// createBasicType - Create debugging information entry for a basic
/// type.
return DIEnumerator(MDNode::get(VMContext, Elts));
}
-/// createNullPtrType - Create C++11 nullptr type.
-DIBasicType DIBuilder::createNullPtrType(StringRef Name) {
+/// \brief Create a DWARF unspecified type.
+DIBasicType DIBuilder::createUnspecifiedType(StringRef Name) {
assert(!Name.empty() && "Unable to create type without name");
- // nullptr is encoded in DIBasicType format. Line number, filename,
- // ,size, alignment, offset and flags are always empty here.
+ // Unspecified types are encoded in DIBasicType format. Line number, filename,
+ // size, alignment, offset and flags are always empty here.
Value *Elts[] = {
GetTagConstant(VMContext, dwarf::DW_TAG_unspecified_type),
NULL, // Filename
return DIBasicType(MDNode::get(VMContext, Elts));
}
+/// \brief Create C++11 nullptr type.
+DIBasicType DIBuilder::createNullPtrType() {
+ return createUnspecifiedType("decltype(nullptr)");
+}
+
/// createBasicType - Create debugging information entry for a basic
/// type, e.g 'char'.
DIBasicType