summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2013-02-08 17:15:07 +0000
committerFariborz Jahanian <fjahanian@apple.com>2013-02-08 17:15:07 +0000
commite8730a35587e8d4ee88addc0d6a268f62cb259ff (patch)
tree1e863f8fd180d68fc7dd965227e267e21988f43b
parent8360a86c8c7a123705e7b3a078f8b5f26d6ed3ee (diff)
downloadbcm5719-llvm-e8730a35587e8d4ee88addc0d6a268f62cb259ff.tar.gz
bcm5719-llvm-e8730a35587e8d4ee88addc0d6a268f62cb259ff.zip
objective-C modern translator. Fixes a trivial
rewriting bug where #ifdef ended up on the same line as the attribute declaration. llvm-svn: 174719
-rw-r--r--clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp6
-rw-r--r--clang/test/Rewriter/modern-write-bf-abi.mm20
2 files changed, 23 insertions, 3 deletions
diff --git a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp
index 68babb4ef00..4803bfa3971 100644
--- a/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp
+++ b/clang/lib/Rewrite/Frontend/RewriteModernObjC.cpp
@@ -1043,7 +1043,7 @@ void RewriteModernObjC::RewritePropertyImplDecl(ObjCPropertyImplDecl *PID,
static void RewriteOneForwardClassDecl(ObjCInterfaceDecl *ForwardDecl,
std::string &typedefString) {
- typedefString += "#ifndef _REWRITER_typedef_";
+ typedefString += "\n#ifndef _REWRITER_typedef_";
typedefString += ForwardDecl->getNameAsString();
typedefString += "\n";
typedefString += "#define _REWRITER_typedef_";
@@ -1076,7 +1076,7 @@ void RewriteModernObjC::RewriteForwardClassDecl(DeclGroupRef D) {
// as a comment.
typedefString += "// @class ";
typedefString += ForwardDecl->getNameAsString();
- typedefString += ";\n";
+ typedefString += ";";
}
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
}
@@ -1092,7 +1092,7 @@ void RewriteModernObjC::RewriteForwardClassDecl(
if (i == 0) {
typedefString += "// @class ";
typedefString += ForwardDecl->getNameAsString();
- typedefString += ";\n";
+ typedefString += ";";
}
RewriteOneForwardClassDecl(ForwardDecl, typedefString);
}
diff --git a/clang/test/Rewriter/modern-write-bf-abi.mm b/clang/test/Rewriter/modern-write-bf-abi.mm
index 6b646db678e..85db93924f7 100644
--- a/clang/test/Rewriter/modern-write-bf-abi.mm
+++ b/clang/test/Rewriter/modern-write-bf-abi.mm
@@ -98,3 +98,23 @@ int f2(A* a) {
int f3(A *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
OpenPOWER on IntegriCloud