/* { dg-do compile } */
/* APPLE LOCAL lno */
/* { dg-options "-O1 -fdump-tree-dom3 -ftree-loop-optimize" } */
   

union tree_node;
typedef union tree_node *tree;
extern const char tree_code_type[];
struct tree_common
{
  int code;
  tree type;
};
struct tree_exp
{
  tree operands[1];
};
union tree_node
{
  struct tree_common common;
  struct tree_exp exp;
};
long
get_alias_set (t)
     tree t;
{
  if (tree_code_type[t->common.code] != 't' && t->common.type == 0)
    return 0;
  if (tree_code_type[t->common.code] != 't')
    {
      while (t->exp.operands[0])
        t = t->exp.operands[0];
    }
}

/* There should be exactly three IF conditionals if we thread jumps
   properly.  */
/* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
 

