aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/Wrestrict-24.c
blob: d224d80f87ab0a3a0bde3bd241c26c4ef03b006f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* 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);
}