re PR c++/52369 (Const-qualified non-class base member and defaulted default constructor)
2014-03-26 Fabien Chene <fabien@gcc.gnu.org> PR c++/52369 * cp/method.c (walk_field_subobs): improve the diagnostic locations for both REFERENCE_TYPEs and non-static const members. * cp/init.c (diagnose_uninitialized_cst_or_ref_member): use %q#D instead of %qD to be consistent with the c++11 diagnostic. 2014-03-26 Fabien Chene <fabien@gcc.gnu.org> PR c++/52369 * g++.dg/init/const10.C: New. * g++.dg/init/const11.C: New. * g++.dg/init/pr25811.C: Adjust. * g++.dg/init/pr29043.C: Likewise. * g++.dg/init/pr43719.C: Likewise. * g++.dg/init/pr44086.C: Likewise. * g++.dg/init/ctor8.C: Likewise. * g++.dg/init/uninitialized1.C: Likewise. From-SVN: r208854
This commit is contained in:
parent
c288ec8f21
commit
816551fe37
12 changed files with 194 additions and 86 deletions
|
@ -1,3 +1,10 @@
|
|||
2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
|
||||
PR c++/52369
|
||||
* cp/method.c (walk_field_subobs): improve the diagnostic
|
||||
locations for both REFERENCE_TYPEs and non-static const members.
|
||||
* cp/init.c (diagnose_uninitialized_cst_or_ref_member): use %q#D
|
||||
instead of %qD to be consistent with the c++11 diagnostic.
|
||||
|
||||
2014-03-25 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/60566
|
||||
|
|
|
@ -2157,7 +2157,7 @@ diagnose_uninitialized_cst_or_ref_member_1 (tree type, tree origin,
|
|||
"of %q#T", DECL_CONTEXT (field), origin);
|
||||
}
|
||||
inform (DECL_SOURCE_LOCATION (field),
|
||||
"%qD should be initialized", field);
|
||||
"%q#D should be initialized", field);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2185,7 +2185,7 @@ diagnose_uninitialized_cst_or_ref_member_1 (tree type, tree origin,
|
|||
"of %q#T", DECL_CONTEXT (field), origin);
|
||||
}
|
||||
inform (DECL_SOURCE_LOCATION (field),
|
||||
"%qD should be initialized", field);
|
||||
"%q#D should be initialized", field);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1110,15 +1110,23 @@ walk_field_subobs (tree fields, tree fnname, special_function_kind sfk,
|
|||
&& default_init_uninitialized_part (mem_type))
|
||||
{
|
||||
if (diag)
|
||||
error ("uninitialized non-static const member %q#D",
|
||||
field);
|
||||
{
|
||||
error ("uninitialized const member in %q#T",
|
||||
current_class_type);
|
||||
inform (DECL_SOURCE_LOCATION (field),
|
||||
"%q#D should be initialized", field);
|
||||
}
|
||||
bad = true;
|
||||
}
|
||||
else if (TREE_CODE (mem_type) == REFERENCE_TYPE)
|
||||
{
|
||||
if (diag)
|
||||
error ("uninitialized non-static reference member %q#D",
|
||||
field);
|
||||
{
|
||||
error ("uninitialized reference member in %q#T",
|
||||
current_class_type);
|
||||
inform (DECL_SOURCE_LOCATION (field),
|
||||
"%q#D should be initialized", field);
|
||||
}
|
||||
bad = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
2014-03-26 Fabien Chêne <fabien@gcc.gnu.org>
|
||||
|
||||
PR c++/52369
|
||||
* g++.dg/init/const10.C: New.
|
||||
* g++.dg/init/const11.C: New.
|
||||
* g++.dg/init/pr25811.C: Adjust.
|
||||
* g++.dg/init/pr29043.C: Likewise.
|
||||
* g++.dg/init/pr43719.C: Likewise.
|
||||
* g++.dg/init/pr44086.C: Likewise.
|
||||
* g++.dg/init/ctor8.C: Likewise.
|
||||
* g++.dg/init/uninitialized1.C: Likewise.
|
||||
|
||||
2014-03-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR sanitizer/60636
|
||||
|
|
33
gcc/testsuite/g++.dg/init/const10.C
Normal file
33
gcc/testsuite/g++.dg/init/const10.C
Normal file
|
@ -0,0 +1,33 @@
|
|||
// PR C++/52369
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
class B // { dg-message "implicitly deleted" }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 4 }
|
||||
{
|
||||
int const v_; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct D : B {}; // { dg-error "deleted" }
|
||||
|
||||
class A // { dg-message "implicitly deleted" }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 12 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct C : A {}; // { dg-error "deleted" }
|
||||
|
||||
void f()
|
||||
{
|
||||
D d; // { dg-error "use of deleted" }
|
||||
new D; // { dg-error "use of deleted" }
|
||||
D(); // { dg-error "use of deleted" }
|
||||
new D(); // { dg-error "use of deleted" }
|
||||
|
||||
C c; // { dg-error "use of deleted" }
|
||||
new C; // { dg-error "use of deleted" }
|
||||
C(); // { dg-error "use of deleted" }
|
||||
new C(); // { dg-error "use of deleted" }
|
||||
}
|
||||
|
||||
|
29
gcc/testsuite/g++.dg/init/const11.C
Normal file
29
gcc/testsuite/g++.dg/init/const11.C
Normal file
|
@ -0,0 +1,29 @@
|
|||
// PR C++/52369
|
||||
// { dg-do compile { target { ! c++11 } } }
|
||||
|
||||
class B
|
||||
{
|
||||
int const v_; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct D : B {};
|
||||
|
||||
class A
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct C : A {};
|
||||
|
||||
void f()
|
||||
{
|
||||
D d; // { dg-error "uninitialized" }
|
||||
new D; // { dg-error "uninitialized" }
|
||||
D();
|
||||
new D();
|
||||
|
||||
C c; // { dg-error "uninitialized" }
|
||||
new C; // { dg-error "uninitialized" }
|
||||
C(); // { dg-error "value-initialization" }
|
||||
new C(); // { dg-error "value-initialization" }
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
// PR c++/29039
|
||||
|
||||
typedef struct S { // { dg-error "reference" "" { target c++11 } }
|
||||
typedef struct S { // { dg-error "reference" "" { target c++11 } }
|
||||
int &r;
|
||||
}; // { dg-warning "'typedef' was ignored" }
|
||||
|
||||
|
|
|
@ -1,51 +1,60 @@
|
|||
// PR c++/25811
|
||||
// { dg-do compile }
|
||||
|
||||
struct A1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A1 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 4 }
|
||||
{
|
||||
int const j; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const j; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A2 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 10 }
|
||||
{
|
||||
int const volatile i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const volatile i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A3 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 16 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A4 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 22 }
|
||||
{
|
||||
int const& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A5 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A5 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 28 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
template <class T> struct S1 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 35 }
|
||||
{
|
||||
T const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
template <class T> struct S2 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 41 }
|
||||
{
|
||||
T const volatile i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const volatile i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
template <class T> struct S3 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 47 }
|
||||
{
|
||||
T& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
template <class T> struct S4 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 53 }
|
||||
{
|
||||
T const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const i; // { dg-message "should be initialized" }
|
||||
T& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct X
|
||||
|
@ -55,44 +64,50 @@ struct X
|
|||
int const& r;
|
||||
};
|
||||
|
||||
struct Y11 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Y11 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 67 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Y1 // { dg-error "deleted" "" { target c++11 } }
|
||||
struct Y1 // { dg-error "deleted" "" { target c++11 } }
|
||||
{
|
||||
Y11 a[1];
|
||||
};
|
||||
|
||||
struct Y22 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Y22 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 78 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Y2 // { dg-error "deleted" "" { target c++11 } }
|
||||
struct Y2 // { dg-error "deleted" "" { target c++11 } }
|
||||
{
|
||||
Y22 a[1];
|
||||
};
|
||||
|
||||
struct Z1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z1 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 89 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z2 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 95 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z3 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 101 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z4 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 107 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z5
|
||||
|
@ -100,7 +115,7 @@ struct Z5
|
|||
int i;
|
||||
};
|
||||
|
||||
struct Z // { dg-error "deleted" "" { target c++11 } }
|
||||
struct Z // { dg-error "deleted" "" { target c++11 } }
|
||||
{
|
||||
Z1 z1;
|
||||
Z2 z2;
|
||||
|
@ -109,9 +124,10 @@ struct Z // { dg-error "deleted" "" { target c++11 } }
|
|||
Z5 z5;
|
||||
};
|
||||
|
||||
union U // { dg-error "uninitialized" "" { target c++11 } }
|
||||
union U // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 127 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
void f1 ()
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
// PR c++/29043
|
||||
// { dg-do compile }
|
||||
|
||||
struct S // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct S // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 4 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
class C
|
||||
|
@ -13,9 +14,10 @@ public:
|
|||
S s;
|
||||
};
|
||||
|
||||
struct S2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct S2 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 17 }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
class C2
|
||||
|
@ -33,9 +35,10 @@ class C3
|
|||
};
|
||||
};
|
||||
|
||||
struct S4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct S4 // { dg-message "implicitly deleted" "" { target c++11 } }
|
||||
// { dg-error "uninitialized" "" { target c++11 } 38 }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct C4
|
||||
|
@ -46,7 +49,7 @@ struct C4
|
|||
|
||||
struct C5
|
||||
{
|
||||
C5() {} // { dg-message "uninitialized" }
|
||||
C5() {} // { dg-error "uninitialized" }
|
||||
int const iit[ 1 ];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
// PR c++/43719
|
||||
// { dg-do compile }
|
||||
|
||||
struct A1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const j; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const j; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const volatile i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const volatile i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct A5 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A5 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
T const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
T const volatile i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const volatile i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
T& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
template <class T> struct S4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
T const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
T const i; // { dg-message "should be initialized" }
|
||||
T& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct X
|
||||
|
@ -55,9 +55,9 @@ struct X
|
|||
int const& r;
|
||||
};
|
||||
|
||||
struct Y11 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Y11 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Y1 // { dg-error "deleted" "" { target c++11 } }
|
||||
|
@ -65,9 +65,9 @@ struct Y1 // { dg-error "deleted" "" { target c++11 } }
|
|||
Y11 a[1];
|
||||
};
|
||||
|
||||
struct Y22 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Y22 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Y2 // { dg-error "deleted" "" { target c++11 } }
|
||||
|
@ -75,24 +75,24 @@ struct Y2 // { dg-error "deleted" "" { target c++11 } }
|
|||
Y22 a[1];
|
||||
};
|
||||
|
||||
struct Z1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z1 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z2 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z3 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct Z4 // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int& ref; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int& ref; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct Z5
|
||||
|
@ -109,9 +109,9 @@ struct Z // { dg-error "deleted" "" { target c++11 } }
|
|||
Z5 z5;
|
||||
};
|
||||
|
||||
union U // { dg-error "uninitialized" "" { target c++11 } }
|
||||
union U // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const i; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
// PR c++/44086
|
||||
// { dg-do compile }
|
||||
|
||||
struct A // { dg-error "uninitialized" "" { target c++11 } }
|
||||
struct A // { dg-error "uninitialized" "" { target c++11 } }
|
||||
{
|
||||
int const i : 2; // { dg-message "should be initialized" "" { target { ! c++11 } } }
|
||||
int const i : 2; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
void f()
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// PR c++/58126
|
||||
|
||||
struct A { // { dg-error "uninitialized" "" { target c++11 } }
|
||||
const int value1;
|
||||
int& value2;
|
||||
struct A { // { dg-error "uninitialized" "" { target c++11 } }
|
||||
const int value1; // { dg-message "should be initialized" }
|
||||
int& value2; // { dg-message "should be initialized" }
|
||||
};
|
||||
|
||||
struct B : A { }; // { dg-error "deleted" "" { target c++11 } }
|
||||
|
|
Loading…
Add table
Reference in a new issue