1  /* PR tree-optimization/105604  - ICE: in tree_to_shwi with vla in struct
       2     and sprintf
       3     { dg-do compile }
       4     { dg-options "-O2 -Wall -Wrestrict" } */
       5  
       6  extern int sprintf (char*, const char*, ...);
       7  
       8  extern void* sink (void*, ...);
       9  
      10  struct {
      11    long users;
      12    long size;
      13    char *data;
      14  } * main_trans;
      15  
      16  void *main___trans_tmp_1;
      17  
      18  int users = 0;
      19  
      20  void test (void)
      21  {
      22    struct {
      23      long users;
      24      long size;
      25      char *data;
      26      int links[users];
      27      char buf[];
      28    } *trans = sink (0);
      29  
      30    trans->data = trans->buf;
      31    main___trans_tmp_1 = trans;
      32    main_trans = main___trans_tmp_1;
      33    sprintf (main_trans->data, "test");
      34    sink (main_trans->data);
      35  }