// RUN: %clang_cc1 -emit-llvm %s -o -


void doesntThrow() throw();
struct F {
  ~F() { doesntThrow(); }
};

void atest() {
  F A;
lab:
  F B;
  goto lab;
}

void test(int val) {
label: {
   F A;
   F B;
   if (val == 0) goto label;
   if (val == 1) goto label;
}
}

void test3(int val) {
label: {
   F A;
   F B;
   if (val == 0) { doesntThrow(); goto label; }
   if (val == 1) { doesntThrow(); goto label; }
}
}

void test4(int val) {
label: {
   F A;
   F B;
   if (val == 0) { F C; goto label; }
   if (val == 1) { F D; goto label; }
}
}
