mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-01 02:01:16 +02:00
Add a note to PG_TRY's documentation about volatile safety.
We had better memorialize what the actual requirements are for this.
This commit is contained in:
parent
dabda64152
commit
4b2a254793
@ -332,6 +332,13 @@ extern PGDLLIMPORT ErrorContextCallback *error_context_stack;
|
||||
* not without taking thought for what will happen during ereport(FATAL).
|
||||
* The PG_ENSURE_ERROR_CLEANUP macros provided by storage/ipc.h may be
|
||||
* helpful in such cases.
|
||||
*
|
||||
* Note: if a local variable of the function containing PG_TRY is modified
|
||||
* in the PG_TRY section and used in the PG_CATCH section, that variable
|
||||
* must be declared "volatile" for POSIX compliance. This is not mere
|
||||
* pedantry; we have seen bugs from compilers improperly optimizing code
|
||||
* away when such a variable was not marked. Beware that gcc's -Wclobbered
|
||||
* warnings are just about entirely useless for catching such oversights.
|
||||
*----------
|
||||
*/
|
||||
#define PG_TRY() \
|
||||
|
Loading…
Reference in New Issue
Block a user