forked from OSchip/llvm-project
ASTContext: Factor 'getObjCEncodingForPropertyType' as its own method.
It is useful to get the property encoding for an ObjC type without a full ObjCPropertyDecl. llvm-svn: 212496
This commit is contained in:
parent
70af1fdf9d
commit
98ac7d2d35
|
@ -1373,6 +1373,10 @@ public:
|
|||
void getObjCEncodingForType(QualType T, std::string &S,
|
||||
const FieldDecl *Field=nullptr) const;
|
||||
|
||||
/// \brief Emit the Objective-C property type encoding for the given
|
||||
/// type \p T into \p S.
|
||||
void getObjCEncodingForPropertyType(QualType T, std::string &S) const;
|
||||
|
||||
void getLegacyIntegralTypeEncoding(QualType &t) const;
|
||||
|
||||
/// \brief Put the string version of the type qualifiers \p QT into \p S.
|
||||
|
|
|
@ -5022,9 +5022,7 @@ void ASTContext::getObjCEncodingForPropertyDecl(const ObjCPropertyDecl *PD,
|
|||
// Encode result type.
|
||||
// GCC has some special rules regarding encoding of properties which
|
||||
// closely resembles encoding of ivars.
|
||||
getObjCEncodingForTypeImpl(PD->getType(), S, true, true, nullptr,
|
||||
true /* outermost type */,
|
||||
true /* encoding for property */);
|
||||
getObjCEncodingForPropertyType(PD->getType(), S);
|
||||
|
||||
if (PD->isReadOnly()) {
|
||||
S += ",R";
|
||||
|
@ -5097,6 +5095,16 @@ void ASTContext::getObjCEncodingForType(QualType T, std::string& S,
|
|||
true /* outermost type */);
|
||||
}
|
||||
|
||||
void ASTContext::getObjCEncodingForPropertyType(QualType T,
|
||||
std::string& S) const {
|
||||
// Encode result type.
|
||||
// GCC has some special rules regarding encoding of properties which
|
||||
// closely resembles encoding of ivars.
|
||||
getObjCEncodingForTypeImpl(T, S, true, true, nullptr,
|
||||
true /* outermost type */,
|
||||
true /* encoding property */);
|
||||
}
|
||||
|
||||
static char getObjCEncodingForPrimitiveKind(const ASTContext *C,
|
||||
BuiltinType::Kind kind) {
|
||||
switch (kind) {
|
||||
|
|
Loading…
Reference in New Issue