// RUN: %clang_cc1 %s -fsyntax-only -verify -fblocks
// rdar://10734265

@class NSObject;
typedef void (^block1_t)(int arg);
typedef void (^block2_t)(block1_t arg);
typedef void (^block3_t)(NSObject *arg);
typedef void (^block4_t)(id arg);

void fn(block4_t arg); // expected-note {{passing argument to parameter 'arg' here}}

void another_fn(block2_t arg);

int main() {
    block1_t b1;
    block2_t b2;
    block3_t b3;
    block3_t b4;
    block4_t b5;

    fn(b1);  // expected-error {{incompatible block pointer types passing 'block1_t' (aka 'void (^)(int)') to parameter of type 'block4_t' (aka 'void (^)(id)')}}
    fn(b2);  // must succeed: block1_t *is* compatible with id
    fn(b3);  // succeeds: NSObject* compatible with id
    fn(b4);  // succeeds: id compatible with id

    another_fn(b5);
}
