view gcc/testsuite/g++.dg/tree-ssa/ssa-dom.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-dom2" } */

typedef __SIZE_TYPE__ size_t;
extern void abort (void) __attribute__ ((__noreturn__));
union tree_node;
typedef union tree_node *tree;
union gimple_statement_d;
typedef union gimple_statement_d *gimple;
typedef const union gimple_statement_d *const_gimple;

enum gimple_code
{
  GIMPLE_RETURN = 10,
};





struct gimple_statement_base
{


  enum gimple_code code:8;
};


enum gimple_statement_structure_enum
{
  xyz
};






union gimple_statement_d
{
  struct gimple_statement_base gsbase;
};





extern size_t const gimple_ops_offset_[];


extern enum gimple_statement_structure_enum const gss_for_code_[];


static inline enum gimple_code
gimple_code (const_gimple g)
{
  return g->gsbase.code;
}




static inline enum gimple_statement_structure_enum
gss_for_code (enum gimple_code code)
{
  return gss_for_code_[code];
}




static inline enum gimple_statement_structure_enum
gimple_statement_structure (gimple gs)
{
  return gss_for_code (gimple_code (gs));
}


static inline tree *
gimple_ops (gimple gs)
{
  size_t off;
  off = gimple_ops_offset_[gimple_statement_structure (gs)];
  return (tree *) ((char *) gs + off);
}


static inline void
gimple_set_op (gimple gs, unsigned i, tree op)
{
  gimple_ops (gs)[i] = op;
}

void
gimple_return_set_retval (gimple gs, tree retval)
{
  const_gimple __gs = (gs);
  if (gimple_code (__gs) != (GIMPLE_RETURN))
    abort ();
  gimple_set_op (gs, 0, retval);
}
/* { dg-final { scan-tree-dump-times "gss_for_code_.10." 1 "dom2"} } */