1/* { dg-options "-O3 -fgraphite-identity" } */
2
3typedef struct sv TEST_SV;
4typedef struct av TEST_AV;
5typedef struct magic TEST_MAGIC;
6typedef struct xpvav TEST_XPVAV;
7struct sv
8{
9    void* sv_any;
10};
11struct av
12{
13    TEST_XPVAV* sv_any;
14};
15struct xpvav
16{
17    char* xav_array;
18    long int xav_fill;
19    long int xav_max;
20};
21struct magic {
22    TEST_SV* mg_obj;
23};
24extern TEST_SV PL_sv_undef;
25void
26Perl_av_fill( register TEST_AV *av, int fill)
27{
28    TEST_MAGIC *mg;
29    int key = ((TEST_XPVAV*) (av)->sv_any)->xav_fill;
30    TEST_SV** ary = ((TEST_SV**)((TEST_XPVAV*) (av)->sv_any)->xav_array);
31    while (key < fill)
32          ary[++key] = &PL_sv_undef;
33}
34