1 // RUN: %clang_cc1 -std=c++2a -verify %s
2 
3 namespace TagVs {
4   struct Bindable { int a; };
5   struct binding_a {}; // expected-note {{previous}}
6   auto [binding_a] = Bindable{}; // expected-error {{redefinition}}
7   auto [binding_b] = Bindable{}; // expected-note {{previous}}
8   struct binding_b {}; // expected-error {{redefinition}}
9 
10   struct vartemplate_a {}; // expected-note {{previous}}
11   template<typename T> int vartemplate_a; // expected-error {{redefinition}}
12   template<typename T> int vartemplate_b; // expected-note {{previous}}
13   struct vartemplate_b {}; // expected-error {{redefinition}}
14 
15   struct aliastemplate_a {}; // expected-note {{previous}}
16   template<typename T> using aliastemplate_a = int; // expected-error {{redefinition}}
17   template<typename T> using aliastemplate_b = int; // expected-note {{previous}}
18   struct aliastemplate_b {}; // expected-error {{redefinition}}
19 }
20