// PR c++/19317 // { dg-options "-O2" } // { dg-do run } extern "C" void abort (void); struct A { int c; int d; int e; int f; }; A foo (const A *x, const A *r) { A t; t.c = -1; t.c += x->c < r->c ? x->c : r->c; t.d = 0; t.e = 0; t.f = 0; return t; } int main () { A a; a.c = 10; a.d = 0; a.e = 0; a.f = 0; A b; b.c = 100; b.d = 0; b.e = 0; b.f = 0; a = foo (&b, &a); if (a.c != 9) abort (); }