// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t
// RUN: diff %t %s.result
// DISABLE: mingw32

#include "Common.h"

void test(id p, int x) {
  int v;
  switch(x) {
  case 0: {
    v++;
    id w1 = p;
    id w2 = p;
    break;
  }
  case 1: {
    v++;
    id w3 = p;
    break;
  }
  case 2:
    break;
  default:
    break;
  }
}

void test2(int p) {
  switch (p) {
  case 3: {;
    NSObject *o = [[NSObject alloc] init];
    break;
  }
  default:
    break;
  }
}
