]> granicus.if.org Git - postgresql/commit
Disable -faggressive-loop-optimizations in gcc 4.8+ for pre-9.2 branches.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 21 Aug 2013 22:31:54 +0000 (18:31 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 21 Aug 2013 22:31:54 +0000 (18:31 -0400)
commit8396d230fa489c8766ce0a9128bb0d8e5ff6667e
treeaf5e127af18ae81edaada27517960be25d817fa9
parentde27c2985f81801c1f9198159d379a036d472943
Disable -faggressive-loop-optimizations in gcc 4.8+ for pre-9.2 branches.

With this optimization flag enabled, recent versions of gcc can generate
incorrect code that assumes variable-length arrays (such as oidvector)
are actually fixed-length because they're embedded in some larger struct.
The known instance of this problem was fixed in 9.2 and up by commit
8137f2c32322c624e0431fac1621e8e9315202f9 and followon work, which hides
actually-variable-length catalog fields from the compiler altogether.
And we plan to gradually convert variable-length fields to official
"flexible array member" notation over time, which should prevent this type
of bug from reappearing as gcc gets smarter.  We're not going to try to
back-port those changes into older branches, though, so apply this
band-aid instead.

Andres Freund
configure
configure.in