mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 00:17:01 +00:00
Add support for objc property decls according to the page at:
http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the metadata needed accordingly. rdar://11144023 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153639 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -211,13 +211,19 @@ namespace llvm {
|
||||
/// createObjCProperty - Create debugging information entry for Objective-C
|
||||
/// property.
|
||||
/// @param Name Property name.
|
||||
/// @param File File where this property is defined.
|
||||
/// @param LineNumber Line number.
|
||||
/// @param GetterName Name of the Objective C property getter selector.
|
||||
/// @param SetterName Name of the Objective C property setter selector.
|
||||
/// @param PropertyAttributes Objective C property attributes.
|
||||
DIObjCProperty createObjCProperty(StringRef Name, StringRef GetterName,
|
||||
StringRef SetterName,
|
||||
unsigned PropertyAttributes);
|
||||
|
||||
/// @param Ty Type.
|
||||
DIObjCProperty createObjCProperty(StringRef Name,
|
||||
DIFile File, unsigned LineNumber,
|
||||
StringRef GetterName,
|
||||
StringRef SetterName,
|
||||
unsigned PropertyAttributes,
|
||||
DIType Ty);
|
||||
|
||||
/// createClassType - Create debugging information entry for a class.
|
||||
/// @param Scope Scope in which this class is defined.
|
||||
/// @param Name class name.
|
||||
|
||||
@@ -792,31 +792,36 @@ namespace llvm {
|
||||
explicit DIObjCProperty(const MDNode *N) : DIDescriptor(N) { }
|
||||
|
||||
StringRef getObjCPropertyName() const { return getStringField(1); }
|
||||
DIFile getFile() const { return getFieldAs<DIFile>(2); }
|
||||
unsigned getLineNumber() const { return getUnsignedField(3); }
|
||||
|
||||
StringRef getObjCPropertyGetterName() const {
|
||||
return getStringField(2);
|
||||
return getStringField(4);
|
||||
}
|
||||
StringRef getObjCPropertySetterName() const {
|
||||
return getStringField(3);
|
||||
return getStringField(5);
|
||||
}
|
||||
bool isReadOnlyObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_readonly) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_readonly) != 0;
|
||||
}
|
||||
bool isReadWriteObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_readwrite) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_readwrite) != 0;
|
||||
}
|
||||
bool isAssignObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_assign) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_assign) != 0;
|
||||
}
|
||||
bool isRetainObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_retain) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_retain) != 0;
|
||||
}
|
||||
bool isCopyObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_copy) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_copy) != 0;
|
||||
}
|
||||
bool isNonAtomicObjCProperty() {
|
||||
return (getUnsignedField(4) & dwarf::DW_APPLE_PROPERTY_nonatomic) != 0;
|
||||
return (getUnsignedField(6) & dwarf::DW_APPLE_PROPERTY_nonatomic) != 0;
|
||||
}
|
||||
|
||||
DIType getType() const { return getFieldAs<DIType>(7); }
|
||||
|
||||
/// Verify - Verify that a derived type descriptor is well formed.
|
||||
bool Verify() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user