blob: 21280b7aaf51e11402cd1d1c22177c3577c63745 [file] [log] [blame]
// PR target/70245
// { dg-do run }
// { dg-additional-sources "pr70245-aux.cc" }
// { dg-options "-O2" }
// { dg-additional-options "-fPIC" { target fpic } }
// { dg-additional-options "-march=i386 -mtune=atom" { target ia32 } }
#include "pr70245.h"
struct A *a, *i;
int b, c, e, l;
F d;
static A *
foo (B *x, int *y, int *z)
{
unsigned char *f = (unsigned char *) fn3 (y);
D *g = (D *) f;
A *h;
if (e || a || c || b || g->d)
return 0;
h = (A *) fn4 ();
__builtin_memcpy (h, a, sizeof (A));
h->a1 = *(D *) f;
if (d)
{
d (h, x, f + g->d, z);
if (*z)
fn2 ();
}
return h;
}
static A *
bar (B *x, int *y)
{
int *j = fn1 (x->b, y);
if (*y > 0)
return 0;
i = foo (x, j, y);
return i;
}
B k;
void
baz (int x)
{
if (x)
bar (0, 0);
bar (&k, &l);
}