1 /* { dg-do compile } */
2 /* { dg-additional-options "-mcpu=cortex-a72" { target aarch64*-*-* } } */
3 
4 class A {
5 public:
6   unsigned char *fn1();
7   int fn2();
8 };
9 
10 class B {
11   A fld1;
12   int fld2;
13   void fn3();
14   unsigned char fld3;
15 };
16 
17 int a;
18 
19 void
fn3()20 B::fn3() {
21   int b = fld1.fn2() / 8;
22   unsigned char *c = fld1.fn1(), *d = &fld3, *e = c;
23   for (; a < fld2;)
24     for (int j = 0; j < b; j++)
25       *d++ = e[j];
26   for (; 0 < fld2;)
27     for (int j = 0; j < b; j++)
28       e[j] = *d++;
29   for (; fld2;)
30     ;
31 }
32