Following up on the recent bug report from Steve Nicolai, I spent a
tedious hour groveling through all the warnings emitted by gcc with
-Wcast-align. (We ought to try to reduce the number of them, but that's
a task for another day.)
I found seven places, in addition to the tuptoaster.c error originally
identified by Steve, in which the code is assuming that a "char foo[N]"
local variable will be aligned on better-than-char boundaries by the
compiler. All were inserted since 7.0. All but one were inserted by
Vadim in the new WAL code; the other one is in large-object support
and is my fault :-(
I will fix these shortly, but I wanted to raise a flag to people:
don't do that. An array of X is not guaranteed to be aligned any
better than an X is.
regards, tom lane