(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
compile/
pr44784.c
       1  typedef struct rtx_def *rtx;
       2  enum rtx_code { SUBREG };
       3  typedef union rtunion_def {
       4      long rtint;
       5      unsigned long rtuint;
       6      rtx rtx;
       7  } rtunion;
       8  struct rtx_def {
       9      enum rtx_code code: 8;
      10      rtunion fld[1];
      11  };
      12  typedef struct simple_bitmap_def {
      13      unsigned long long elms[1];
      14  } *sbitmap;
      15  struct df_link {
      16      struct df_link *next;
      17      rtx reg;
      18  };
      19  typedef enum { UNDEFINED,   CONSTANT,   VARYING } latticevalue;
      20  typedef struct {
      21      latticevalue lattice_val;
      22  } value;
      23  static value *values;
      24  static sbitmap ssa_edges;
      25  void defs_to_varying (struct df_link *start)
      26  {
      27    struct df_link *currdef;
      28    for (currdef = start;
      29         currdef;
      30         currdef = currdef->next)
      31      {
      32        rtx reg = currdef->reg;
      33        if (values[(reg->code == SUBREG
      34  		  ? reg->fld[0].rtx
      35  		  : reg)->fld[0].rtuint].lattice_val != VARYING)
      36  	ssa_edges->elms [(reg->code == SUBREG
      37  			  ? reg->fld[0].rtx
      38  			  : reg)->fld[0].rtuint / 64]
      39  	    |= ((unsigned long long) 1
      40  		<< (reg->code == SUBREG
      41  		    ? reg->fld[0].rtx
      42  		    : reg)->fld[0].rtuint % 64);
      43        values[(reg->code == SUBREG
      44  	      ? reg->fld[0].rtx
      45  	      : reg)->fld[0].rtuint].lattice_val = VARYING;
      46      }
      47  }