1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-dom2" } */
4 typedef __SIZE_TYPE__ size_t;
5 extern void abort (void) __attribute__ ((__noreturn__));
7 typedef union tree_node *tree;
8 union gimple_statement_d;
9 typedef union gimple_statement_d *gimple;
10 typedef const union gimple_statement_d *const_gimple;
21 struct gimple_statement_base
25 enum gimple_code code:8;
29 enum gimple_statement_structure_enum
39 union gimple_statement_d
41 struct gimple_statement_base gsbase;
48 extern size_t const gimple_ops_offset_[];
51 extern enum gimple_statement_structure_enum const gss_for_code_[];
54 static inline enum gimple_code
55 gimple_code (const_gimple g)
57 return g->gsbase.code;
63 static inline enum gimple_statement_structure_enum
64 gss_for_code (enum gimple_code code)
66 return gss_for_code_[code];
72 static inline enum gimple_statement_structure_enum
73 gimple_statement_structure (gimple gs)
75 return gss_for_code (gimple_code (gs));
80 gimple_ops (gimple gs)
83 off = gimple_ops_offset_[gimple_statement_structure (gs)];
84 return (tree *) ((char *) gs + off);
89 gimple_set_op (gimple gs, unsigned i, tree op)
91 gimple_ops (gs)[i] = op;
95 gimple_return_set_retval (gimple gs, tree retval)
97 const_gimple __gs = (gs);
98 if (gimple_code (__gs) != (GIMPLE_RETURN))
100 gimple_set_op (gs, 0, retval);
102 /* { dg-final { scan-tree-dump-times "gss_for_code_.10." 1 "dom2"} } */