1*67e74705SXin Li // RUN: %clang_cc1 %s -fsyntax-only -verify -pedantic 2*67e74705SXin Li 3*67e74705SXin Li struct emp_1 { // expected-warning {{empty struct is a GNU extension}} 4*67e74705SXin Li }; 5*67e74705SXin Li 6*67e74705SXin Li union emp_2 { // expected-warning {{empty union is a GNU extension}} 7*67e74705SXin Li }; 8*67e74705SXin Li 9*67e74705SXin Li struct emp_3 { // expected-warning {{struct without named members is a GNU extension}} 10*67e74705SXin Li int : 0; 11*67e74705SXin Li }; 12*67e74705SXin Li 13*67e74705SXin Li union emp_4 { // expected-warning {{union without named members is a GNU extension}} 14*67e74705SXin Li int : 0; 15*67e74705SXin Li }; 16*67e74705SXin Li 17*67e74705SXin Li struct emp_5 { // expected-warning {{struct without named members is a GNU extension}} 18*67e74705SXin Li int : 0; 19*67e74705SXin Li int : 0; 20*67e74705SXin Li }; 21*67e74705SXin Li 22*67e74705SXin Li union emp_6 { // expected-warning {{union without named members is a GNU extension}} 23*67e74705SXin Li int : 0; 24*67e74705SXin Li int : 0; 25*67e74705SXin Li }; 26*67e74705SXin Li 27*67e74705SXin Li struct nonamed_1 { // expected-warning {{struct without named members is a GNU extension}} 28*67e74705SXin Li int : 4; 29*67e74705SXin Li }; 30*67e74705SXin Li 31*67e74705SXin Li union nonamed_2 { // expected-warning {{union without named members is a GNU extension}} 32*67e74705SXin Li int : 4; 33*67e74705SXin Li }; 34*67e74705SXin Li 35*67e74705SXin Li struct nonamed_3 { // expected-warning {{struct without named members is a GNU extension}} 36*67e74705SXin Li int : 4; 37*67e74705SXin Li unsigned int : 4; 38*67e74705SXin Li }; 39*67e74705SXin Li 40*67e74705SXin Li union nonamed_4 { // expected-warning {{union without named members is a GNU extension}} 41*67e74705SXin Li int : 4; 42*67e74705SXin Li unsigned int : 4; 43*67e74705SXin Li }; 44