1  /* { dg-do compile } */
       2  /* { dg-options "-O1 -fdump-tree-cddce1" } */
       3  
       4  struct rtx_def;
       5  typedef struct rtx_def *rtx;
       6  typedef const struct rtx_def *const_rtx;
       7  enum machine_mode
       8  {
       9    MAX_MACHINE_MODE,
      10    NUM_MACHINE_MODES = MAX_MACHINE_MODE
      11  };
      12  extern const char *const mode_name[NUM_MACHINE_MODES];
      13  enum mode_class
      14  { MODE_RANDOM, MODE_CC, MODE_INT, MODE_PARTIAL_INT, MODE_FRACT, MODE_UFRACT,
      15      MODE_ACCUM, MODE_UACCUM, MODE_FLOAT, MODE_DECIMAL_FLOAT, MODE_COMPLEX_INT,
      16      MODE_COMPLEX_FLOAT, MODE_VECTOR_INT, MODE_VECTOR_FRACT,
      17      MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM,
      18      MODE_VECTOR_FLOAT, MAX_MODE_CLASS };
      19  extern const unsigned char mode_class[NUM_MACHINE_MODES];
      20  extern const unsigned short mode_precision[NUM_MACHINE_MODES];
      21  struct rtx_def
      22  {
      23    __extension__ enum machine_mode mode:8;
      24  };
      25  void fancy_abort (const char *, int, const char *);
      26  void
      27  convert_move (rtx to, rtx from, int unsignedp)
      28  {
      29    enum machine_mode to_mode = ((enum machine_mode) (to)->mode);
      30    enum machine_mode from_mode = ((enum machine_mode) (from)->mode);
      31    ((void)
      32     (!((mode_precision[from_mode] != mode_precision[to_mode])
      33        || ((((enum mode_class) mode_class[from_mode]) == MODE_DECIMAL_FLOAT) !=
      34  	  (((enum mode_class) mode_class[to_mode]) ==
      35  	   MODE_DECIMAL_FLOAT))) ?
      36      fancy_abort ("/home/gcc/virgin-gcc/gcc/expr.c", 380, __FUNCTION__),
      37      0 : 0));
      38  }
      39  
      40  /* { dg-final { scan-tree-dump-not " ^ " "cddce1"} } */