// REQUIRES: x86-registered-target
// RUN: %clang_cc1 -triple i386-apple-darwin10 -fblocks -g -S %s -o -

// rdar://7590323
typedef struct dispatch_queue_s *dispatch_queue_t;
__attribute__((visibility("default")))
extern struct dispatch_queue_s _dispatch_main_q;
typedef struct dispatch_item_s *dispatch_item_t;
typedef void (^dispatch_legacy_block_t)(dispatch_item_t);
dispatch_item_t LEGACY_dispatch_call(dispatch_queue_t dq,
                                     dispatch_legacy_block_t dispatch_block,
                                     dispatch_legacy_block_t callback_block) {
  dispatch_queue_t lq = _dispatch_queue_get_current() ?: (&_dispatch_main_q);
  dispatch_async(dq, ^{
      if (callback_block) {
        dispatch_async(lq, ^{
          }
          );
      }
    }
    );
}

// radar://9008853
typedef struct P {
  int x;
} PS;
# 1 ""
void foo() {
  PS p2;
}
