diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-02-08 17:15:07 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-02-08 17:15:07 +0000 |
commit | e8730a35587e8d4ee88addc0d6a268f62cb259ff (patch) | |
tree | 1e863f8fd180d68fc7dd965227e267e21988f43b | |
parent | 8360a86c8c7a123705e7b3a078f8b5f26d6ed3ee (diff) | |
download | bcm5719-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.cpp | 6 | ||||
-rw-r--r-- | clang/test/Rewriter/modern-write-bf-abi.mm | 20 |
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 |