mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-10 18:11:19 +00:00
[SDK modernizer] Patch to fix type of the typed enums when
migrating to NS_ENUM typedef. rdar://19994496 llvm-svn: 231036
This commit is contained in:
parent
30d65c18dc
commit
7b012d3728
@ -776,12 +776,12 @@ static void rewriteToNSMacroDecl(ASTContext &Ctx,
|
||||
const TypedefDecl *TypedefDcl,
|
||||
const NSAPI &NS, edit::Commit &commit,
|
||||
bool IsNSIntegerType) {
|
||||
QualType EnumUnderlyingT = EnumDcl->getPromotionType();
|
||||
assert(!EnumUnderlyingT.isNull()
|
||||
QualType DesignatedEnumType = EnumDcl->getIntegerType();
|
||||
assert(!DesignatedEnumType.isNull()
|
||||
&& "rewriteToNSMacroDecl - underlying enum type is null");
|
||||
|
||||
PrintingPolicy Policy(Ctx.getPrintingPolicy());
|
||||
std::string TypeString = EnumUnderlyingT.getAsString(Policy);
|
||||
std::string TypeString = DesignatedEnumType.getAsString(Policy);
|
||||
std::string ClassString = IsNSIntegerType ? "NS_ENUM(" : "NS_OPTIONS(";
|
||||
ClassString += TypeString;
|
||||
ClassString += ", ";
|
||||
|
@ -379,3 +379,10 @@ typedef enum : unsigned long long {
|
||||
ll3,
|
||||
ll4
|
||||
} MyEnumunsignedlonglong;
|
||||
|
||||
// rdar://19994496
|
||||
typedef enum : int8_t {int8_one} MyOneEnum;
|
||||
|
||||
typedef enum : int16_t {
|
||||
int16_t_one,
|
||||
int16_t_two } Myint16_tEnum;
|
||||
|
@ -358,3 +358,10 @@ typedef NS_ENUM(unsigned long long, MyEnumunsignedlonglong) {
|
||||
ll3,
|
||||
ll4
|
||||
};
|
||||
|
||||
// rdar://19994496
|
||||
typedef NS_ENUM(int8_t, MyOneEnum) {int8_one};
|
||||
|
||||
typedef NS_ENUM(int16_t, Myint16_tEnum) {
|
||||
int16_t_one,
|
||||
int16_t_two };
|
||||
|
Loading…
Reference in New Issue
Block a user