PR tree-optimization/48483 - Construct from yourself w/o warning
gcc/testsuite/ChangeLog: PR tree-optimization/48483 * g++.dg/warn/uninit-pr48483.C: New test.
This commit is contained in:
parent
1b229a3050
commit
26e80a4968
56
gcc/testsuite/g++.dg/warn/uninit-pr48483.C
Normal file
56
gcc/testsuite/g++.dg/warn/uninit-pr48483.C
Normal file
@ -0,0 +1,56 @@
|
||||
/* PR tree-optimization/48483 - Construct from yourself w/o warning
|
||||
{ dg-do compile }
|
||||
{ dg-options "-Wall" } */
|
||||
|
||||
void sink (int);
|
||||
|
||||
struct B
|
||||
{
|
||||
int x;
|
||||
};
|
||||
|
||||
struct A
|
||||
{
|
||||
B& b;
|
||||
A (B &x): b(x) { }
|
||||
};
|
||||
|
||||
__attribute__ ((noipa)) void test_c0_O0 ()
|
||||
{
|
||||
A a (a.b); // { dg-warning "'a.A::b' is used uninitialized" }
|
||||
sink (a.b.x);
|
||||
}
|
||||
|
||||
__attribute__ ((noipa)) int test_c3_O0 (void)
|
||||
{
|
||||
struct S { int a; } s;
|
||||
return s.a; // { dg-warning "s.test_c3_O0\\\(\\\)::S::a' is used uninitialized" }
|
||||
}
|
||||
|
||||
#pragma GCC optimize ("1")
|
||||
|
||||
__attribute__ ((noipa)) void test_c0_O1 ()
|
||||
{
|
||||
A a (a.b); // { dg-warning "'a.A::b' is used uninitialized" }
|
||||
sink (a.b.x);
|
||||
}
|
||||
|
||||
__attribute__ ((noipa)) int test_c3_O1 (void)
|
||||
{
|
||||
struct S { int a; } s;
|
||||
return s.a; // { dg-warning "s.test_c3_O1\\\(\\\)::S::a' is used uninitialized" }
|
||||
}
|
||||
|
||||
#pragma GCC optimize ("2")
|
||||
|
||||
__attribute__ ((noipa)) void test_c0_O2 ()
|
||||
{
|
||||
A a (a.b); // { dg-warning "'a.A::b' is used uninitialized" }
|
||||
sink (a.b.x);
|
||||
}
|
||||
|
||||
__attribute__ ((noipa)) int test_c3_O2 (void)
|
||||
{
|
||||
struct S { int a; } s;
|
||||
return s.a; // { dg-warning "s.test_c3_O2\\\(\\\)::S::a' is used uninitialized" }
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user