blob: c96eda4480323d3c3499c9ec80473a155c84635f [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -verify -std=c++98 %s
Douglas Gregor64bffa92008-11-05 16:20:31 +00002
3// Verify that we can't initialize non-aggregates with an initializer
4// list.
5struct NonAggr1 {
6 NonAggr1(int) { }
7
8 int m;
9};
10
11struct Base { };
12struct NonAggr2 : public Base {
13 int m;
14};
15
16class NonAggr3 {
17 int m;
18};
19
Douglas Gregor64bffa92008-11-05 16:20:31 +000020struct NonAggr4 {
Sebastian Redld93f0dd2008-11-06 15:59:35 +000021 int m;
22 virtual void f();
Douglas Gregor64bffa92008-11-05 16:20:31 +000023};
24
25NonAggr1 na1 = { 17 }; // expected-error{{initialization of non-aggregate type 'struct NonAggr1' with an initializer list}}
26NonAggr2 na2 = { 17 }; // expected-error{{initialization of non-aggregate type 'struct NonAggr2' with an initializer list}}
27NonAggr3 na3 = { 17 }; // expected-error{{initialization of non-aggregate type 'class NonAggr3' with an initializer list}}
Sebastian Redld93f0dd2008-11-06 15:59:35 +000028NonAggr4 na4 = { 17 }; // expected-error{{initialization of non-aggregate type 'struct NonAggr4' with an initializer list}}