Work around gcc 4.6.0 bug that breaks WAL replay.
authorTom Lane <[email protected]>
Fri, 10 Jun 2011 21:03:21 +0000 (17:03 -0400)
committerTom Lane <[email protected]>
Fri, 10 Jun 2011 21:03:21 +0000 (17:03 -0400)
commit6ab58354df4000372f6b098c3a55fa5a1681569f
treeb84c26b8d61aa3d8b223f8dd71bcd21101f35fbd
parent376f93e0a1959c8f84980c051195d8ee262b2059
Work around gcc 4.6.0 bug that breaks WAL replay.

ReadRecord's habit of using both direct references to tmpRecPtr and
references to *RecPtr (which is pointing at tmpRecPtr) triggers an
optimization bug in gcc 4.6.0, which apparently has forgotten about
aliasing rules.  Avoid the compiler bug, and make the code more readable
to boot, by getting rid of the direct references.  Improve the comments
while at it.

Back-patch to all supported versions, in case they get built with 4.6.0.

Tom Lane, with some cosmetic suggestions from Alex Hunsaker
src/backend/access/transam/xlog.c