Commit c0ef456b authored by Tom Lane's avatar Tom Lane

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
parent 366d2a3d
...@@ -1763,8 +1763,8 @@ Datum ...@@ -1763,8 +1763,8 @@ Datum
plperl_call_handler(PG_FUNCTION_ARGS) plperl_call_handler(PG_FUNCTION_ARGS)
{ {
Datum retval; Datum retval;
plperl_call_data *save_call_data = current_call_data; plperl_call_data *volatile save_call_data = current_call_data;
plperl_interp_desc *oldinterp = plperl_active_interp; plperl_interp_desc *volatile oldinterp = plperl_active_interp;
plperl_call_data this_call_data; plperl_call_data this_call_data;
/* Initialize current-call status record */ /* Initialize current-call status record */
...@@ -1813,8 +1813,8 @@ plperl_inline_handler(PG_FUNCTION_ARGS) ...@@ -1813,8 +1813,8 @@ plperl_inline_handler(PG_FUNCTION_ARGS)
FunctionCallInfoData fake_fcinfo; FunctionCallInfoData fake_fcinfo;
FmgrInfo flinfo; FmgrInfo flinfo;
plperl_proc_desc desc; plperl_proc_desc desc;
plperl_call_data *save_call_data = current_call_data; plperl_call_data *volatile save_call_data = current_call_data;
plperl_interp_desc *oldinterp = plperl_active_interp; plperl_interp_desc *volatile oldinterp = plperl_active_interp;
plperl_call_data this_call_data; plperl_call_data this_call_data;
ErrorContextCallback pl_error_context; ErrorContextCallback pl_error_context;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment