(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
ifc-4.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-c -O2 -ftree-vectorize -fdump-tree-ifcvt-stats" { target *-*-* } } */
       3  
       4  struct ht
       5  {
       6    void * (*alloc_subobject) (int);
       7  };
       8  typedef struct cpp_reader cpp_reader;
       9  typedef struct cpp_token cpp_token;
      10  typedef struct cpp_macro cpp_macro;
      11  enum cpp_ttype
      12  {
      13      CPP_PASTE,
      14  };
      15  struct cpp_token {
      16    __extension__ enum cpp_ttype type : 8;
      17  } cpp_comment_table;
      18  struct cpp_macro {
      19    union cpp_macro_u
      20    {
      21      cpp_token * tokens;
      22    } exp;
      23    unsigned int count;
      24  };
      25  struct cpp_reader
      26  {
      27    struct ht *hash_table;
      28  };
      29  void
      30  create_iso_definition (cpp_reader *pfile, cpp_macro *macro)
      31  {
      32    unsigned int num_extra_tokens = 0;
      33    {
      34      cpp_token *tokns =
      35        (cpp_token *) pfile->hash_table->alloc_subobject (sizeof (cpp_token)
      36  							* macro->count);
      37      {
      38        cpp_token *normal_dest = tokns;
      39        cpp_token *extra_dest = tokns + macro->count - num_extra_tokens;
      40        unsigned int i;
      41        for (i = 0; i < macro->count; i++)
      42  	{
      43  	  if (macro->exp.tokens[i].type == CPP_PASTE)
      44  	    *extra_dest++ = macro->exp.tokens[i];
      45  	  else
      46  	    *normal_dest++ = macro->exp.tokens[i];
      47  	}
      48      }
      49    }
      50  }
      51  
      52  /* This cannot be if-converted because the stores are to aggregate types.  */
      53  /* { dg-final { scan-tree-dump-times "Applying if-conversion" 0 "ifcvt" } } */