"Tegge, Bernd" <tegge@repas-aeg.de> writes:
> I've got a rather ugly but usable workaround. See attached timestamp.c
My, that *is* ugly. Surely there's gotta be something cleaner.
I don't quite understand how it is that the Compaq compiler works at
all, if it thinks it can optimize random memcpy operations into
opcodes that assume aligned addresses. We should be coredumping in a
lot more places than just this. Since we're not, there's got to be
some fairly straightforward way of defeating the optimization.
The extra memcpy looks to me like black magic that doesn't really have
anything directly to do with the problem.
I'm surprised that the (void *) cast didn't fix it. Perhaps it would
work to use DatumGetPointer rather than DatumGetIntervalP --- that is,
never give the compiler any hint that the source might be considered
double-aligned in the first place.
regards, tom lane