diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-03-06 17:16:27 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-03-06 17:16:27 +0000 |
commit | 9a2105bc790b3d0d4d5edb77c617aeccc4187c0e (patch) | |
tree | 8f6f7f52dc2931d72f4ad17d25fd74d1326aa01a | |
parent | faa7fac3f8627f53f2c5aa06f0ad8832098872f5 (diff) |
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
-rw-r--r-- | lib/Rewrite/RewriteModernObjC.cpp | 7 | ||||
-rw-r--r-- | test/Rewriter/unnamed-bf-modern-write.mm | 23 |
2 files changed, 25 insertions, 5 deletions
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<ObjCIvarDecl *, 8> 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: }; |