/* PR target/70566. */ #define NULL 0 struct mystruct { unsigned int f1 : 1; unsigned int f2 : 1; unsigned int f3 : 1; }; __attribute__ ((noinline)) void myfunc (int a, void *b) { } __attribute__ ((noinline)) int myfunc2 (void *a) { return 0; } static void set_f2 (struct mystruct *user, int f2) { if (user->f2 != f2) myfunc (myfunc2 (NULL), NULL); else __builtin_abort (); } __attribute__ ((noinline)) void foo (void *data) { struct mystruct *user = data; if (!user->f2) set_f2 (user, 1); } int main (void) { struct mystruct a; a.f1 = 1; a.f2 = 0; foo (&a); return 0; }