// RUN: %clang_cc1 -fsyntax-only -verify %s struct X { // expected-note{{previous definition is here}} struct X { } x; // expected-error{{nested redefinition of 'X'}} }; struct Y { }; void f(void) { struct Y { }; // okay: this is a different Y } struct T; struct Z { struct T { int x; } t; struct U { int x; } u; }; void f2(void) { struct T t; struct U u; } void f3(void) { struct G { // expected-note{{previous definition is here}} struct G {}; // expected-error{{nested redefinition of 'G'}} }; } void f4(void) { struct G { // expected-note 2{{previous definition is here}} struct G {}; // expected-error{{nested redefinition of 'G'}} }; struct G {}; // expected-error{{redefinition of 'G'}} }