From: Fariborz Jahanian Date: Tue, 6 Mar 2012 17:16:27 +0000 (+0000) Subject: objective-c modern translator. Don't ignore unnamed bitfields X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a2105bc790b3d0d4d5edb77c617aeccc4187c0e;p=clang objective-c modern translator. Don't ignore unnamed bitfields when rewriting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152123 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Rewrite/RewriteModernObjC.cpp b/lib/Rewrite/RewriteModernObjC.cpp index 41aaafaaa3..fdaf44dd33 100644 --- a/lib/Rewrite/RewriteModernObjC.cpp +++ b/lib/Rewrite/RewriteModernObjC.cpp @@ -3250,12 +3250,9 @@ void RewriteModernObjC::RewriteObjCInternalStruct(ObjCInterfaceDecl *CDecl, ObjCInterfaceDecl *RCDecl = CDecl->getSuperClass(); SmallVector IVars; for (ObjCIvarDecl *IVD = CDecl->all_declared_ivar_begin(); - IVD; IVD = IVD->getNextIvar()) { - // Ignore unnamed bit-fields. - if (!IVD->getDeclName()) - continue; + IVD; IVD = IVD->getNextIvar()) IVars.push_back(IVD); - } + SourceLocation LocStart = CDecl->getLocStart(); SourceLocation LocEnd = CDecl->getEndOfDefinitionLoc(); diff --git a/test/Rewriter/unnamed-bf-modern-write.mm b/test/Rewriter/unnamed-bf-modern-write.mm new file mode 100644 index 0000000000..892382ff97 --- /dev/null +++ b/test/Rewriter/unnamed-bf-modern-write.mm @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -E %s -o %t.mm +// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s + +@interface Foo { +@private + int first; + int :1; + int third :1; + int :1; + int fifth :1; +} +@end +@implementation Foo +@end + +// CHECK: struct Foo_IMPL { +// CHECK-NEXT: int first; +// CHECK-NEXT: int : 1; +// CHECK-NEXT: int third : 1; +// CHECK-NEXT: int : 1; +// CHECK-NEXT: int fifth : 1; +// CHECK-NEXT: char : 0; +// CHECK-NEXT: };