Here is my code to deserialize uint64_t value from a byte array:
uint8_t* s = blah;
uint64_t output =
(((uint64_t)*s++) << 56) +
(((uint64_t)*s++) << 48) +
(((uint64_t)*s++) << 40) +
(((uint64_t)*s++) << 32) +
(((uint64_t)*s++) << 24) +
(((uint64_t)*s++) << 16) +
(((uint64_t)*s++) << 8) +
(((uint64_t)*s) );
I am compiling this code with g++ version 5.4 on Ubuntu.
While the code works exactly as expected, I get a compile time warning on the last line:
warning: operation on 's' may be undefined [-Wsequence-point]
Wondering what could potentially be wrong and how I can fix it. Regards.