blob: b89be96dc1d0cab731c0110c3fda109b990e8316 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -ftrapv -mcpu=ev4" } */
typedef struct tnode_t {
struct tnode_t *tn_left, *tn_right;
int v_quad;
} tnode_t;
int constant_addr(const tnode_t *, long *);
int constant_addr(const tnode_t *tn, long *offsp)
{
long offs1 = 0, offs2 = 0;
if (tn->v_quad > 0) {
offs1 = tn->v_quad;
return 0;
} else if (tn->v_quad > -1) {
offs2 = tn->tn_right->v_quad;
if (!constant_addr(tn->tn_left, &offs1))
return 0;
} else {
return 0;
}
*offsp = offs1 + offs2;
return 1;
}