| /* 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); |
| } |