/* PR opt/14288 */
/* { dg-do compile } */
/* { dg-options "-O -Wall" } */
volatile int sink;
extern int foo(int);
struct S
{
  int x;
  S() { x = foo(0); }
  ~S() { sink = x; }
};
int test(bool p)
{
  return p ? foo(S().x) : 0;	/* { dg-bogus "uninitialized" } */
}