Rename ClassType to the more accurate UnderlyingType and document its purpose.

rdar://problem/13463793

llvm-svn: 179877
This commit is contained in:
Adrian Prantl 2013-04-19 19:56:02 +00:00
parent ed185ab5c7
commit 425ca79300
3 changed files with 17 additions and 13 deletions

View File

@ -349,19 +349,20 @@ namespace llvm {
DIType createVectorType(uint64_t Size, uint64_t AlignInBits, DIType createVectorType(uint64_t Size, uint64_t AlignInBits,
DIType Ty, DIArray Subscripts); DIType Ty, DIArray Subscripts);
/// createEnumerationType - Create debugging information entry for an /// createEnumerationType - Create debugging information entry for an
/// enumeration. /// enumeration.
/// @param Scope Scope in which this enumeration is defined. /// @param Scope Scope in which this enumeration is defined.
/// @param Name Union name. /// @param Name Union name.
/// @param File File where this member is defined. /// @param File File where this member is defined.
/// @param LineNumber Line number. /// @param LineNumber Line number.
/// @param SizeInBits Member size. /// @param SizeInBits Member size.
/// @param AlignInBits Member alignment. /// @param AlignInBits Member alignment.
/// @param Elements Enumeration elements. /// @param Elements Enumeration elements.
/// @param UnderlyingType Underlying type of a C++11/ObjC fixed enum.
DICompositeType createEnumerationType( DICompositeType createEnumerationType(
DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber,
uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements, uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements,
DIType ClassType); DIType UnderlyingType);
/// createSubroutineType - Create subroutine type. /// createSubroutineType - Create subroutine type.
/// @param File File in which this subroutine is defined. /// @param File File in which this subroutine is defined.

View File

@ -342,7 +342,10 @@ namespace llvm {
/// DICompositeType - This descriptor holds a type that can refer to multiple /// DICompositeType - This descriptor holds a type that can refer to multiple
/// other types, like a function or struct. /// other types, like a function or struct.
/// FIXME: Why is this a DIDerivedType?? /// DICompositeType is derived from DIDerivedType because some
/// composite types (such as enums) can be derived from basic types
// FIXME: Make this derive from DIType directly & just store the
// base type in a single DIType field.
class DICompositeType : public DIDerivedType { class DICompositeType : public DIDerivedType {
friend class DIDescriptor; friend class DIDescriptor;
void printInternal(raw_ostream &OS) const; void printInternal(raw_ostream &OS) const;

View File

@ -427,7 +427,7 @@ DIType DIBuilder::createObjCIVar(StringRef Name,
DIObjCProperty DIBuilder::createObjCProperty(StringRef Name, DIObjCProperty DIBuilder::createObjCProperty(StringRef Name,
DIFile File, unsigned LineNumber, DIFile File, unsigned LineNumber,
StringRef GetterName, StringRef GetterName,
StringRef SetterName, StringRef SetterName,
unsigned PropertyAttributes, unsigned PropertyAttributes,
DIType Ty) { DIType Ty) {
Value *Elts[] = { Value *Elts[] = {
@ -601,7 +601,7 @@ DIBuilder::createSubroutineType(DIFile File, DIArray ParameterTypes) {
DICompositeType DIBuilder::createEnumerationType( DICompositeType DIBuilder::createEnumerationType(
DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber, DIDescriptor Scope, StringRef Name, DIFile File, unsigned LineNumber,
uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements, uint64_t SizeInBits, uint64_t AlignInBits, DIArray Elements,
DIType ClassType) { DIType UnderlyingType) {
// TAG_enumeration_type is encoded in DICompositeType format. // TAG_enumeration_type is encoded in DICompositeType format.
Value *Elts[] = { Value *Elts[] = {
GetTagConstant(VMContext, dwarf::DW_TAG_enumeration_type), GetTagConstant(VMContext, dwarf::DW_TAG_enumeration_type),
@ -613,7 +613,7 @@ DICompositeType DIBuilder::createEnumerationType(
ConstantInt::get(Type::getInt64Ty(VMContext), AlignInBits), ConstantInt::get(Type::getInt64Ty(VMContext), AlignInBits),
ConstantInt::get(Type::getInt32Ty(VMContext), 0), ConstantInt::get(Type::getInt32Ty(VMContext), 0),
ConstantInt::get(Type::getInt32Ty(VMContext), 0), ConstantInt::get(Type::getInt32Ty(VMContext), 0),
ClassType, UnderlyingType,
Elements, Elements,
ConstantInt::get(Type::getInt32Ty(VMContext), 0), ConstantInt::get(Type::getInt32Ty(VMContext), 0),
Constant::getNullValue(Type::getInt32Ty(VMContext)) Constant::getNullValue(Type::getInt32Ty(VMContext))