1 /* { dg-options "-O3 -fgraphite-identity" } */
2 
3 typedef struct sv TEST_SV;
4 typedef struct av TEST_AV;
5 typedef struct magic TEST_MAGIC;
6 typedef struct xpvav TEST_XPVAV;
7 struct sv
8 {
9     void* sv_any;
10 };
11 struct av
12 {
13     TEST_XPVAV* sv_any;
14 };
15 struct xpvav
16 {
17     char* xav_array;
18     long int xav_fill;
19     long int xav_max;
20 };
21 struct magic {
22     TEST_SV* mg_obj;
23 };
24 extern TEST_SV PL_sv_undef;
25 void
Perl_av_fill(register TEST_AV * av,int fill)26 Perl_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