summaryrefslogtreecommitdiff
path: root/src/pl/plperl/plperl.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-01-23 09:15:49 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2017-01-23 09:15:49 -0500
commitc0ef456b9714215cae0ce3561c7c83629a7301cf (patch)
tree2a684d8037b317c484766121e0afa38698f9d8aa /src/pl/plperl/plperl.c
parent366d2a3d8808ad92436a830c32e73ce17affe5b6 (diff)
downloadpostgresql-c0ef456b9714215cae0ce3561c7c83629a7301cf.tar.gz
Volatile-ize some plperl variables that must survive into PG_CATCH blocks.
This appears to be necessary to fix a failure seen on buildfarm member sittella. It shouldn't be necessary according to the letter of the C standard, because we don't change the values of these variables within the PG_TRY blocks; but somehow gcc 4.7.2 is dropping the ball. Discussion: https://postgr.es/m/17555.1485179975@sss.pgh.pa.us
Diffstat (limited to 'src/pl/plperl/plperl.c')
-rw-r--r--src/pl/plperl/plperl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index 9a2d0527f8..fc10d30f45 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -1763,8 +1763,8 @@ Datum
plperl_call_handler(PG_FUNCTION_ARGS)
{
Datum retval;
- plperl_call_data *save_call_data = current_call_data;
- plperl_interp_desc *oldinterp = plperl_active_interp;
+ plperl_call_data *volatile save_call_data = current_call_data;
+ plperl_interp_desc *volatile oldinterp = plperl_active_interp;
plperl_call_data this_call_data;
/* Initialize current-call status record */
@@ -1813,8 +1813,8 @@ plperl_inline_handler(PG_FUNCTION_ARGS)
FunctionCallInfoData fake_fcinfo;
FmgrInfo flinfo;
plperl_proc_desc desc;
- plperl_call_data *save_call_data = current_call_data;
- plperl_interp_desc *oldinterp = plperl_active_interp;
+ plperl_call_data *volatile save_call_data = current_call_data;
+ plperl_interp_desc *volatile oldinterp = plperl_active_interp;
plperl_call_data this_call_data;
ErrorContextCallback pl_error_context;