/* PR tree-optimization/105604 - ICE: in tree_to_shwi with vla in struct and sprintf { dg-do compile } { dg-options "-O2 -Wall -Wrestrict" } */ extern int sprintf (char*, const char*, ...); extern void* sink (void*, ...); struct { long users; long size; char *data; } * main_trans; void *main___trans_tmp_1; int users = 0; void test (void) { struct { long users; long size; char *data; int links[users]; char buf[]; } *trans = sink (0); trans->data = trans->buf; main___trans_tmp_1 = trans; main_trans = main___trans_tmp_1; sprintf (main_trans->data, "test"); sink (main_trans->data); }