/* { dg-do run } */ /* { dg-options "-O3 -std=gnu++11" } */ using complex_t = int __complex__; struct A { complex_t value; A(double r) : value{0, r} {} }; [[gnu::noipa]] void f(int a) { if (a != 1) __builtin_abort(); } [[gnu::noipa]] void g(const char *, int x){} void test(const complex_t &c, const int &x) { if (x < 0) g("%d\n", x); else { f( __imag__ c); } } void f1() { { A a{1}; test(a.value, 123); } } int main() { f1(); return 0; }