/* PR rtl-optimization/58668 */ /* { dg-do compile } */ /* { dg-options "-O2" } */ /* { dg-additional-options "-mthumb" { target { { arm*-*-* } && arm_thumb2_ok } } } */ void *fn1 (void *); void *fn2 (void *, const char *); void fn3 (void *); void fn4 (void *, int); void * test (void *x) { void *a, *b; if (!(a = fn1 (x))) return (void *) 0; if (!(b = fn2 (a, "w"))) { fn3 (a); return (void *) 0; } fn3 (a); fn4 (b, 1); return b; }