blob: cedd2c720d90930776c75ed6fff02ff4fdfc2b37 [file] [log] [blame]
Volodymyr Sapsaiddf524c2017-09-21 17:58:27 +00001// RUN: %clang_cc1 -std=c++1z -verify -emit-llvm-only %s
2// expected-no-diagnostics
3
4// rdar://problem/33888545
5template <unsigned int BUFFER_SIZE> class Buffer {};
6
7class A {
8public:
9 int status;
10};
11
12template <unsigned int N> A parse(Buffer<N> buffer);
13
14template<unsigned int N>
15void init_in_if(Buffer<N> buffer) {
16 if (A a = parse(buffer); a.status > 0) {
17 }
18}
19
20template<unsigned int N>
21void init_in_switch(Buffer<N> buffer) {
22 switch (A a = parse(buffer); a.status) {
23 default:
24 break;
25 }
26}
27
28void test() {
29 Buffer<10> buffer;
30 init_in_if(buffer);
31 init_in_switch(buffer);
32}