// 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); | |
} |