]> granicus.if.org Git - postgresql/commit
Work around gcc 4.6.0 bug that breaks WAL replay.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 10 Jun 2011 21:03:11 +0000 (17:03 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 10 Jun 2011 21:03:11 +0000 (17:03 -0400)
commit45d792f70272ed57b932816562f31c2f79426c2a
tree118c4fc45cdbcc760775f1b8714c945926396924
parentcdd08887b9f160271f8d6695d5914c53814105c6
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
src/include/access/xlog_internal.h