I've read up a bit more on the strict-aliasing rules, and now I'm even more confused. They appear to be mostly about invalid casts between pointer types. But I'm not casting between pointer types anywhere near where g++ claims the error is occurring, at least not explicitly. Daniel