r174719 - objective-C modern translator. Fixes a trivial

Fariborz Jahanian fjahanian at apple.com
Fri Feb 8 09:15:07 PST 2013


Author: fjahanian
Date: Fri Feb  8 11:15:07 2013
New Revision: 174719

URL: http://llvm.org/viewvc/llvm-project?rev=174719&view=rev
Log:
objective-C modern translator. Fixes a trivial
rewriting bug where #ifdef ended up on the same
line as the attribute declaration.

Modified:
    cfe/trunk/lib/Rewrite/Frontend/RewriteModernObjC.cpp
    cfe/trunk/test/Rewriter/modern-write-bf-abi.mm

Modified: cfe/trunk/lib/Rewrite/Frontend/RewriteModernObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/Frontend/RewriteModernObjC.cpp?rev=174719&r1=174718&r2=174719&view=diff
==============================================================================
--- cfe/trunk/lib/Rewrite/Frontend/RewriteModernObjC.cpp (original)
+++ cfe/trunk/lib/Rewrite/Frontend/RewriteModernObjC.cpp Fri Feb  8 11:15:07 2013
@@ -1043,7 +1043,7 @@ void RewriteModernObjC::RewritePropertyI
 
 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::RewriteForwardCl
       // as a comment.
       typedefString += "// @class ";
       typedefString += ForwardDecl->getNameAsString();
-      typedefString += ";\n";
+      typedefString += ";";
     }
     RewriteOneForwardClassDecl(ForwardDecl, typedefString);
   }
@@ -1092,7 +1092,7 @@ void RewriteModernObjC::RewriteForwardCl
     if (i == 0) {
       typedefString += "// @class ";
       typedefString += ForwardDecl->getNameAsString();
-      typedefString += ";\n";
+      typedefString += ";";
     }
     RewriteOneForwardClassDecl(ForwardDecl, typedefString);
   }

Modified: cfe/trunk/test/Rewriter/modern-write-bf-abi.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/modern-write-bf-abi.mm?rev=174719&r1=174718&r2=174719&view=diff
==============================================================================
--- cfe/trunk/test/Rewriter/modern-write-bf-abi.mm (original)
+++ cfe/trunk/test/Rewriter/modern-write-bf-abi.mm Fri Feb  8 11:15:07 2013
@@ -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;
+}
+ at end
+
+ at implementation Base @end





More information about the cfe-commits mailing list