1 // PR tree-opt/28937
2 // Complete unroll forgot to update the statement usage
3 // which meant we ICEd in add_virtual_operand.
4 
5 // { dg-do compile }
6 // { dg-options "-O2" }
7 
8 
9 class SHA256
10 {
11   unsigned m_digest;
12   unsigned long long m_count;
13   unsigned char _buffer[64];
14   static void Transform (unsigned * data);
15   void WriteByteBlock (unsigned t);
16 };
WriteByteBlock(unsigned t)17 void SHA256::WriteByteBlock (unsigned t)
18 {
19   unsigned data32[16];
20   Transform (data32);
21   unsigned long long lenInBits = m_count;
22   if (t != (64 - 8))
23     return;
24   for (int i = 0; i < 2; i++)
25           _buffer[t++] = (unsigned char)lenInBits;
26 }
27 
28