aggregate-initialization.cpp revision 64bffa9a6f40e5a3d5556f994f09f7bf45eecd4c
164bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor// RUN: clang -fsyntax-only -verify -std=c++98 %s 264bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 364bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor// Verify that we can't initialize non-aggregates with an initializer 464bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor// list. 564bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregorstruct NonAggr1 { 664bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor NonAggr1(int) { } 764bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 864bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor int m; 964bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor}; 1064bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 1164bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregorstruct Base { }; 1264bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregorstruct NonAggr2 : public Base { 1364bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor int m; 1464bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor}; 1564bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 1664bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregorclass NonAggr3 { 1764bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor int m; 1864bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor}; 1964bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 2064bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor// FIXME: virtual functions 2164bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregorstruct NonAggr4 { 2264bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor}; 2364bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas Gregor 2464bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas GregorNonAggr1 na1 = { 17 }; // expected-error{{initialization of non-aggregate type 'struct NonAggr1' with an initializer list}} 2564bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas GregorNonAggr2 na2 = { 17 }; // expected-error{{initialization of non-aggregate type 'struct NonAggr2' with an initializer list}} 2664bffa9a6f40e5a3d5556f994f09f7bf45eecd4cDouglas GregorNonAggr3 na3 = { 17 }; // expected-error{{initialization of non-aggregate type 'class NonAggr3' with an initializer list}} 27