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)17void 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