1 // PR target/77822
2 // { dg-do compile }
3 
4 using UINT8 = char;
5 using UINT32 = int;
6 using UINT64 = long;
7 class A
8 {
9   void m_fn1 ();
10   struct B
11   {
12     UINT32 m_multiplier;
13   };
14   UINT8 m_datawidth;
15   UINT8 m_subunits;
16   B m_subunit_infos[];
17 };
18 int a;
19 UINT64 b;
20 void
m_fn1()21 A::m_fn1 ()
22 {
23   int c = 32, d = m_datawidth / c;
24   for (int e = 0; e < d; e++)
25     {
26       UINT32 f = e * 32;
27       if (b >> f & 1)
28 	m_subunit_infos[m_subunits].m_multiplier = a;
29     }
30 }
31