On Apr 20, 2017, at 5:03 AM, Pascal Quantin <pascal.quantin@xxxxxxxxx> wrote:
> This kind of warnings is highly dependent on the compiler version used. That's why it was not spotted so far, and why you are the first one to report the issue (for example I'm using gcc 6.3.1 and I do not have this warning).
What a mess:
https://postgrespro.com/list/thread-id/1860707
"I've been looking for other instances of the problem Mark Wilding
pointed out, about missing "volatile" markers on variables that
are modified in PG_TRY blocks and then used in the PG_CATCH stanzas.
There definitely are some. Current gcc versions do not warn about that.
If you turn on -Wclobbered, you don't always get warnings about the
variables that are problematic, and you do get warnings about variables
that are perfectly safe. (This is evidently why that option is not on
by default: it's *useless*, or even counterproductive if it gives you
false confidence that the compiler is protecting you.)
I thought maybe the gcc folk no longer care about this because the
compiler is now smart enough to compile safe code in these situations.
A simple experiment disabused me of that notion."
"Clang, at least the version on my Mac, doesn't warn either with the
settings we normally use, and it doesn't have -Wclobber at all.
I tried turning on -Weverything, and it still didn't complain.
(It did generate incorrect code though, so it's no better than gcc
in that respect.)"