// RUN: %clang_cc1 -std=c++1z -verify -emit-llvm-only %s // expected-no-diagnostics template class Buffer {}; class A { public: int status; }; template A parse(Buffer buffer); template void init_in_if(Buffer buffer) { if (A a = parse(buffer); a.status > 0) { } } template void init_in_switch(Buffer buffer) { switch (A a = parse(buffer); a.status) { default: break; } } void test() { Buffer<10> buffer; init_in_if(buffer); init_in_switch(buffer); }