From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/g++.dg/init/pr43719.C | 197 ++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 gcc/testsuite/g++.dg/init/pr43719.C (limited to 'gcc/testsuite/g++.dg/init/pr43719.C') diff --git a/gcc/testsuite/g++.dg/init/pr43719.C b/gcc/testsuite/g++.dg/init/pr43719.C new file mode 100644 index 000000000..d3487c94a --- /dev/null +++ b/gcc/testsuite/g++.dg/init/pr43719.C @@ -0,0 +1,197 @@ +// PR c++/43719 +// { dg-do compile } + +struct A1 +{ + int const j; // { dg-message "should be initialized" } +}; + +struct A2 +{ + int const volatile i; // { dg-message "should be initialized" } +}; + +struct A3 +{ + int& ref; // { dg-message "should be initialized" } +}; + +struct A4 +{ + int const& ref; // { dg-message "should be initialized" } +}; + +struct A5 +{ + int& ref; // { dg-message "should be initialized" } + int const i; // { dg-message "should be initialized" } +}; + +template struct S1 +{ + T const i; // { dg-message "should be initialized" } +}; + +template struct S2 +{ + T const volatile i; // { dg-message "should be initialized" } +}; + +template struct S3 +{ + T& ref; // { dg-message "should be initialized" } +}; + +template struct S4 +{ + T const i; // { dg-message "should be initialized" } + T& ref; // { dg-message "should be initialized" } +}; + +struct X +{ + X () : c (0), r (c) {} + int const c; + int const& r; +}; + +struct Y11 +{ + int const i; // { dg-message "should be initialized" } +}; + +struct Y1 +{ + Y11 a[1]; +}; + +struct Y22 +{ + int& ref; // { dg-message "should be initialized" } +}; + +struct Y2 +{ + Y22 a[1]; +}; + +struct Z1 +{ + int const i; // { dg-message "should be initialized" } +}; + +struct Z2 +{ + int& ref; // { dg-message "should be initialized" } +}; + +struct Z3 +{ + int const i; // { dg-message "should be initialized" } +}; + +struct Z4 +{ + int& ref; // { dg-message "should be initialized" } +}; + +struct Z5 +{ + int i; +}; + +struct Z +{ + Z1 z1; + Z2 z2; + Z3 z3; + Z4 z4; + Z5 z5; +}; + +union U +{ + int const i; // { dg-message "should be initialized" } +}; + + +void f1 () +{ + A1 a1; // { dg-error "uninitialized const member" } +} + +void f2 () +{ + A2 a2; // { dg-error "uninitialized const member" } +} + +void f3 () +{ + A3 a3; // { dg-error "uninitialized reference member" } +} + +void f4 () +{ + A4 a4; // { dg-error "uninitialized reference member" } +} + +void f5 () +{ + A5 a5; // { dg-error "uninitialized reference member|uninitialized const member" } +} + +void f6 () +{ + S1 s; // { dg-error "uninitialized const member" } +} + +void f7 () +{ + S2 s; // { dg-error "uninitialized const member" } +} + +void f8 () +{ + S3 s; // { dg-error "uninitialized reference member" } +} + +void f9 () +{ + S4 s; // { dg-error "uninitialized reference member|uninitialized const member" } +} + +void f10 () +{ + X x; +} + +void f11 () +{ + A1 a[ 1 ]; // { dg-error "uninitialized const member" } +} + +void f12 () +{ + A3 a[ 1 ]; // { dg-error "uninitialized reference member" } +} + +void f13 () +{ + Y1 y1; // { dg-error "uninitialized const member" } +} + +void f14 () +{ + Y2 y2; // { dg-error "uninitialized reference member" } +} + +void f15 () +{ + Z z; // { dg-error "uninitialized reference member|uninitialized const member" } +} + +void f16 () +{ + U u; // { dg-error "uninitialized const member" } +} + -- cgit v1.2.3