// RUN: %clang_cc1 -std=c++1z -verify -emit-llvm-only %s
// expected-no-diagnostics

// rdar://problem/33888545
template <unsigned int BUFFER_SIZE> class Buffer {};

class A {
public:
  int status;
};

template <unsigned int N> A parse(Buffer<N> buffer);

template<unsigned int N>
void init_in_if(Buffer<N> buffer) {
  if (A a = parse(buffer); a.status > 0) {
  }
}

template<unsigned int N>
void init_in_switch(Buffer<N> buffer) {
  switch (A a = parse(buffer); a.status) {
    default:
      break;
  }
}

void test() {
  Buffer<10> buffer;
  init_in_if(buffer);
  init_in_switch(buffer);
}
