We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see ourdocumentation.
There was an error while loading.Please reload this page.
1 parentdabda64 commit4b2a254Copy full SHA for 4b2a254
src/include/utils/elog.h
@@ -332,6 +332,13 @@ extern PGDLLIMPORT ErrorContextCallback *error_context_stack;
332
* not without taking thought for what will happen during ereport(FATAL).
333
* The PG_ENSURE_ERROR_CLEANUP macros provided by storage/ipc.h may be
334
* helpful in such cases.
335
+ *
336
+ * Note: if a local variable of the function containing PG_TRY is modified
337
+ * in the PG_TRY section and used in the PG_CATCH section, that variable
338
+ * must be declared "volatile" for POSIX compliance. This is not mere
339
+ * pedantry; we have seen bugs from compilers improperly optimizing code
340
+ * away when such a variable was not marked. Beware that gcc's -Wclobbered
341
+ * warnings are just about entirely useless for catching such oversights.
342
*----------
343
*/
344
#definePG_TRY() \