diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-09 18:34:52 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-09 18:34:52 +0000 |
commit | 2263f822c31d0855ca8c48bfd9624322bf776f0b (patch) | |
tree | 59fe7ef0769d9d9213a2b08166ace69171440838 | |
parent | 98146a6015a3381aa8393fc1e361257c2be41b90 (diff) |
Don't error when a block pointer is passed to a
vararg functions/methods. Fixes radar 7725203.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98070 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/AST/Type.cpp | 1 | ||||
-rw-r--r-- | test/SemaObjC/blocks.m | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index 76cc382920..8a64f8ea97 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -650,6 +650,7 @@ bool Type::isPODType() const { case Vector: case ExtVector: case ObjCObjectPointer: + case BlockPointer: return true; case Enum: diff --git a/test/SemaObjC/blocks.m b/test/SemaObjC/blocks.m index 3629230973..ddac7d1759 100644 --- a/test/SemaObjC/blocks.m +++ b/test/SemaObjC/blocks.m @@ -55,3 +55,15 @@ int foo9() { } } + +// rdar 7725203 +@class NSString; + +extern void NSLog(NSString *format, ...) __attribute__((format(__NSString__, 1, 2))); + +void foo10() { + void(^myBlock)(void) = ^{ + }; + NSLog(@"%@", myBlock); +} + |