forked from OSchip/llvm-project
objective-C modern translator. Fixes a trivial
rewriting bug where #ifdef ended up on the same line as the attribute declaration. llvm-svn: 174719
This commit is contained in:
parent
8360a86c8c
commit
e8730a3558
|
@ -1043,7 +1043,7 @@ void RewriteModernObjC::RewritePropertyImplDecl(ObjCPropertyImplDecl *PID,
|
||||||
|
|
||||||
static void RewriteOneForwardClassDecl(ObjCInterfaceDecl *ForwardDecl,
|
static void RewriteOneForwardClassDecl(ObjCInterfaceDecl *ForwardDecl,
|
||||||
std::string &typedefString) {
|
std::string &typedefString) {
|
||||||
typedefString += "#ifndef _REWRITER_typedef_";
|
typedefString += "\n#ifndef _REWRITER_typedef_";
|
||||||
typedefString += ForwardDecl->getNameAsString();
|
typedefString += ForwardDecl->getNameAsString();
|
||||||
typedefString += "\n";
|
typedefString += "\n";
|
||||||
typedefString += "#define _REWRITER_typedef_";
|
typedefString += "#define _REWRITER_typedef_";
|
||||||
|
@ -1076,7 +1076,7 @@ void RewriteModernObjC::RewriteForwardClassDecl(DeclGroupRef D) {
|
||||||
// as a comment.
|
// as a comment.
|
||||||
typedefString += "// @class ";
|
typedefString += "// @class ";
|
||||||
typedefString += ForwardDecl->getNameAsString();
|
typedefString += ForwardDecl->getNameAsString();
|
||||||
typedefString += ";\n";
|
typedefString += ";";
|
||||||
}
|
}
|
||||||
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
|
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
|
||||||
}
|
}
|
||||||
|
@ -1092,7 +1092,7 @@ void RewriteModernObjC::RewriteForwardClassDecl(
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
typedefString += "// @class ";
|
typedefString += "// @class ";
|
||||||
typedefString += ForwardDecl->getNameAsString();
|
typedefString += ForwardDecl->getNameAsString();
|
||||||
typedefString += ";\n";
|
typedefString += ";";
|
||||||
}
|
}
|
||||||
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
|
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,3 +98,23 @@ int f2(A* a) {
|
||||||
int f3(A *a) {
|
int f3(A *a) {
|
||||||
return a->ivar_d + a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;
|
return a->ivar_d + a->ivar_ext2_a + a->ivar_ext_a + a->ivar_a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((objc_root_class)) @interface Base
|
||||||
|
{
|
||||||
|
struct objc_class *isa;
|
||||||
|
int full;
|
||||||
|
int full2: 32;
|
||||||
|
int _refs: 8;
|
||||||
|
int field2: 3;
|
||||||
|
unsigned f3: 8;
|
||||||
|
short cc;
|
||||||
|
unsigned g: 16;
|
||||||
|
int r2: 8;
|
||||||
|
int r3: 8;
|
||||||
|
int r4: 2;
|
||||||
|
int r5: 8;
|
||||||
|
char c;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation Base @end
|
||||||
|
|
Loading…
Reference in New Issue